commit c6bd0cf8ff960da79fecfe531c08009f34a6f6fd Author: Matthew Newton Date: Sat May 2 07:22:09 2026 -0700 Initial commit: Caissa Obsidian plugin Co-authored-by: Cursor diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..84b8a66 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = tab +indent_size = 4 +tab_width = 4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..7748ceb --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,28 @@ +name: Node.js build + +on: + push: + branches: ["**"] + pull_request: + branches: ["**"] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [20.x, 22.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: "npm" + - run: npm ci + - run: npm run build --if-present + - run: npm run lint + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e09a007 --- /dev/null +++ b/.gitignore @@ -0,0 +1,22 @@ +# vscode +.vscode + +# Intellij +*.iml +.idea + +# npm +node_modules + +# Don't include the compiled main.js file in the repo. +# They should be uploaded to GitHub releases instead. +main.js + +# Exclude sourcemaps +*.map + +# obsidian +data.json + +# Exclude macOS Finder (System Explorer) View States +.DS_Store diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b973752 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +tag-version-prefix="" \ No newline at end of file diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..3f4274a --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,251 @@ +# Obsidian community plugin + +## Project overview + +- Target: Obsidian Community Plugin (TypeScript → bundled JavaScript). +- Entry point: `main.ts` compiled to `main.js` and loaded by Obsidian. +- Required release artifacts: `main.js`, `manifest.json`, and optional `styles.css`. + +## Environment & tooling + +- Node.js: use current LTS (Node 18+ recommended). +- **Package manager: npm** (required for this sample - `package.json` defines npm scripts and dependencies). +- **Bundler: esbuild** (required for this sample - `esbuild.config.mjs` and build scripts depend on it). Alternative bundlers like Rollup or webpack are acceptable for other projects if they bundle all external dependencies into `main.js`. +- Types: `obsidian` type definitions. + +**Note**: This sample project has specific technical dependencies on npm and esbuild. If you're creating a plugin from scratch, you can choose different tools, but you'll need to replace the build configuration accordingly. + +### Install + +```bash +npm install +``` + +### Dev (watch) + +```bash +npm run dev +``` + +### Production build + +```bash +npm run build +``` + +## Linting + +- To use eslint install eslint from terminal: `npm install -g eslint` +- To use eslint to analyze this project use this command: `eslint main.ts` +- eslint will then create a report with suggestions for code improvement by file and line number. +- If your source code is in a folder, such as `src`, you can use eslint with this command to analyze all files in that folder: `eslint ./src/` + +## File & folder conventions + +- **Organize code into multiple files**: Split functionality across separate modules rather than putting everything in `main.ts`. +- Source lives in `src/`. Keep `main.ts` small and focused on plugin lifecycle (loading, unloading, registering commands). +- **Example file structure**: + ``` + src/ + main.ts # Plugin entry point, lifecycle management + settings.ts # Settings interface and defaults + commands/ # Command implementations + command1.ts + command2.ts + ui/ # UI components, modals, views + modal.ts + view.ts + utils/ # Utility functions, helpers + helpers.ts + constants.ts + types.ts # TypeScript interfaces and types + ``` +- **Do not commit build artifacts**: Never commit `node_modules/`, `main.js`, or other generated files to version control. +- Keep the plugin small. Avoid large dependencies. Prefer browser-compatible packages. +- Generated output should be placed at the plugin root or `dist/` depending on your build setup. Release artifacts must end up at the top level of the plugin folder in the vault (`main.js`, `manifest.json`, `styles.css`). + +## Manifest rules (`manifest.json`) + +- Must include (non-exhaustive): + - `id` (plugin ID; for local dev it should match the folder name) + - `name` + - `version` (Semantic Versioning `x.y.z`) + - `minAppVersion` + - `description` + - `isDesktopOnly` (boolean) + - Optional: `author`, `authorUrl`, `fundingUrl` (string or map) +- Never change `id` after release. Treat it as stable API. +- Keep `minAppVersion` accurate when using newer APIs. +- Canonical requirements are coded here: https://github.com/obsidianmd/obsidian-releases/blob/master/.github/workflows/validate-plugin-entry.yml + +## Testing + +- Manual install for testing: copy `main.js`, `manifest.json`, `styles.css` (if any) to: + ``` + /.obsidian/plugins// + ``` +- Reload Obsidian and enable the plugin in **Settings → Community plugins**. + +## Commands & settings + +- Any user-facing commands should be added via `this.addCommand(...)`. +- If the plugin has configuration, provide a settings tab and sensible defaults. +- Persist settings using `this.loadData()` / `this.saveData()`. +- Use stable command IDs; avoid renaming once released. + +## Versioning & releases + +- Bump `version` in `manifest.json` (SemVer) and update `versions.json` to map plugin version → minimum app version. +- Create a GitHub release whose tag exactly matches `manifest.json`'s `version`. Do not use a leading `v`. +- Attach `manifest.json`, `main.js`, and `styles.css` (if present) to the release as individual assets. +- After the initial release, follow the process to add/update your plugin in the community catalog as required. + +## Security, privacy, and compliance + +Follow Obsidian's **Developer Policies** and **Plugin Guidelines**. In particular: + +- Default to local/offline operation. Only make network requests when essential to the feature. +- No hidden telemetry. If you collect optional analytics or call third-party services, require explicit opt-in and document clearly in `README.md` and in settings. +- Never execute remote code, fetch and eval scripts, or auto-update plugin code outside of normal releases. +- Minimize scope: read/write only what's necessary inside the vault. Do not access files outside the vault. +- Clearly disclose any external services used, data sent, and risks. +- Respect user privacy. Do not collect vault contents, filenames, or personal information unless absolutely necessary and explicitly consented. +- Avoid deceptive patterns, ads, or spammy notifications. +- Register and clean up all DOM, app, and interval listeners using the provided `register*` helpers so the plugin unloads safely. + +## UX & copy guidelines (for UI text, commands, settings) + +- Prefer sentence case for headings, buttons, and titles. +- Use clear, action-oriented imperatives in step-by-step copy. +- Use **bold** to indicate literal UI labels. Prefer "select" for interactions. +- Use arrow notation for navigation: **Settings → Community plugins**. +- Keep in-app strings short, consistent, and free of jargon. + +## Performance + +- Keep startup light. Defer heavy work until needed. +- Avoid long-running tasks during `onload`; use lazy initialization. +- Batch disk access and avoid excessive vault scans. +- Debounce/throttle expensive operations in response to file system events. + +## Coding conventions + +- TypeScript with `"strict": true` preferred. +- **Keep `main.ts` minimal**: Focus only on plugin lifecycle (onload, onunload, addCommand calls). Delegate all feature logic to separate modules. +- **Split large files**: If any file exceeds ~200-300 lines, consider breaking it into smaller, focused modules. +- **Use clear module boundaries**: Each file should have a single, well-defined responsibility. +- Bundle everything into `main.js` (no unbundled runtime deps). +- Avoid Node/Electron APIs if you want mobile compatibility; set `isDesktopOnly` accordingly. +- Prefer `async/await` over promise chains; handle errors gracefully. + +## Mobile + +- Where feasible, test on iOS and Android. +- Don't assume desktop-only behavior unless `isDesktopOnly` is `true`. +- Avoid large in-memory structures; be mindful of memory and storage constraints. + +## Agent do/don't + +**Do** +- Add commands with stable IDs (don't rename once released). +- Provide defaults and validation in settings. +- Write idempotent code paths so reload/unload doesn't leak listeners or intervals. +- Use `this.register*` helpers for everything that needs cleanup. + +**Don't** +- Introduce network calls without an obvious user-facing reason and documentation. +- Ship features that require cloud services without clear disclosure and explicit opt-in. +- Store or transmit vault contents unless essential and consented. + +## Common tasks + +### Organize code across multiple files + +**main.ts** (minimal, lifecycle only): +```ts +import { Plugin } from "obsidian"; +import { MySettings, DEFAULT_SETTINGS } from "./settings"; +import { registerCommands } from "./commands"; + +export default class MyPlugin extends Plugin { + settings: MySettings; + + async onload() { + this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); + registerCommands(this); + } +} +``` + +**settings.ts**: +```ts +export interface MySettings { + enabled: boolean; + apiKey: string; +} + +export const DEFAULT_SETTINGS: MySettings = { + enabled: true, + apiKey: "", +}; +``` + +**commands/index.ts**: +```ts +import { Plugin } from "obsidian"; +import { doSomething } from "./my-command"; + +export function registerCommands(plugin: Plugin) { + plugin.addCommand({ + id: "do-something", + name: "Do something", + callback: () => doSomething(plugin), + }); +} +``` + +### Add a command + +```ts +this.addCommand({ + id: "your-command-id", + name: "Do the thing", + callback: () => this.doTheThing(), +}); +``` + +### Persist settings + +```ts +interface MySettings { enabled: boolean } +const DEFAULT_SETTINGS: MySettings = { enabled: true }; + +async onload() { + this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData()); + await this.saveData(this.settings); +} +``` + +### Register listeners safely + +```ts +this.registerEvent(this.app.workspace.on("file-open", f => { /* ... */ })); +this.registerDomEvent(window, "resize", () => { /* ... */ }); +this.registerInterval(window.setInterval(() => { /* ... */ }, 1000)); +``` + +## Troubleshooting + +- Plugin doesn't load after build: ensure `main.js` and `manifest.json` are at the top level of the plugin folder under `/.obsidian/plugins//`. +- Build issues: if `main.js` is missing, run `npm run build` or `npm run dev` to compile your TypeScript source code. +- Commands not appearing: verify `addCommand` runs after `onload` and IDs are unique. +- Settings not persisting: ensure `loadData`/`saveData` are awaited and you re-render the UI after changes. +- Mobile-only issues: confirm you're not using desktop-only APIs; check `isDesktopOnly` and adjust. + +## References + +- Obsidian sample plugin: https://github.com/obsidianmd/obsidian-sample-plugin +- API documentation: https://docs.obsidian.md +- Developer policies: https://docs.obsidian.md/Developer+policies +- Plugin guidelines: https://docs.obsidian.md/Plugins/Releasing/Plugin+guidelines +- Style guide: https://help.obsidian.md/style-guide diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0c3c361 --- /dev/null +++ b/README.md @@ -0,0 +1,536 @@ +# Caissa + +A chess study plugin for [Obsidian](https://obsidian.md): embed positions, study openings and endgames, browse World Championship games, and annotate PGNs inside your notes. Named after [Caïssa](https://en.wikipedia.org/wiki/Caïssa), the muse of chess. + +- Pick from a built-in library of openings and variations (Sicilian → Dragon, Najdorf, Yugoslav…) +- Play any position **against Stockfish** with adjustable strength (level 0–20) — fully offline, click-to-move, with promotion/undo/new-game controls +- Study **canonical endgame techniques** — basic mates, Lucena, Philidor, Vancura, opposition, wrong-bishop draw, and more +- Browse **bundled World Championship games** — 68 hand-picked decisive/famous games from 1886 (Steinitz–Zukertort) through 2024 (Gukesh–Ding) +- Paste a **PGN from anywhere** (Lichess, chess.com, ChessBase, your own play) and play through it with full headers +- Pull a Lichess game directly with `lichess: ` — no token needed +- Step through moves with `prev`/`next` controls or click any move in the list +- Drop multiple boards in the same note to compare variations side by side +- Two-column white/black move list right next to the board +- 7 piece styles to choose from — classic, modern, retro, and more (see [Piece sets](#piece-sets)) +- Optional **Opening Explorer** panel showing win/draw/loss percentages for every candidate next move (powered by [Lichess](https://lichess.org), opt-in) + +## Contents + +- [Quick start](#quick-start) +- [Usage](#usage) — [Inline picker](#inline-picker), [Sizing and layout](#sizing-and-layout), [Loading whole games](#loading-whole-games), [Built-in openings](#built-in-openings), [Endgames](#endgames), [World Championship games](#world-championship-games), [Piece sets](#piece-sets) +- [Commands](#commands) +- [Export a board as PNG or SVG](#export-a-board-as-png-or-svg) +- [Captured pieces and material balance](#captured-pieces-and-material-balance) +- [Annotations: arrows and square highlights](#annotations-arrows-and-square-highlights) +- [Keyboard shortcuts](#keyboard-shortcuts) +- [Engine analysis (Stockfish, offline)](#engine-analysis-stockfish-offline) +- [Play against Stockfish](#play-against-stockfish) +- [Opening Explorer (win / draw / loss bars)](#opening-explorer-win--draw--loss-bars) +- [Block options reference](#block-options-reference) — every key you can put in a `chess` block +- [Settings](#settings) +- [Development](#development) +- [Credits](#credits) + +## Quick start + +If you only read three examples, read these. Each is a complete, self-contained block — paste it into any note and it just works. + +**1. Pull up a known opening:** + +````markdown +```chess +opening: Sicilian Defense +variation: Dragon +``` +```` + +**2. Drop in a PGN you copied from anywhere:** + +````markdown +```chess +[White "Carlsen, Magnus"] +[Black "Nakamura, Hikaru"] +[Result "1-0"] + +1. e4 e5 2. Nf3 Nf6 3. Nxe5 d6 4. Nf3 Nxe4 ... +``` +```` + +**3. Play a real game against Stockfish from any starting position:** + +````markdown +```chess +opening: Italian Game +play: white +level: 5 +``` +```` + +That's the whole mental model: every block is a starting position plus optional behavior. See [Block options reference](#block-options-reference) for every key you can use, or keep reading for guided examples. + +## Usage + +Add a fenced code block with the language `chess`: + +````markdown +```chess +opening: Sicilian Defense +variation: Dragon +``` +```` + +That renders the full Dragon line with a board, an interactive move list, and step controls. Anything you can put in a code block is supported, so you can have several variations stacked in the same note: + +````markdown +## Sicilian Defense + +### Najdorf + +```chess +opening: Sicilian Defense +variation: Najdorf +``` + +### Dragon + +```chess +opening: Sicilian Defense +variation: Dragon +title: My Dragon notes +``` + +### Yugoslav Attack against the Dragon + +```chess +opening: Sicilian Defense +variation: Yugoslav Attack +``` +```` + +### Inline picker + +Don't want to look up slugs? Drop a blank `chess` block — either the **Insert chess board** command or just type the fences yourself: + +````markdown +```chess +``` +```` + +The rendered block grows a little dropdown strip across the top: pick a category (Openings, Endgames, World Championship), then a specific opening/variation/endgame/game from a second dropdown. Your selection is written back into the block's source as `opening: …` / `variation: …` / `endgame: …` / `wccgame: …`, so the result is the same as if you'd typed it by hand — and it survives reload, sync, and copy-paste. + +This is the friendliest way to use the plugin if you don't already have a position in mind. + +> See [Block options reference](#block-options-reference) for every key you can put in a `chess` block. + +### Sizing and layout + +```chess +opening: Sicilian Defense +variation: Dragon +size: large # small | medium (default) | large | full +showMoves: true # set false to hide the right-hand move list +interactive: false # set false to hide the prev/next/flip buttons +``` + +- `small` ≈ 240px board, `medium` ≈ 360px (default), `large` ≈ 500px. +- `size: full` makes the board fill the writing area's width and pushes the move list below it. +- The board's column also auto-collapses to a single stacked layout when the writing pane is narrower than ~520px (mobile screens, narrow split-pane editing). This uses CSS container queries so it responds to the *pane* width, not the whole window. +- `showMoves: false` lets the board take the row by itself without an empty side column. + +If both `opening` and `moves` are provided, `moves` wins (handy for adding extra moves past the book). If `pgn` or `lichess` is set, those win over everything else (they bring their own moves and headers). + +#### Pick the position to show on first render + +By default a block opens at the starting position (move 0) so you can step through. If you'd rather land on a specific move — to highlight a critical position, jump straight to a tactic, or open a long PGN at the interesting middlegame — use `startMove`: + +````markdown +```chess +opening: Sicilian Defense +variation: Najdorf +startMove: 12 +``` +```` + +`startMove` is a 0-indexed step into the move list (`0` = starting position, `1` = after White's first move, `2` = after Black's first reply, and so on). Out-of-range values clamp to the last move, so `startMove: 999` on a 30-move game just opens at the end. Stepping with `←`/`→` works normally from there — it's purely the initial render position, not a hard limit. + +### Loading whole games + +#### Paste a PGN + +If the entire body of the block looks like a PGN — that is, it starts with a `[Tag "value"]` header, or contains move tokens with no `key: value` lines — the plugin treats the whole block as a PGN. No `pgn:` prefix needed: + +````markdown +```chess +[Event "Norway Chess"] +[Site "Stavanger NOR"] +[Date "2024.05.27"] +[White "Carlsen, Magnus"] +[Black "Nakamura, Hikaru"] +[Result "1-0"] +[WhiteElo "2830"] +[BlackElo "2789"] +[ECO "C42"] +[Opening "Russian Game"] + +1. e4 e5 2. Nf3 Nf6 3. Nxe5 d6 4. Nf3 Nxe4 5. d4 d5 6. Bd3 Bd6 ... +``` +```` + +The plugin renders a clean game-info strip above the board (players · result · event · date · ECO/opening), strips any `{ [%eval ...] [%clk ...] }` annotations, and walks the mainline. Variations and comments are dropped. + +PGNs from Lichess, chess.com (Share → PGN), ChessBase, SCID, and the Lichess `pgn-extract` tool all paste cleanly. + +#### Pull a Lichess game by URL + +If you'd rather just point at a Lichess game, use the `lichess` key: + +````markdown +```chess +lichess: https://lichess.org/q7ZvsdUF +``` +```` + +A bare game ID also works (`lichess: q7ZvsdUF`). The plugin fetches the PGN from `https://lichess.org/game/export/` over HTTPS — **no token required for this endpoint**, unlike the Opening Explorer. Results are cached in memory for the session. + +You can combine `lichess:` with sizing/orientation keys: + +````markdown +```chess +lichess: https://lichess.org/q7ZvsdUF +size: full +orientation: black +``` +```` + +### Built-in openings + +Italian Game · Ruy Lopez · Sicilian Defense (Najdorf, Dragon, Yugoslav, Accelerated Dragon, Scheveningen, Sveshnikov, Taimanov, Kan, Classical, Closed, Alapin, Smith-Morra) · French Defense · Caro-Kann · Scandinavian · Pirc · Alekhine's · Queen's Gambit (QGA, QGD, Slav, Semi-Slav, Tarrasch, Albin) · King's Indian · Nimzo-Indian · Grünfeld · English · Réti · London System. + +Use the **Insert chess opening from library** command (Cmd/Ctrl+P) to fuzzy-search and insert a block for any of them. + +### Endgames + +The plugin ships ten canonical endgame techniques. Use them with `endgame: `: + +| Slug | Topic | Demo line? | +| --- | --- | --- | +| `kqk-mate` | King + queen vs king (basic queen mate) | full technique, mate in 8 | +| `krk-mate` | King + rook vs king (basic rook mate) | full technique, mate in 4 | +| `krrk-ladder-mate` | Two rooks vs king (ladder mate) | mate in 2 | +| `kbnk-mate` | Bishop + knight mate (the W-manoeuvre) | Karttunen vs Rasik 2003, mate in 23 | +| `kbbk-mate` | Two bishops mate | Leslie-Hurd 2005 tablebase, mate in 19 | +| `lucena` | Lucena position — winning the rook endgame with the bridge | study position | +| `philidor` | Philidor position — drawing the rook endgame | study position | +| `vancura` | Vancura position — rook + a-pawn draw | study position | +| `kpk-opposition` | King + pawn vs king — opposition and key squares | study position | +| `wrong-bishop` | Wrong-colored bishop + rook-pawn draw | study position | + +All five mating endgames ship a verified mating sequence you can step through with **next**. KQK, KRK, and the two-rook ladder use hand-crafted demo lines from a central starting position. For the two hardest mates we ship real games that were actually played out: **KBNK** uses the ending of Karttunen vs Rasik (European Club Cup 2003), picked up at move 84 with 23 moves of W-manoeuvre to mate; **KBBK** uses Joe Leslie-Hurd's 2005 tablebase analysis of the longest forced KBBK mate, with both sides playing perfectly to mate-in-19. The five non-mating positions (Lucena, Philidor, Vancura, K+P opposition, wrong-bishop) are study positions where the technique itself depends on best play from both sides, so the plugin lets you explore them without forcing a fixed line. + +Example: + +````markdown +```chess +endgame: lucena +``` +```` + +Use the **Insert chess endgame from library** command for a fuzzy picker. + +### World Championship games + +The plugin ships 68 hand-picked World Championship games covering 20 matches from 1886 (Steinitz–Zukertort) through 2024 (Gukesh–Ding). Each is referenced by a stable slug formatted `---`: + +````markdown +```chess +wccgame: 1972-fischer-spassky-06 +``` +```` + +That renders Fischer's famous game 6 against Spassky from Reykjavik with full headers, the result, the ECO code, and a clickable move list. + +Use the **Insert chess world championship game** command for a two-step picker (match → game). PGNs are sourced from [PGN Mentor](https://pgnmentor.com/) and bundled inline with the plugin — no network calls at runtime. + +To curate or extend the bundled set, edit `scripts/wcc-curated.json` and re-run `node scripts/fetch-wcc-games.mjs`. + +### Piece sets + +Set the global default in **Settings → Community plugins → Caissa → Piece set**, or override per board with `pieces: `. + +| Name | Style | +| --- | --- | +| `cburnett` | Classic Lichess look (default) — neutral, recognizable | +| `merida` | Traditional chess-club style, slightly heavier than cburnett | +| `staunty` | Modern bold Staunton tournament look | +| `caliente` | Warm modern Staunton with subtle gradient shading | +| `pixel` | 8-bit retro pixel art | +| `letter` | Just K Q R B N P text — high contrast, accessibility-friendly | +| `unicode` | Unicode chess characters from your system font | + +## Commands + +- **Insert chess board** — drops an empty `chess` code block at the cursor. +- **Insert chess opening from library** — fuzzy-search modal for openings and variations. +- **Insert chess endgame from library** — fuzzy-search the bundled endgame techniques. +- **Insert chess world championship game** — two-step picker (match → game) over the bundled WCC corpus. +- **Insert chess board from clipboard fen** — reads a FEN string from the clipboard and seeds a block. +- **Insert chess game from clipboard pgn** — reads PGN text from the clipboard and drops it into a `chess` block. +- **Insert chess game from lichess link** — reads a Lichess game URL or ID from the clipboard and inserts a `lichess: ` block. +- **Start openings quiz** — opens a modal that endlessly serves up positions from the bundled opening repertoire and asks for the next book move. Move spelling variants (`Nf3` vs `Ngf3`) are normalized via chess.js so anything legal counts. Tracks correct/total and a streak per session. + +Or, drop a blank `chess` block (the **Insert chess board** command) and use the inline picker — a category dropdown lets you switch between Openings, Endgames, and World Championship right inside the rendered block, without typing slugs. + +## Export a board as PNG or SVG + +Right-click any rendered board (long-press on touch) for a context menu with: + +- **Copy as image** — places a PNG on the system clipboard, ready to paste into Discord, Twitter, Obsidian notes, etc. +- **Copy as SVG** — places the SVG markup on the clipboard. +- **Save as PNG** — downloads a `caissa-board-.png` file at 2× resolution (720×720 by default). +- **Save as SVG** — downloads a `caissa-board-.svg` file. + +Exports always reflect the *current* position on screen (after stepping moves or flipping), and use whichever piece set / colors / annotations you've configured for the block — what you see is what you copy. + +## Captured pieces and material balance + +Every board automatically shows a captured-pieces tray above and below it, plus a `+N` material badge next to the side that's ahead. The piece glyphs use whichever piece set is active for the board so the tray always matches. + +- Pieces captured by White appear on White's side (bottom of the board by default; top if you flip with `F`). +- Pieces captured by Black appear on Black's side. +- The `+N` badge shows pawn-equivalent material — promotions are accounted for, so a queened pawn shows as `+8` rather than `+1` once it promotes. +- Trays auto-hide on positions where nothing has been captured (a fresh starting position, an endgame study with no captures), so they never add empty space. + +You can hide the trays globally in **Settings → Caissa → Show captured pieces**, or per-block with `captured: false`. + +## Annotations: arrows and square highlights + +Annotate any board with arrows (move suggestions, threats, plans) and square highlights (key squares, weak squares, mating nets). Both are declarative — no clicks involved — so they survive note round-trips and look the same on every device. + +````markdown +```chess +fen: r1bqkbnr/pppp1ppp/2n5/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - 2 3 +arrows: f3e5 g1f3-blue +highlights: e5 f7-red +``` +```` + +Token grammar: + +- `arrows: [-color]` — list of square pairs, whitespace-separated. `e2e4 g1f3 d2d4-blue`. +- `highlights: [-color]` — list of squares, whitespace-separated. `d4 e4-red f5-yellow`. + +Color presets: `green` (default), `red`, `yellow`, `blue`. You can also pass any 3, 6, or 8-character hex code without the `#` (e.g. `e2e4-ff5500`). Unknown colors silently fall back to green so a typo never breaks the board. + +Highlights render as a colored ring inside the square (so the piece glyph stays readable); arrows render as a thick filled triangle on top of the board, matching the convention from Lichess and chess.com analysis boards. + +## Keyboard shortcuts + +Click any rendered chess block (or Tab into it — a soft accent ring shows it's focused) and use: + +| Key | Action | +| --- | --- | +| `←` / `Page Up` | Previous move | +| `→` / `Page Down` | Next move | +| `Home` | Jump to the starting position | +| `End` | Jump to the final position | +| `F` | Flip the board | + +Shortcuts are scoped to the focused block, so multiple boards on the same page never fight for keys, and typing in any text input still works normally. + +## Engine analysis (Stockfish, offline) + +Caissa ships a bundled offline copy of [Stockfish 10](https://stockfishchess.org/) (the asm.js build by Niklas Fiekas, ~1.5 MB), so you can run engine analysis with **zero network calls** and on a plane. The engine is lazy-loaded on first use — if you never set `analyze: true`, no worker is spawned and no extra memory is allocated. + +Add `analyze: true` to any chess block to turn on the analysis panel: + +````markdown +```chess +opening: Sicilian Defense +variation: Najdorf +analyze: true +``` +```` + +That gives you: + +- An **evaluation bar** to the left of the engine panel, showing the position from White's perspective (clamped at ±5 pawns for the bar; the numeric label is exact). +- The **top 3 principal variations** — eval, search depth, and the move sequence Stockfish recommends. +- A **whole-game eval graph** under the board with an **Analyze game** button. Click it once to evaluate every position in the loaded PGN at depth 12; the resulting sparkline shows where evaluation swings happened. Click anywhere on the graph to jump the board to that position. + +Notes and tradeoffs: + +- The engine is the pure-JS asm.js Stockfish 10 (no NNUE, no WebAssembly). Strength is around 3000+ Elo at depth 16 — more than enough for spotting tactics, blunders, and trends. If you need NNUE/cloud-grade analysis, run an analysis on Lichess and paste the PGN back in. +- Each block runs analysis serially through one shared worker; the worker stays alive across blocks so subsequent positions analyze fast. +- "Analyze game" on a 60-move game at depth 12 takes roughly 30–90 seconds depending on hardware. + +The engine is bundled directly into `main.js`. Bundle size impact: the plugin grows from ~250 KB to ~1.8 MB. There are no extra files to install, no network downloads, and no telemetry. + +## Play against Stockfish + +Set up any position you'd render normally (start position, an opening, an endgame, a custom FEN), then add `play: white` (or `black`, or `random`) to start a game from that exact position against the bundled Stockfish: + +````markdown +```chess +opening: Italian Game +play: white +level: 5 +``` +```` + +How it works: + +- **Click to move.** Click a friendly piece to select it (legal targets light up as dots; capture squares get rings); click a destination square to play. Clicking the same square again deselects. +- **Promotions** trigger a popup with Queen / Rook / Bishop / Knight choices. +- **Game over** is detected automatically — checkmate, stalemate, threefold repetition, insufficient material, or 50-move rule. The status line below the board updates in place. +- **Undo** rolls back to the last position where it was your turn (your move + the engine's reply). +- **New game** resets to the configured starting position. If you set `play: random` the controller picks a side at mount time and a fresh "new game" keeps that side. +- The captured-pieces tray + material badge work as usual so you can see how a game is going at a glance. + +Strength control via `level: 0–20`: + +| Level | Approx. Elo | Feels like | +| --- | --- | --- | +| 0 | ~1100 | Beginner — frequent blunders | +| 4 | ~1500 | Casual club player | +| 8 (default) | ~1700 | Decent club player | +| 12 | ~1900 | Strong club player | +| 16 | ~2300 | Expert | +| 20 | ~3000+ | Full strength (depth-limited at 14) | + +Lower levels also use shallower searches so weak moves come back fast — at `level: 0` the engine plays nearly instantly. At `level: 20` each move can take a couple seconds depending on hardware. + +Notes: + +- The board, captured tray, piece set, colors, and orientation all respect the same `pieces` / `light` / `dark` / `coordinates` config you'd use on a normal block. +- `play` is mutually exclusive with stepping through a fixed PGN — once you set `play`, the move list becomes a passive transcript and the prev/next/last buttons are gone. +- `play` plus `lichess: ` isn't supported (the lichess loader runs first); paste the PGN inline if you want to play a position from a Lichess game. + +## Opening Explorer (win / draw / loss bars) + +Optionally show a **Lines** panel under each board with the win/draw/loss percentage for every candidate next move at the current position, exactly like Lichess's analysis page. + +### One-time setup + +1. **Settings → Community plugins → Caissa → Lichess API token** — paste a token here. +2. To create a token, go to [lichess.org/account/oauth/token](https://lichess.org/account/oauth/token), click **Create new personal access token**, give it any name (no scopes needed), generate it, and copy the token. +3. Toggle on **Enable opening explorer**. + +That's it. The panel now appears under every chess board and updates as you step through moves. + +### Why a token? + +Lichess started requiring authentication on its Opening Explorer API in March 2026 to mitigate DDoS abuse. The token is free, takes 30 seconds to create, and is rate-limited to 25 requests / minute (more than enough for normal study). Your token is stored locally in the plugin's settings file inside your vault — it is never sent anywhere except to Lichess. + +### Data sources + +- **Masters database** — over-the-board games played by 2200+ rated players (high-quality opening theory). +- **Lichess players** — a much larger database covering all rated games on Lichess (good for offbeat lines). + +You can switch sources globally in settings, or per board with `explorerSource: lichess`. + +### Privacy + +When the explorer is enabled, the plugin sends the current board position (FEN) and your Lichess API token to `https://explorer.lichess.ovh` over HTTPS. Nothing else is transmitted; your notes, vault contents, and other settings stay local. The explorer is **off by default** — you have to opt in. + +When you use the `lichess: ` key, the plugin makes a separate, anonymous HTTPS request to `https://lichess.org/game/export/` to download the PGN of that one specific game. No token is sent and no other request is made. This only happens for blocks that explicitly use the `lichess:` key. + +Results are cached in memory for the session, so stepping back and forth through a line never refetches. + +## Block options reference + +Every key you can put inside a `chess` code block. All keys are optional and may appear in any order. Per-block keys always override the matching global setting. + +### Position (pick one — the first one set wins) + +| Key | Description | Example | +| --- | --- | --- | +| `opening` | Name from the bundled library — see [Built-in openings](#built-in-openings) | `opening: Italian Game` | +| `variation` | Variation belonging to the opening above | `variation: Two Knights Defense` | +| `endgame` | Endgame slug or display name — see [Endgames](#endgames) | `endgame: lucena` | +| `wccgame` | World Championship game slug — see [World Championship games](#world-championship-games) | `wccgame: 1972-fischer-spassky-06` | +| `fen` | Custom starting position (FEN). Use alone for puzzles or middlegames | `fen: rnbqkbnr/...` | +| `pgn` | Single-line PGN. For multi-line PGNs, paste the PGN as the entire block body | `pgn: 1. e4 e5 2. Nf3` | +| `lichess` | Lichess game ID or URL — fetches the full PGN over HTTPS, no token needed | `lichess: https://lichess.org/q7ZvsdUF` | +| `moves` | Explicit SAN move list. Move numbers like `1.` are stripped. Combines with `opening` to extend a book line | `moves: e4 e5 Nf3 Nc6 Bc4` | + +### Display + +| Key | Description | Example | +| --- | --- | --- | +| `title` | Caption shown above the board | `title: My Dragon line` | +| `orientation` | `white` or `black` | `orientation: black` | +| `pieces` | One of `cburnett`, `merida`, `staunty`, `caliente`, `pixel`, `letter`, `unicode` | `pieces: caliente` | +| `light` / `dark` | CSS color for board squares | `light: #eeeed2` | +| `size` | `small`, `medium` (default), `large`, or `full` | `size: full` | +| `coordinates` | `true`/`false` to toggle file/rank labels | `coordinates: false` | +| `interactive` | `true`/`false` to toggle the prev/next/flip buttons | `interactive: false` | +| `showMoves` | `true`/`false` to show or hide the right-hand move list | `showMoves: false` | +| `startMove` | Index of the step to show on first render (0 = start, clamped to game length) — see [Sizing and layout](#sizing-and-layout) | `startMove: 12` | +| `captured` | `true`/`false` to override **Show captured pieces** for this block | `captured: false` | + +### Annotations + +| Key | Description | Example | +| --- | --- | --- | +| `arrows` | Whitespace-separated `[-color]` tokens — see [Annotations](#annotations-arrows-and-square-highlights) | `arrows: e2e4 g1f3-blue` | +| `highlights` | Whitespace-separated `[-color]` tokens | `highlights: d4 e4-red` | + +### Engine + +| Key | Description | Example | +| --- | --- | --- | +| `analyze` | `true` to lazy-load Stockfish and show eval bar + top engine lines + analyze-game graph — see [Engine analysis](#engine-analysis-stockfish-offline) | `analyze: true` | +| `play` | `white`, `black`, or `random` — play that color against Stockfish from the configured position. See [Play against Stockfish](#play-against-stockfish) | `play: white` | +| `level` | Stockfish skill level 0–20 (default 8). Lower = weaker / more human | `level: 4` | + +### Opening Explorer + +| Key | Description | Example | +| --- | --- | --- | +| `explorer` | `true`/`false` to enable the lines panel for this block only | `explorer: true` | +| `explorerSource` | `masters` or `lichess` for this block only | `explorerSource: lichess` | + +## Settings + +**Settings → Community plugins → Caissa** lets you customize: + +- Default piece set (7 styles to choose from — see [Piece sets](#piece-sets)) +- Light / dark square colors +- Last-move highlight color +- Whether to show coordinates and interactive controls by default +- Default board orientation +- Opening Explorer enable / disable, data source, max lines, Lichess API token + +Per-block settings always override the global defaults. + +## Development + +```bash +npm install +npm run dev # watch + rebuild main.js +npm run build # type-check and produce a production main.js +npm run lint # eslint over src/ +``` + +To test locally, this folder lives at `/.obsidian/plugins/obsidian-caissa/`. After building, reload Obsidian and enable **Caissa** under **Settings → Community plugins**. + +## Credits + +- Move logic: [chess.js](https://github.com/jhlywa/chess.js) +- Opening statistics: [Lichess Opening Explorer](https://lichess.org/api#tag/Opening-Explorer) (CC0) +- World Championship game PGNs: [PGN Mentor](https://pgnmentor.com/) (records of historical OTB games are not subject to copyright; only the move sequences are bundled, with the original event headers preserved) +- Piece artwork (sourced from the [Lichess (lila) repository](https://github.com/lichess-org/lila/tree/master/public/piece); see lila's [COPYING.md](https://github.com/lichess-org/lila/blob/master/COPYING.md) for canonical license info): + - `cburnett` — [Colin M.L. Burnett](https://en.wikipedia.org/wiki/User:Cburnett) ([GPLv2+](https://www.gnu.org/licenses/gpl-2.0.txt)) + - `merida` — Armando Hernández Marroquín ([GPLv2+](https://www.gnu.org/licenses/gpl-2.0.txt)) + - `staunty` — sadsnake1 ([CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)) + - `caliente` — [avi](https://github.com/avi-0/caliente) ([CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)) + - `pixel` — therealqtpi ([AGPLv3+](https://www.gnu.org/licenses/agpl-3.0.html)) + - `letter` — synthesized in this plugin + +The CC BY-NC-SA 4.0 sets (`staunty`, `caliente`) include a non-commercial restriction. Distributing them as part of this free, open-source plugin is fine; if you fork this plugin and intend to sell it, remove those sets first. + +To refresh the bundled SVGs from upstream, run `node scripts/fetch-piece-sets.mjs` and commit the regenerated `src/chess/piece-data.generated.ts`. + +## Release + +Attach `main.js`, `manifest.json`, and `styles.css` as individual assets to a GitHub release whose tag exactly matches the `version` in `manifest.json` (no leading `v`). diff --git a/esbuild.config.mjs b/esbuild.config.mjs new file mode 100644 index 0000000..dbebdd0 --- /dev/null +++ b/esbuild.config.mjs @@ -0,0 +1,53 @@ +import esbuild from "esbuild"; +import process from "process"; +import { builtinModules } from 'node:module'; + +const banner = +`/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ +`; + +const prod = (process.argv[2] === "production"); + +const context = await esbuild.context({ + banner: { + js: banner, + }, + entryPoints: ["src/main.ts"], + bundle: true, + external: [ + "obsidian", + "electron", + "@codemirror/autocomplete", + "@codemirror/collab", + "@codemirror/commands", + "@codemirror/language", + "@codemirror/lint", + "@codemirror/search", + "@codemirror/state", + "@codemirror/view", + "@lezer/common", + "@lezer/highlight", + "@lezer/lr", + ...builtinModules], + format: "cjs", + target: "es2018", + logLevel: "info", + sourcemap: prod ? false : "inline", + treeShaking: true, + outfile: "main.js", + minify: prod, + // Treat .sftext files as opaque strings — used to inline the bundled + // Stockfish 10 asm.js engine into main.js so we don't need to ship + // extra files alongside the plugin. + loader: { ".sftext": "text" }, +}); + +if (prod) { + await context.rebuild(); + process.exit(0); +} else { + await context.watch(); +} diff --git a/eslint.config.mts b/eslint.config.mts new file mode 100644 index 0000000..3062c4a --- /dev/null +++ b/eslint.config.mts @@ -0,0 +1,34 @@ +import tseslint from 'typescript-eslint'; +import obsidianmd from "eslint-plugin-obsidianmd"; +import globals from "globals"; +import { globalIgnores } from "eslint/config"; + +export default tseslint.config( + { + languageOptions: { + globals: { + ...globals.browser, + }, + parserOptions: { + projectService: { + allowDefaultProject: [ + 'eslint.config.js', + 'manifest.json' + ] + }, + tsconfigRootDir: import.meta.dirname, + extraFileExtensions: ['.json'] + }, + }, + }, + ...obsidianmd.configs.recommended, + globalIgnores([ + "node_modules", + "dist", + "esbuild.config.mjs", + "eslint.config.js", + "version-bump.mjs", + "versions.json", + "main.js", + ]), +); diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..24f9059 --- /dev/null +++ b/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-caissa", + "name": "Caissa", + "version": "1.0.0", + "minAppVersion": "1.12.0", + "description": "Study chess in your vault. Embed positions, study openings and endgames, browse World Championship games, annotate PGNs, and explore Lichess opening statistics.", + "author": "TheEkrizdis", + "authorUrl": "", + "isDesktopOnly": false +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..59f9eb4 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5156 @@ +{ + "name": "obsidian-caissa", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "obsidian-caissa", + "version": "1.0.0", + "license": "0BSD", + "dependencies": { + "chess.js": "^1.4.0", + "obsidian": "latest" + }, + "devDependencies": { + "@eslint/js": "9.30.1", + "@types/node": "^16.11.6", + "esbuild": "0.25.5", + "eslint-plugin-obsidianmd": "0.1.9", + "globals": "14.0.0", + "jiti": "2.6.1", + "tslib": "2.4.0", + "typescript": "^5.8.3", + "typescript-eslint": "8.35.1" + } + }, + "node_modules/@codemirror/state": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.0.tgz", + "integrity": "sha512-MwBHVK60IiIHDcoMet78lxt6iw5gJOGSbNbOIVBHWVXIH4/Nq1+GQgLLGgI1KlnN86WDXsPudVaqYHKBIx7Eyw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.38.6", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.6.tgz", + "integrity": "sha512-qiS0z1bKs5WOvHIAC0Cybmv4AJSkAXgX5aD6Mqd2epSLlVJsQl8NG23jCVouIgkh4All/mrbdsf2UOLFnJw0tw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.5.tgz", + "integrity": "sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.1", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.30.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.1.tgz", + "integrity": "sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/json": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/json/-/json-0.14.0.tgz", + "integrity": "sha512-rvR/EZtvUG3p9uqrSmcDJPYSH7atmWr0RnFWN6m917MAPx82+zQgPUmDu0whPFG6XTyM0vB/hR6c1Q63OaYtCQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/core": "^0.17.0", + "@eslint/plugin-kit": "^0.4.1", + "@humanwhocodes/momoa": "^3.3.10", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/momoa": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-3.3.10.tgz", + "integrity": "sha512-KWiFQpSAqEIyrTXko3hFNLeQvSK8zXlJQzhhxsyVn58WFRYXST99b3Nqnu+ttOtjds2Pl2grUHGpe2NzhPynuQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "license": "MIT", + "peer": true + }, + "node_modules/@microsoft/eslint-plugin-sdl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@microsoft/eslint-plugin-sdl/-/eslint-plugin-sdl-1.1.0.tgz", + "integrity": "sha512-dxdNHOemLnBhfY3eByrujX9KyLigcNtW8sU+axzWv5nLGcsSBeKW2YYyTpfPo1hV8YPOmIGnfA4fZHyKVtWqBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-plugin-n": "17.10.3", + "eslint-plugin-react": "7.37.3", + "eslint-plugin-security": "1.4.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "eslint": "^9" + } + }, + "node_modules/@microsoft/eslint-plugin-sdl/node_modules/eslint-plugin-security": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz", + "integrity": "sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-regex": "^1.1.0" + } + }, + "node_modules/@microsoft/eslint-plugin-sdl/node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.2.tgz", + "integrity": "sha512-fdDH1LSGfZdTH2sxdpVMw31BanV28K/Gry0cVFxaNP77neJSkd82mM8ErPNYs9e+0O7SdHBLTDzDgwUuy18RnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/codemirror": { + "version": "5.60.8", + "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.8.tgz", + "integrity": "sha512-VjFgDF/eB+Aklcy15TtOTLQeMjTo07k7KAjql8OK5Dirr7a6sJY4T1uVBDuTVG9VEmn1uUsohOpYnVfgC6/jyw==", + "license": "MIT", + "dependencies": { + "@types/tern": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", + "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "16.18.126", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.126.tgz", + "integrity": "sha512-OTcgaiwfGFBKacvfwuHzzn1KLxH/er8mluiy8/uM3sGXHaRe73RrSIj01jow9t4kJEW633Ov+cOexXeiApTyAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tern": { + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz", + "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz", + "integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/type-utils": "8.35.1", + "@typescript-eslint/utils": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.35.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz", + "integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/typescript-estree": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz", + "integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.35.1", + "@typescript-eslint/types": "^8.35.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz", + "integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz", + "integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz", + "integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.35.1", + "@typescript-eslint/utils": "8.35.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz", + "integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz", + "integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.35.1", + "@typescript-eslint/tsconfig-utils": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/visitor-keys": "8.35.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz", + "integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.35.1", + "@typescript-eslint/types": "8.35.1", + "@typescript-eslint/typescript-estree": "8.35.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz", + "integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.35.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chess.js": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/chess.js/-/chess.js-1.4.0.tgz", + "integrity": "sha512-BBJgrrtKQOzFLonR0l+k64A98NLemPwNsCskwb+29bRwobUa4iTm51E1kwGPbWXAcfdDa18nad6vpPPKPWarqw==", + "license": "BSD-2-Clause" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT", + "peer": true + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/empathic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.2.tgz", + "integrity": "sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.4.tgz", + "integrity": "sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.5", + "@eslint/js": "9.39.4", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-compat-utils": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz", + "integrity": "sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-depend": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-depend/-/eslint-plugin-depend-1.3.1.tgz", + "integrity": "sha512-1uo2rFAr9vzNrCYdp7IBZRB54LiyVxfaIso0R6/QV3t6Dax6DTbW/EV2Hktf0f4UtmGHK8UyzJWI382pwW04jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "empathic": "^2.0.0", + "module-replacements": "^2.8.0", + "semver": "^7.6.3" + } + }, + "node_modules/eslint-plugin-es-x": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", + "integrity": "sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.11.0", + "eslint-compat-utils": "^0.5.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-json-schema-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-json-schema-validator/-/eslint-plugin-json-schema-validator-5.1.0.tgz", + "integrity": "sha512-ZmVyxRIjm58oqe2kTuy90PpmZPrrKvOjRPXKzq8WCgRgAkidCgm5X8domL2KSfadZ3QFAmifMgGTcVNhZ5ez2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.3.0", + "ajv": "^8.0.0", + "debug": "^4.3.1", + "eslint-compat-utils": "^0.5.0", + "json-schema-migrate": "^2.0.0", + "jsonc-eslint-parser": "^2.0.0", + "minimatch": "^8.0.0", + "synckit": "^0.9.0", + "toml-eslint-parser": "^0.9.0", + "tunnel-agent": "^0.6.0", + "yaml-eslint-parser": "^1.0.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/eslint-plugin-json-schema-validator/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-plugin-json-schema-validator/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-json-schema-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-json-schema-validator/node_modules/minimatch": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.7.tgz", + "integrity": "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-n": { + "version": "17.10.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.10.3.tgz", + "integrity": "sha512-ySZBfKe49nQZWR1yFaA0v/GsH6Fgp8ah6XV0WDz6CN8WO0ek4McMzb7A2xnf4DCYV43frjCygvb9f/wx7UUxRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "enhanced-resolve": "^5.17.0", + "eslint-plugin-es-x": "^7.5.0", + "get-tsconfig": "^4.7.0", + "globals": "^15.8.0", + "ignore": "^5.2.4", + "minimatch": "^9.0.5", + "semver": "^7.5.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": ">=8.23.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eslint-plugin-n/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-plugin-obsidianmd": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-obsidianmd/-/eslint-plugin-obsidianmd-0.1.9.tgz", + "integrity": "sha512-/gyo5vky3Y7re4BtT/8MQbHU5Wes4o6VRqas3YmXE7aTCnMsdV0kfzV1GDXJN9Hrsc9UQPoeKUMiapKL0aGE4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/eslint-plugin-sdl": "^1.1.0", + "@types/eslint": "8.56.2", + "@types/node": "20.12.12", + "eslint": ">=9.0.0 <10.0.0", + "eslint-plugin-depend": "1.3.1", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-json-schema-validator": "5.1.0", + "eslint-plugin-security": "2.1.1", + "globals": "14.0.0", + "obsidian": "1.8.7", + "typescript": "5.4.5" + }, + "bin": { + "eslint-plugin-obsidian": "dist/lib/index.js" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@eslint/js": "^9.30.1", + "@eslint/json": "0.14.0", + "eslint": ">=9.0.0 <10.0.0", + "obsidian": "1.8.7", + "typescript-eslint": "^8.35.1" + } + }, + "node_modules/eslint-plugin-obsidianmd/node_modules/@types/node": { + "version": "20.12.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", + "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/eslint-plugin-obsidianmd/node_modules/obsidian": { + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.8.7.tgz", + "integrity": "sha512-h4bWwNFAGRXlMlMAzdEiIM2ppTGlrh7uGOJS6w4gClrsjc+ei/3YAtU2VdFUlCiPuTHpY4aBpFJJW75S1Tl/JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/codemirror": "5.60.8", + "moment": "2.29.4" + }, + "peerDependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/eslint-plugin-obsidianmd/node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", + "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-security": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-2.1.1.tgz", + "integrity": "sha512-7cspIGj7WTfR3EhaILzAPcfCo5R9FbeWvbgsPYWivSurTBKW88VQxtP3c4aWMG9Hz/GfJlJVdXEJ3c8LqS+u2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-regex": "^2.1.1" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "9.39.4", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz", + "integrity": "sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-migrate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/json-schema-migrate/-/json-schema-migrate-2.0.0.tgz", + "integrity": "sha512-r38SVTtojDRp4eD6WsCqiE0eNDt4v1WalBXb9cyZYw9ai5cGtBwzRNWjHzJl38w6TxFkXAIA7h+fyX3tnrAFhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + } + }, + "node_modules/json-schema-migrate/node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/json-schema-migrate/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonc-eslint-parser": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.2.tgz", + "integrity": "sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.5.0", + "eslint-visitor-keys": "^3.0.0", + "espree": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/jsonc-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/module-replacements": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/module-replacements/-/module-replacements-2.11.0.tgz", + "integrity": "sha512-j5sNQm3VCpQQ7nTqGeOZtoJtV3uKERgCBm9QRhmGRiXiqkf7iRFOkfxdJRZWLkqYY8PNf4cDQF/WfXUYLENrRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obsidian": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/obsidian/-/obsidian-1.12.3.tgz", + "integrity": "sha512-HxWqe763dOqzXjnNiHmAJTRERN8KILBSqxDSEqbeSr7W8R8Jxezzbca+nz1LiiqXnMpM8lV2jzAezw3CZ4xNUw==", + "license": "MIT", + "dependencies": { + "@types/codemirror": "5.60.8", + "moment": "2.29.4" + }, + "peerDependencies": { + "@codemirror/state": "6.5.0", + "@codemirror/view": "6.38.6" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", + "dev": true, + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz", + "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-mod": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.3.tgz", + "integrity": "sha512-i/n8VsZydrugj3Iuzll8+x/00GH2vnYsk1eomD8QiRrSAeW6ItbCQDtfXCeJHd0iwiNagqjQkvpvREEPtW3IoQ==", + "license": "MIT", + "peer": true + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.3.tgz", + "integrity": "sha512-JJoOEKTfL1urb1mDoEblhD9NhEbWmq9jHEMEnxoC4ujUaZ4itA8vKgwkFAyNClgxplLi9tsUKX+EduK0p/l7sg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/synckit/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toml-eslint-parser": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/toml-eslint-parser/-/toml-eslint-parser-0.9.3.tgz", + "integrity": "sha512-moYoCvkNUAPCxSW9jmHmRElhm4tVJpHL8ItC/+uYD0EpPSFXbck7yREz9tNdJVTSpHVod8+HoipcpbQ0oE6gsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/toml-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.35.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.35.1.tgz", + "integrity": "sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.35.1", + "@typescript-eslint/parser": "8.35.1", + "@typescript-eslint/utils": "8.35.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT", + "peer": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-eslint-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.3.2.tgz", + "integrity": "sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + } + }, + "node_modules/yaml-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..4fbc4e1 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "obsidian-caissa", + "version": "1.0.0", + "description": "Caissa — chess study in your vault. Embed positions, study openings and endgames, browse World Championship games, annotate PGNs, and explore Lichess opening statistics.", + "main": "main.js", + "type": "module", + "scripts": { + "dev": "node esbuild.config.mjs", + "build": "tsc -noEmit -skipLibCheck && node esbuild.config.mjs production", + "deploy": "mkdir -p \"$HOME/Documents/Personal/.obsidian/plugins/$npm_package_name\" && cp main.js manifest.json styles.css \"$HOME/Documents/Personal/.obsidian/plugins/$npm_package_name/\"", + "build:deploy": "npm run build && npm run deploy", + "version": "node version-bump.mjs && git add manifest.json versions.json", + "lint": "eslint ." + }, + "keywords": [], + "license": "GPL-3.0-or-later", + "devDependencies": { + "@eslint/js": "9.30.1", + "@types/node": "^16.11.6", + "esbuild": "0.25.5", + "eslint-plugin-obsidianmd": "0.1.9", + "globals": "14.0.0", + "jiti": "2.6.1", + "tslib": "2.4.0", + "typescript": "^5.8.3", + "typescript-eslint": "8.35.1" + }, + "dependencies": { + "chess.js": "^1.4.0", + "obsidian": "latest" + } +} diff --git a/scripts/fetch-piece-sets.mjs b/scripts/fetch-piece-sets.mjs new file mode 100644 index 0000000..6263b25 --- /dev/null +++ b/scripts/fetch-piece-sets.mjs @@ -0,0 +1,161 @@ +#!/usr/bin/env node +/** + * Fetch chess piece SVG sets from the Lichess (lila) public asset repo and + * emit a single TypeScript data file at src/chess/piece-data.generated.ts. + * + * Run from the plugin root with: + * + * node scripts/fetch-piece-sets.mjs + * + * This is a build-time / dev-time tool. The plugin doesn't depend on it at + * runtime — it just regenerates the bundled piece-data file when we add or + * update sets. The generated file IS committed (so end users don't need to + * fetch anything when installing the plugin). + * + * Adding a new set: append to SETS below, re-run, commit the regenerated + * file. Then add the set's identifier to PieceSet in src/types.ts. + */ + +import { writeFile, mkdir } from "node:fs/promises"; +import { dirname } from "node:path"; +import { fileURLToPath } from "node:url"; + +const ROOT = dirname(dirname(fileURLToPath(import.meta.url))); +const OUT_FILE = `${ROOT}/src/chess/piece-data.generated.ts`; + +const BASE = "https://raw.githubusercontent.com/lichess-org/lila/master/public/piece"; + +/** + * Sets to fetch. Order = display order in settings dropdown. Each entry + * documents the artist and license (paraphrased from Lichess's repo) for + * inclusion in the README CREDITS section. + */ +const SETS = [ + { id: "merida", license: "GPLv2+ (Armando Hernandez Marroquin)" }, + { id: "staunty", license: "CC BY-NC-SA 4.0 (sadsnake1)" }, + { id: "caliente", license: "CC BY-NC-SA 4.0 (avi)" }, + { id: "pixel", license: "AGPLv3+ (therealqtpi)" }, +]; + +const PIECES = ["wK", "wQ", "wR", "wB", "wN", "wP", "bK", "bQ", "bR", "bB", "bN", "bP"]; + +async function fetchText(url) { + const res = await fetch(url); + if (!res.ok) throw new Error(`HTTP ${res.status} fetching ${url}`); + return res.text(); +} + +/** + * Pull viewBox metadata + inner SVG content out of a complete document. + * Handles two cases Lichess uses: + * - explicit `viewBox="0 0 W H"` (or with floats / negative origin) + * - implicit viewBox via `width="N"` `height="M"` with no viewBox + */ +function parseSvg(svgText, label) { + const viewBoxMatch = /viewBox\s*=\s*"([^"]+)"/.exec(svgText); + let vbX = 0, vbY = 0, vbW = 0, vbH = 0; + if (viewBoxMatch && viewBoxMatch[1]) { + const parts = viewBoxMatch[1].trim().split(/\s+/).map(Number); + if (parts.length !== 4 || parts.some(Number.isNaN)) { + throw new Error(`Bad viewBox "${viewBoxMatch[1]}" in ${label}`); + } + [vbX, vbY, vbW, vbH] = parts; + } else { + const wMatch = /\bwidth\s*=\s*"([^"]+)"/.exec(svgText); + const hMatch = /\bheight\s*=\s*"([^"]+)"/.exec(svgText); + if (!wMatch || !hMatch) { + throw new Error(`No viewBox or width/height in ${label}`); + } + vbW = parseFloat(wMatch[1]); + vbH = parseFloat(hMatch[1]); + if (Number.isNaN(vbW) || Number.isNaN(vbH)) { + throw new Error(`Could not parse width/height in ${label}`); + } + } + + const openTagMatch = /]*>/.exec(svgText); + if (!openTagMatch) throw new Error(`No open tag in ${label}`); + const closeIdx = svgText.lastIndexOf(""); + if (closeIdx < 0) throw new Error(`No close tag in ${label}`); + const inner = svgText + .slice(openTagMatch.index + openTagMatch[0].length, closeIdx) + .trim() + .replace(/<\?xml[^>]*\?>/g, "") + .replace(/]*>/g, "") + .replace(//g, "") + .replace(/\s+/g, " ") + .trim(); + + return { vbX, vbY, vbW, vbH, inner }; +} + +function escForTemplate(s) { + return s.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$\{/g, "\\${"); +} + +async function main() { + console.log(`Fetching ${SETS.length} sets x ${PIECES.length} pieces...`); + const sets = {}; + for (const set of SETS) { + sets[set.id] = { license: set.license, vbX: 0, vbY: 0, vbW: 0, vbH: 0, pieces: {} }; + for (const piece of PIECES) { + const url = `${BASE}/${set.id}/${piece}.svg`; + const text = await fetchText(url); + const parsed = parseSvg(text, `${set.id}/${piece}.svg`); + if (sets[set.id].vbW === 0) { + sets[set.id].vbX = parsed.vbX; + sets[set.id].vbY = parsed.vbY; + sets[set.id].vbW = parsed.vbW; + sets[set.id].vbH = parsed.vbH; + } + const lcKey = piece[0] + piece[1].toLowerCase(); + sets[set.id].pieces[lcKey] = parsed.inner; + process.stdout.write(` ${set.id}/${piece}\r`); + } + console.log( + ` ${set.id}: viewBox ${sets[set.id].vbX} ${sets[set.id].vbY} ` + + `${sets[set.id].vbW} ${sets[set.id].vbH} ` + + `(${PIECES.length} pieces)` + ); + } + + let out = + "// AUTO-GENERATED by scripts/fetch-piece-sets.mjs — do not edit by hand.\n" + + "// Source: https://github.com/lichess-org/lila/tree/master/public/piece\n" + + "// Re-run with: node scripts/fetch-piece-sets.mjs\n\n" + + 'import type { PieceKey } from "./pieces-types";\n\n' + + "export interface PieceSetData {\n" + + "\tlicense: string;\n" + + "\tvbX: number;\n" + + "\tvbY: number;\n" + + "\tvbW: number;\n" + + "\tvbH: number;\n" + + "\tpieces: Record;\n" + + "}\n\n" + + "export const PIECE_SETS: Record = {\n"; + for (const id of Object.keys(sets)) { + const data = sets[id]; + out += `\t${id}: {\n`; + out += `\t\tlicense: ${JSON.stringify(data.license)},\n`; + out += `\t\tvbX: ${data.vbX},\n`; + out += `\t\tvbY: ${data.vbY},\n`; + out += `\t\tvbW: ${data.vbW},\n`; + out += `\t\tvbH: ${data.vbH},\n`; + out += `\t\tpieces: {\n`; + for (const key of Object.keys(data.pieces)) { + out += `\t\t\t${key}: \`${escForTemplate(data.pieces[key])}\`,\n`; + } + out += `\t\t},\n`; + out += `\t},\n`; + } + out += "};\n"; + + await mkdir(dirname(OUT_FILE), { recursive: true }); + await writeFile(OUT_FILE, out, "utf8"); + console.log(`Wrote ${OUT_FILE} (${out.length} bytes)`); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/scripts/fetch-wcc-games.mjs b/scripts/fetch-wcc-games.mjs new file mode 100644 index 0000000..091accf --- /dev/null +++ b/scripts/fetch-wcc-games.mjs @@ -0,0 +1,212 @@ +/* eslint-disable */ +/** + * One-shot build script. Reads scripts/wcc-curated.json, downloads each + * match's PGN from PGN Mentor, extracts the curated game rounds, and emits + * src/chess/wcc-data.generated.ts with everything inlined. + * + * Run from the plugin root: `node scripts/fetch-wcc-games.mjs` + * + * The generated file is committed to the repo so end users never make any + * network calls. Only re-run this script when curating new matches/games. + */ + +import { Chess } from "chess.js"; +import fs from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const ROOT = path.resolve(__dirname, ".."); +const CURATED_PATH = path.join(ROOT, "scripts", "wcc-curated.json"); +const OUT_PATH = path.join(ROOT, "src", "chess", "wcc-data.generated.ts"); + +const USER_AGENT = "obsidian-caissa-build-script"; + +async function fetchText(url) { + const res = await fetch(url, { + headers: { "User-Agent": USER_AGENT, Accept: "application/x-chess-pgn,*/*" }, + }); + if (!res.ok) { + throw new Error(`HTTP ${res.status} ${res.statusText} for ${url}`); + } + return await res.text(); +} + +/** + * Split a multi-game PGN file on blank lines between games. Returns an array + * of single-game PGN strings (each still containing its [Tag "value"] block + * and the move text). + */ +function splitPgnIntoGames(text) { + const lines = text.split(/\r?\n/); + const games = []; + let current = []; + let inMoves = false; + for (const line of lines) { + const trimmed = line.trim(); + if (trimmed.startsWith("[")) { + if (inMoves && current.length > 0) { + games.push(current.join("\n").trim()); + current = []; + } + inMoves = false; + current.push(line); + } else if (trimmed === "") { + if (current.length > 0) current.push(line); + } else { + inMoves = true; + current.push(line); + } + } + if (current.length > 0) games.push(current.join("\n").trim()); + return games.filter((g) => g.length > 0); +} + +/** Pull a single tag value out of a single-game PGN string. */ +function getHeader(pgn, tag) { + const re = new RegExp(`\\[\\s*${tag}\\s+"((?:[^"\\\\]|\\\\.)*)"\\s*\\]`, "i"); + const m = pgn.match(re); + if (!m) return undefined; + return m[1].replace(/\\"/g, '"').replace(/\\\\/g, "\\"); +} + +/** Verify the PGN is parseable and at least one move was played. */ +function validatePgn(pgn) { + const game = new Chess(); + game.loadPgn(pgn, { strict: false }); + const history = game.history(); + return history.length; +} + +function jsString(s) { + return JSON.stringify(s); +} + +async function main() { + const curated = JSON.parse(fs.readFileSync(CURATED_PATH, "utf8")); + const matches = curated.matches; + + const collected = []; + let totalSizeBytes = 0; + + for (const match of matches) { + console.log(`\n=== ${match.matchLabel} ===`); + let pgnText; + try { + pgnText = await fetchText(match.pgnUrl); + } catch (e) { + console.warn(` FETCH FAILED: ${e.message}`); + continue; + } + const games = splitPgnIntoGames(pgnText); + console.log(` Downloaded ${games.length} games (${pgnText.length} bytes)`); + + for (const targetRound of match.games) { + const found = games.find((g) => { + const round = getHeader(g, "Round"); + if (!round) return false; + const num = parseInt(round, 10); + return !isNaN(num) && num === targetRound; + }); + if (!found) { + console.warn(` MISS round ${targetRound}`); + continue; + } + let plyCount; + try { + plyCount = validatePgn(found); + } catch (e) { + console.warn(` INVALID round ${targetRound}: ${e.message}`); + continue; + } + if (plyCount === 0) { + console.warn(` EMPTY round ${targetRound} (no moves recorded — forfeit?)`); + continue; + } + const slug = `${match.matchSlug}-${String(targetRound).padStart(2, "0")}`; + const white = getHeader(found, "White") ?? "?"; + const black = getHeader(found, "Black") ?? "?"; + const result = getHeader(found, "Result") ?? "*"; + console.log(` OK round ${targetRound}: ${white} vs ${black} (${result}, ${plyCount} ply)`); + totalSizeBytes += found.length; + collected.push({ + id: slug, + matchSlug: match.matchSlug, + matchLabel: match.matchLabel, + matchYear: match.matchYear, + gameNumber: targetRound, + white, + black, + result, + pgn: found, + }); + } + } + + console.log(`\nCollected ${collected.length} games (${totalSizeBytes} bytes of raw PGN).`); + + const matchesOrdered = matches + .map((m) => ({ + matchSlug: m.matchSlug, + matchLabel: m.matchLabel, + matchYear: m.matchYear, + })) + .filter((m) => collected.some((g) => g.matchSlug === m.matchSlug)); + + const out = []; + out.push("// AUTO-GENERATED by scripts/fetch-wcc-games.mjs — do not edit by hand."); + out.push("// Re-run that script to refresh."); + out.push(""); + out.push("export interface WccGameData {"); + out.push("\tid: string;"); + out.push("\tmatchSlug: string;"); + out.push("\tmatchLabel: string;"); + out.push("\tmatchYear: number;"); + out.push("\tgameNumber: number;"); + out.push("\twhite: string;"); + out.push("\tblack: string;"); + out.push("\tresult: string;"); + out.push("\tpgn: string;"); + out.push("}"); + out.push(""); + out.push("export interface WccMatchData {"); + out.push("\tmatchSlug: string;"); + out.push("\tmatchLabel: string;"); + out.push("\tmatchYear: number;"); + out.push("}"); + out.push(""); + out.push("export const WCC_MATCHES: WccMatchData[] = ["); + for (const m of matchesOrdered) { + out.push("\t{"); + out.push(`\t\tmatchSlug: ${jsString(m.matchSlug)},`); + out.push(`\t\tmatchLabel: ${jsString(m.matchLabel)},`); + out.push(`\t\tmatchYear: ${m.matchYear},`); + out.push("\t},"); + } + out.push("];"); + out.push(""); + out.push("export const WCC_GAMES: WccGameData[] = ["); + for (const g of collected) { + out.push("\t{"); + out.push(`\t\tid: ${jsString(g.id)},`); + out.push(`\t\tmatchSlug: ${jsString(g.matchSlug)},`); + out.push(`\t\tmatchLabel: ${jsString(g.matchLabel)},`); + out.push(`\t\tmatchYear: ${g.matchYear},`); + out.push(`\t\tgameNumber: ${g.gameNumber},`); + out.push(`\t\twhite: ${jsString(g.white)},`); + out.push(`\t\tblack: ${jsString(g.black)},`); + out.push(`\t\tresult: ${jsString(g.result)},`); + out.push(`\t\tpgn: ${jsString(g.pgn)},`); + out.push("\t},"); + } + out.push("];"); + out.push(""); + + fs.writeFileSync(OUT_PATH, out.join("\n"), "utf8"); + console.log(`\nWrote ${OUT_PATH}`); +} + +main().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/scripts/wcc-curated.json b/scripts/wcc-curated.json new file mode 100644 index 0000000..110b401 --- /dev/null +++ b/scripts/wcc-curated.json @@ -0,0 +1,145 @@ +{ + "_comment": "Curated WCC games to bundle. Each match downloads the full PGN from PGN Mentor and the script extracts the listed game rounds. matchSlug is used in lookup IDs (e.g. 1972-fischer-spassky-06).", + "matches": [ + { + "matchSlug": "1886-steinitz-zukertort", + "matchLabel": "1886 — Steinitz vs Zukertort", + "matchYear": 1886, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1886.pgn", + "games": [1, 9, 20] + }, + { + "matchSlug": "1894-lasker-steinitz", + "matchLabel": "1894 — Lasker vs Steinitz", + "matchYear": 1894, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1894.pgn", + "games": [5, 7, 17, 19] + }, + { + "matchSlug": "1921-capablanca-lasker", + "matchLabel": "1921 — Capablanca vs Lasker", + "matchYear": 1921, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1921.pgn", + "games": [5, 10, 11, 14] + }, + { + "matchSlug": "1927-alekhine-capablanca", + "matchLabel": "1927 — Alekhine vs Capablanca", + "matchYear": 1927, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1927.pgn", + "games": [1, 11, 21, 32, 34] + }, + { + "matchSlug": "1948-botvinnik-tournament", + "matchLabel": "1948 — Botvinnik 1st (tournament)", + "matchYear": 1948, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1948.pgn", + "games": [9, 14, 21] + }, + { + "matchSlug": "1951-botvinnik-bronstein", + "matchLabel": "1951 — Botvinnik vs Bronstein", + "matchYear": 1951, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1951.pgn", + "games": [12, 17, 22] + }, + { + "matchSlug": "1960-tal-botvinnik", + "matchLabel": "1960 — Tal vs Botvinnik", + "matchYear": 1960, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1960.pgn", + "games": [1, 6, 17] + }, + { + "matchSlug": "1972-fischer-spassky", + "matchLabel": "1972 — Fischer vs Spassky", + "matchYear": 1972, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1972.pgn", + "games": [1, 3, 6, 8, 13, 21] + }, + { + "matchSlug": "1985-kasparov-karpov", + "matchLabel": "1985 — Kasparov vs Karpov", + "matchYear": 1985, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1985.pgn", + "games": [4, 11, 16, 19, 24] + }, + { + "matchSlug": "1990-kasparov-karpov", + "matchLabel": "1990 — Kasparov vs Karpov", + "matchYear": 1990, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp1990.pgn", + "games": [2, 18, 20] + }, + { + "matchSlug": "2000-kramnik-kasparov", + "matchLabel": "2000 — Kramnik vs Kasparov", + "matchYear": 2000, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2000.pgn", + "games": [1, 2, 10, 13] + }, + { + "matchSlug": "2008-anand-kramnik", + "matchLabel": "2008 — Anand vs Kramnik", + "matchYear": 2008, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2008.pgn", + "games": [3, 5, 6] + }, + { + "matchSlug": "2010-anand-topalov", + "matchLabel": "2010 — Anand vs Topalov", + "matchYear": 2010, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2010.pgn", + "games": [4, 12] + }, + { + "matchSlug": "2013-carlsen-anand", + "matchLabel": "2013 — Carlsen vs Anand", + "matchYear": 2013, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2013.pgn", + "games": [5, 6, 9] + }, + { + "matchSlug": "2014-carlsen-anand", + "matchLabel": "2014 — Carlsen vs Anand", + "matchYear": 2014, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2014.pgn", + "games": [2, 6, 11] + }, + { + "matchSlug": "2016-carlsen-karjakin", + "matchLabel": "2016 — Carlsen vs Karjakin", + "matchYear": 2016, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2016.pgn", + "games": [8, 10] + }, + { + "matchSlug": "2018-carlsen-caruana", + "matchLabel": "2018 — Carlsen vs Caruana", + "matchYear": 2018, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2018.pgn", + "games": [1, 6, 12] + }, + { + "matchSlug": "2021-carlsen-nepomniachtchi", + "matchLabel": "2021 — Carlsen vs Nepomniachtchi", + "matchYear": 2021, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2021.pgn", + "games": [6, 8, 9] + }, + { + "matchSlug": "2023-ding-nepomniachtchi", + "matchLabel": "2023 — Ding vs Nepomniachtchi", + "matchYear": 2023, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2023.pgn", + "games": [4, 6, 12] + }, + { + "matchSlug": "2024-gukesh-ding", + "matchLabel": "2024 — Gukesh vs Ding", + "matchYear": 2024, + "pgnUrl": "https://pgnmentor.com/events/WorldChamp2024.pgn", + "games": [3, 11, 14] + } + ] +} diff --git a/src/chess/endgames.ts b/src/chess/endgames.ts new file mode 100644 index 0000000..b61c639 --- /dev/null +++ b/src/chess/endgames.ts @@ -0,0 +1,120 @@ +/** + * Curated set of canonical endgame techniques. Each entry has: + * - a starting FEN (the textbook position) + * - an optional move sequence demonstrating the standard technique + * - a short description of the idea + * + * Move strings are SAN, fed straight into chess.js — keep them legal from the + * given FEN. For positions where the technique is too branchy to teach via a + * single line we leave `moves` undefined and let the user step around the + * position freely (the opening explorer panel still works). + */ + +export interface Endgame { + /** Stable slug used in `endgame:` block keys. */ + id: string; + name: string; + fen: string; + moves?: string; + description: string; +} + +export const ENDGAMES: Endgame[] = [ + { + id: "kqk-mate", + name: "King and queen mate", + fen: "8/8/8/3k4/8/8/4Q3/4K3 w - - 0 1", + moves: "Qd3+ Kc5 Kd2 Kc6 Kc3 Kb6 Qb5+ Ka7 Kc4 Ka8 Kc5 Ka7 Kc6 Ka8 Qb7#", + description: + "The queen mate technique: keep the queen one knight's-move from the lone king to shrink its box without stalemating, while your king walks up to support. The line shown drives Black's king from d5 to a8 over seven moves and finishes with Qb7# — the queen defended by your king on c6, every escape square covered. Black's defense in this demo is one plausible line; other king moves transpose into the same pattern.", + }, + { + id: "krk-mate", + name: "King and rook mate", + fen: "4k3/8/8/8/4K3/8/8/R7 w - - 0 1", + moves: "Ra7 Kf8 Kf5 Kg8 Kg6 Kh8 Ra8#", + description: + "With king and rook the technique is the rook cutting off ranks while your king escorts the enemy toward an edge. The line shown plays 1.Ra7 to lock Black on the back rank, then walks the white king up via f5/g6 with shoulder-to-shoulder opposition, and finishes with Ra8# on the corner. Other defensive king moves lead to the same pattern.", + }, + { + id: "krrk-ladder-mate", + name: "Two rooks ladder mate", + fen: "4k3/8/8/8/8/8/R7/1R5K w - - 0 1", + moves: "Rb7 Kd8 Ra8#", + description: + "The 'ladder': one rook cuts off the 7th rank, the other delivers mate on the 8th. 1.Rb7 forces the black king onto the back rank (Kd8 or Kf8 — both lose), and 2.Ra8# completes the staircase. Two rooks corner the king without any king help needed, which is why this mate is so quick.", + }, + { + id: "kbnk-mate", + name: "Bishop and knight mate", + fen: "8/2k5/8/1K6/5N2/8/5B2/8 w - - 0 84", + moves: + "Bc5 Kb7 Nd5 Kb8 Kc6 Ka8 Nc7+ Kb8 Bd4 Kc8 Ba7 Kd8 Nd5 Ke8 " + + "Kd6 Kf7 Ne7 Kf6 Be3 Kf7 Bd4 Ke8 Ke6 Kd8 Bb6+ Ke8 Nf5 Kf8 " + + "Bc7 Ke8 Ng7+ Kf8 Kf6 Kg8 Bd6 Kh7 Nf5 Kg8 Kg6 Kh8 Bc5 Kg8 " + + "Nh6+ Kh8 Bd4#", + description: + "The hardest of the basic mates — KBNK can only be forced in the corner *matching your bishop's color*, and even then takes ~30 moves with the W-manoeuvre. The line shown is from **Karttunen vs Rasik, European Club Cup 2003**, picked up at move 84 with 23 moves left to mate. Watch the dark-squared bishop, knight and king herd Black across the back rank from the wrong corner (a8) all the way to the dark corner (h8), with knight checks at c7, e7, g7, f5 doing the W-pattern. The original game ended with Black resigning after 104.Bc5; this line plays out the forced finish 104…Kg8 105.Nh6+ Kh8 106.Bd4# that Rasik would have faced.", + }, + { + id: "kbbk-mate", + name: "Two bishops mate", + fen: "3B4/8/8/8/Bk6/8/8/7K w - - 0 1", + moves: + "Bc6 Kc5 Bb7 Kd6 Kg2 Kd7 Bb6 Kd6 Kf3 Ke5 Be4 Kd6 Kf4 Ke6 " + + "Bc5 Kd7 Ke5 Kc7 Ke6 Kc8 Kd6 Kd8 Kc6 Ke8 Bd5 Kd8 Bf7 Kc8 " + + "Be7 Kb8 Kb6 Kc8 Be6+ Kb8 Bd6+ Ka8 Bd5#", + description: + "The two bishops form a wall that herds the lone king to any corner — either color works (unlike B+N). The line shown is the **longest forced mate in KBBK (mate in 19)** from Joe Leslie-Hurd's 2005 tablebase analysis, with both sides playing perfectly. Watch the bishops centralize on b7+e4, the white king march from h1 → f4 → e6 → c6, and the final mating net snap shut on a8 with 19.Bd5#. Black's defense is optimal — every other reply mates faster.", + }, + { + id: "lucena", + name: "Lucena position (winning the rook endgame)", + fen: "1K1k4/1P6/8/8/8/8/r7/2R5 w - - 0 1", + description: + "With your king in front of a 7th-rank pawn (not a- or h-file) and your rook free, build a 'bridge' on the 4th rank (Rc4!), then march your king out behind it. The defending rook eventually runs out of useful checks and the pawn promotes.", + }, + { + id: "philidor", + name: "Philidor position (drawing the rook endgame)", + fen: "3k4/8/8/4P3/4K3/7r/8/3R4 b - - 0 1", + description: + "As the defender, plant your rook on the third rank to keep the enemy king off the 6th. The instant the pawn pushes to e6, swing the rook behind the pawn (…Rh1) and check from the long side. Draw.", + }, + { + id: "vancura", + name: "Vancura position (rook + a-pawn draw)", + fen: "8/K7/P4r2/8/8/8/8/4k3 b - - 0 1", + description: + "Defender's rook attacks the a-pawn from the side along the 6th rank, the defender's king cuts the long side. The white king can never both shield the pawn and escape the side checks — drawn.", + }, + { + id: "kpk-opposition", + name: "King and pawn vs king (opposition)", + fen: "8/8/4K3/4P3/8/8/8/4k3 w - - 0 1", + description: + "With your king *in front of* the pawn on the 6th rank, you win by gaining the opposition (kings face off with one square between them, opponent to move). If the defender takes the opposition with the king on the key squares first, the position is drawn.", + }, + { + id: "wrong-bishop", + name: "Wrong-colored bishop draw", + fen: "7k/8/6KP/8/3B4/8/8/8 w - - 0 1", + description: + "With a rook-pawn whose promotion square does *not* match your bishop's color, the defender hides in the corner. Any approach by the strong side ends in stalemate (push the pawn here and the black king has no legal move). Memorise the corner colors before trading into this ending.", + }, +]; + +/** Find an endgame by id or display name (case- and punctuation-tolerant). */ +export function findEndgame(idOrName: string | undefined): Endgame | null { + if (!idOrName) return null; + const target = normalize(idOrName); + return ( + ENDGAMES.find( + (e) => normalize(e.id) === target || normalize(e.name) === target + ) ?? null + ); +} + +function normalize(s: string): string { + return s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim(); +} diff --git a/src/chess/engine-worker.ts b/src/chess/engine-worker.ts new file mode 100644 index 0000000..488961f --- /dev/null +++ b/src/chess/engine-worker.ts @@ -0,0 +1,309 @@ +import engineSource from "../vendor/stockfish-engine.sftext"; + +/** + * Bundled-Stockfish (v10 asm.js, ~1.5MB inlined) wrapper. + * + * We don't ship Stockfish as a separate file because Obsidian plugin + * installs only sync `main.js`/`manifest.json`/`styles.css` to the vault + * and reading vendored vault files for Worker bootstrap is fragile across + * desktop and mobile. Inlining as a string and spawning the worker from a + * Blob URL keeps everything self-contained. + * + * This is pure asm.js (no WASM), so: + * - No CSP issues with WebAssembly.compile / wasm-eval + * - Works in Electron and on mobile + * - Strength is ~3000+ ELO at depth 18 (HCE, no NNUE) — plenty for + * analysis-style use cases (eval bar, top lines, blunder detection) + * + * Module-level singleton: only one engine is alive at a time. That's fine + * because Stockfish is single-threaded and serializing analyses through + * one engine matches the user's mental model (one position analyzed at a + * time per board, latest request wins). + */ + +export interface EngineLine { + /** 1-indexed PV rank (1 = top line). */ + multipv: number; + /** Centipawn evaluation from White's perspective. */ + cp: number | null; + /** Mate distance in plies (positive = White mates, negative = Black). */ + mate: number | null; + /** Search depth reached for this line. */ + depth: number; + /** Principal variation as UCI moves (e.g. ["e2e4", "e7e5"]). */ + pv: string[]; +} + +export interface AnalysisResult { + /** Top-N lines, sorted by multipv ascending. */ + lines: EngineLine[]; + /** Best move chosen by the engine (UCI like "e2e4"). */ + bestMove: string | null; +} + +export interface AnalyzeOptions { + /** Max search depth (default 16). Higher = stronger but slower. */ + depth?: number; + /** Number of PV lines to return (default 3). */ + multiPV?: number; + /** + * AbortSignal — when fired we issue a UCI `stop` and the promise + * resolves with whatever lines have been seen so far. + */ + signal?: AbortSignal; +} + +export interface PlayMoveOptions { + /** + * Stockfish "Skill Level" UCI option, 0–20. Lower picks weaker moves + * intentionally so the engine plays at human-ish strength. Default 8. + * 0 ≈ ~1100 Elo (random-ish, beginner) + * 8 ≈ ~1700 Elo (decent club player) + * 15 ≈ ~2200 Elo (expert) + * 20 = full strength (~3000+ in this build) + */ + skillLevel?: number; + /** Search depth ceiling. Defaults scale with skillLevel. */ + depth?: number; + signal?: AbortSignal; +} + +class StockfishEngine { + private worker: Worker | null = null; + private ready: Promise | null = null; + private currentResolve: ((res: AnalysisResult) => void) | null = null; + private currentLines = new Map(); + private currentBestMove: string | null = null; + private currentSignal: AbortSignal | null = null; + private currentSignalHandler: (() => void) | null = null; + private busy = false; + private queue: Array<() => void> = []; + + /** Lazy-spawn the worker on first analyze; safe to call repeatedly. */ + private ensureReady(): Promise { + if (this.ready) return this.ready; + this.ready = new Promise((resolve, reject) => { + try { + const blob = new Blob([engineSource], { + type: "application/javascript", + }); + const url = URL.createObjectURL(blob); + this.worker = new Worker(url); + this.worker.onmessage = (ev: MessageEvent) => { + this.handleLine(ev.data); + }; + this.worker.onerror = (ev) => { + console.error("Stockfish worker error", ev); + }; + + let acked = false; + const ackHandler = (ev: MessageEvent) => { + if (acked) return; + if (typeof ev.data === "string" && ev.data.startsWith("uciok")) { + acked = true; + this.worker?.removeEventListener("message", ackHandler); + resolve(); + } + }; + this.worker.addEventListener("message", ackHandler); + + this.send("uci"); + } catch (e) { + reject(e instanceof Error ? e : new Error(String(e))); + } + }); + return this.ready; + } + + async analyze( + fen: string, + opts: AnalyzeOptions = {} + ): Promise { + const depth = Math.max(1, Math.min(opts.depth ?? 16, 24)); + const multiPV = Math.max(1, Math.min(opts.multiPV ?? 3, 5)); + return this.runSearch(fen, opts.signal, [ + `setoption name Skill Level value 20`, + `setoption name MultiPV value ${multiPV}`, + `position fen ${fen}`, + `go depth ${depth}`, + ]); + } + + /** + * Pick a move at "human" strength using Stockfish's Skill Level option. + * Returns the bestmove in UCI form (e.g. "e2e4" or "e7e8q") or null if + * the position has no legal moves. + */ + async findBestMove( + fen: string, + opts: PlayMoveOptions = {} + ): Promise { + const skill = Math.max(0, Math.min(opts.skillLevel ?? 8, 20)); + // Lower skill levels also get shallower searches so the engine + // makes its weak moves quickly. Caller can override `depth` to + // pin a specific search budget. + const defaultDepth = 4 + Math.floor(skill / 2); + const depth = Math.max(1, Math.min(opts.depth ?? defaultDepth, 20)); + const res = await this.runSearch(fen, opts.signal, [ + `setoption name Skill Level value ${skill}`, + `setoption name MultiPV value 1`, + `position fen ${fen}`, + `go depth ${depth}`, + ]); + return res.bestMove; + } + + /** + * Shared "send these UCI commands and wait for `bestmove`" path used + * by both analyze and findBestMove. The caller passes the full command + * sequence (including the position + go), and we collect every `info` + * line plus the final `bestmove`. + */ + private async runSearch( + _fen: string, + signal: AbortSignal | undefined, + commands: string[] + ): Promise { + await this.ensureReady(); + // Serialize requests through a tiny in-memory queue. Stockfish only + // runs one search at a time, so queueing is the cleanest contract. + if (this.busy) { + await new Promise((resolve) => this.queue.push(resolve)); + } + this.busy = true; + + this.currentLines.clear(); + this.currentBestMove = null; + + return new Promise((resolve) => { + this.currentResolve = resolve; + this.currentSignal = signal ?? null; + if (signal) { + if (signal.aborted) { + this.send("stop"); + } else { + this.currentSignalHandler = () => this.send("stop"); + signal.addEventListener( + "abort", + this.currentSignalHandler, + { once: true } + ); + } + } + + // `ucinewgame` between searches keeps Stockfish from carrying + // pondering / killer-move state across positions, which would + // otherwise leak strength even when Skill Level is low. + this.send("ucinewgame"); + for (const cmd of commands) this.send(cmd); + }); + } + + private send(cmd: string): void { + this.worker?.postMessage(cmd); + } + + private handleLine(line: string): void { + if (!line) return; + if (line.startsWith("info ")) { + const parsed = parseInfoLine(line); + if (parsed) { + this.currentLines.set(parsed.multipv, parsed); + } + return; + } + if (line.startsWith("bestmove ")) { + const parts = line.split(/\s+/); + this.currentBestMove = + parts[1] && parts[1] !== "(none)" ? parts[1] : null; + this.finishCurrent(); + return; + } + } + + private finishCurrent(): void { + const resolve = this.currentResolve; + const lines = Array.from(this.currentLines.values()).sort( + (a, b) => a.multipv - b.multipv + ); + const bestMove = this.currentBestMove; + + if (this.currentSignal && this.currentSignalHandler) { + this.currentSignal.removeEventListener( + "abort", + this.currentSignalHandler + ); + } + + this.currentResolve = null; + this.currentLines.clear(); + this.currentBestMove = null; + this.currentSignal = null; + this.currentSignalHandler = null; + this.busy = false; + + const next = this.queue.shift(); + if (next) next(); + + resolve?.({ lines, bestMove }); + } + + /** Tear down the worker. Called when the plugin unloads. */ + terminate(): void { + this.worker?.terminate(); + this.worker = null; + this.ready = null; + } +} + +let SINGLETON: StockfishEngine | null = null; + +export function getEngine(): StockfishEngine { + if (!SINGLETON) SINGLETON = new StockfishEngine(); + return SINGLETON; +} + +export function terminateEngine(): void { + SINGLETON?.terminate(); + SINGLETON = null; +} + +/** + * Parse one UCI `info` line into a structured EngineLine. Returns null for + * lines without enough fields to be useful (e.g. "info string ..." log + * spam, or info lines without a PV yet). + */ +function parseInfoLine(line: string): EngineLine | null { + const tokens = line.split(/\s+/); + let depth = 0; + let multipv = 1; + let cp: number | null = null; + let mate: number | null = null; + let pv: string[] = []; + + for (let i = 0; i < tokens.length; i++) { + const tok = tokens[i]; + switch (tok) { + case "depth": + depth = parseInt(tokens[++i] ?? "0", 10) || 0; + break; + case "multipv": + multipv = parseInt(tokens[++i] ?? "1", 10) || 1; + break; + case "score": { + const kind = tokens[++i]; + const value = parseInt(tokens[++i] ?? "0", 10) || 0; + if (kind === "cp") cp = value; + else if (kind === "mate") mate = value; + break; + } + case "pv": + pv = tokens.slice(i + 1); + i = tokens.length; + break; + } + } + + if (pv.length === 0) return null; + return { multipv, cp, mate, depth, pv }; +} diff --git a/src/chess/engine.ts b/src/chess/engine.ts new file mode 100644 index 0000000..ce71062 --- /dev/null +++ b/src/chess/engine.ts @@ -0,0 +1,340 @@ +import { Chess } from "chess.js"; +import { findOpening } from "./openings"; +import { findEndgame } from "./endgames"; +import { findWccGame } from "./wcc-games"; +import type { PgnHeaders, PieceType } from "../types"; + +export interface PositionStep { + /** FEN string for this position. */ + fen: string; + /** SAN move that produced this position (undefined for the starting position). */ + san?: string; + /** Origin square (e.g. "e2"). */ + from?: string; + /** Destination square (e.g. "e4"). */ + to?: string; + /** Color that just moved (undefined for the starting position). */ + color?: "w" | "b"; + /** 1-based full-move number this move belongs to (1 for white's first move). */ + moveNumber?: number; + /** Type of piece captured by this move, if any. Drives the captured-pieces tray. */ + captured?: PieceType; + /** Type the moving pawn was promoted to, if any. Used for material balance. */ + promotion?: PieceType; +} + +export interface BuildResult { + steps: PositionStep[]; + resolvedTitle?: string; + resolvedDescription?: string; + headers?: PgnHeaders; + error?: string; +} + +/** + * Build a sequence of board positions from a code-block config. + * + * Resolution order (first match wins): + * 1. full PGN string (`pgn`) — extracts headers, starting position, and moves + * 2. WCC game slug (`wccgame`) — resolves to a bundled PGN + * 3. endgame slug/name (`endgame`) — bundled FEN + optional move sequence + * 4. starting FEN + explicit `moves` string + * 5. opening + variation lookup + * 6. starting FEN alone (just the position) + * + * Move strings can be plain SAN (`e4 c5 Nf3`) or PGN-ish with numbers + * (`1. e4 c5 2. Nf3`) — both are tolerated. + */ +export function buildPositions(args: { + opening?: string; + variation?: string; + endgame?: string; + wccgame?: string; + moves?: string; + pgn?: string; + fen?: string; +}): BuildResult { + if (args.pgn?.trim()) { + return buildFromPgn(args.pgn.trim()); + } + + if (args.wccgame?.trim()) { + const game = findWccGame(args.wccgame); + if (!game) { + return { + steps: [], + error: `Unknown WCC game: "${args.wccgame}"`, + }; + } + return buildFromPgn(game.pgn); + } + + if (args.endgame?.trim()) { + const endgame = findEndgame(args.endgame); + if (!endgame) { + return { + steps: [], + error: `Unknown endgame: "${args.endgame}"`, + }; + } + const inner = buildPositions({ + fen: endgame.fen, + moves: endgame.moves, + }); + return { + ...inner, + resolvedTitle: endgame.name, + resolvedDescription: endgame.description, + }; + } + + const startFen = args.fen?.trim(); + let title: string | undefined; + let description: string | undefined; + let movesSource = args.moves?.trim(); + + if (!movesSource && (args.opening || args.variation)) { + const lookup = findOpening(args.opening, args.variation); + if (!lookup) { + return { + steps: [], + error: args.opening + ? `Unknown opening: "${args.opening}"` + : "Variation given without an opening", + }; + } + movesSource = lookup.moves; + title = lookup.variation + ? `${lookup.opening.name} — ${lookup.variation.name}` + : lookup.opening.name; + description = + lookup.variation?.description ?? lookup.opening.description; + } else if (args.opening) { + const lookup = findOpening(args.opening, args.variation); + if (lookup) { + title = lookup.variation + ? `${lookup.opening.name} — ${lookup.variation.name}` + : lookup.opening.name; + description = + lookup.variation?.description ?? lookup.opening.description; + } + } + + let chess: Chess; + try { + chess = startFen ? new Chess(startFen) : new Chess(); + } catch (e) { + return { + steps: [], + error: `Invalid FEN: ${(e as Error).message}`, + resolvedTitle: title, + resolvedDescription: description, + }; + } + + const steps: PositionStep[] = [{ fen: chess.fen() }]; + + if (!movesSource) { + return { + steps, + resolvedTitle: title, + resolvedDescription: description, + }; + } + + const tokens = tokenizeMoves(movesSource); + for (const san of tokens) { + try { + const move = chess.move(san); + steps.push({ + fen: chess.fen(), + san: move.san, + from: move.from, + to: move.to, + color: move.color, + moveNumber: Math.floor((steps.length - 1) / 2) + 1, + captured: move.captured as PieceType | undefined, + promotion: move.promotion as PieceType | undefined, + }); + } catch (e) { + return { + steps, + error: `Illegal move "${san}": ${(e as Error).message}`, + resolvedTitle: title, + resolvedDescription: description, + }; + } + } + + return { + steps, + resolvedTitle: title, + resolvedDescription: description, + }; +} + +/** + * Parse a full PGN (headers + moves + optional annotations) using chess.js, + * then walk the resulting move history to produce per-step FENs. Variations, + * comments (`{...}` and `;...`), and NAGs (`$1`) are dropped — we follow the + * mainline only. + */ +function buildFromPgn(pgn: string): BuildResult { + const headers = extractHeaders(pgn); + const cleaned = stripAnnotations(pgn); + + const game = new Chess(); + try { + game.loadPgn(cleaned, { strict: false }); + } catch (e) { + return { + steps: [], + headers, + resolvedTitle: titleFromHeaders(headers), + resolvedDescription: descriptionFromHeaders(headers), + error: `Could not parse PGN: ${(e as Error).message}`, + }; + } + + const history = game.history({ verbose: true }); + const replay = headers.fen ? new Chess(headers.fen) : new Chess(); + const steps: PositionStep[] = [{ fen: replay.fen() }]; + + for (const move of history) { + try { + const played = replay.move(move.san); + steps.push({ + fen: replay.fen(), + san: played.san, + from: played.from, + to: played.to, + color: played.color, + moveNumber: Math.floor((steps.length - 1) / 2) + 1, + captured: played.captured as PieceType | undefined, + promotion: played.promotion as PieceType | undefined, + }); + } catch (e) { + return { + steps, + headers, + resolvedTitle: titleFromHeaders(headers), + resolvedDescription: descriptionFromHeaders(headers), + error: `Illegal move replaying PGN: ${(e as Error).message}`, + }; + } + } + + return { + steps, + headers, + resolvedTitle: titleFromHeaders(headers), + resolvedDescription: descriptionFromHeaders(headers), + }; +} + +/** Pull `[Tag "value"]` pairs out of a PGN into our typed headers shape. */ +function extractHeaders(pgn: string): PgnHeaders & { fen?: string } { + const headers: PgnHeaders & { fen?: string } = {}; + const tagRe = /\[\s*([A-Za-z][A-Za-z0-9]*)\s+"((?:[^"\\]|\\.)*)"\s*\]/g; + let match: RegExpExecArray | null; + while ((match = tagRe.exec(pgn)) !== null) { + const key = (match[1] ?? "").toLowerCase(); + const value = (match[2] ?? "").replace(/\\"/g, '"').replace(/\\\\/g, "\\"); + switch (key) { + case "event": + headers.event = value; + break; + case "site": + headers.site = value; + break; + case "date": + case "utcdate": + if (!headers.date) headers.date = value; + break; + case "round": + headers.round = value; + break; + case "white": + headers.white = value; + break; + case "black": + headers.black = value; + break; + case "result": + headers.result = value; + break; + case "whiteelo": + headers.whiteElo = value; + break; + case "blackelo": + headers.blackElo = value; + break; + case "whitetitle": + headers.whiteTitle = value; + break; + case "blacktitle": + headers.blackTitle = value; + break; + case "eco": + headers.eco = value; + break; + case "opening": + headers.openingName = value; + break; + case "timecontrol": + headers.timeControl = value; + break; + case "termination": + headers.termination = value; + break; + case "fen": + headers.fen = value; + break; + } + } + return headers; +} + +/** + * Drop PGN comments, variations, NAGs, and clock/eval annotations so the + * tokenizer (and chess.js's loadPgn) doesn't trip over them. + */ +function stripAnnotations(pgn: string): string { + return pgn + .replace(/\{[^}]*\}/g, " ") + .replace(/;[^\n]*/g, " ") + .replace(/\([^)]*\)/g, " ") + .replace(/\$\d+/g, " "); +} + +function titleFromHeaders(h: PgnHeaders): string | undefined { + if (h.white && h.black) { + return `${h.white} vs ${h.black}`; + } + return h.event; +} + +function descriptionFromHeaders(h: PgnHeaders): string | undefined { + const parts: string[] = []; + if (h.event) parts.push(h.event); + if (h.date) parts.push(h.date); + if (h.openingName) parts.push(h.openingName); + return parts.length ? parts.join(" · ") : undefined; +} + +/** + * Strip move numbers, comments, NAGs, and result markers from a move string, + * leaving only SAN tokens. + */ +function tokenizeMoves(input: string): string[] { + const cleaned = input + .replace(/\{[^}]*\}/g, " ") + .replace(/\([^)]*\)/g, " ") + .replace(/\$\d+/g, " ") + .replace(/\b\d+\.(\.\.)?/g, " ") + .replace(/(1-0|0-1|1\/2-1\/2|\*)\s*$/g, " "); + return cleaned + .split(/\s+/) + .map((t) => t.trim()) + .filter((t) => t.length > 0); +} diff --git a/src/chess/explorer.ts b/src/chess/explorer.ts new file mode 100644 index 0000000..c99d24e --- /dev/null +++ b/src/chess/explorer.ts @@ -0,0 +1,168 @@ +import { requestUrl } from "obsidian"; +import type { ExplorerSource } from "../types"; +import { USER_AGENT } from "../utils/user-agent"; + +export interface ExplorerMove { + san: string; + uci: string; + white: number; + draws: number; + black: number; + total: number; +} + +export interface ExplorerResult { + totalGames: number; + moves: ExplorerMove[]; + source: ExplorerSource; + fen: string; +} + +const ENDPOINTS: Record = { + masters: "https://explorer.lichess.ovh/masters", + lichess: "https://explorer.lichess.ovh/lichess", +}; + +/** + * Per-source LRU-ish cache of FEN -> result. Capped at 200 entries each so + * a long study session never grows unbounded. Cache lives for the lifetime + * of the plugin instance. + */ +const CACHE: Record> = { + masters: new Map(), + lichess: new Map(), +}; +const MAX_CACHE = 200; + +/** Tracks in-flight fetches so concurrent requesters dedupe to one network call. */ +const PENDING: Record>> = { + masters: new Map(), + lichess: new Map(), +}; + +/** + * Look up win/draw/loss statistics for a position from the Lichess Opening + * Explorer. Cached in memory by FEN per source. Network errors throw — let + * the caller decide how to surface them. + * + * As of March 2026 the Lichess Explorer API requires authentication. Pass + * a personal access token (created at https://lichess.org/account/oauth/token) + * as `apiToken`. + */ +export async function fetchExplorer( + fen: string, + source: ExplorerSource, + apiToken: string +): Promise { + if (!apiToken) { + throw new Error( + "Add your Lichess API token in Caissa settings to use the explorer." + ); + } + + const cached = CACHE[source].get(fen); + if (cached) return cached; + + const inflight = PENDING[source].get(fen); + if (inflight) return inflight; + + const promise = doFetch(fen, source, apiToken).finally(() => { + PENDING[source].delete(fen); + }); + PENDING[source].set(fen, promise); + + const result = await promise; + rememberInCache(source, fen, result); + return result; +} + +async function doFetch( + fen: string, + source: ExplorerSource, + apiToken: string +): Promise { + const url = `${ENDPOINTS[source]}?fen=${encodeURIComponent(fen)}&moves=20&topGames=0&recentGames=0`; + const response = await requestUrl({ + url, + method: "GET", + throw: false, + headers: { + Accept: "application/json", + Authorization: `Bearer ${apiToken}`, + "User-Agent": USER_AGENT, + }, + }); + + if (response.status === 401 || response.status === 403) { + throw new Error( + "Lichess rejected your API token. Create a fresh one at lichess.org/account/oauth/token." + ); + } + + if (response.status === 429) { + throw new Error( + "Lichess rate limit reached. Try again in a moment (limit is 25 requests per minute)." + ); + } + + if (response.status < 200 || response.status >= 300) { + throw new Error( + `Lichess Explorer returned HTTP ${response.status}` + ); + } + + const data = response.json as { + white?: number; + draws?: number; + black?: number; + moves?: Array<{ + uci?: string; + san?: string; + white?: number; + draws?: number; + black?: number; + }>; + }; + + const totalGames = + (data.white ?? 0) + (data.draws ?? 0) + (data.black ?? 0); + + const moves: ExplorerMove[] = (data.moves ?? []) + .map((m) => { + const white = m.white ?? 0; + const draws = m.draws ?? 0; + const black = m.black ?? 0; + return { + san: m.san ?? "", + uci: m.uci ?? "", + white, + draws, + black, + total: white + draws + black, + }; + }) + .filter((m) => m.san && m.total > 0); + + return { totalGames, moves, source, fen }; +} + +function rememberInCache( + source: ExplorerSource, + fen: string, + result: ExplorerResult +): void { + const map = CACHE[source]; + if (map.size >= MAX_CACHE) { + const iterator = map.keys().next(); + if (!iterator.done) { + map.delete(iterator.value); + } + } + map.set(fen, result); +} + +/** Clear all cached explorer results (used by tests or manual refresh). */ +export function clearExplorerCache(): void { + CACHE.masters.clear(); + CACHE.lichess.clear(); +} diff --git a/src/chess/lichess-games.ts b/src/chess/lichess-games.ts new file mode 100644 index 0000000..4617766 --- /dev/null +++ b/src/chess/lichess-games.ts @@ -0,0 +1,105 @@ +import { requestUrl } from "obsidian"; +import { USER_AGENT } from "../utils/user-agent"; + +const ENDPOINT = "https://lichess.org/game/export"; +const ID_RE = /^[a-zA-Z0-9]{8,12}$/; + +const CACHE = new Map(); +const PENDING = new Map>(); +const MAX_CACHE = 50; + +/** + * Fetch a single game's PGN from Lichess. Anonymous endpoint — no token + * required (unlike the Opening Explorer). Cached in memory by game ID for + * the lifetime of the plugin instance. + * + * Accepts either a bare game ID (`abcdefgh`) or a Lichess URL pointing at + * the game (`https://lichess.org/abcdefgh`, with or without `/black`/`/white` + * orientation suffix). + */ +export async function fetchLichessGame(idOrUrl: string): Promise { + const id = parseLichessId(idOrUrl); + if (!id) { + throw new Error( + `Could not extract a Lichess game ID from "${idOrUrl}".` + ); + } + + const cached = CACHE.get(id); + if (cached) return cached; + + const inflight = PENDING.get(id); + if (inflight) return inflight; + + const promise = doFetch(id).finally(() => { + PENDING.delete(id); + }); + PENDING.set(id, promise); + + const pgn = await promise; + rememberInCache(id, pgn); + return pgn; +} + +async function doFetch(id: string): Promise { + const url = `${ENDPOINT}/${id}?clocks=false&evals=false&literate=false`; + const response = await requestUrl({ + url, + method: "GET", + throw: false, + headers: { + Accept: "application/x-chess-pgn", + "User-Agent": USER_AGENT, + }, + }); + + if (response.status === 404) { + throw new Error(`Lichess game "${id}" not found.`); + } + if (response.status === 429) { + throw new Error( + "Lichess rate limit reached. Try again in a moment." + ); + } + if (response.status < 200 || response.status >= 300) { + throw new Error( + `Lichess returned HTTP ${response.status} fetching game ${id}.` + ); + } + + const pgn = response.text.trim(); + if (!pgn) { + throw new Error(`Empty PGN returned for game ${id}.`); + } + return pgn; +} + +/** + * Pull a Lichess game ID out of a URL or accept a bare ID. Lichess game IDs + * are 8 alphanumeric chars; study chapter URLs use 12-char IDs which we also + * accept (the export endpoint handles them). + */ +export function parseLichessId(input: string): string | null { + const trimmed = input.trim(); + if (!trimmed) return null; + if (ID_RE.test(trimmed)) return trimmed; + + const urlMatch = + /^https?:\/\/(?:www\.)?lichess\.org\/(?:embed\/)?([a-zA-Z0-9]{8,12})/.exec( + trimmed + ); + if (urlMatch && urlMatch[1]) return urlMatch[1].slice(0, 8); + return null; +} + +function rememberInCache(id: string, pgn: string): void { + if (CACHE.size >= MAX_CACHE) { + const iterator = CACHE.keys().next(); + if (!iterator.done) CACHE.delete(iterator.value); + } + CACHE.set(id, pgn); +} + +export function clearLichessGameCache(): void { + CACHE.clear(); +} diff --git a/src/chess/openings.ts b/src/chess/openings.ts new file mode 100644 index 0000000..5de9123 --- /dev/null +++ b/src/chess/openings.ts @@ -0,0 +1,421 @@ +import type { Opening, OpeningVariation } from "../types"; + +/** + * Curated opening repertoire. Move strings are SAN (Standard Algebraic + * Notation) without move numbers — they're fed straight into chess.js. + * + * Variation move strings begin from the standard start position too (i.e. + * each variation is a complete move sequence, not a continuation), which + * keeps lookup logic trivial. + */ +export const OPENINGS: Opening[] = [ + { + name: "Italian Game", + aliases: ["Italian"], + moves: "e4 e5 Nf3 Nc6 Bc4", + description: + "Classical king-pawn opening; targets f7 and aims for quick development.", + variations: [ + { + name: "Giuoco Piano", + moves: "e4 e5 Nf3 Nc6 Bc4 Bc5", + }, + { + name: "Giuoco Pianissimo", + moves: "e4 e5 Nf3 Nc6 Bc4 Bc5 d3 Nf6 Nc3 d6", + }, + { + name: "Evans Gambit", + moves: "e4 e5 Nf3 Nc6 Bc4 Bc5 b4", + }, + { + name: "Two Knights Defense", + moves: "e4 e5 Nf3 Nc6 Bc4 Nf6", + }, + { + name: "Fried Liver Attack", + moves: "e4 e5 Nf3 Nc6 Bc4 Nf6 Ng5 d5 exd5 Nxd5 Nxf7", + }, + ], + }, + { + name: "Ruy Lopez", + aliases: ["Spanish", "Spanish Game"], + moves: "e4 e5 Nf3 Nc6 Bb5", + description: + "One of the oldest and most respected openings; pressures the c6 knight.", + variations: [ + { + name: "Morphy Defense", + moves: "e4 e5 Nf3 Nc6 Bb5 a6", + }, + { + name: "Berlin Defense", + moves: "e4 e5 Nf3 Nc6 Bb5 Nf6", + }, + { + name: "Closed Variation", + moves: + "e4 e5 Nf3 Nc6 Bb5 a6 Ba4 Nf6 O-O Be7 Re1 b5 Bb3 d6 c3 O-O", + }, + { + name: "Open Variation", + moves: "e4 e5 Nf3 Nc6 Bb5 a6 Ba4 Nf6 O-O Nxe4", + }, + { + name: "Exchange Variation", + moves: "e4 e5 Nf3 Nc6 Bb5 a6 Bxc6 dxc6", + }, + { + name: "Marshall Attack", + moves: + "e4 e5 Nf3 Nc6 Bb5 a6 Ba4 Nf6 O-O Be7 Re1 b5 Bb3 O-O c3 d5", + }, + ], + }, + { + name: "Sicilian Defense", + aliases: ["Sicilian"], + moves: "e4 c5", + description: + "Black's most popular reply to 1.e4 — fights for the center asymmetrically.", + variations: [ + { + name: "Open Sicilian", + moves: "e4 c5 Nf3 d6 d4 cxd4 Nxd4 Nf6 Nc3", + }, + { + name: "Najdorf Variation", + moves: "e4 c5 Nf3 d6 d4 cxd4 Nxd4 Nf6 Nc3 a6", + }, + { + name: "Dragon Variation", + moves: "e4 c5 Nf3 d6 d4 cxd4 Nxd4 Nf6 Nc3 g6", + }, + { + name: "Yugoslav Attack", + moves: + "e4 c5 Nf3 d6 d4 cxd4 Nxd4 Nf6 Nc3 g6 Be3 Bg7 f3 O-O Qd2 Nc6", + }, + { + name: "Accelerated Dragon", + moves: "e4 c5 Nf3 Nc6 d4 cxd4 Nxd4 g6", + }, + { + name: "Scheveningen Variation", + moves: "e4 c5 Nf3 d6 d4 cxd4 Nxd4 Nf6 Nc3 e6", + }, + { + name: "Sveshnikov Variation", + moves: "e4 c5 Nf3 Nc6 d4 cxd4 Nxd4 Nf6 Nc3 e5", + }, + { + name: "Taimanov Variation", + moves: "e4 c5 Nf3 e6 d4 cxd4 Nxd4 Nc6", + }, + { + name: "Kan Variation", + moves: "e4 c5 Nf3 e6 d4 cxd4 Nxd4 a6", + }, + { + name: "Classical Variation", + moves: "e4 c5 Nf3 d6 d4 cxd4 Nxd4 Nf6 Nc3 Nc6", + }, + { + name: "Closed Sicilian", + moves: "e4 c5 Nc3", + }, + { + name: "Alapin Variation", + moves: "e4 c5 c3", + }, + { + name: "Smith-Morra Gambit", + moves: "e4 c5 d4 cxd4 c3", + }, + ], + }, + { + name: "French Defense", + aliases: ["French"], + moves: "e4 e6", + description: + "Solid and strategic; Black aims to undermine the e4 pawn with d5.", + variations: [ + { + name: "Advance Variation", + moves: "e4 e6 d4 d5 e5", + }, + { + name: "Exchange Variation", + moves: "e4 e6 d4 d5 exd5 exd5", + }, + { + name: "Tarrasch Variation", + moves: "e4 e6 d4 d5 Nd2", + }, + { + name: "Classical Variation", + moves: "e4 e6 d4 d5 Nc3 Nf6", + }, + { + name: "Winawer Variation", + moves: "e4 e6 d4 d5 Nc3 Bb4", + }, + ], + }, + { + name: "Caro-Kann Defense", + aliases: ["Caro-Kann", "Caro Kann"], + moves: "e4 c6", + description: + "Reliable defense for Black; prepares d5 with a solid pawn structure.", + variations: [ + { + name: "Advance Variation", + moves: "e4 c6 d4 d5 e5", + }, + { + name: "Exchange Variation", + moves: "e4 c6 d4 d5 exd5 cxd5", + }, + { + name: "Classical Variation", + moves: "e4 c6 d4 d5 Nc3 dxe4 Nxe4 Bf5", + }, + { + name: "Panov-Botvinnik Attack", + moves: "e4 c6 d4 d5 exd5 cxd5 c4", + }, + ], + }, + { + name: "Scandinavian Defense", + aliases: ["Scandinavian", "Center-Counter"], + moves: "e4 d5", + description: "Black challenges the center immediately with 1...d5.", + variations: [ + { + name: "Main Line", + moves: "e4 d5 exd5 Qxd5 Nc3 Qa5", + }, + { + name: "Modern Variation", + moves: "e4 d5 exd5 Nf6", + }, + ], + }, + { + name: "Pirc Defense", + aliases: ["Pirc"], + moves: "e4 d6 d4 Nf6 Nc3 g6", + description: "Hypermodern setup; Black fianchettos and counter-attacks.", + variations: [ + { + name: "Austrian Attack", + moves: "e4 d6 d4 Nf6 Nc3 g6 f4", + }, + { + name: "Classical System", + moves: "e4 d6 d4 Nf6 Nc3 g6 Nf3 Bg7 Be2", + }, + ], + }, + { + name: "Alekhine's Defense", + aliases: ["Alekhine"], + moves: "e4 Nf6", + description: + "Provocative — invites White to push pawns and over-extend.", + variations: [ + { + name: "Modern Variation", + moves: "e4 Nf6 e5 Nd5 d4 d6 Nf3", + }, + { + name: "Four Pawns Attack", + moves: "e4 Nf6 e5 Nd5 d4 d6 c4 Nb6 f4", + }, + ], + }, + { + name: "Queen's Gambit", + aliases: ["QG"], + moves: "d4 d5 c4", + description: + "Central pawn lever — White offers the c-pawn for control of the center.", + variations: [ + { + name: "Queen's Gambit Accepted", + moves: "d4 d5 c4 dxc4", + }, + { + name: "Queen's Gambit Declined", + moves: "d4 d5 c4 e6", + }, + { + name: "Slav Defense", + moves: "d4 d5 c4 c6", + }, + { + name: "Semi-Slav Defense", + moves: "d4 d5 c4 c6 Nc3 Nf6 Nf3 e6", + }, + { + name: "Tarrasch Defense", + moves: "d4 d5 c4 e6 Nc3 c5", + }, + { + name: "Albin Counter-Gambit", + moves: "d4 d5 c4 e5", + }, + ], + }, + { + name: "King's Indian Defense", + aliases: ["KID", "Kings Indian"], + moves: "d4 Nf6 c4 g6", + description: + "Hypermodern defense; Black allows a big center then strikes back.", + variations: [ + { + name: "Classical Variation", + moves: "d4 Nf6 c4 g6 Nc3 Bg7 e4 d6 Nf3 O-O Be2 e5", + }, + { + name: "Sämisch Variation", + moves: "d4 Nf6 c4 g6 Nc3 Bg7 e4 d6 f3", + }, + { + name: "Fianchetto Variation", + moves: "d4 Nf6 c4 g6 Nc3 Bg7 g3", + }, + { + name: "Four Pawns Attack", + moves: "d4 Nf6 c4 g6 Nc3 Bg7 e4 d6 f4", + }, + ], + }, + { + name: "Nimzo-Indian Defense", + aliases: ["Nimzo-Indian", "Nimzo Indian"], + moves: "d4 Nf6 c4 e6 Nc3 Bb4", + description: "Pin the c3 knight; one of the soundest defenses to 1.d4.", + variations: [ + { + name: "Rubinstein System", + moves: "d4 Nf6 c4 e6 Nc3 Bb4 e3", + }, + { + name: "Classical Variation", + moves: "d4 Nf6 c4 e6 Nc3 Bb4 Qc2", + }, + { + name: "Sämisch Variation", + moves: "d4 Nf6 c4 e6 Nc3 Bb4 a3 Bxc3+ bxc3", + }, + ], + }, + { + name: "Grünfeld Defense", + aliases: ["Grunfeld"], + moves: "d4 Nf6 c4 g6 Nc3 d5", + description: + "Hypermodern — Black challenges the center directly with d5.", + variations: [ + { + name: "Exchange Variation", + moves: "d4 Nf6 c4 g6 Nc3 d5 cxd5 Nxd5 e4 Nxc3 bxc3", + }, + { + name: "Russian System", + moves: "d4 Nf6 c4 g6 Nc3 d5 Nf3 Bg7 Qb3", + }, + ], + }, + { + name: "English Opening", + aliases: ["English"], + moves: "c4", + description: "Flank opening; controls d5 from the side.", + variations: [ + { + name: "Symmetrical Variation", + moves: "c4 c5", + }, + { + name: "Reversed Sicilian", + moves: "c4 e5", + }, + { + name: "Anglo-Indian Defense", + moves: "c4 Nf6", + }, + ], + }, + { + name: "Reti Opening", + aliases: ["Réti"], + moves: "Nf3", + description: "Flexible flank opening; can transpose to many systems.", + variations: [ + { + name: "King's Indian Attack", + moves: "Nf3 d5 g3", + }, + ], + }, + { + name: "London System", + aliases: ["London"], + moves: "d4 d5 Nf3 Nf6 Bf4", + description: + "Solid system for White; develop pieces to standard squares.", + }, +]; + +/** Normalize a name for fuzzy lookup. */ +function normalize(name: string): string { + return name.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim(); +} + +export interface OpeningLookupResult { + opening: Opening; + variation?: OpeningVariation; + moves: string; +} + +/** + * Find an opening (and optional variation) by name. Case-insensitive, + * tolerant of punctuation, accepts aliases. Returns the move sequence + * to play out from the start position. + */ +export function findOpening( + openingName: string | undefined, + variationName?: string +): OpeningLookupResult | null { + if (!openingName) { + return null; + } + const target = normalize(openingName); + const opening = OPENINGS.find((o) => { + if (normalize(o.name) === target) return true; + if (o.aliases?.some((a) => normalize(a) === target)) return true; + return false; + }); + if (!opening) { + return null; + } + if (!variationName) { + return { opening, moves: opening.moves }; + } + const vTarget = normalize(variationName); + const variation = opening.variations?.find( + (v) => normalize(v.name) === vTarget + ); + if (!variation) { + return { opening, moves: opening.moves }; + } + return { opening, variation, moves: variation.moves }; +} + diff --git a/src/chess/piece-data.generated.ts b/src/chess/piece-data.generated.ts new file mode 100644 index 0000000..3b86cee --- /dev/null +++ b/src/chess/piece-data.generated.ts @@ -0,0 +1,101 @@ +// AUTO-GENERATED by scripts/fetch-piece-sets.mjs — do not edit by hand. +// Source: https://github.com/lichess-org/lila/tree/master/public/piece +// Re-run with: node scripts/fetch-piece-sets.mjs + +import type { PieceKey } from "./pieces-types"; + +export interface PieceSetData { + license: string; + vbX: number; + vbY: number; + vbW: number; + vbH: number; + pieces: Record; +} + +export const PIECE_SETS: Record = { + merida: { + license: "GPLv2+ (Armando Hernandez Marroquin)", + vbX: 0, + vbY: 0, + vbW: 50, + vbH: 50, + pieces: { + wk: ``, + wq: ``, + wr: ``, + wb: ``, + wn: ``, + wp: ``, + bk: ``, + bq: ``, + br: ``, + bb: ``, + bn: ``, + bp: ``, + }, + }, + staunty: { + license: "CC BY-NC-SA 4.0 (sadsnake1)", + vbX: 0, + vbY: 0, + vbW: 50, + vbH: 50, + pieces: { + wk: ``, + wq: ``, + wr: ``, + wb: ``, + wn: ``, + wp: ``, + bk: ``, + bq: ``, + br: ``, + bb: ``, + bn: ``, + bp: ``, + }, + }, + caliente: { + license: "CC BY-NC-SA 4.0 (avi)", + vbX: 0, + vbY: 0, + vbW: 16.933, + vbH: 16.933, + pieces: { + wk: ``, + wq: ``, + wr: ``, + wb: ``, + wn: ``, + wp: ``, + bk: ``, + bq: ``, + br: ``, + bb: ``, + bn: ``, + bp: ``, + }, + }, + pixel: { + license: "AGPLv3+ (therealqtpi)", + vbX: 0, + vbY: -0.5, + vbW: 16, + vbH: 16, + pieces: { + wk: ``, + wq: ``, + wr: ``, + wb: ``, + wn: ``, + wp: ``, + bk: ``, + bq: ``, + br: ``, + bb: ``, + bn: ``, + bp: ``, + }, + }, +}; diff --git a/src/chess/pieces-types.ts b/src/chess/pieces-types.ts new file mode 100644 index 0000000..bcf0f6b --- /dev/null +++ b/src/chess/pieces-types.ts @@ -0,0 +1,4 @@ +import type { PieceColor, PieceType } from "../types"; + +/** Composite key like "wk", "bp", etc. — used as the lookup key into all SVG sets. */ +export type PieceKey = `${PieceColor}${PieceType}`; diff --git a/src/chess/pieces.ts b/src/chess/pieces.ts new file mode 100644 index 0000000..ec01fdd --- /dev/null +++ b/src/chess/pieces.ts @@ -0,0 +1,255 @@ +import type { PieceSet } from "../types"; +import type { PieceKey } from "./pieces-types"; +import { PIECE_SETS, type PieceSetData } from "./piece-data.generated"; + +export type { PieceKey } from "./pieces-types"; + +const UNICODE: Record = { + wk: "\u2654", + wq: "\u2655", + wr: "\u2656", + wb: "\u2657", + wn: "\u2658", + wp: "\u2659", + bk: "\u265A", + bq: "\u265B", + br: "\u265C", + bb: "\u265D", + bn: "\u265E", + bp: "\u265F", +}; + +/** + * Inline SVGs based on the cburnett set (public domain, by Colin M.L. Burnett). + * Each glyph is drawn inside a 45x45 viewBox; the board renderer scales them + * to fit a square. Stroke/fill colors are baked in so theming the squares + * doesn't bleed onto the pieces. + */ +const CBURNETT: Record = { + wk: ``, + wq: ``, + wr: ``, + wb: ``, + wn: ``, + wp: ``, + bk: ``, + bq: ``, + br: ``, + bb: ``, + bn: ``, + bp: ``, +}; + +const CBURNETT_DATA: PieceSetData = { + license: "Public domain (Colin M.L. Burnett)", + vbX: 0, + vbY: 0, + vbW: 45, + vbH: 45, + pieces: CBURNETT, +}; + +/** + * The "letter" set isn't fetched from Lichess; it's just SVG glyphs + * with the standard chess piece initials (K Q R B N P), filled white or + * black. Total bundle cost: ~600 bytes for the entire set. + */ +const LETTER_GLYPHS: Record = { + wk: "K", + wq: "Q", + wr: "R", + wb: "B", + wn: "N", + wp: "P", + bk: "K", + bq: "Q", + br: "R", + bb: "B", + bn: "N", + bp: "P", +}; + +function buildLetterPiece(color: "w" | "b", letter: string): string { + const fill = color === "w" ? "#fafafa" : "#1a1a1a"; + const stroke = color === "w" ? "#1a1a1a" : "#fafafa"; + return ( + `${letter}` + ); +} + +const LETTER_DATA: PieceSetData = { + license: "Synthesized in this plugin", + vbX: 0, + vbY: 0, + vbW: 45, + vbH: 45, + pieces: { + wk: buildLetterPiece("w", LETTER_GLYPHS.wk), + wq: buildLetterPiece("w", LETTER_GLYPHS.wq), + wr: buildLetterPiece("w", LETTER_GLYPHS.wr), + wb: buildLetterPiece("w", LETTER_GLYPHS.wb), + wn: buildLetterPiece("w", LETTER_GLYPHS.wn), + wp: buildLetterPiece("w", LETTER_GLYPHS.wp), + bk: buildLetterPiece("b", LETTER_GLYPHS.bk), + bq: buildLetterPiece("b", LETTER_GLYPHS.bq), + br: buildLetterPiece("b", LETTER_GLYPHS.br), + bb: buildLetterPiece("b", LETTER_GLYPHS.bb), + bn: buildLetterPiece("b", LETTER_GLYPHS.bn), + bp: buildLetterPiece("b", LETTER_GLYPHS.bp), + }, +}; + +/** Lookup table from PieceSet identifier to its raw inline-SVG data. */ +const ALL_SET_DATA: Partial> = { + cburnett: CBURNETT_DATA, + letter: LETTER_DATA, + ...PIECE_SETS, +}; + +const SVG_NS = "http://www.w3.org/2000/svg"; + +/** + * Cache of parsed (set, piece) -> nodes. We parse each SVG fragment once + * via DOMParser and then clone the result on every render to avoid both the + * security risk of innerHTML and the parsing cost on every frame. + */ +const PARSED: Partial> = {}; + +function cacheKey(set: PieceSet, key: PieceKey): string { + return `${set}:${key}`; +} + +function parseSvgFragment(set: PieceSet, key: PieceKey): SVGGElement | null { + const data = ALL_SET_DATA[set]; + if (!data) return null; + const inner = data.pieces[key]; + if (!inner) return null; + + const cached = PARSED[cacheKey(set, key)]; + if (cached) return cached; + + // Wrap in a real doc because DOMParser refuses bare fragments. + const wrapper = `${inner}`; + const doc = new DOMParser().parseFromString(wrapper, "image/svg+xml"); + const svgEl = doc.documentElement; + + const g = document.createElementNS(SVG_NS, "g"); + while (svgEl.firstChild) { + g.appendChild(svgEl.firstChild); + } + PARSED[cacheKey(set, key)] = g; + return g; +} + +/** + * Returns a fresh `` element containing the requested piece's SVG artwork + * already wrapped in a transform that places it at (0, 0) inside a 45x45 + * viewport (the renderer then translates to the destination square). + * + * Different sets use different source viewBoxes — we apply a uniform scale + * (and translate, for sets with a non-zero origin like pixel's `0 -0.5`) so + * everything renders into the same 45x45 cell without distortion. + * + * Returns `null` for non-SVG sets (e.g. unicode), in which case the renderer + * falls back to the Unicode-glyph code path. + */ +export function createPieceNode(set: PieceSet, key: PieceKey): SVGGElement | null { + const data = ALL_SET_DATA[set]; + if (!data) return null; + const inner = parseSvgFragment(set, key); + if (!inner) return null; + + const cloned = inner.cloneNode(true) as SVGGElement; + uniquifyIds(cloned); + + const scale = 45 / Math.max(data.vbW, data.vbH); + const tx = -data.vbX * scale; + const ty = -data.vbY * scale; + + if (scale === 1 && tx === 0 && ty === 0) { + return cloned; + } + + const wrapper = document.createElementNS(SVG_NS, "g"); + wrapper.setAttribute("transform", `translate(${tx} ${ty}) scale(${scale})`); + if (set === "pixel") { + // Preserve pixel-art crispness — disable smoothing on the wrapper. + wrapper.setAttribute("shape-rendering", "crispEdges"); + wrapper.setAttribute("image-rendering", "pixelated"); + } + wrapper.appendChild(cloned); + return wrapper; +} + +let idCounter = 0; +const URL_REF_RE = /url\(#([^)]+)\)/g; + +/** + * Several Lichess piece sets define internal `` and + * reference them via `fill="url(#a)"`. When we drop multiple pieces (each a + * cloned subtree) into a single board , those duplicate IDs collide and + * every reference resolves to whichever fragment came first. + * + * To keep gradients/clipPaths working per-piece we walk each cloned piece + * and rewrite all `id` attributes to a globally-unique value, then patch + * any matching `url(#…)` paint refs and `href`/`xlink:href` link refs to + * point at the new IDs. This is a no-op for sets without internal IDs + * (cburnett, staunty, pixel, letter, unicode), so we only pay the walk + * cost for merida and caliente. + */ +function uniquifyIds(root: SVGGElement): void { + const elementsWithId = root.querySelectorAll("[id]"); + if (elementsWithId.length === 0) return; + + const idMap = new Map(); + for (let i = 0; i < elementsWithId.length; i++) { + const el = elementsWithId.item(i); + if (!el) continue; + const oldId = el.getAttribute("id"); + if (!oldId) continue; + const newId = `cs-${idCounter++}`; + idMap.set(oldId, newId); + el.setAttribute("id", newId); + } + if (idMap.size === 0) return; + + rewriteRefs(root, idMap); +} + +function rewriteRefs(node: Element, idMap: Map): void { + for (let i = 0; i < node.attributes.length; i++) { + const attr = node.attributes.item(i); + if (!attr) continue; + const value = attr.value; + + if (value.includes("url(#")) { + const next = value.replace(URL_REF_RE, (match, oldId: string) => { + const newId = idMap.get(oldId); + return newId ? `url(#${newId})` : match; + }); + if (next !== value) attr.value = next; + } + + if ((attr.localName === "href") && value.startsWith("#")) { + const newId = idMap.get(value.slice(1)); + if (newId) attr.value = `#${newId}`; + } + } + for (let i = 0; i < node.children.length; i++) { + const child = node.children.item(i); + if (child) rewriteRefs(child, idMap); + } +} + +/** Unicode glyph for a piece (used by the "unicode" piece set). */ +export function getPieceGlyph(key: PieceKey): string { + return UNICODE[key]; +} + +/** Returns license text for a given set, for credits/attribution UI. */ +export function getPieceSetLicense(set: PieceSet): string | null { + if (set === "unicode") return "System font"; + return ALL_SET_DATA[set]?.license ?? null; +} diff --git a/src/chess/wcc-data.generated.ts b/src/chess/wcc-data.generated.ts new file mode 100644 index 0000000..46bf057 --- /dev/null +++ b/src/chess/wcc-data.generated.ts @@ -0,0 +1,874 @@ +// AUTO-GENERATED by scripts/fetch-wcc-games.mjs — do not edit by hand. +// Re-run that script to refresh. + +export interface WccGameData { + id: string; + matchSlug: string; + matchLabel: string; + matchYear: number; + gameNumber: number; + white: string; + black: string; + result: string; + pgn: string; +} + +export interface WccMatchData { + matchSlug: string; + matchLabel: string; + matchYear: number; +} + +export const WCC_MATCHES: WccMatchData[] = [ + { + matchSlug: "1886-steinitz-zukertort", + matchLabel: "1886 — Steinitz vs Zukertort", + matchYear: 1886, + }, + { + matchSlug: "1894-lasker-steinitz", + matchLabel: "1894 — Lasker vs Steinitz", + matchYear: 1894, + }, + { + matchSlug: "1921-capablanca-lasker", + matchLabel: "1921 — Capablanca vs Lasker", + matchYear: 1921, + }, + { + matchSlug: "1927-alekhine-capablanca", + matchLabel: "1927 — Alekhine vs Capablanca", + matchYear: 1927, + }, + { + matchSlug: "1948-botvinnik-tournament", + matchLabel: "1948 — Botvinnik 1st (tournament)", + matchYear: 1948, + }, + { + matchSlug: "1951-botvinnik-bronstein", + matchLabel: "1951 — Botvinnik vs Bronstein", + matchYear: 1951, + }, + { + matchSlug: "1960-tal-botvinnik", + matchLabel: "1960 — Tal vs Botvinnik", + matchYear: 1960, + }, + { + matchSlug: "1972-fischer-spassky", + matchLabel: "1972 — Fischer vs Spassky", + matchYear: 1972, + }, + { + matchSlug: "1985-kasparov-karpov", + matchLabel: "1985 — Kasparov vs Karpov", + matchYear: 1985, + }, + { + matchSlug: "1990-kasparov-karpov", + matchLabel: "1990 — Kasparov vs Karpov", + matchYear: 1990, + }, + { + matchSlug: "2000-kramnik-kasparov", + matchLabel: "2000 — Kramnik vs Kasparov", + matchYear: 2000, + }, + { + matchSlug: "2008-anand-kramnik", + matchLabel: "2008 — Anand vs Kramnik", + matchYear: 2008, + }, + { + matchSlug: "2010-anand-topalov", + matchLabel: "2010 — Anand vs Topalov", + matchYear: 2010, + }, + { + matchSlug: "2013-carlsen-anand", + matchLabel: "2013 — Carlsen vs Anand", + matchYear: 2013, + }, + { + matchSlug: "2014-carlsen-anand", + matchLabel: "2014 — Carlsen vs Anand", + matchYear: 2014, + }, + { + matchSlug: "2016-carlsen-karjakin", + matchLabel: "2016 — Carlsen vs Karjakin", + matchYear: 2016, + }, + { + matchSlug: "2018-carlsen-caruana", + matchLabel: "2018 — Carlsen vs Caruana", + matchYear: 2018, + }, + { + matchSlug: "2021-carlsen-nepomniachtchi", + matchLabel: "2021 — Carlsen vs Nepomniachtchi", + matchYear: 2021, + }, + { + matchSlug: "2023-ding-nepomniachtchi", + matchLabel: "2023 — Ding vs Nepomniachtchi", + matchYear: 2023, + }, + { + matchSlug: "2024-gukesh-ding", + matchLabel: "2024 — Gukesh vs Ding", + matchYear: 2024, + }, +]; + +export const WCC_GAMES: WccGameData[] = [ + { + id: "1886-steinitz-zukertort-01", + matchSlug: "1886-steinitz-zukertort", + matchLabel: "1886 — Steinitz vs Zukertort", + matchYear: 1886, + gameNumber: 1, + white: "Zukertort, Johannes Hermann", + black: "Steinitz, William", + result: "0-1", + pgn: "[Event \"World Championship 1st\"]\n[Site \"USA\"]\n[Date \"1886.??.??\"]\n[Round \"1\"]\n[White \"Zukertort, Johannes Hermann\"]\n[Black \"Steinitz, William\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D11\"]\n\n1.d4 d5 2.c4 c6 3.e3 Bf5 4.Nc3 e6 5.Nf3 Nd7 6.a3 Bd6 7.c5 Bc7 8.b4 e5 9.Be2 Ngf6\n10.Bb2 e4 11.Nd2 h5 12.h3 Nf8 13.a4 Ng6 14.b5 Nh4 15.g3 Ng2+ 16.Kf1 Nxe3+\n17.fxe3 Bxg3 18.Kg2 Bc7 19.Qg1 Rh6 20.Kf1 Rg6 21.Qf2 Qd7 22.bxc6 bxc6 23.Rg1 Bxh3+\n24.Ke1 Ng4 25.Bxg4 Bxg4 26.Ne2 Qe7 27.Nf4 Rh6 28.Bc3 g5 29.Ne2 Rf6 30.Qg2 Rf3\n31.Nf1 Rb8 32.Kd2 f5 33.a5 f4 34.Rh1 Qf7 35.Re1 fxe3+ 36.Nxe3 Rf2 37.Qxf2 Qxf2\n38.Nxg4 Bf4+ 39.Kc2 hxg4 40.Bd2 e3 41.Bc1 Qg2 42.Kc3 Kd7 43.Rh7+ Ke6 44.Rh6+ Kf5\n45.Bxe3 Bxe3 46.Rf1+ Bf4 0-1", + }, + { + id: "1886-steinitz-zukertort-09", + matchSlug: "1886-steinitz-zukertort", + matchLabel: "1886 — Steinitz vs Zukertort", + matchYear: 1886, + gameNumber: 9, + white: "Zukertort, Johannes Hermann", + black: "Steinitz, William", + result: "0-1", + pgn: "[Event \"World Championship 1st\"]\n[Site \"USA\"]\n[Date \"1886.??.??\"]\n[Round \"9\"]\n[White \"Zukertort, Johannes Hermann\"]\n[Black \"Steinitz, William\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D26\"]\n\n1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 dxc4 5.e3 c5 6.Bxc4 cxd4 7.exd4 Be7 8.O-O O-O\n9.Qe2 Nbd7 10.Bb3 Nb6 11.Bf4 Nbd5 12.Bg3 Qa5 13.Rac1 Bd7 14.Ne5 Rfd8 15.Qf3 Be8\n16.Rfe1 Rac8 17.Bh4 Nxc3 18.bxc3 Qc7 19.Qd3 Nd5 20.Bxe7 Qxe7 21.Bxd5 Rxd5\n22.c4 Rdd8 23.Re3 Qd6 24.Rd1 f6 25.Rh3 h6 26.Ng4 Qf4 27.Ne3 Ba4 28.Rf3 Qd6\n29.Rd2 Bc6 30.Rg3 f5 31.Rg6 Be4 32.Qb3 Kh7 33.c5 Rxc5 34.Rxe6 Rc1+ 35.Nd1 Qf4\n36.Qb2 Rb1 37.Qc3 Rc8 38.Rxe4 Qxe4 0-1", + }, + { + id: "1886-steinitz-zukertort-20", + matchSlug: "1886-steinitz-zukertort", + matchLabel: "1886 — Steinitz vs Zukertort", + matchYear: 1886, + gameNumber: 20, + white: "Steinitz, William", + black: "Zukertort, Johannes Hermann", + result: "1-0", + pgn: "[Event \"World Championship 1st\"]\n[Site \"USA\"]\n[Date \"1886.??.??\"]\n[Round \"20\"]\n[White \"Steinitz, William\"]\n[Black \"Zukertort, Johannes Hermann\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C25\"]\n\n1.e4 e5 2.Nc3 Nc6 3.f4 exf4 4.d4 d5 5.exd5 Qh4+ 6.Ke2 Qe7+ 7.Kf2 Qh4+ 8.g3 fxg3+\n9.Kg2 Nxd4 10.hxg3 Qg4 11.Qe1+ Be7 12.Bd3 Nf5 13.Nf3 Bd7 14.Bf4 f6 15.Ne4 Ngh6\n16.Bxh6 Nxh6 17.Rxh6 gxh6 18.Nxf6+ Kf7 19.Nxg4 1-0", + }, + { + id: "1894-lasker-steinitz-05", + matchSlug: "1894-lasker-steinitz", + matchLabel: "1894 — Lasker vs Steinitz", + matchYear: 1894, + gameNumber: 5, + white: "Lasker, Emanuel", + black: "Steinitz, William", + result: "1/2-1/2", + pgn: "[Event \"World Championship 5th\"]\n[Site \"USA/CAN\"]\n[Date \"1894.??.??\"]\n[Round \"5\"]\n[White \"Lasker, Emanuel\"]\n[Black \"Steinitz, William\"]\n[Result \"1/2-1/2\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C62\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.Nc3 Nge7 6.Bc4 exd4 7.Nxd4 Nxd4 8.Qxd4 Nc6\n9.Qe3 Be6 10.Nd5 Be7 11.Bd2 O-O 12.O-O Ne5 13.Bb3 Bxd5 14.Bxd5 c6 15.Bb3 Nd7\n16.Rad1 a5 17.c3 a4 18.Bc2 Re8 19.Qh3 Nf8 20.Be3 Qa5 21.a3 Qb5 22.Bc1 Rad8\n23.Rd4 d5 24.exd5 Bc5 25.Rf4 Ng6 26.c4 Qa6 27.Bxg6 fxg6 28.Rh4 h5 29.Bg5 Rd6\n30.dxc6 Qxc6 31.Qf3 Qxf3 32.gxf3 Re2 33.Bc1 Rxf2 34.Rxf2 Rd1+ 35.Kg2 Bxf2\n36.Kxf2 Rxc1 37.Kg3 b6 38.Rd4 Rc2 39.Rd8+ Kh7 40.Rb8 Rxb2 41.Ra8 g5 42.Rxa4 h4+\n43.Kh3 Rf2 44.Rb4 Rxf3+ 45.Kg4 Rxa3 46.Rxb6 Ra2 47.Kxg5 Rxh2 48.Rb3 Rh1 49.Rc3 h3\n50.Kg4 1/2-1/2", + }, + { + id: "1894-lasker-steinitz-07", + matchSlug: "1894-lasker-steinitz", + matchLabel: "1894 — Lasker vs Steinitz", + matchYear: 1894, + gameNumber: 7, + white: "Lasker, Emanuel", + black: "Steinitz, William", + result: "1-0", + pgn: "[Event \"World Championship 5th\"]\n[Site \"USA/CAN\"]\n[Date \"1894.??.??\"]\n[Round \"7\"]\n[White \"Lasker, Emanuel\"]\n[Black \"Steinitz, William\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C62\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 d6 4.d4 Bd7 5.Nc3 Nge7 6.Be3 Ng6 7.Qd2 Be7 8.O-O-O a6\n9.Be2 exd4 10.Nxd4 Nxd4 11.Qxd4 Bf6 12.Qd2 Bc6 13.Nd5 O-O 14.g4 Re8 15.g5 Bxd5\n16.Qxd5 Re5 17.Qd2 Bxg5 18.f4 Rxe4 19.fxg5 Qe7 20.Rdf1 Rxe3 21.Bc4 Nh8 22.h4 c6\n23.g6 d5 24.gxh7+ Kxh7 25.Bd3+ Kg8 26.h5 Re8 27.h6 g6 28.h7+ Kg7 29.Kb1 Qe5\n30.a3 c5 31.Qf2 c4 32.Qh4 f6 33.Bf5 Kf7 34.Rhg1 gxf5 35.Qh5+ Ke7 36.Rg8 Kd6\n37.Rxf5 Qe6 38.Rxe8 Qxe8 39.Rxf6+ Kc5 40.Qh6 Re7 41.Qh2 Qd7 42.Qg1+ d4 43.Qg5+ Qd5\n44.Rf5 Qxf5 45.Qxf5+ Kd6 46.Qf6+ 1-0", + }, + { + id: "1894-lasker-steinitz-17", + matchSlug: "1894-lasker-steinitz", + matchLabel: "1894 — Lasker vs Steinitz", + matchYear: 1894, + gameNumber: 17, + white: "Lasker, Emanuel", + black: "Steinitz, William", + result: "0-1", + pgn: "[Event \"World Championship 5th\"]\n[Site \"USA/CAN\"]\n[Date \"1894.??.??\"]\n[Round \"17\"]\n[White \"Lasker, Emanuel\"]\n[Black \"Steinitz, William\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C50\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bc4 Bc5 4.d3 Nf6 5.Nc3 d6 6.Be3 Bb6 7.Qd2 Na5 8.Bb5+ c6\n9.Ba4 Bxe3 10.fxe3 b5 11.Bb3 Qb6 12.O-O Ng4 13.Rae1 f6 14.h3 Nh6 15.Ne2 Nxb3\n16.axb3 O-O 17.Ng3 a5 18.d4 Nf7 19.Qf2 Ra7 20.Rd1 a4 21.b4 Qc7 22.Ne1 c5\n23.Qd2 Be6 24.d5 Bd7 25.Ra1 cxb4 26.Qxb4 Rc8 27.Qd2 Qc4 28.Rf2 Ng5 29.Qd3 Rac7\n30.h4 Nf7 31.Qxc4 Rxc4 32.Rd2 g6 33.Kf2 Nd8 34.b3 R4c7 35.Rdd1 Nb7 36.Rdb1 Kf7\n37.Ke2 Ra8 38.Kd2 Na5 39.Kd3 h5 40.Ra2 Raa7 41.b4 Nc4 42.Nf3 Ra8 43.Nd2 Nb6\n44.Rf1 Rac8 45.Nb1 Ke7 46.c3 Nc4 47.Raf2 Na3 48.Ne2 Nxb1 49.Rxb1 Bg4 50.Rc1 Rc4\n51.Rc2 f5 0-1", + }, + { + id: "1894-lasker-steinitz-19", + matchSlug: "1894-lasker-steinitz", + matchLabel: "1894 — Lasker vs Steinitz", + matchYear: 1894, + gameNumber: 19, + white: "Lasker, Emanuel", + black: "Steinitz, William", + result: "1-0", + pgn: "[Event \"World Championship 5th\"]\n[Site \"USA/CAN\"]\n[Date \"1894.??.??\"]\n[Round \"19\"]\n[White \"Lasker, Emanuel\"]\n[Black \"Steinitz, William\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D40\"]\n\n1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Nf3 Be7 5.e3 O-O 6.Bd3 c5 7.dxc5 dxc4 8.Bxc4 Qxd1+\n9.Kxd1 Nc6 10.a3 Bxc5 11.b4 Rd8+ 12.Ke2 Bf8 13.Bb2 Bd7 14.Rhd1 Rac8 15.Bb3 Ne7\n16.Nd4 Ng6 17.Rd2 e5 18.Nf3 Bg4 19.Rxd8 Rxd8 20.h3 Bxf3+ 21.gxf3 Be7 22.Rc1 Kf8\n23.Na4 b6 24.Nc3 Bd6 25.Rd1 Ne8 26.Nb5 Rd7 27.Bc2 Ke7 28.Bf5 a6 29.Bxd7 Kxd7\n30.Nc3 f5 31.b5 axb5 32.Nxb5 Ke6 33.Bc3 Ne7 34.Nxd6 Nxd6 35.Bb4 Nd5 36.Rc1 Nf7\n37.Bd2 Nd6 38.Kd3 Kd7 39.e4 Nf6 40.Be3 fxe4+ 41.fxe4 b5 42.f3 Nc4 43.Rc3 Ne8\n44.Bc1 Ncd6 45.Rc5 Nc7 46.Rxe5 Ne6 47.Rh5 h6 48.Re5 g5 49.h4 gxh4 50.Rh5 Kc6\n51.Rxh6 Nc5+ 52.Kc2 1-0", + }, + { + id: "1921-capablanca-lasker-05", + matchSlug: "1921-capablanca-lasker", + matchLabel: "1921 — Capablanca vs Lasker", + matchYear: 1921, + gameNumber: 5, + white: "Capablanca, Jose Raul", + black: "Lasker, Emanuel", + result: "1-0", + pgn: "[Event \"World Championship 12th\"]\n[Site \"Havana\"]\n[Date \"1921.??.??\"]\n[Round \"5\"]\n[White \"Capablanca, Jose Raul\"]\n[Black \"Lasker, Emanuel\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D63\"]\n\n1.d4 d5 2.Nf3 Nf6 3.c4 e6 4.Bg5 Nbd7 5.e3 Be7 6.Nc3 O-O 7.Rc1 b6 8.cxd5 exd5\n9.Qa4 c5 10.Qc6 Rb8 11.Nxd5 Bb7 12.Nxe7+ Qxe7 13.Qa4 Rbc8 14.Qa3 Qe6 15.Bxf6 Qxf6\n16.Ba6 Bxf3 17.Bxc8 Rxc8 18.gxf3 Qxf3 19.Rg1 Re8 20.Qd3 g6 21.Kf1 Re4 22.Qd1 Qh3+\n23.Rg2 Nf6 24.Kg1 cxd4 25.Rc4 dxe3 26.Rxe4 Nxe4 27.Qd8+ Kg7 28.Qd4+ Nf6 29.fxe3 Qe6\n30.Rf2 g5 31.h4 gxh4 32.Qxh4 Ng4 33.Qg5+ Kf8 34.Rf5 h5 35.Qd8+ Kg7 36.Qg5+ Kf8\n37.Qd8+ Kg7 38.Qg5+ Kf8 39.b3 Qd6 40.Qf4 Qd1+ 41.Qf1 Qd2 42.Rxh5 Nxe3 43.Qf3 Qd4\n44.Qa8+ Ke7 45.Qb7+ Kf8 46.Qb8+ 1-0", + }, + { + id: "1921-capablanca-lasker-10", + matchSlug: "1921-capablanca-lasker", + matchLabel: "1921 — Capablanca vs Lasker", + matchYear: 1921, + gameNumber: 10, + white: "Lasker, Emanuel", + black: "Capablanca, Jose Raul", + result: "0-1", + pgn: "[Event \"World Championship 12th\"]\n[Site \"Havana\"]\n[Date \"1921.??.??\"]\n[Round \"10\"]\n[White \"Lasker, Emanuel\"]\n[Black \"Capablanca, Jose Raul\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D61\"]\n\n1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Be7 5.e3 O-O 6.Nf3 Nbd7 7.Qc2 c5 8.Rd1 Qa5\n9.Bd3 h6 10.Bh4 cxd4 11.exd4 dxc4 12.Bxc4 Nb6 13.Bb3 Bd7 14.O-O Rac8 15.Ne5 Bb5\n16.Rfe1 Nbd5 17.Bxd5 Nxd5 18.Bxe7 Nxe7 19.Qb3 Bc6 20.Nxc6 bxc6 21.Re5 Qb6\n22.Qc2 Rfd8 23.Ne2 Rd5 24.Rxd5 cxd5 25.Qd2 Nf5 26.b3 h5 27.h3 h4 28.Qd3 Rc6\n29.Kf1 g6 30.Qb1 Qb4 31.Kg1 a5 32.Qb2 a4 33.Qd2 Qxd2 34.Rxd2 axb3 35.axb3 Rb6\n36.Rd3 Ra6 37.g4 hxg3 38.fxg3 Ra2 39.Nc3 Rc2 40.Nd1 Ne7 41.Nc3 Rc1+ 42.Kf2 Nc6\n43.Nd1 Rb1 44.Ke2 Rxb3 45.Ke3 Rb4 46.Nc3 Ne7 47.Ne2 Nf5+ 48.Kf2 g5 49.g4 Nd6\n50.Ng1 Ne4+ 51.Kf1 Rb1+ 52.Kg2 Rb2+ 53.Kf1 Rf2+ 54.Ke1 Ra2 55.Kf1 Kg7 56.Re3 Kg6\n57.Rd3 f6 58.Re3 Kf7 59.Rd3 Ke7 60.Re3 Kd6 61.Rd3 Rf2+ 62.Ke1 Rg2 63.Kf1 Ra2\n64.Re3 e5 65.Rd3 exd4 66.Rxd4 Kc5 67.Rd1 d4 68.Rc1+ Kd5 0-1", + }, + { + id: "1921-capablanca-lasker-11", + matchSlug: "1921-capablanca-lasker", + matchLabel: "1921 — Capablanca vs Lasker", + matchYear: 1921, + gameNumber: 11, + white: "Capablanca, Jose Raul", + black: "Lasker, Emanuel", + result: "1-0", + pgn: "[Event \"World Championship 12th\"]\n[Site \"Havana\"]\n[Date \"1921.??.??\"]\n[Round \"11\"]\n[White \"Capablanca, Jose Raul\"]\n[Black \"Lasker, Emanuel\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D64\"]\n\n1.d4 d5 2.Nf3 e6 3.c4 Nf6 4.Bg5 Nbd7 5.e3 Be7 6.Nc3 O-O 7.Rc1 Re8 8.Qc2 c6\n9.Bd3 dxc4 10.Bxc4 Nd5 11.Bxe7 Rxe7 12.O-O Nf8 13.Rfd1 Bd7 14.e4 Nb6 15.Bf1 Rc8\n16.b4 Be8 17.Qb3 Rec7 18.a4 Ng6 19.a5 Nd7 20.e5 b6 21.Ne4 Rb8 22.Qc3 Nf4\n23.Nd6 Nd5 24.Qa3 f6 25.Nxe8 Qxe8 26.exf6 gxf6 27.b5 Rbc8 28.bxc6 Rxc6 29.Rxc6 Rxc6\n30.axb6 axb6 31.Re1 Qc8 32.Nd2 Nf8 33.Ne4 Qd8 34.h4 Rc7 35.Qb3 Rg7 36.g3 Ra7\n37.Bc4 Ra5 38.Nc3 Nxc3 39.Qxc3 Kf7 40.Qe3 Qd6 41.Qe4 Ra4 42.Qb7+ Kg6 43.Qc8 Qb4\n44.Rc1 Qe7 45.Bd3+ Kh6 46.Rc7 Ra1+ 47.Kg2 Qd6 48.Qxf8+ 1-0", + }, + { + id: "1921-capablanca-lasker-14", + matchSlug: "1921-capablanca-lasker", + matchLabel: "1921 — Capablanca vs Lasker", + matchYear: 1921, + gameNumber: 14, + white: "Lasker, Emanuel", + black: "Capablanca, Jose Raul", + result: "0-1", + pgn: "[Event \"World Championship 12th\"]\n[Site \"Havana\"]\n[Date \"1921.??.??\"]\n[Round \"14\"]\n[White \"Lasker, Emanuel\"]\n[Black \"Capablanca, Jose Raul\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C66\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O d6 5.d4 Bd7 6.Nc3 Be7 7.Bxc6 Bxc6 8.Qd3 exd4\n9.Nxd4 Bd7 10.Bg5 O-O 11.Rae1 h6 12.Bh4 Nh7 13.Bxe7 Qxe7 14.Nd5 Qd8 15.c4 Re8\n16.f4 c6 17.Nc3 Qb6 18.b3 Rad8 19.Kh1 Nf6 20.h3 Bc8 21.Rd1 Re7 22.Rfe1 Rde8\n23.Re2 Qa5 24.Rf1 Qh5 25.Kg1 a6 26.Rff2 Qg6 27.Rf3 Qh5 28.f5 Qh4 29.Kh2 Ng4+\n30.Kh1 Ne5 31.Qd2 Nxf3 32.Nxf3 Qf6 33.a4 g6 34.fxg6 fxg6 35.Re3 Bf5 36.Qd3 g5\n37.Nd2 Bg6 38.b4 Qe6 39.b5 axb5 40.axb5 Ra8 41.Qb1 Qe5 42.Qe1 Kh7 43.bxc6 bxc6\n44.Qg3 Qxg3 45.Rxg3 Ra3 46.Kh2 Rb7 47.c5 dxc5 48.Nc4 Ra1 49.Ne5 Rc1 50.h4 Re7\n51.Nxc6 Re6 52.Nd8 gxh4 53.Rd3 Rf6 54.Rd7+ Kh8 55.Nd5 Rff1 56.Kh3 Bxe4 0-1", + }, + { + id: "1927-alekhine-capablanca-01", + matchSlug: "1927-alekhine-capablanca", + matchLabel: "1927 — Alekhine vs Capablanca", + matchYear: 1927, + gameNumber: 1, + white: "Capablanca, Jose Raul", + black: "Alekhine, Alexander", + result: "0-1", + pgn: "[Event \"World Championship 13th\"]\n[Site \"Buenos Aires\"]\n[Date \"1927.??.??\"]\n[Round \"1\"]\n[White \"Capablanca, Jose Raul\"]\n[Black \"Alekhine, Alexander\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C01\"]\n\n1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.exd5 exd5 5.Bd3 Nc6 6.Ne2 Nge7 7.O-O Bf5 8.Bxf5 Nxf5\n9.Qd3 Qd7 10.Nd1 O-O 11.Ne3 Nxe3 12.Bxe3 Rfe8 13.Nf4 Bd6 14.Rfe1 Nb4 15.Qb3 Qf5\n16.Rac1 Nxc2 17.Rxc2 Qxf4 18.g3 Qf5 19.Rce2 b6 20.Qb5 h5 21.h4 Re4 22.Bd2 Rxd4\n23.Bc3 Rd3 24.Be5 Rd8 25.Bxd6 Rxd6 26.Re5 Qf3 27.Rxh5 Qxh5 28.Re8+ Kh7 29.Qxd3+ Qg6\n30.Qd1 Re6 31.Ra8 Re5 32.Rxa7 c5 33.Rd7 Qe6 34.Qd3+ g6 35.Rd8 d4 36.a4 Re1+\n37.Kg2 Qc6+ 38.f3 Re3 39.Qd1 Qe6 40.g4 Re2+ 41.Kh3 Qe3 42.Qh1 Qf4 43.h5 Rf2 0-1", + }, + { + id: "1927-alekhine-capablanca-11", + matchSlug: "1927-alekhine-capablanca", + matchLabel: "1927 — Alekhine vs Capablanca", + matchYear: 1927, + gameNumber: 11, + white: "Capablanca, Jose Raul", + black: "Alekhine, Alexander", + result: "0-1", + pgn: "[Event \"World Championship 13th\"]\n[Site \"Buenos Aires\"]\n[Date \"1927.??.??\"]\n[Round \"11\"]\n[White \"Capablanca, Jose Raul\"]\n[Black \"Alekhine, Alexander\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D52\"]\n\n1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.Nf3 Qa5 7.Nd2 Bb4 8.Qc2 dxc4\n9.Bxf6 Nxf6 10.Nxc4 Qc7 11.a3 Be7 12.Be2 O-O 13.O-O Bd7 14.b4 b6 15.Bf3 Rac8\n16.Rfd1 Rfd8 17.Rac1 Be8 18.g3 Nd5 19.Nb2 Qb8 20.Nd3 Bg5 21.Rb1 Qb7 22.e4 Nxc3\n23.Qxc3 Qe7 24.h4 Bh6 25.Ne5 g6 26.Ng4 Bg7 27.e5 h5 28.Ne3 c5 29.bxc5 bxc5\n30.d5 exd5 31.Nxd5 Qe6 32.Nf6+ Bxf6 33.exf6 Rxd1+ 34.Rxd1 Bc6 35.Re1 Qf5\n36.Re3 c4 37.a4 a5 38.Bg2 Bxg2 39.Kxg2 Qd5+ 40.Kh2 Qf5 41.Rf3 Qc5 42.Rf4 Kh7\n43.Rd4 Qc6 44.Qxa5 c3 45.Qa7 Kg8 46.Qe7 Qb6 47.Qd7 Qc5 48.Re4 Qxf2+ 49.Kh3 Qf1+\n50.Kh2 Qf2+ 51.Kh3 Rf8 52.Qc6 Qf1+ 53.Kh2 Qf2+ 54.Kh3 Qf1+ 55.Kh2 Kh7 56.Qc4 Qf2+\n57.Kh3 Qg1 58.Re2 Qf1+ 59.Kh2 Qxf6 60.a5 Rd8 61.a6 Qf1 62.Qe4 Rd2 63.Rxd2 cxd2\n64.a7 d1=Q 65.a8=Q Qg1+ 66.Kh3 Qdf1+ 0-1", + }, + { + id: "1927-alekhine-capablanca-21", + matchSlug: "1927-alekhine-capablanca", + matchLabel: "1927 — Alekhine vs Capablanca", + matchYear: 1927, + gameNumber: 21, + white: "Capablanca, Jose Raul", + black: "Alekhine, Alexander", + result: "0-1", + pgn: "[Event \"World Championship 13th\"]\n[Site \"Buenos Aires\"]\n[Date \"1927.??.??\"]\n[Round \"21\"]\n[White \"Capablanca, Jose Raul\"]\n[Black \"Alekhine, Alexander\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D63\"]\n\n1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 Be7 6.Nf3 O-O 7.Rc1 a6 8.a3 h6\n9.Bh4 dxc4 10.Bxc4 b5 11.Be2 Bb7 12.O-O c5 13.dxc5 Nxc5 14.Nd4 Rc8 15.b4 Ncd7\n16.Bg3 Nb6 17.Qb3 Nfd5 18.Bf3 Rc4 19.Ne4 Qc8 20.Rxc4 Nxc4 21.Rc1 Qa8 22.Nc3 Rc8\n23.Nxd5 Bxd5 24.Bxd5 Qxd5 25.a4 Bf6 26.Nf3 Bb2 27.Re1 Rd8 28.axb5 axb5 29.h3 e5\n30.Rb1 e4 31.Nd4 Bxd4 32.Rd1 Nxe3 0-1", + }, + { + id: "1927-alekhine-capablanca-32", + matchSlug: "1927-alekhine-capablanca", + matchLabel: "1927 — Alekhine vs Capablanca", + matchYear: 1927, + gameNumber: 32, + white: "Alekhine, Alexander", + black: "Capablanca, Jose Raul", + result: "1-0", + pgn: "[Event \"World Championship 13th\"]\n[Site \"Buenos Aires\"]\n[Date \"1927.??.??\"]\n[Round \"32\"]\n[White \"Alekhine, Alexander\"]\n[Black \"Capablanca, Jose Raul\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D35\"]\n\n1.d4 Nf6 2.c4 e6 3.Nc3 d5 4.Bg5 Nbd7 5.e3 c6 6.cxd5 exd5 7.Bd3 Be7 8.Nge2 O-O\n9.Ng3 Ne8 10.h4 Ndf6 11.Qc2 Be6 12.Nf5 Bxf5 13.Bxf5 Nd6 14.Bd3 h6 15.Bf4 Rc8\n16.g4 Nfe4 17.g5 h5 18.Bxe4 Nxe4 19.Nxe4 dxe4 20.Qxe4 Qa5+ 21.Kf1 Qd5 22.Qxd5 cxd5\n23.Kg2 Rc2 24.Rhc1 Rfc8 25.Rxc2 Rxc2 26.Rb1 Kh7 27.Kg3 Kg6 28.f3 f6 29.gxf6 Bxf6\n30.a4 Kf5 31.a5 Re2 32.Rc1 Rxb2 33.Rc5 Ke6 34.e4 Bxd4 35.Rxd5 Bc3 36.Rxh5 a6\n37.Bc7 Be1+ 38.Kg4 Rg2+ 39.Kh3 Rf2 40.Kg4 Rg2+ 41.Kh3 Rf2 42.f4 Rf3+ 43.Kg2 Rf2+\n44.Kh3 Rf3+ 45.Kg2 Rf2+ 46.Kg1 Rc2 47.Bb6 Rc4 48.Kg2 g6 49.Re5+ Kd7 50.h5 gxh5\n51.Kf3 h4 52.Rh5 Rc3+ 53.Kg4 Rc4 54.Kf5 Bxa5 55.Rh7+ Kc6 56.Bxa5 Rc5+ 57.Ke6 Rxa5\n58.f5 Ra3 59.f6 Rf3 60.f7 b5 61.Rh5 h3 62.Rf5 Rxf5 63.exf5 1-0", + }, + { + id: "1927-alekhine-capablanca-34", + matchSlug: "1927-alekhine-capablanca", + matchLabel: "1927 — Alekhine vs Capablanca", + matchYear: 1927, + gameNumber: 34, + white: "Alekhine, Alexander", + black: "Capablanca, Jose Raul", + result: "1-0", + pgn: "[Event \"World Championship 13th\"]\n[Site \"Buenos Aires\"]\n[Date \"1927.??.??\"]\n[Round \"34\"]\n[White \"Alekhine, Alexander\"]\n[Black \"Capablanca, Jose Raul\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D51\"]\n\n1.d4 d5 2.c4 e6 3.Nc3 Nf6 4.Bg5 Nbd7 5.e3 c6 6.a3 Be7 7.Nf3 O-O 8.Bd3 dxc4\n9.Bxc4 Nd5 10.Bxe7 Qxe7 11.Ne4 N5f6 12.Ng3 c5 13.O-O Nb6 14.Ba2 cxd4 15.Nxd4 g6\n16.Rc1 Bd7 17.Qe2 Rac8 18.e4 e5 19.Nf3 Kg7 20.h3 h6 21.Qd2 Be6 22.Bxe6 Qxe6\n23.Qa5 Nc4 24.Qxa7 Nxb2 25.Rxc8 Rxc8 26.Qxb7 Nc4 27.Qb4 Ra8 28.Ra1 Qc6 29.a4 Nxe4\n30.Nxe5 Qd6 31.Qxc4 Qxe5 32.Re1 Nd6 33.Qc1 Qf6 34.Ne4 Nxe4 35.Rxe4 Rb8 36.Re2 Ra8\n37.Ra2 Ra5 38.Qc7 Qa6 39.Qc3+ Kh7 40.Rd2 Qb6 41.Rd7 Qb1+ 42.Kh2 Qb8+ 43.g3 Rf5\n44.Qd4 Qe8 45.Rd5 Rf3 46.h4 Qh8 47.Qb6 Qa1 48.Kg2 Rf6 49.Qd4 Qxd4 50.Rxd4 Kg7\n51.a5 Ra6 52.Rd5 Rf6 53.Rd4 Ra6 54.Ra4 Kf6 55.Kf3 Ke5 56.Ke3 h5 57.Kd3 Kd5\n58.Kc3 Kc5 59.Ra2 Kb5 60.Kb3 Kc5 61.Kc3 Kb5 62.Kd4 Rd6+ 63.Ke5 Re6+ 64.Kf4 Ka6\n65.Kg5 Re5+ 66.Kh6 Rf5 67.f4 Rc5 68.Ra3 Rc7 69.Kg7 Rd7 70.f5 gxf5 71.Kh6 f4\n72.gxf4 Rd5 73.Kg7 Rf5 74.Ra4 Kb5 75.Re4 Ka6 76.Kh6 Rxa5 77.Re5 Ra1 78.Kxh5 Rg1\n79.Rg5 Rh1 80.Rf5 Kb6 81.Rxf7 Kc6 82.Re7 1-0", + }, + { + id: "1948-botvinnik-tournament-09", + matchSlug: "1948-botvinnik-tournament", + matchLabel: "1948 — Botvinnik 1st (tournament)", + matchYear: 1948, + gameNumber: 9, + white: "Reshevsky, Samuel Herman", + black: "Botvinnik, Mikhail", + result: "1/2-1/2", + pgn: "[Event \"World Championship 18th\"]\n[Site \"NLD/URS\"]\n[Date \"1948.??.??\"]\n[Round \"9\"]\n[White \"Reshevsky, Samuel Herman\"]\n[Black \"Botvinnik, Mikhail\"]\n[Result \"1/2-1/2\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"A91\"]\n\n1.d4 e6 2.c4 f5 3.g3 Nf6 4.Bg2 Be7 5.Nh3 O-O 6.O-O d6 7.Nc3 Qe8 8.e4 fxe4\n9.Nf4 c6 10.Nxe4 Nxe4 11.Bxe4 e5 12.Ng2 Nd7 13.Ne3 exd4 14.Qxd4 Ne5 15.f4 Ng4\n16.Nxg4 Bxg4 17.Re1 Bf6 18.Qd3 Qh5 19.Bd2 Rfe8 20.Rab1 Re7 21.Bb4 Rae8 22.Bxd6 Re6\n23.Re3 Rxd6 24.Qxd6 Rd8 25.Qc7 Qc5 26.Re1 Rf8 27.Qxb7 Bd4 28.Kf2 Bxe3+ 29.Rxe3 Qd4\n30.Qb3 Qd2+ 31.Kg1 Qc1+ 32.Kf2 Qd2+ 33.Kg1 Qc1+ 1/2-1/2", + }, + { + id: "1948-botvinnik-tournament-14", + matchSlug: "1948-botvinnik-tournament", + matchLabel: "1948 — Botvinnik 1st (tournament)", + matchYear: 1948, + gameNumber: 14, + white: "Euwe, Max", + black: "Smyslov, Vassily", + result: "1-0", + pgn: "[Event \"World Championship 18th\"]\n[Site \"NLD/URS\"]\n[Date \"1948.??.??\"]\n[Round \"14\"]\n[White \"Euwe, Max\"]\n[Black \"Smyslov, Vassily\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"D99\"]\n\n1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.Nf3 Bg7 5.Qb3 dxc4 6.Qxc4 O-O 7.e4 Bg4 8.Be3 Nfd7\n9.Qb3 Nb6 10.a4 a5 11.d5 Na6 12.Be2 e6 13.h3 Bxf3 14.Bxf3 exd5 15.exd5 Qh4\n16.Ne4 Rae8 17.g3 Qd8 18.d6 Nc8 19.dxc7 Qxc7 20.O-O Re6 21.Rac1 Qe5 22.Qxb7 Ne7\n23.Ng5 Rf6 24.Bf4 Rxf4 25.gxf4 Qxf4 26.Qxe7 Bf6 27.Qe3 Qxe3 28.fxe3 Bxg5\n29.Rc3 f5 30.Rd1 Nc5 31.b3 Re8 32.Rd5 Bxe3+ 33.Kg2 Na6 34.Rd7 Bf4 35.Ra7 Nb4\n36.Rxa5 Kg7 37.Rb5 Bd2 38.Rc7+ Kf6 39.Rd7 Be1 40.Rb6+ Kg5 41.h4+ Kf4 42.Rxb4+ 1-0", + }, + { + id: "1948-botvinnik-tournament-21", + matchSlug: "1948-botvinnik-tournament", + matchLabel: "1948 — Botvinnik 1st (tournament)", + matchYear: 1948, + gameNumber: 21, + white: "Smyslov, Vassily", + black: "Reshevsky, Samuel Herman", + result: "1/2-1/2", + pgn: "[Event \"World Championship 18th\"]\n[Site \"NLD/URS\"]\n[Date \"1948.??.??\"]\n[Round \"21\"]\n[White \"Smyslov, Vassily\"]\n[Black \"Reshevsky, Samuel Herman\"]\n[Result \"1/2-1/2\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C81\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Nxe4 6.d4 b5 7.Bb3 d5 8.dxe5 Be6\n9.Qe2 Nc5 10.Rd1 b4 11.Be3 Nxb3 12.axb3 Qc8 13.c4 dxc4 14.bxc4 h6 15.Nbd2 Be7\n16.Nb3 O-O 17.Bc5 Bg4 18.Qe4 Bxf3 19.gxf3 Qe6 20.Bxe7 Nxe7 21.Nc5 Qg6+ 22.Qxg6 Nxg6\n23.Nxa6 Nxe5 24.b3 Ra7 25.Nxb4 Rxa1 26.Rxa1 Rb8 27.Nd5 Rxb3 28.f4 Nxc4 29.Rc1 Nd2\n30.Rxc7 Nf3+ 31.Kg2 Nh4+ 32.Kf1 Rb2 33.Ne3 Rb4 34.f5 f6 35.Rc5 Kh7 36.Nd5 Rd4\n37.Ne7 Re4 38.Ng6 Nxg6 39.fxg6+ Kxg6 40.Kg2 h5 41.h3 f5 42.Rc6+ Kg5 43.Rc7 g6\n44.Rc6 Rd4 45.Ra6 h4 46.Rb6 Rd3 47.Ra6 Kh5 48.Ra8 Rd6 49.Rh8+ Kg5 50.Kf3 Rd3+\n51.Kg2 Rd4 52.Kf3 Kf6 53.Rf8+ Kg7 54.Ra8 Rd3+ 55.Kg2 g5 56.Ra6 Rd7 57.Rb6 Re7\n58.Ra6 Kf7 59.Rh6 Re6 60.Rh8 Kg7 61.Rh5 Kg6 62.Rh8 Rc6 63.Rg8+ Kf6 64.Rf8+ Ke5\n65.Rg8 Kf4 66.Rh8 Rc5 67.Rh5 Rc6 68.Rh8 Rg6 69.Rh7 Ke5 70.Rh8 Kf6 71.Rf8+ Ke6\n72.Rh8 Kf7 73.f4 1/2-1/2", + }, + { + id: "1951-botvinnik-bronstein-12", + matchSlug: "1951-botvinnik-bronstein", + matchLabel: "1951 — Botvinnik vs Bronstein", + matchYear: 1951, + gameNumber: 12, + white: "Bronstein, David I", + black: "Botvinnik, Mikhail", + result: "0-1", + pgn: "[Event \"World Championship 19th\"]\n[Site \"Moscow\"]\n[Date \"1951.??.??\"]\n[Round \"12\"]\n[White \"Bronstein, David I\"]\n[Black \"Botvinnik, Mikhail\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"A85\"]\n\n1.d4 e6 2.c4 f5 3.e3 Nf6 4.Nc3 d5 5.Nh3 c6 6.Bd2 Bd6 7.Qc2 O-O 8.O-O-O Qe7\n9.f3 dxc4 10.e4 fxe4 11.Nxe4 b5 12.Nxd6 Qxd6 13.f4 Na6 14.Be2 c5 15.Bf3 Rb8\n16.Bc3 Nb4 17.dxc5 Nxa2+ 18.Kb1 Nxc3+ 19.Qxc3 Qxc5 20.Rhe1 h6 21.Re5 Qc7\n22.g4 Bb7 23.Bxb7 Rxb7 24.g5 Nd5 25.Rdxd5 exd5 26.Qd4 c3 27.b3 Qd7 28.Nf2 c2+\n29.Kc1 hxg5 30.Rxg5 Qe6 31.Re5 Qd6 32.Kxc2 Rc7+ 33.Kd2 Qc5 34.Qxc5 Rxc5 35.Nd3 Rc6\n36.Rxd5 a6 37.h4 Rh6 38.h5 Rhf6 39.b4 Rf5 40.Rd6 R8f6 0-1", + }, + { + id: "1951-botvinnik-bronstein-17", + matchSlug: "1951-botvinnik-bronstein", + matchLabel: "1951 — Botvinnik vs Bronstein", + matchYear: 1951, + gameNumber: 17, + white: "Botvinnik, Mikhail", + black: "Bronstein, David I", + result: "0-1", + pgn: "[Event \"World Championship 19th\"]\n[Site \"Moscow\"]\n[Date \"1951.??.??\"]\n[Round \"17\"]\n[White \"Botvinnik, Mikhail\"]\n[Black \"Bronstein, David I\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"E45\"]\n\n1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 b6 5.Ne2 Ba6 6.a3 Be7 7.Ng3 d5 8.cxd5 Bxf1\n9.Nxf1 exd5 10.Ng3 Qd7 11.Qf3 Nc6 12.O-O g6 13.Bd2 O-O 14.Nce2 h5 15.Rfc1 h4\n16.Nf1 Ne4 17.Nf4 a5 18.Rc2 Bd8 19.Be1 Ne7 20.Qe2 Nd6 21.f3 g5 22.Nd3 Qe6\n23.a4 Ng6 24.h3 f5 25.Bc3 Bf6 26.Re1 Rae8 27.Qd1 Rf7 28.b3 Rfe7 29.Bb2 f4\n30.Ne5 Bxe5 31.dxe5 Nf7 32.exf4 Nxf4 33.Nh2 c5 34.Ng4 d4 35.Nf6+ Qxf6 0-1", + }, + { + id: "1951-botvinnik-bronstein-22", + matchSlug: "1951-botvinnik-bronstein", + matchLabel: "1951 — Botvinnik vs Bronstein", + matchYear: 1951, + gameNumber: 22, + white: "Bronstein, David I", + black: "Botvinnik, Mikhail", + result: "1-0", + pgn: "[Event \"World Championship 19th\"]\n[Site \"Moscow\"]\n[Date \"1951.??.??\"]\n[Round \"22\"]\n[White \"Bronstein, David I\"]\n[Black \"Botvinnik, Mikhail\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"A91\"]\n\n1.d4 e6 2.c4 f5 3.g3 Nf6 4.Bg2 Be7 5.Nc3 O-O 6.e3 d5 7.Nge2 c6 8.b3 Ne4 9.O-O Nd7\n10.Bb2 Ndf6 11.Qd3 g5 12.cxd5 exd5 13.f3 Nxc3 14.Bxc3 g4 15.fxg4 Nxg4 16.Bh3 Nh6\n17.Nf4 Bd6 18.b4 a6 19.a4 Qe7 20.Rab1 b5 21.Bg2 Ng4 22.Bd2 Nf6 23.Rb2 Bd7\n24.Ra1 Ne4 25.Be1 Rfe8 26.Qb3 Kh8 27.Rba2 Qf8 28.Nd3 Rab8 29.axb5 axb5 30.Ra7 Re7\n31.Ne5 Be8 32.g4 fxg4 33.Bxe4 dxe4 34.Bh4 Rxe5 35.dxe5 Bxe5 36.Rf1 Qg8 37.Bg3 Bg7\n38.Qxg8+ 1-0", + }, + { + id: "1960-tal-botvinnik-01", + matchSlug: "1960-tal-botvinnik", + matchLabel: "1960 — Tal vs Botvinnik", + matchYear: 1960, + gameNumber: 1, + white: "Tal, Mihail", + black: "Botvinnik, Mikhail", + result: "1-0", + pgn: "[Event \"World Championship 23th\"]\n[Site \"Moscow\"]\n[Date \"1960.??.??\"]\n[Round \"1\"]\n[White \"Tal, Mihail\"]\n[Black \"Botvinnik, Mikhail\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"C18\"]\n\n1.e4 e6 2.d4 d5 3.Nc3 Bb4 4.e5 c5 5.a3 Bxc3+ 6.bxc3 Qc7 7.Qg4 f5 8.Qg3 Ne7\n9.Qxg7 Rg8 10.Qxh7 cxd4 11.Kd1 Bd7 12.Qh5+ Ng6 13.Ne2 d3 14.cxd3 Ba4+ 15.Ke1 Qxe5\n16.Bg5 Nc6 17.d4 Qc7 18.h4 e5 19.Rh3 Qf7 20.dxe5 Ncxe5 21.Re3 Kd7 22.Rb1 b6\n23.Nf4 Rae8 24.Rb4 Bc6 25.Qd1 Nxf4 26.Rxf4 Ng6 27.Rd4 Rxe3+ 28.fxe3 Kc7 29.c4 dxc4\n30.Bxc4 Qg7 31.Bxg8 Qxg8 32.h5 1-0", + }, + { + id: "1960-tal-botvinnik-06", + matchSlug: "1960-tal-botvinnik", + matchLabel: "1960 — Tal vs Botvinnik", + matchYear: 1960, + gameNumber: 6, + white: "Botvinnik, Mikhail", + black: "Tal, Mihail", + result: "0-1", + pgn: "[Event \"World Championship 23th\"]\n[Site \"Moscow\"]\n[Date \"1960.??.??\"]\n[Round \"6\"]\n[White \"Botvinnik, Mikhail\"]\n[Black \"Tal, Mihail\"]\n[Result \"0-1\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"E69\"]\n\n1.c4 Nf6 2.Nf3 g6 3.g3 Bg7 4.Bg2 O-O 5.d4 d6 6.Nc3 Nbd7 7.O-O e5 8.e4 c6\n9.h3 Qb6 10.d5 cxd5 11.cxd5 Nc5 12.Ne1 Bd7 13.Nd3 Nxd3 14.Qxd3 Rfc8 15.Rb1 Nh5\n16.Be3 Qb4 17.Qe2 Rc4 18.Rfc1 Rac8 19.Kh2 f5 20.exf5 Bxf5 21.Ra1 Nf4 22.gxf4 exf4\n23.Bd2 Qxb2 24.Rab1 f3 25.Rxb2 fxe2 26.Rb3 Rd4 27.Be1 Be5+ 28.Kg1 Bf4 29.Nxe2 Rxc1\n30.Nxd4 Rxe1+ 31.Bf1 Be4 32.Ne2 Be5 33.f4 Bf6 34.Rxb7 Bxd5 35.Rc7 Bxa2 36.Rxa7 Bc4\n37.Ra8+ Kf7 38.Ra7+ Ke6 39.Ra3 d5 40.Kf2 Bh4+ 41.Kg2 Kd6 42.Ng3 Bxg3 43.Bxc4 dxc4\n44.Kxg3 Kd5 45.Ra7 c3 46.Rc7 Kd4 0-1", + }, + { + id: "1960-tal-botvinnik-17", + matchSlug: "1960-tal-botvinnik", + matchLabel: "1960 — Tal vs Botvinnik", + matchYear: 1960, + gameNumber: 17, + white: "Tal, Mihail", + black: "Botvinnik, Mikhail", + result: "1-0", + pgn: "[Event \"World Championship 23th\"]\n[Site \"Moscow\"]\n[Date \"1960.??.??\"]\n[Round \"17\"]\n[White \"Tal, Mihail\"]\n[Black \"Botvinnik, Mikhail\"]\n[Result \"1-0\"]\n[WhiteElo \"\"]\n[BlackElo \"\"]\n[ECO \"B18\"]\n\n1.e4 c6 2.d4 d5 3.Nc3 dxe4 4.Nxe4 Bf5 5.Ng3 Bg6 6.Bc4 e6 7.N1e2 Nf6 8.Nf4 Bd6\n9.Nxg6 hxg6 10.Bg5 Nbd7 11.O-O Qa5 12.f4 O-O-O 13.a3 Qc7 14.b4 Nb6 15.Be2 Be7\n16.Qd3 Nfd5 17.Bxe7 Qxe7 18.c4 Nf6 19.Rab1 Qd7 20.Rbd1 Kb8 21.Qb3 Qc7 22.a4 Rh4\n23.a5 Nc8 24.Qe3 Ne7 25.Qe5 Rhh8 26.b5 cxb5 27.Qxb5 a6 28.Qb2 Rd7 29.c5 Ka8\n30.Bf3 Nc6 31.Bxc6 Qxc6 32.Rf3 Qa4 33.Rfd3 Rc8 34.Rb1 Qxa5 35.Rb3 Qc7 36.Qa3 Ka7\n37.Rb6 Qxf4 38.Ne2 Qe4 39.Qb3 Qd5 40.Rxa6+ Kb8 41.Qa4 1-0", + }, + { + id: "1972-fischer-spassky-01", + matchSlug: "1972-fischer-spassky", + matchLabel: "1972 — Fischer vs Spassky", + matchYear: 1972, + gameNumber: 1, + white: "Spassky, Boris V", + black: "Fischer, Robert James", + result: "1-0", + pgn: "[Event \"World Championship 28th\"]\n[Site \"Reykjavik\"]\n[Date \"1972.??.??\"]\n[Round \"1\"]\n[White \"Spassky, Boris V\"]\n[Black \"Fischer, Robert James\"]\n[Result \"1-0\"]\n[WhiteElo \"2660\"]\n[BlackElo \"2785\"]\n[ECO \"E56\"]\n\n1.d4 Nf6 2.c4 e6 3.Nf3 d5 4.Nc3 Bb4 5.e3 O-O 6.Bd3 c5 7.O-O Nc6 8.a3 Ba5\n9.Ne2 dxc4 10.Bxc4 Bb6 11.dxc5 Qxd1 12.Rxd1 Bxc5 13.b4 Be7 14.Bb2 Bd7 15.Rac1 Rfd8\n16.Ned4 Nxd4 17.Nxd4 Ba4 18.Bb3 Bxb3 19.Nxb3 Rxd1+ 20.Rxd1 Rc8 21.Kf1 Kf8\n22.Ke2 Ne4 23.Rc1 Rxc1 24.Bxc1 f6 25.Na5 Nd6 26.Kd3 Bd8 27.Nc4 Bc7 28.Nxd6 Bxd6\n29.b5 Bxh2 30.g3 h5 31.Ke2 h4 32.Kf3 Ke7 33.Kg2 hxg3 34.fxg3 Bxg3 35.Kxg3 Kd6\n36.a4 Kd5 37.Ba3 Ke4 38.Bc5 a6 39.b6 f5 40.Kh4 f4 41.exf4 Kxf4 42.Kh5 Kf5\n43.Be3 Ke4 44.Bf2 Kf5 45.Bh4 e5 46.Bg5 e4 47.Be3 Kf6 48.Kg4 Ke5 49.Kg5 Kd5\n50.Kf5 a5 51.Bf2 g5 52.Kxg5 Kc4 53.Kf5 Kb4 54.Kxe4 Kxa4 55.Kd5 Kb5 56.Kd6 1-0", + }, + { + id: "1972-fischer-spassky-03", + matchSlug: "1972-fischer-spassky", + matchLabel: "1972 — Fischer vs Spassky", + matchYear: 1972, + gameNumber: 3, + white: "Spassky, Boris V", + black: "Fischer, Robert James", + result: "0-1", + pgn: "[Event \"World Championship 28th\"]\n[Site \"Reykjavik\"]\n[Date \"1972.??.??\"]\n[Round \"3\"]\n[White \"Spassky, Boris V\"]\n[Black \"Fischer, Robert James\"]\n[Result \"0-1\"]\n[WhiteElo \"2660\"]\n[BlackElo \"2785\"]\n[ECO \"A77\"]\n\n1.d4 Nf6 2.c4 e6 3.Nf3 c5 4.d5 exd5 5.cxd5 d6 6.Nc3 g6 7.Nd2 Nbd7 8.e4 Bg7\n9.Be2 O-O 10.O-O Re8 11.Qc2 Nh5 12.Bxh5 gxh5 13.Nc4 Ne5 14.Ne3 Qh4 15.Bd2 Ng4\n16.Nxg4 hxg4 17.Bf4 Qf6 18.g3 Bd7 19.a4 b6 20.Rfe1 a6 21.Re2 b5 22.Rae1 Qg6\n23.b3 Re7 24.Qd3 Rb8 25.axb5 axb5 26.b4 c4 27.Qd2 Rbe8 28.Re3 h5 29.R3e2 Kh7\n30.Re3 Kg8 31.R3e2 Bxc3 32.Qxc3 Rxe4 33.Rxe4 Rxe4 34.Rxe4 Qxe4 35.Bh6 Qg6\n36.Bc1 Qb1 37.Kf1 Bf5 38.Ke2 Qe4+ 39.Qe3 Qc2+ 40.Qd2 Qb3 41.Qd4 Bd3+ 0-1", + }, + { + id: "1972-fischer-spassky-06", + matchSlug: "1972-fischer-spassky", + matchLabel: "1972 — Fischer vs Spassky", + matchYear: 1972, + gameNumber: 6, + white: "Fischer, Robert James", + black: "Spassky, Boris V", + result: "1-0", + pgn: "[Event \"World Championship 28th\"]\n[Site \"Reykjavik\"]\n[Date \"1972.??.??\"]\n[Round \"6\"]\n[White \"Fischer, Robert James\"]\n[Black \"Spassky, Boris V\"]\n[Result \"1-0\"]\n[WhiteElo \"2785\"]\n[BlackElo \"2660\"]\n[ECO \"D59\"]\n\n1.c4 e6 2.Nf3 d5 3.d4 Nf6 4.Nc3 Be7 5.Bg5 O-O 6.e3 h6 7.Bh4 b6 8.cxd5 Nxd5\n9.Bxe7 Qxe7 10.Nxd5 exd5 11.Rc1 Be6 12.Qa4 c5 13.Qa3 Rc8 14.Bb5 a6 15.dxc5 bxc5\n16.O-O Ra7 17.Be2 Nd7 18.Nd4 Qf8 19.Nxe6 fxe6 20.e4 d4 21.f4 Qe7 22.e5 Rb8\n23.Bc4 Kh8 24.Qh3 Nf8 25.b3 a5 26.f5 exf5 27.Rxf5 Nh7 28.Rcf1 Qd8 29.Qg3 Re7\n30.h4 Rbb7 31.e6 Rbc7 32.Qe5 Qe8 33.a4 Qd8 34.R1f2 Qe8 35.R2f3 Qd8 36.Bd3 Qe8\n37.Qe4 Nf6 38.Rxf6 gxf6 39.Rxf6 Kg8 40.Bc4 Kh8 41.Qf4 1-0", + }, + { + id: "1972-fischer-spassky-08", + matchSlug: "1972-fischer-spassky", + matchLabel: "1972 — Fischer vs Spassky", + matchYear: 1972, + gameNumber: 8, + white: "Fischer, Robert James", + black: "Spassky, Boris V", + result: "1-0", + pgn: "[Event \"World Championship 28th\"]\n[Site \"Reykjavik\"]\n[Date \"1972.??.??\"]\n[Round \"8\"]\n[White \"Fischer, Robert James\"]\n[Black \"Spassky, Boris V\"]\n[Result \"1-0\"]\n[WhiteElo \"2785\"]\n[BlackElo \"2660\"]\n[ECO \"A39\"]\n\n1.c4 c5 2.Nc3 Nc6 3.Nf3 Nf6 4.g3 g6 5.Bg2 Bg7 6.O-O O-O 7.d4 cxd4 8.Nxd4 Nxd4\n9.Qxd4 d6 10.Bg5 Be6 11.Qf4 Qa5 12.Rac1 Rab8 13.b3 Rfc8 14.Qd2 a6 15.Be3 b5\n16.Ba7 bxc4 17.Bxb8 Rxb8 18.bxc4 Bxc4 19.Rfd1 Nd7 20.Nd5 Qxd2 21.Nxe7+ Kf8\n22.Rxd2 Kxe7 23.Rxc4 Rb1+ 24.Bf1 Nc5 25.Kg2 a5 26.e4 Ba1 27.f4 f6 28.Re2 Ke6\n29.Rec2 Bb2 30.Be2 h5 31.Rd2 Ba3 32.f5+ gxf5 33.exf5+ Ke5 34.Rcd4 Kxf5 35.Rd5+ Ke6\n36.Rxd6+ Ke7 37.Rc6 1-0", + }, + { + id: "1972-fischer-spassky-13", + matchSlug: "1972-fischer-spassky", + matchLabel: "1972 — Fischer vs Spassky", + matchYear: 1972, + gameNumber: 13, + white: "Spassky, Boris V", + black: "Fischer, Robert James", + result: "0-1", + pgn: "[Event \"World Championship 28th\"]\n[Site \"Reykjavik\"]\n[Date \"1972.??.??\"]\n[Round \"13\"]\n[White \"Spassky, Boris V\"]\n[Black \"Fischer, Robert James\"]\n[Result \"0-1\"]\n[WhiteElo \"2660\"]\n[BlackElo \"2785\"]\n[ECO \"B04\"]\n\n1.e4 Nf6 2.e5 Nd5 3.d4 d6 4.Nf3 g6 5.Bc4 Nb6 6.Bb3 Bg7 7.Nbd2 O-O 8.h3 a5\n9.a4 dxe5 10.dxe5 Na6 11.O-O Nc5 12.Qe2 Qe8 13.Ne4 Nbxa4 14.Bxa4 Nxa4 15.Re1 Nb6\n16.Bd2 a4 17.Bg5 h6 18.Bh4 Bf5 19.g4 Be6 20.Nd4 Bc4 21.Qd2 Qd7 22.Rad1 Rfe8\n23.f4 Bd5 24.Nc5 Qc8 25.Qc3 e6 26.Kh2 Nd7 27.Nd3 c5 28.Nb5 Qc6 29.Nd6 Qxd6\n30.exd6 Bxc3 31.bxc3 f6 32.g5 hxg5 33.fxg5 f5 34.Bg3 Kf7 35.Ne5+ Nxe5 36.Bxe5 b5\n37.Rf1 Rh8 38.Bf6 a3 39.Rf4 a2 40.c4 Bxc4 41.d7 Bd5 42.Kg3 Ra3+ 43.c3 Rha8\n44.Rh4 e5 45.Rh7+ Ke6 46.Re7+ Kd6 47.Rxe5 Rxc3+ 48.Kf2 Rc2+ 49.Ke1 Kxd7 50.Rexd5+ Kc6\n51.Rd6+ Kb7 52.Rd7+ Ka6 53.R7d2 Rxd2 54.Kxd2 b4 55.h4 Kb5 56.h5 c4 57.Ra1 gxh5\n58.g6 h4 59.g7 h3 60.Be7 Rg8 61.Bf8 h2 62.Kc2 Kc6 63.Rd1 b3+ 64.Kc3 h1=Q\n65.Rxh1 Kd5 66.Kb2 f4 67.Rd1+ Ke4 68.Rc1 Kd3 69.Rd1+ Ke2 70.Rc1 f3 71.Bc5 Rxg7\n72.Rxc4 Rd7 73.Re4+ Kf1 74.Bd4 f2 0-1", + }, + { + id: "1972-fischer-spassky-21", + matchSlug: "1972-fischer-spassky", + matchLabel: "1972 — Fischer vs Spassky", + matchYear: 1972, + gameNumber: 21, + white: "Spassky, Boris V", + black: "Fischer, Robert James", + result: "0-1", + pgn: "[Event \"World Championship 28th\"]\n[Site \"Reykjavik\"]\n[Date \"1972.??.??\"]\n[Round \"21\"]\n[White \"Spassky, Boris V\"]\n[Black \"Fischer, Robert James\"]\n[Result \"0-1\"]\n[WhiteElo \"2660\"]\n[BlackElo \"2785\"]\n[ECO \"B46\"]\n\n1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 a6 5.Nc3 Nc6 6.Be3 Nf6 7.Bd3 d5 8.exd5 exd5\n9.O-O Bd6 10.Nxc6 bxc6 11.Bd4 O-O 12.Qf3 Be6 13.Rfe1 c5 14.Bxf6 Qxf6 15.Qxf6 gxf6\n16.Rad1 Rfd8 17.Be2 Rab8 18.b3 c4 19.Nxd5 Bxd5 20.Rxd5 Bxh2+ 21.Kxh2 Rxd5\n22.Bxc4 Rd2 23.Bxa6 Rxc2 24.Re2 Rxe2 25.Bxe2 Rd8 26.a4 Rd2 27.Bc4 Ra2 28.Kg3 Kf8\n29.Kf3 Ke7 30.g4 f5 31.gxf5 f6 32.Bg8 h6 33.Kg3 Kd6 34.Kf3 Ra1 35.Kg2 Ke5\n36.Be6 Kf4 37.Bd7 Rb1 38.Be6 Rb2 39.Bc4 Ra2 40.Be6 h5 41.Bd7 0-1", + }, + { + id: "1985-kasparov-karpov-04", + matchSlug: "1985-kasparov-karpov", + matchLabel: "1985 — Kasparov vs Karpov", + matchYear: 1985, + gameNumber: 4, + white: "Karpov, Anatoly", + black: "Kasparov, Gary", + result: "1-0", + pgn: "[Event \"World Championship 32th-KK2\"]\n[Site \"Moscow\"]\n[Date \"1985.??.??\"]\n[Round \"4\"]\n[White \"Karpov, Anatoly\"]\n[Black \"Kasparov, Gary\"]\n[Result \"1-0\"]\n[WhiteElo \"2720\"]\n[BlackElo \"2700\"]\n[ECO \"D55\"]\n\n1.d4 d5 2.c4 e6 3.Nc3 Be7 4.Nf3 Nf6 5.Bg5 h6 6.Bxf6 Bxf6 7.e3 O-O 8.Qc2 Na6\n9.Rd1 c5 10.dxc5 Qa5 11.cxd5 Nxc5 12.Qd2 Rd8 13.Nd4 exd5 14.Be2 Qb6 15.O-O Ne4\n16.Qc2 Nxc3 17.Qxc3 Be6 18.Qc2 Rac8 19.Qb1 Rc7 20.Rd2 Rdc8 21.Nxe6 fxe6 22.Bg4 Rc4\n23.h3 Qc6 24.Qd3 Kh8 25.Rfd1 a5 26.b3 Rc3 27.Qe2 Rf8 28.Bh5 b5 29.Bg6 Bd8\n30.Bd3 b4 31.Qg4 Qe8 32.e4 Bg5 33.Rc2 Rxc2 34.Bxc2 Qc6 35.Qe2 Qc5 36.Rf1 Qc3\n37.exd5 exd5 38.Bb1 Qd2 39.Qe5 Rd8 40.Qf5 Kg8 41.Qe6+ Kh8 42.Qg6 Kg8 43.Qe6+ Kh8\n44.Bf5 Qc3 45.Qg6 Kg8 46.Be6+ Kh8 47.Bf5 Kg8 48.g3 Kf8 49.Kg2 Qf6 50.Qh7 Qf7\n51.h4 Bd2 52.Rd1 Bc3 53.Rd3 Rd6 54.Rf3 Ke7 55.Qh8 d4 56.Qc8 Rf6 57.Qc5+ Ke8\n58.Rf4 Qb7+ 59.Re4+ Kf7 60.Qc4+ Kf8 61.Bh7 Rf7 62.Qe6 Qd7 63.Qe5 1-0", + }, + { + id: "1985-kasparov-karpov-11", + matchSlug: "1985-kasparov-karpov", + matchLabel: "1985 — Kasparov vs Karpov", + matchYear: 1985, + gameNumber: 11, + white: "Kasparov, Gary", + black: "Karpov, Anatoly", + result: "1-0", + pgn: "[Event \"World Championship 32th-KK2\"]\n[Site \"Moscow\"]\n[Date \"1985.??.??\"]\n[Round \"11\"]\n[White \"Kasparov, Gary\"]\n[Black \"Karpov, Anatoly\"]\n[Result \"1-0\"]\n[WhiteElo \"2700\"]\n[BlackElo \"2720\"]\n[ECO \"E21\"]\n\n1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 O-O 5.Bg5 c5 6.e3 cxd4 7.exd4 h6 8.Bh4 d5\n9.Rc1 dxc4 10.Bxc4 Nc6 11.O-O Be7 12.Re1 b6 13.a3 Bb7 14.Bg3 Rc8 15.Ba2 Bd6\n16.d5 Nxd5 17.Nxd5 Bxg3 18.hxg3 exd5 19.Bxd5 Qf6 20.Qa4 Rfd8 21.Rcd1 Rd7\n22.Qg4 Rcd8 23.Qxd7 Rxd7 24.Re8+ Kh7 25.Be4+ 1-0", + }, + { + id: "1985-kasparov-karpov-16", + matchSlug: "1985-kasparov-karpov", + matchLabel: "1985 — Kasparov vs Karpov", + matchYear: 1985, + gameNumber: 16, + white: "Karpov, Anatoly", + black: "Kasparov, Gary", + result: "0-1", + pgn: "[Event \"World Championship 32th-KK2\"]\n[Site \"Moscow\"]\n[Date \"1985.??.??\"]\n[Round \"16\"]\n[White \"Karpov, Anatoly\"]\n[Black \"Kasparov, Gary\"]\n[Result \"0-1\"]\n[WhiteElo \"2720\"]\n[BlackElo \"2700\"]\n[ECO \"B44\"]\n\n1.e4 c5 2.Nf3 e6 3.d4 cxd4 4.Nxd4 Nc6 5.Nb5 d6 6.c4 Nf6 7.N1c3 a6 8.Na3 d5\n9.cxd5 exd5 10.exd5 Nb4 11.Be2 Bc5 12.O-O O-O 13.Bf3 Bf5 14.Bg5 Re8 15.Qd2 b5\n16.Rad1 Nd3 17.Nab1 h6 18.Bh4 b4 19.Na4 Bd6 20.Bg3 Rc8 21.b3 g5 22.Bxd6 Qxd6\n23.g3 Nd7 24.Bg2 Qf6 25.a3 a5 26.axb4 axb4 27.Qa2 Bg6 28.d6 g4 29.Qd2 Kg7\n30.f3 Qxd6 31.fxg4 Qd4+ 32.Kh1 Nf6 33.Rf4 Ne4 34.Qxd3 Nf2+ 35.Rxf2 Bxd3 36.Rfd2 Qe3\n37.Rxd3 Rc1 38.Nb2 Qf2 39.Nd2 Rxd1+ 40.Nxd1 Re1+ 0-1", + }, + { + id: "1985-kasparov-karpov-19", + matchSlug: "1985-kasparov-karpov", + matchLabel: "1985 — Kasparov vs Karpov", + matchYear: 1985, + gameNumber: 19, + white: "Kasparov, Gary", + black: "Karpov, Anatoly", + result: "1-0", + pgn: "[Event \"World Championship 32th-KK2\"]\n[Site \"Moscow\"]\n[Date \"1985.??.??\"]\n[Round \"19\"]\n[White \"Kasparov, Gary\"]\n[Black \"Karpov, Anatoly\"]\n[Result \"1-0\"]\n[WhiteElo \"2700\"]\n[BlackElo \"2720\"]\n[ECO \"E21\"]\n\n1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.Nf3 Ne4 5.Qc2 f5 6.g3 Nc6 7.Bg2 O-O 8.O-O Bxc3\n9.bxc3 Na5 10.c5 d6 11.c4 b6 12.Bd2 Nxd2 13.Nxd2 d5 14.cxd5 exd5 15.e3 Be6\n16.Qc3 Rf7 17.Rfc1 Rb8 18.Rab1 Re7 19.a4 Bf7 20.Bf1 h6 21.Bd3 Qd7 22.Qc2 Be6\n23.Bb5 Qd8 24.Rd1 g5 25.Nf3 Rg7 26.Ne5 f4 27.Bf1 Qf6 28.Bg2 Rd8 29.e4 dxe4\n30.Bxe4 Re7 31.Qc3 Bd5 32.Re1 Kg7 33.Ng4 Qf7 34.Bxd5 Rxd5 35.Rxe7 Qxe7 36.Re1 Qd8\n37.Ne5 Qf6 38.cxb6 Qxb6 39.gxf4 Rxd4 40.Nf3 Nb3 41.Rb1 Qf6 42.Qxc7+ 1-0", + }, + { + id: "1985-kasparov-karpov-24", + matchSlug: "1985-kasparov-karpov", + matchLabel: "1985 — Kasparov vs Karpov", + matchYear: 1985, + gameNumber: 24, + white: "Karpov, Anatoly", + black: "Kasparov, Gary", + result: "0-1", + pgn: "[Event \"World Championship 32th-KK2\"]\n[Site \"Moscow\"]\n[Date \"1985.??.??\"]\n[Round \"24\"]\n[White \"Karpov, Anatoly\"]\n[Black \"Kasparov, Gary\"]\n[Result \"0-1\"]\n[WhiteElo \"2720\"]\n[BlackElo \"2700\"]\n[ECO \"B85\"]\n\n1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.Be2 e6 7.O-O Be7 8.f4 O-O\n9.Kh1 Qc7 10.a4 Nc6 11.Be3 Re8 12.Bf3 Rb8 13.Qd2 Bd7 14.Nb3 b6 15.g4 Bc8\n16.g5 Nd7 17.Qf2 Bf8 18.Bg2 Bb7 19.Rad1 g6 20.Bc1 Rbc8 21.Rd3 Nb4 22.Rh3 Bg7\n23.Be3 Re7 24.Kg1 Rce8 25.Rd1 f5 26.gxf6 Nxf6 27.Rg3 Rf7 28.Bxb6 Qb8 29.Be3 Nh5\n30.Rg4 Nf6 31.Rh4 g5 32.fxg5 Ng4 33.Qd2 Nxe3 34.Qxe3 Nxc2 35.Qb6 Ba8 36.Rxd6 Rb7\n37.Qxa6 Rxb3 38.Rxe6 Rxb2 39.Qc4 Kh8 40.e5 Qa7+ 41.Kh1 Bxg2+ 42.Kxg2 Nd4+ 0-1", + }, + { + id: "1990-kasparov-karpov-02", + matchSlug: "1990-kasparov-karpov", + matchLabel: "1990 — Kasparov vs Karpov", + matchYear: 1990, + gameNumber: 2, + white: "Kasparov, Gary", + black: "Karpov, Anatoly", + result: "1-0", + pgn: "[Event \"World Championship 35th-KK5\"]\n[Site \"Lyon/New York\"]\n[Date \"1990.??.??\"]\n[Round \"2\"]\n[White \"Kasparov, Gary\"]\n[Black \"Karpov, Anatoly\"]\n[Result \"1-0\"]\n[WhiteElo \"2800\"]\n[BlackElo \"2730\"]\n[ECO \"C92\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 O-O\n9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 exd4 14.cxd4 Nb4 15.Bb1 bxa4\n16.Rxa4 a5 17.Ra3 Ra6 18.Nh2 g6 19.f3 Qd7 20.Nc4 Qb5 21.Rc3 Bc8 22.Be3 Kh7\n23.Qc1 c6 24.Ng4 Ng8 25.Bxh6 Bxh6 26.Nxh6 Nxh6 27.Nxd6 Qb6 28.Nxe8 Qxd4+\n29.Kh1 Qd8 30.Rd1 Qxe8 31.Qg5 Ra7 32.Rd8 Qe6 33.f4 Ba6 34.f5 Qe7 35.Qd2 Qe5\n36.Qf2 Qe7 37.Qd4 Ng8 38.e5 Nd5 39.fxg6+ fxg6 40.Rxc6 Qxd8 41.Qxa7+ Nde7\n42.Rxa6 Qd1+ 43.Qg1 Qd2 44.Qf1 1-0", + }, + { + id: "1990-kasparov-karpov-18", + matchSlug: "1990-kasparov-karpov", + matchLabel: "1990 — Kasparov vs Karpov", + matchYear: 1990, + gameNumber: 18, + white: "Kasparov, Gary", + black: "Karpov, Anatoly", + result: "1-0", + pgn: "[Event \"World Championship 35th-KK5\"]\n[Site \"Lyon/New York\"]\n[Date \"1990.??.??\"]\n[Round \"18\"]\n[White \"Kasparov, Gary\"]\n[Black \"Karpov, Anatoly\"]\n[Result \"1-0\"]\n[WhiteElo \"2800\"]\n[BlackElo \"2730\"]\n[ECO \"C92\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 O-O\n9.h3 Nd7 10.d4 Bf6 11.a4 Bb7 12.Na3 exd4 13.cxd4 Nb6 14.Bf4 bxa4 15.Bxa4 Nxa4\n16.Qxa4 a5 17.Bd2 Re8 18.d5 Nb4 19.Bxb4 axb4 20.Qxb4 Rb8 21.Qc4 Qc8 22.Nd4 Ba6\n23.Qc3 c5 24.dxc6 Bxd4 25.Qxd4 Qxc6 26.b4 h6 27.Re3 Re6 28.f3 Rc8 29.Rb3 Bb5\n30.Rb2 Qb7 31.Nc2 Qe7 32.Qf2 Rg6 33.Ne3 Qe5 34.Rbb1 Bd7 35.Ra5 Qe7 36.Ra7 Qd8\n37.Nd5 Kh7 38.Kh2 Rb8 39.f4 Re6 40.Qd4 Qe8 41.Re1 Bc6 42.Qd3 Qf8 43.Rc1 Bxd5\n44.exd5+ Rg6 45.Qf5 Kg8 46.Rac7 Rf6 47.Qd7 Rd8 48.Qxd8 Qxd8 49.Rc8 Qf8 50.R1c4 Rf5\n51.Rxf8+ Kxf8 52.Rd4 h5 53.b5 Ke7 54.b6 Kd7 55.g4 hxg4 56.hxg4 Rf6 57.Rc4 1-0", + }, + { + id: "1990-kasparov-karpov-20", + matchSlug: "1990-kasparov-karpov", + matchLabel: "1990 — Kasparov vs Karpov", + matchYear: 1990, + gameNumber: 20, + white: "Kasparov, Gary", + black: "Karpov, Anatoly", + result: "1-0", + pgn: "[Event \"World Championship 35th-KK5\"]\n[Site \"Lyon/New York\"]\n[Date \"1990.??.??\"]\n[Round \"20\"]\n[White \"Kasparov, Gary\"]\n[Black \"Karpov, Anatoly\"]\n[Result \"1-0\"]\n[WhiteElo \"2800\"]\n[BlackElo \"2730\"]\n[ECO \"C92\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O Be7 6.Re1 b5 7.Bb3 d6 8.c3 O-O\n9.h3 Bb7 10.d4 Re8 11.Nbd2 Bf8 12.a4 h6 13.Bc2 exd4 14.cxd4 Nb4 15.Bb1 c5\n16.d5 Nd7 17.Ra3 f5 18.Rae3 Nf6 19.Nh2 Kh8 20.b3 bxa4 21.bxa4 c4 22.Bb2 fxe4\n23.Nxe4 Nfxd5 24.Rg3 Re6 25.Ng4 Qe8 26.Nxh6 c3 27.Nf5 cxb2 28.Qg4 Bc8 29.Qh4+ Rh6\n30.Nxh6 gxh6 31.Kh2 Qe5 32.Ng5 Qf6 33.Re8 Bf5 34.Qxh6+ Qxh6 35.Nf7+ Kh7 36.Bxf5+ Qg6\n37.Bxg6+ Kg7 38.Rxa8 Be7 39.Rb8 a5 40.Be4+ Kxf7 41.Bxd5+ 1-0", + }, + { + id: "2000-kramnik-kasparov-01", + matchSlug: "2000-kramnik-kasparov", + matchLabel: "2000 — Kramnik vs Kasparov", + matchYear: 2000, + gameNumber: 1, + white: "Kasparov,G", + black: "Kramnik,V", + result: "1/2-1/2", + pgn: "[Event \"Braingames WCC\"]\n[Site \"London ENG\"]\n[Date \"2000.10.08\"]\n[Round \"1\"]\n[White \"Kasparov,G\"]\n[Black \"Kramnik,V\"]\n[Result \"1/2-1/2\"]\n[WhiteElo \"2849\"]\n[BlackElo \"2770\"]\n[ECO \"C67\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8\n9.Nc3 Bd7 10.b3 h6 11.Bb2 Kc8 12.h3 b6 13.Rad1 Ne7 14.Ne2 Ng6 15.Ne1 h5 16.Nd3 c5\n17.c4 a5 18.a4 h4 19.Nc3 Be6 20.Nd5 Kb7 21.Ne3 Rh5 22.Bc3 Re8 23.Rd2 Kc8\n24.f4 Ne7 25.Nf2 Nf5 1/2-1/2", + }, + { + id: "2000-kramnik-kasparov-02", + matchSlug: "2000-kramnik-kasparov", + matchLabel: "2000 — Kramnik vs Kasparov", + matchYear: 2000, + gameNumber: 2, + white: "Kramnik,V", + black: "Kasparov,G", + result: "1-0", + pgn: "[Event \"Braingames WCC\"]\n[Site \"London ENG\"]\n[Date \"2000.10.10\"]\n[Round \"2\"]\n[White \"Kramnik,V\"]\n[Black \"Kasparov,G\"]\n[Result \"1-0\"]\n[WhiteElo \"2770\"]\n[BlackElo \"2849\"]\n[ECO \"D85\"]\n\n1.d4 Nf6 2.c4 g6 3.Nc3 d5 4.cxd5 Nxd5 5.e4 Nxc3 6.bxc3 Bg7 7.Nf3 c5 8.Be3 Qa5\n9.Qd2 Bg4 10.Rb1 a6 11.Rxb7 Bxf3 12.gxf3 Nc6 13.Bc4 O-O 14.O-O cxd4 15.cxd4 Bxd4\n16.Bd5 Bc3 17.Qc1 Nd4 18.Bxd4 Bxd4 19.Rxe7 Ra7 20.Rxa7 Bxa7 21.f4 Qd8 22.Qc3 Bb8\n23.Qf3 Qh4 24.e5 g5 25.Re1 Qxf4 26.Qxf4 gxf4 27.e6 fxe6 28.Rxe6 Kg7 29.Rxa6 Rf5\n30.Be4 Re5 31.f3 Re7 32.a4 Ra7 33.Rb6 Be5 34.Rb4 Rd7 35.Kg2 Rd2+ 36.Kh3 h5\n37.Rb5 Kf6 38.a5 Ra2 39.Rb6+ Ke7 40.Bd5 1-0", + }, + { + id: "2000-kramnik-kasparov-10", + matchSlug: "2000-kramnik-kasparov", + matchLabel: "2000 — Kramnik vs Kasparov", + matchYear: 2000, + gameNumber: 10, + white: "Kramnik,V", + black: "Kasparov,G", + result: "1-0", + pgn: "[Event \"Braingames WCC\"]\n[Site \"London ENG\"]\n[Date \"2000.10.24\"]\n[Round \"10\"]\n[White \"Kramnik,V\"]\n[Black \"Kasparov,G\"]\n[Result \"1-0\"]\n[WhiteElo \"2770\"]\n[BlackElo \"2849\"]\n[ECO \"E54\"]\n\n1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Bd3 d5 6.Nf3 c5 7.O-O cxd4 8.exd4 dxc4\n9.Bxc4 b6 10.Bg5 Bb7 11.Re1 Nbd7 12.Rc1 Rc8 13.Qb3 Be7 14.Bxf6 Nxf6 15.Bxe6 fxe6\n16.Qxe6+ Kh8 17.Qxe7 Bxf3 18.gxf3 Qxd4 19.Nb5 Qxb2 20.Rxc8 Rxc8 21.Nd6 Rb8\n22.Nf7+ Kg8 23.Qe6 Rf8 24.Nd8+ Kh8 25.Qe7 1-0", + }, + { + id: "2000-kramnik-kasparov-13", + matchSlug: "2000-kramnik-kasparov", + matchLabel: "2000 — Kramnik vs Kasparov", + matchYear: 2000, + gameNumber: 13, + white: "Kasparov,G", + black: "Kramnik,V", + result: "1/2-1/2", + pgn: "[Event \"Braingames WCC\"]\n[Site \"London ENG\"]\n[Date \"2000.10.29\"]\n[Round \"13\"]\n[White \"Kasparov,G\"]\n[Black \"Kramnik,V\"]\n[Result \"1/2-1/2\"]\n[WhiteElo \"2849\"]\n[BlackElo \"2770\"]\n[ECO \"C67\"]\n\n1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Nxe4 5.d4 Nd6 6.Bxc6 dxc6 7.dxe5 Nf5 8.Qxd8+ Kxd8\n9.Nc3 h6 10.h3 Ke8 11.Ne4 c5 12.c3 b6 13.Re1 Be6 14.g4 1/2-1/2", + }, + { + id: "2008-anand-kramnik-03", + matchSlug: "2008-anand-kramnik", + matchLabel: "2008 — Anand vs Kramnik", + matchYear: 2008, + gameNumber: 3, + white: "Kramnik,V", + black: "Anand,V", + result: "0-1", + pgn: "[Event \"WCh\"]\n[Site \"Bonn GER\"]\n[Date \"2008.10.17\"]\n[Round \"3\"]\n[White \"Kramnik,V\"]\n[Black \"Anand,V\"]\n[Result \"0-1\"]\n[WhiteElo \"2772\"]\n[BlackElo \"2783\"]\n[EventDate \"2008.10.14\"]\n[ECO \"D49\"]\n\n1. d4 d5 2. c4 c6 3. Nf3 Nf6 4. Nc3 e6 5. e3 Nbd7 6. Bd3 dxc4 7. Bxc4 b5 8.\nBd3 a6 9. e4 c5 10. e5 cxd4 11. Nxb5 axb5 12. exf6 gxf6 13. O-O Qb6 14. Qe2\nBb7 15. Bxb5 Bd6 16. Rd1 Rg8 17. g3 Rg4 18. Bf4 Bxf4 19. Nxd4 h5 20. Nxe6\nfxe6 21. Rxd7 Kf8 22. Qd3 Rg7 23. Rxg7 Kxg7 24. gxf4 Rd8 25. Qe2 Kh6 26.\nKf1 Rg8 27. a4 Bg2+ 28. Ke1 Bh3 29. Ra3 Rg1+ 30. Kd2 Qd4+ 31. Kc2 Bg4 32.\nf3 Bf5+ 33. Bd3 Bh3 34. a5 Rg2 35. a6 Rxe2+ 36. Bxe2 Bf5+ 37. Kb3 Qe3+ 38.\nKa2 Qxe2 39. a7 Qc4+ 40. Ka1 Qf1+ 41. Ka2 Bb1+ 0-1", + }, + { + id: "2008-anand-kramnik-05", + matchSlug: "2008-anand-kramnik", + matchLabel: "2008 — Anand vs Kramnik", + matchYear: 2008, + gameNumber: 5, + white: "Kramnik,V", + black: "Anand,V", + result: "0-1", + pgn: "[Event \"WCh\"]\n[Site \"Bonn GER\"]\n[Date \"2008.10.20\"]\n[Round \"5\"]\n[White \"Kramnik,V\"]\n[Black \"Anand,V\"]\n[Result \"0-1\"]\n[WhiteElo \"2772\"]\n[BlackElo \"2783\"]\n[EventDate \"2008.10.14\"]\n[ECO \"D49\"]\n\n1. d4 d5 2. c4 c6 3. Nf3 Nf6 4. Nc3 e6 5. e3 Nbd7 6. Bd3 dxc4 7. Bxc4 b5 8.\nBd3 a6 9. e4 c5 10. e5 cxd4 11. Nxb5 axb5 12. exf6 gxf6 13. O-O Qb6 14. Qe2\nBb7 15. Bxb5 Rg8 16. Bf4 Bd6 17. Bg3 f5 18. Rfc1 f4 19. Bh4 Be7 20. a4 Bxh4\n21. Nxh4 Ke7 22. Ra3 Rac8 23. Rxc8 Rxc8 24. Ra1 Qc5 25. Qg4 Qe5 26. Nf3 Qf6\n27. Re1 Rc5 28. b4 Rc3 29. Nxd4 Qxd4 30. Rd1 Nf6 31. Rxd4 Nxg4 32. Rd7+ Kf6\n33. Rxb7 Rc1+ 34. Bf1 Ne3 35. fxe3 fxe3 0-1", + }, + { + id: "2008-anand-kramnik-06", + matchSlug: "2008-anand-kramnik", + matchLabel: "2008 — Anand vs Kramnik", + matchYear: 2008, + gameNumber: 6, + white: "Anand,V", + black: "Kramnik,V", + result: "1-0", + pgn: "[Event \"WCh\"]\n[Site \"Bonn GER\"]\n[Date \"2008.10.21\"]\n[Round \"6\"]\n[White \"Anand,V\"]\n[Black \"Kramnik,V\"]\n[Result \"1-0\"]\n[WhiteElo \"2783\"]\n[BlackElo \"2772\"]\n[EventDate \"2008.10.14\"]\n[ECO \"E34\"]\n\n1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. Qc2 d5 5. cxd5 Qxd5 6. Nf3 Qf5 7. Qb3 Nc6\n8. Bd2 O-O 9. h3 b6 10. g4 Qa5 11. Rc1 Bb7 12. a3 Bxc3 13. Bxc3 Qd5 14.\nQxd5 Nxd5 15. Bd2 Nf6 16. Rg1 Rac8 17. Bg2 Ne7 18. Bb4 c5 19. dxc5 Rfd8 20.\nNe5 Bxg2 21. Rxg2 bxc5 22. Rxc5 Ne4 23. Rxc8 Rxc8 24. Nd3 Nd5 25. Bd2 Rc2\n26. Bc1 f5 27. Kd1 Rc8 28. f3 Nd6 29. Ke1 a5 30. e3 e5 31. gxf5 e4 32. fxe4\nNxe4 33. Bd2 a4 34. Nf2 Nd6 35. Rg4 Nc4 36. e4 Nf6 37. Rg3 Nxb2 38. e5 Nd5\n39. f6 Kf7 40. Ne4 Nc4 41. fxg7 Kg8 42. Rd3 Ndb6 43. Bh6 Nxe5 44. Nf6+ Kf7\n45. Rc3 Rxc3 46. g8=Q+ Kxf6 47. Bg7+ 1-0", + }, + { + id: "2010-anand-topalov-04", + matchSlug: "2010-anand-topalov", + matchLabel: "2010 — Anand vs Topalov", + matchYear: 2010, + gameNumber: 4, + white: "Anand,V", + black: "Topalov,V", + result: "1-0", + pgn: "[Event \"WCh\"]\n[Site \"Sofia BUL\"]\n[Date \"2010.04.28\"]\n[Round \"4\"]\n[White \"Anand,V\"]\n[Black \"Topalov,V\"]\n[Result \"1-0\"]\n[WhiteElo \"2787\"]\n[BlackElo \"2805\"]\n[EventDate \"2010.04.24\"]\n[ECO \"E04\"]\n\n1. d4 Nf6 2. c4 e6 3. Nf3 d5 4. g3 dxc4 5. Bg2 Bb4+ 6. Bd2 a5 7. Qc2 Bxd2+\n8. Qxd2 c6 9. a4 b5 10. Na3 Bd7 11. Ne5 Nd5 12. e4 Nb4 13. O-O O-O 14. Rfd1\nBe8 15. d5 Qd6 16. Ng4 Qc5 17. Ne3 N8a6 18. dxc6 bxa4 19. Naxc4 Bxc6 20.\nRac1 h6 21. Nd6 Qa7 22. Ng4 Rad8 23. Nxh6+ gxh6 24. Qxh6 f6 25. e5 Bxg2 26.\nexf6 Rxd6 27. Rxd6 Be4 28. Rxe6 Nd3 29. Rc2 Qh7 30. f7+ Qxf7 31. Rxe4 Qf5\n32. Re7 1-0", + }, + { + id: "2010-anand-topalov-12", + matchSlug: "2010-anand-topalov", + matchLabel: "2010 — Anand vs Topalov", + matchYear: 2010, + gameNumber: 12, + white: "Topalov,V", + black: "Anand,V", + result: "0-1", + pgn: "[Event \"WCh\"]\n[Site \"Sofia BUL\"]\n[Date \"2010.05.11\"]\n[Round \"12\"]\n[White \"Topalov,V\"]\n[Black \"Anand,V\"]\n[Result \"0-1\"]\n[WhiteElo \"2805\"]\n[BlackElo \"2787\"]\n[EventDate \"2010.04.24\"]\n[ECO \"D56\"]\n\n1. d4 d5 2. c4 e6 3. Nf3 Nf6 4. Nc3 Be7 5. Bg5 h6 6. Bh4 O-O 7. e3 Ne4 8.\nBxe7 Qxe7 9. Rc1 c6 10. Be2 Nxc3 11. Rxc3 dxc4 12. Bxc4 Nd7 13. O-O b6 14.\nBd3 c5 15. Be4 Rb8 16. Qc2 Nf6 17. dxc5 Nxe4 18. Qxe4 bxc5 19. Qc2 Bb7 20.\nNd2 Rfd8 21. f3 Ba6 22. Rf2 Rd7 23. g3 Rbd8 24. Kg2 Bd3 25. Qc1 Ba6 26. Ra3\nBb7 27. Nb3 Rc7 28. Na5 Ba8 29. Nc4 e5 30. e4 f5 31. exf5 e4 32. fxe4 Qxe4+\n33. Kh3 Rd4 34. Ne3 Qe8 35. g4 h5 36. Kh4 g5+ 37. fxg6 Qxg6 38. Qf1 Rxg4+\n39. Kh3 Re7 40. Rf8+ Kg7 41. Nf5+ Kh7 42. Rg3 Rxg3+ 43. hxg3 Qg4+ 44. Kh2\nRe2+ 45. Kg1 Rg2+ 46. Qxg2 Bxg2 47. Kxg2 Qe2+ 48. Kh3 c4 49. a4 a5 50. Rf6\nKg8 51. Nh6+ Kg7 52. Rb6 Qe4 53. Kh2 Kh7 54. Rd6 Qe5 55. Nf7 Qxb2+ 56. Kh3\nQg7 0-1", + }, + { + id: "2013-carlsen-anand-05", + matchSlug: "2013-carlsen-anand", + matchLabel: "2013 — Carlsen vs Anand", + matchYear: 2013, + gameNumber: 5, + white: "Carlsen, Magnus", + black: "Anand, Viswanathan", + result: "1-0", + pgn: "[Event \"WCh 2013\"]\n[Site \"Chennai IND\"]\n[Date \"2013.11.15\"]\n[Round \"5\"]\n[White \"Carlsen, Magnus\"]\n[Black \"Anand, Viswanathan\"]\n[Result \"1-0\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2870\"]\n[BlackElo \"2775\"]\n[ECO \"D31\"]\n[Opening \"QGD\"]\n[Variation \"semi-Slav, Marshall gambit\"]\n[WhiteFideId \"1503014\"]\n[BlackFideId \"5000017\"]\n[EventDate \"2013.11.09\"]\n\n1. c4 e6 2. d4 d5 3. Nc3 c6 4. e4 dxe4 5. Nxe4 Bb4+ 6. Nc3 c5 7. a3 Ba5 8. Nf3\nNf6 9. Be3 Nc6 10. Qd3 cxd4 11. Nxd4 Ng4 12. O-O-O Nxe3 13. fxe3 Bc7 14. Nxc6\nbxc6 15. Qxd8+ Bxd8 16. Be2 Ke7 17. Bf3 Bd7 18. Ne4 Bb6 19. c5 f5 20. cxb6 fxe4\n21. b7 Rab8 22. Bxe4 Rxb7 23. Rhf1 Rb5 24. Rf4 g5 25. Rf3 h5 26. Rdf1 Be8 27.\nBc2 Rc5 28. Rf6 h4 29. e4 a5 30. Kd2 Rb5 31. b3 Bh5 32. Kc3 Rc5+ 33. Kb2 Rd8 34.\nR1f2 Rd4 35. Rh6 Bd1 36. Bb1 Rb5 37. Kc3 c5 38. Rb2 e5 39. Rg6 a4 40. Rxg5 Rxb3+\n41. Rxb3 Bxb3 42. Rxe5+ Kd6 43. Rh5 Rd1 44. e5+ Kd5 45. Bh7 Rc1+ 46. Kb2 Rg1 47.\nBg8+ Kc6 48. Rh6+ Kd7 49. Bxb3 axb3 50. Kxb3 Rxg2 51. Rxh4 Ke6 52. a4 Kxe5 53.\na5 Kd6 54. Rh7 Kd5 55. a6 c4+ 56. Kc3 Ra2 57. a7 Kc5 58. h4 1-0", + }, + { + id: "2013-carlsen-anand-06", + matchSlug: "2013-carlsen-anand", + matchLabel: "2013 — Carlsen vs Anand", + matchYear: 2013, + gameNumber: 6, + white: "Anand, Viswanathan", + black: "Carlsen, Magnus", + result: "0-1", + pgn: "[Event \"WCh 2013\"]\n[Site \"Chennai IND\"]\n[Date \"2013.11.16\"]\n[Round \"6\"]\n[White \"Anand, Viswanathan\"]\n[Black \"Carlsen, Magnus\"]\n[Result \"0-1\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2775\"]\n[BlackElo \"2870\"]\n[ECO \"C65\"]\n[Opening \"Ruy Lopez\"]\n[Variation \"Berlin defence\"]\n[WhiteFideId \"5000017\"]\n[BlackFideId \"1503014\"]\n[EventDate \"2013.11.09\"]\n\n1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. c3 O-O 6. O-O Re8 7. Re1 a6 8. Ba4\nb5 9. Bb3 d6 10. Bg5 Be6 11. Nbd2 h6 12. Bh4 Bxb3 13. axb3 Nb8 14. h3 Nbd7 15.\nNh2 Qe7 16. Ndf1 Bb6 17. Ne3 Qe6 18. b4 a5 19. bxa5 Bxa5 20. Nhg4 Bb6 21. Bxf6\nNxf6 22. Nxf6+ Qxf6 23. Qg4 Bxe3 24. fxe3 Qe7 25. Rf1 c5 26. Kh2 c4 27. d4 Rxa1\n28. Rxa1 Qb7 29. Rd1 Qc6 30. Qf5 exd4 31. Rxd4 Re5 32. Qf3 Qc7 33. Kh1 Qe7 34.\nQg4 Kh7 35. Qf4 g6 36. Kh2 Kg7 37. Qf3 Re6 38. Qg3 Rxe4 39. Qxd6 Rxe3 40. Qxe7\nRxe7 41. Rd5 Rb7 42. Rd6 f6 43. h4 Kf7 44. h5 gxh5 45. Rd5 Kg6 46. Kg3 Rb6 47.\nRc5 f5 48. Kh4 Re6 49. Rxb5 Re4+ 50. Kh3 Kg5 51. Rb8 h4 52. Rg8+ Kh5 53. Rf8 Rf4\n54. Rc8 Rg4 55. Rf8 Rg3+ 56. Kh2 Kg5 57. Rg8+ Kf4 58. Rc8 Ke3 59. Rxc4 f4 60.\nRa4 h3 61. gxh3 Rg6 62. c4 f3 63. Ra3+ Ke2 64. b4 f2 65. Ra2+ Kf3 66. Ra3+ Kf4\n67. Ra8 Rg1 0-1", + }, + { + id: "2013-carlsen-anand-09", + matchSlug: "2013-carlsen-anand", + matchLabel: "2013 — Carlsen vs Anand", + matchYear: 2013, + gameNumber: 9, + white: "Anand, Viswanathan", + black: "Carlsen, Magnus", + result: "0-1", + pgn: "[Event \"WCh 2013\"]\n[Site \"Chennai IND\"]\n[Date \"2013.11.21\"]\n[Round \"9\"]\n[White \"Anand, Viswanathan\"]\n[Black \"Carlsen, Magnus\"]\n[Result \"0-1\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2775\"]\n[BlackElo \"2870\"]\n[ECO \"E25\"]\n[Opening \"Nimzo-Indian\"]\n[Variation \"Saemisch variation\"]\n[WhiteFideId \"5000017\"]\n[BlackFideId \"1503014\"]\n[EventDate \"2013.11.09\"]\n\n1. d4 Nf6 2. c4 e6 3. Nc3 Bb4 4. f3 d5 5. a3 Bxc3+ 6. bxc3 c5 7. cxd5 exd5 8. e3\nc4 9. Ne2 Nc6 10. g4 O-O 11. Bg2 Na5 12. O-O Nb3 13. Ra2 b5 14. Ng3 a5 15. g5\nNe8 16. e4 Nxc1 17. Qxc1 Ra6 18. e5 Nc7 19. f4 b4 20. axb4 axb4 21. Rxa6 Nxa6\n22. f5 b3 23. Qf4 Nc7 24. f6 g6 25. Qh4 Ne8 26. Qh6 b2 27. Rf4 b1=Q+ 28. Nf1 Qe1 0-1", + }, + { + id: "2014-carlsen-anand-02", + matchSlug: "2014-carlsen-anand", + matchLabel: "2014 — Carlsen vs Anand", + matchYear: 2014, + gameNumber: 2, + white: "Carlsen, Magnus", + black: "Anand, Viswanathan", + result: "1-0", + pgn: "[Event \"WCh 2014\"]\n[Site \"Sochi RUS\"]\n[Date \"2014.11.09\"]\n[Round \"2\"]\n[White \"Carlsen, Magnus\"]\n[Black \"Anand, Viswanathan\"]\n[Result \"1-0\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2863\"]\n[BlackElo \"2792\"]\n[ECO \"C65\"]\n[Opening \"Ruy Lopez\"]\n[Variation \"Berlin defence\"]\n[WhiteFideId \"1503014\"]\n[BlackFideId \"5000017\"]\n[EventDate \"2014.11.08\"]\n\n1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. O-O d6 6. Re1 O-O 7. Bxc6 bxc6 8. h3\nRe8 9. Nbd2 Nd7 10. Nc4 Bb6 11. a4 a5 12. Nxb6 cxb6 13. d4 Qc7 14. Ra3 Nf8 15.\ndxe5 dxe5 16. Nh4 Rd8 17. Qh5 f6 18. Nf5 Be6 19. Rg3 Ng6 20. h4 Bxf5 21. exf5\nNf4 22. Bxf4 exf4 23. Rc3 c5 24. Re6 Rab8 25. Rc4 Qd7 26. Kh2 Rf8 27. Rce4 Rb7\n28. Qe2 b5 29. b3 bxa4 30. bxa4 Rb4 31. Re7 Qd6 32. Qf3 Rxe4 33. Qxe4 f3+ 34. g3\nh5 35. Qb7 1-0", + }, + { + id: "2014-carlsen-anand-06", + matchSlug: "2014-carlsen-anand", + matchLabel: "2014 — Carlsen vs Anand", + matchYear: 2014, + gameNumber: 6, + white: "Carlsen, Magnus", + black: "Anand, Viswanathan", + result: "1-0", + pgn: "[Event \"WCh 2014\"]\n[Site \"Sochi RUS\"]\n[Date \"2014.11.15\"]\n[Round \"6\"]\n[White \"Carlsen, Magnus\"]\n[Black \"Anand, Viswanathan\"]\n[Result \"1-0\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2863\"]\n[BlackElo \"2792\"]\n[ECO \"B41\"]\n[Opening \"Sicilian\"]\n[Variation \"Kan, Maroczy bind (Reti variation)\"]\n[WhiteFideId \"1503014\"]\n[BlackFideId \"5000017\"]\n[EventDate \"2014.11.08\"]\n\n1. e4 c5 2. Nf3 e6 3. d4 cxd4 4. Nxd4 a6 5. c4 Nf6 6. Nc3 Bb4 7. Qd3 Nc6 8. Nxc6\ndxc6 9. Qxd8+ Kxd8 10. e5 Nd7 11. Bf4 Bxc3+ 12. bxc3 Kc7 13. h4 b6 14. h5 h6 15.\nO-O-O Bb7 16. Rd3 c5 17. Rg3 Rag8 18. Bd3 Nf8 19. Be3 g6 20. hxg6 Nxg6 21. Rh5\nBc6 22. Bc2 Kb7 23. Rg4 a5 24. Bd1 Rd8 25. Bc2 Rdg8 26. Kd2 a4 27. Ke2 a3 28. f3\nRd8 29. Ke1 Rd7 30. Bc1 Ra8 31. Ke2 Ba4 32. Be4+ Bc6 33. Bxg6 fxg6 34. Rxg6 Ba4\n35. Rxe6 Rd1 36. Bxa3 Ra1 37. Ke3 Bc2 38. Re7+ 1-0", + }, + { + id: "2014-carlsen-anand-11", + matchSlug: "2014-carlsen-anand", + matchLabel: "2014 — Carlsen vs Anand", + matchYear: 2014, + gameNumber: 11, + white: "Carlsen, Magnus", + black: "Anand, Viswanathan", + result: "1-0", + pgn: "[Event \"WCh 2014\"]\n[Site \"Sochi RUS\"]\n[Date \"2014.11.23\"]\n[Round \"11\"]\n[White \"Carlsen, Magnus\"]\n[Black \"Anand, Viswanathan\"]\n[Result \"1-0\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2863\"]\n[BlackElo \"2792\"]\n[ECO \"C67\"]\n[Opening \"Ruy Lopez\"]\n[Variation \"Berlin defence, open variation\"]\n[WhiteFideId \"1503014\"]\n[BlackFideId \"5000017\"]\n[EventDate \"2014.11.08\"]\n\n1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. O-O Nxe4 5. d4 Nd6 6. Bxc6 dxc6 7. dxe5 Nf5 8.\nQxd8+ Kxd8 9. h3 Bd7 10. Nc3 h6 11. b3 Kc8 12. Bb2 c5 13. Rad1 b6 14. Rfe1 Be6\n15. Nd5 g5 16. c4 Kb7 17. Kh2 a5 18. a4 Ne7 19. g4 Ng6 20. Kg3 Be7 21. Nd2 Rhd8\n22. Ne4 Bf8 23. Nef6 b5 24. Bc3 bxa4 25. bxa4 Kc6 26. Kf3 Rdb8 27. Ke4 Rb4 28.\nBxb4 cxb4 29. Nh5 Kb7 30. f4 gxf4 31. Nhxf4 Nxf4 32. Nxf4 Bxc4 33. Rd7 Ra6 34.\nNd5 Rc6 35. Rxf7 Bc5 36. Rxc7+ Rxc7 37. Nxc7 Kc6 38. Nb5 Bxb5 39. axb5+ Kxb5 40.\ne6 b3 41. Kd3 Be7 42. h4 a4 43. g5 hxg5 44. hxg5 a3 45. Kc3 1-0", + }, + { + id: "2016-carlsen-karjakin-08", + matchSlug: "2016-carlsen-karjakin", + matchLabel: "2016 — Carlsen vs Karjakin", + matchYear: 2016, + gameNumber: 8, + white: "Carlsen, Magnus", + black: "Karjakin, Sergey", + result: "0-1", + pgn: "[Event \"WCh 2016\"]\n[Site \"New York USA\"]\n[Date \"2016.11.21\"]\n[Round \"8\"]\n[White \"Carlsen, Magnus\"]\n[Black \"Karjakin, Sergey\"]\n[Result \"0-1\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2853\"]\n[BlackElo \"2772\"]\n[ECO \"D05\"]\n[Opening \"Queen's pawn game, Rubinstein (Colle-Zukertort) variation\"]\n[WhiteFideId \"1503014\"]\n[BlackFideId \"14109603\"]\n[EventDate \"2016.11.11\"]\n\n1. d4 Nf6 2. Nf3 d5 3. e3 e6 4. Bd3 c5 5. b3 Be7 6. O-O O-O 7. Bb2 b6 8. dxc5\nBxc5 9. Nbd2 Bb7 10. Qe2 Nbd7 11. c4 dxc4 12. Nxc4 Qe7 13. a3 a5 14. Nd4 Rfd8\n15. Rfd1 Rac8 16. Rac1 Nf8 17. Qe1 Ng6 18. Bf1 Ng4 19. Nb5 Bc6 20. a4 Bd5 21.\nBd4 Bxc4 22. Rxc4 Bxd4 23. Rdxd4 Rxc4 24. bxc4 Nf6 25. Qd2 Rb8 26. g3 Ne5 27.\nBg2 h6 28. f4 Ned7 29. Na7 Qa3 30. Nc6 Rf8 31. h3 Nc5 32. Kh2 Nxa4 33. Rd8 g6\n34. Qd4 Kg7 35. c5 Rxd8 36. Nxd8 Nxc5 37. Qd6 Qd3 38. Nxe6+ fxe6 39. Qe7+ Kg8\n40. Qxf6 a4 41. e4 Qd7 42. Qxg6+ Qg7 43. Qe8+ Qf8 44. Qc6 Qd8 45. f5 a3 46. fxe6\nKg7 47. e7 Qxe7 48. Qxb6 Nd3 49. Qa5 Qc5 50. Qa6 Ne5 51. Qe6 h5 52. h4 a2 0-1", + }, + { + id: "2016-carlsen-karjakin-10", + matchSlug: "2016-carlsen-karjakin", + matchLabel: "2016 — Carlsen vs Karjakin", + matchYear: 2016, + gameNumber: 10, + white: "Carlsen, Magnus", + black: "Karjakin, Sergey", + result: "1-0", + pgn: "[Event \"WCh 2016\"]\n[Site \"New York USA\"]\n[Date \"2016.11.24\"]\n[Round \"10\"]\n[White \"Carlsen, Magnus\"]\n[Black \"Karjakin, Sergey\"]\n[Result \"1-0\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2853\"]\n[BlackElo \"2772\"]\n[ECO \"C65\"]\n[Opening \"Ruy Lopez\"]\n[Variation \"Berlin defence\"]\n[WhiteFideId \"1503014\"]\n[BlackFideId \"14109603\"]\n[EventDate \"2016.11.11\"]\n\n1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. d3 Bc5 5. c3 O-O 6. Bg5 h6 7. Bh4 Be7 8. O-O\nd6 9. Nbd2 Nh5 10. Bxe7 Qxe7 11. Nc4 Nf4 12. Ne3 Qf6 13. g3 Nh3+ 14. Kh1 Ne7 15.\nBc4 c6 16. Bb3 Ng6 17. Qe2 a5 18. a4 Be6 19. Bxe6 fxe6 20. Nd2 d5 21. Qh5 Ng5\n22. h4 Nf3 23. Nxf3 Qxf3+ 24. Qxf3 Rxf3 25. Kg2 Rf7 26. Rfe1 h5 27. Nf1 Kf8 28.\nNd2 Ke7 29. Re2 Kd6 30. Nf3 Raf8 31. Ng5 Re7 32. Rae1 Rfe8 33. Nf3 Nh8 34. d4\nexd4 35. Nxd4 g6 36. Re3 Nf7 37. e5+ Kd7 38. Rf3 Nh6 39. Rf6 Rg7 40. b4 axb4 41.\ncxb4 Ng8 42. Rf3 Nh6 43. a5 Nf5 44. Nb3 Kc7 45. Nc5 Kb8 46. Rb1 Ka7 47. Rd3 Rc7\n48. Ra3 Nd4 49. Rd1 Nf5 50. Kh3 Nh6 51. f3 Rf7 52. Rd4 Nf5 53. Rd2 Rh7 54. Rb3\nRee7 55. Rdd3 Rh8 56. Rb1 Rhh7 57. b5 cxb5 58. Rxb5 d4 59. Rb6 Rc7 60. Nxe6 Rc3\n61. Nf4 Rhc7 62. Nd5 Rxd3 63. Nxc7 Kb8 64. Nb5 Kc8 65. Rxg6 Rxf3 66. Kg2 Rb3 67.\nNd6+ Nxd6 68. Rxd6 Re3 69. e6 Kc7 70. Rxd4 Rxe6 71. Rd5 Rh6 72. Kf3 Kb8 73. Kf4\nKa7 74. Kg5 Rh8 75. Kf6 1-0", + }, + { + id: "2018-carlsen-caruana-01", + matchSlug: "2018-carlsen-caruana", + matchLabel: "2018 — Carlsen vs Caruana", + matchYear: 2018, + gameNumber: 1, + white: "Caruana, Fabiano", + black: "Carlsen, Magnus", + result: "1/2-1/2", + pgn: "[Event \"WCh 2018\"]\n[Site \"London ENG\"]\n[Date \"2018.11.09\"]\n[Round \"1\"]\n[White \"Caruana, Fabiano\"]\n[Black \"Carlsen, Magnus\"]\n[Result \"1/2-1/2\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2832\"]\n[BlackElo \"2835\"]\n[ECO \"B31\"]\n[Opening \"Sicilian\"]\n[Variation \"Nimzovich-Rossolimo attack (with ...g6, without ...d6)\"]\n[WhiteFideId \"2020009\"]\n[BlackFideId \"1503014\"]\n[EventDate \"2018.11.09\"]\n1. e4 c5 2. Nf3 Nc6 3. Bb5 g6 4. Bxc6 dxc6 5. d3 Bg7 6. h3 Nf6 7. Nc3 Nd7 8. Be3\ne5 9. O-O b6 10. Nh2 Nf8 11. f4 exf4 12. Rxf4 Be6 13. Rf2 h6 14. Qd2 g5 15. Raf1\nQd6 16. Ng4 O-O-O 17. Nf6 Nd7 18. Nh5 Be5 19. g4 f6 20. b3 Bf7 21. Nd1 Nf8 22.\nNxf6 Ne6 23. Nh5 Bxh5 24. gxh5 Nf4 25. Bxf4 gxf4 26. Rg2 Rhg8 27. Qe2 Rxg2+ 28.\nQxg2 Qe6 29. Nf2 Rg8 30. Ng4 Qe8 31. Qf3 Qxh5 32. Kf2 Bc7 33. Ke2 Qg5 34. Nh2 h5\n35. Rf2 Qg1 36. Nf1 h4 37. Kd2 Kb7 38. c3 Be5 39. Kc2 Qg7 40. Nh2 Bxc3 41. Qxf4\nBd4 42. Qf7+ Ka6 43. Qxg7 Rxg7 44. Re2 Rg3 45. Ng4 Rxh3 46. e5 Rf3 47. e6 Rf8\n48. e7 Re8 49. Nh6 h3 50. Nf5 Bf6 51. a3 b5 52. b4 cxb4 53. axb4 Bxe7 54. Nxe7\nh2 55. Rxh2 Rxe7 56. Rh6 Kb6 57. Kc3 Rd7 58. Rg6 Kc7 59. Rh6 Rd6 60. Rh8 Rg6 61.\nRa8 Kb7 62. Rh8 Rg5 63. Rh7+ Kb6 64. Rh6 Rg1 65. Kc2 Rf1 66. Rg6 Rh1 67. Rf6 Rh8\n68. Kc3 Ra8 69. d4 Rd8 70. Rh6 Rd7 71. Rg6 Kc7 72. Rg5 Rd6 73. Rg8 Rh6 74. Ra8\nRh3+ 75. Kc2 Ra3 76. Kb2 Ra4 77. Kc3 a6 78. Rh8 Ra3+ 79. Kb2 Rg3 80. Kc2 Rg5 81.\nRh6 Rd5 82. Kc3 Rd6 83. Rh8 Rg6 84. Kc2 Kb7 85. Kc3 Rg3+ 86. Kc2 Rg1 87. Rh5\nRg2+ 88. Kc3 Rg3+ 89. Kc2 Rg4 90. Kc3 Kb6 91. Rh6 Rg5 92. Rf6 Rh5 93. Rg6 Rh3+\n94. Kc2 Rh5 95. Kc3 Rd5 96. Rh6 Kc7 97. Rh7+ Rd7 98. Rh5 Rd6 99. Rh8 Rg6 100.\nRf8 Rg3+ 101. Kc2 Ra3 102. Rf7+ Kd6 103. Ra7 Kd5 104. Kb2 Rd3 105. Rxa6 Rxd4\n106. Kb3 Re4 107. Kc3 Rc4+ 108. Kb3 Kd4 109. Rb6 Kd3 110. Ra6 Rc2 111. Rb6 Rc3+\n112. Kb2 Rc4 113. Kb3 Kd4 114. Ra6 Kd5 115. Ra8 1/2-1/2", + }, + { + id: "2018-carlsen-caruana-06", + matchSlug: "2018-carlsen-caruana", + matchLabel: "2018 — Carlsen vs Caruana", + matchYear: 2018, + gameNumber: 6, + white: "Carlsen, Magnus", + black: "Caruana, Fabiano", + result: "1/2-1/2", + pgn: "[Event \"WCh 2018\"]\n[Site \"London ENG\"]\n[Date \"2018.11.16\"]\n[Round \"6\"]\n[White \"Carlsen, Magnus\"]\n[Black \"Caruana, Fabiano\"]\n[Result \"1/2-1/2\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2835\"]\n[BlackElo \"2832\"]\n[ECO \"C42\"]\n[Opening \"Petrov's defence\"]\n[WhiteFideId \"1503014\"]\n[BlackFideId \"2020009\"]\n[EventDate \"2018.11.09\"]\n1. e4 e5 2. Nf3 Nf6 3. Nxe5 d6 4. Nd3 Nxe4 5. Qe2 Qe7 6. Nf4 Nc6 7. Nd5 Nd4 8.\nNxe7 Nxe2 9. Nd5 Nd4 10. Na3 Ne6 11. f3 N4c5 12. d4 Nd7 13. c3 c6 14. Nf4 Nb6\n15. Bd3 d5 16. Nc2 Bd6 17. Nxe6 Bxe6 18. Kf2 h5 19. h4 Nc8 20. Ne3 Ne7 21. g3 c5\n22. Bc2 O-O 23. Rd1 Rfd8 24. Ng2 cxd4 25. cxd4 Rac8 26. Bb3 Nc6 27. Bf4 Na5 28.\nRdc1 Bb4 29. Bd1 Nc4 30. b3 Na3 31. Rxc8 Rxc8 32. Rc1 Nb5 33. Rxc8+ Bxc8 34. Ne3\nNc3 35. Bc2 Ba3 36. Bb8 a6 37. f4 Bd7 38. f5 Bc6 39. Bd1 Bb2 40. Bxh5 Ne4+ 41.\nKg2 Bxd4 42. Bf4 Bc5 43. Bf3 Nd2 44. Bxd5 Bxe3 45. Bxc6 Bxf4 46. Bxb7 Bd6 47.\nBxa6 Ne4 48. g4 Ba3 49. Bc4 Kf8 50. g5 Nc3 51. b4 Bxb4 52. Kf3 Na4 53. Bb5 Nc5\n54. a4 f6 55. Kg4 Ne4 56. Kh5 Be1 57. Bd3 Nd6 58. a5 Bxa5 59. gxf6 gxf6 60. Kg6\nBd8 61. Kh7 Nf7 62. Bc4 Ne5 63. Bd5 Ba5 64. h5 Bd2 65. Ba2 Nf3 66. Bd5 Nd4 67.\nKg6 Bg5 68. Bc4 Nf3 69. Kh7 Ne5 70. Bb3 Ng4 71. Bc4 Ne3 72. Bd3 Ng4 73. Bc4 Nh6\n74. Kg6 Ke7 75. Bb3 Kd6 76. Bc2 Ke5 77. Bd3 Kf4 78. Bc2 Ng4 79. Bb3 Ne3 80. h6\nBxh6 1/2-1/2", + }, + { + id: "2018-carlsen-caruana-12", + matchSlug: "2018-carlsen-caruana", + matchLabel: "2018 — Carlsen vs Caruana", + matchYear: 2018, + gameNumber: 12, + white: "Caruana, Fabiano", + black: "Carlsen, Magnus", + result: "1/2-1/2", + pgn: "[Event \"WCh 2018\"]\n[Site \"London ENG\"]\n[Date \"2018.11.26\"]\n[Round \"12\"]\n[White \"Caruana, Fabiano\"]\n[Black \"Carlsen, Magnus\"]\n[Result \"1/2-1/2\"]\n[WhiteTitle \"GM\"]\n[BlackTitle \"GM\"]\n[WhiteElo \"2832\"]\n[BlackElo \"2835\"]\n[ECO \"B33\"]\n[Opening \"Sicilian\"]\n[Variation \"Pelikan (Lasker/Sveshnikov) variation\"]\n[WhiteFideId \"2020009\"]\n[BlackFideId \"1503014\"]\n[EventDate \"2018.11.09\"]\n1. e4 c5 2. Nf3 Nc6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 e5 6. Ndb5 d6 7. Nd5 Nxd5 8.\nexd5 Ne7 9. c4 Ng6 10. Qa4 Bd7 11. Qb4 Bf5 12. h4 h5 13. Qa4 Bd7 14. Qb4 Bf5 15.\nBe3 a6 16. Nc3 Qc7 17. g3 Be7 18. f3 Nf8 19. Ne4 Nd7 20. Bd3 O-O 21. Rh2 Rac8\n22. O-O-O Bg6 23. Rc2 f5 24. Nf2 Nc5 25. f4 a5 26. Qd2 e4 27. Be2 Be8 28. Kb1\nBf6 29. Re1 a4 30. Qb4 g6 31. Rd1 Ra8 1/2-1/2", + }, + { + id: "2021-carlsen-nepomniachtchi-06", + matchSlug: "2021-carlsen-nepomniachtchi", + matchLabel: "2021 — Carlsen vs Nepomniachtchi", + matchYear: 2021, + gameNumber: 6, + white: "Carlsen,M", + black: "Nepomniachtchi,I", + result: "1-0", + pgn: "[Event \"WCh 2021\"]\n[Site \"Dubai UAE\"]\n[Date \"2021.12.03\"]\n[Round \"6\"]\n[White \"Carlsen,M\"]\n[Black \"Nepomniachtchi,I\"]\n[Result \"1-0\"]\n[WhiteElo \"2855\"]\n[BlackElo \"2782\"]\n[ECO \"D02\"]\n\n1.d4 Nf6 2.Nf3 d5 3.g3 e6 4.Bg2 Be7 5.O-O O-O 6.b3 c5 7.dxc5 Bxc5 8.c4 dxc4\n9.Qc2 Qe7 10.Nbd2 Nc6 11.Nxc4 b5 12.Nce5 Nb4 13.Qb2 Bb7 14.a3 Nc6 15.Nd3 Bb6\n16.Bg5 Rfd8 17.Bxf6 gxf6 18.Rac1 Nd4 19.Nxd4 Bxd4 20.Qa2 Bxg2 21.Kxg2 Qb7+\n22.Kg1 Qe4 23.Qc2 a5 24.Rfd1 Kg7 25.Rd2 Rac8 26.Qxc8 Rxc8 27.Rxc8 Qd5 28.b4 a4\n29.e3 Be5 30.h4 h5 31.Kh2 Bb2 32.Rc5 Qd6 33.Rd1 Bxa3 34.Rxb5 Qd7 35.Rc5 e5\n36.Rc2 Qd5 37.Rdd2 Qb3 38.Ra2 e4 39.Nc5 Qxb4 40.Nxe4 Qb3 41.Rac2 Bf8 42.Nc5 Qb5\n43.Nd3 a3 44.Nf4 Qa5 45.Ra2 Bb4 46.Rd3 Kh6 47.Rd1 Qa4 48.Rda1 Bd6 49.Kg1 Qb3\n50.Ne2 Qd3 51.Nd4 Kh7 52.Kh2 Qe4 53.Rxa3 Qxh4+ 54.Kg1 Qe4 55.Ra4 Be5 56.Ne2 Qc2\n57.R1a2 Qb3 58.Kg2 Qd5+ 59.f3 Qd1 60.f4 Bc7 61.Kf2 Bb6 62.Ra1 Qb3 63.Re4 Kg7\n64.Re8 f5 65.Raa8 Qb4 66.Rac8 Ba5 67.Rc1 Bb6 68.Re5 Qb3 69.Re8 Qd5 70.Rcc8 Qh1\n71.Rc1 Qd5 72.Rb1 Ba7 73.Re7 Bc5 74.Re5 Qd3 75.Rb7 Qc2 76.Rb5 Ba7 77.Ra5 Bb6\n78.Rab5 Ba7 79.Rxf5 Qd3 80.Rxf7+ Kxf7 81.Rb7+ Kg6 82.Rxa7 Qd5 83.Ra6+ Kh7\n84.Ra1 Kg6 85.Nd4 Qb7 86.Ra2 Qh1 87.Ra6+ Kf7 88.Nf3 Qb1 89.Rd6 Kg7 90.Rd5 Qa2+\n91.Rd2 Qb1 92.Re2 Qb6 93.Rc2 Qb1 94.Nd4 Qh1 95.Rc7+ Kf6 96.Rc6+ Kf7 97.Nf3 Qb1\n98.Ng5+ Kg7 99.Ne6+ Kf7 100.Nd4 Qh1 101.Rc7+ Kf6 102.Nf3 Qb1 103.Rd7 Qb2+\n104.Rd2 Qb1 105.Ng1 Qb4 106.Rd1 Qb3 107.Rd6+ Kg7 108.Rd4 Qb2+ 109.Ne2 Qb1\n110.e4 Qh1 111.Rd7+ Kg8 112.Rd4 Qh2+ 113.Ke3 h4 114.gxh4 Qh3+ 115.Kd2 Qxh4\n116.Rd3 Kf8 117.Rf3 Qd8+ 118.Ke3 Qa5 119.Kf2 Qa7+ 120.Re3 Qd7 121.Ng3 Qd2+\n122.Kf3 Qd1+ 123.Re2 Qb3+ 124.Kg2 Qb7 125.Rd2 Qb3 126.Rd5 Ke7 127.Re5+ Kf7\n128.Rf5+ Ke8 129.e5 Qa2+ 130.Kh3 Qe6 131.Kh4 Qh6+ 132.Nh5 Qh7 133.e6 Qg6\n134.Rf7 Kd8 135.f5 Qg1 136.Ng7 1-0", + }, + { + id: "2021-carlsen-nepomniachtchi-08", + matchSlug: "2021-carlsen-nepomniachtchi", + matchLabel: "2021 — Carlsen vs Nepomniachtchi", + matchYear: 2021, + gameNumber: 8, + white: "Carlsen,M", + black: "Nepomniachtchi,I", + result: "1-0", + pgn: "[Event \"WCh 2021\"]\n[Site \"Dubai UAE\"]\n[Date \"2021.12.05\"]\n[Round \"8\"]\n[White \"Carlsen,M\"]\n[Black \"Nepomniachtchi,I\"]\n[Result \"1-0\"]\n[WhiteElo \"2855\"]\n[BlackElo \"2782\"]\n[ECO \"C43\"]\n\n1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.Nxe5 Nd7 6.Nxd7 Bxd7 7.Nd2 Nxd2 8.Bxd2 Bd6\n9.O-O h5 10.Qe1+ Kf8 11.Bb4 Qe7 12.Bxd6 Qxd6 13.Qd2 Re8 14.Rae1 Rh6 15.Qg5 c6\n16.Rxe8+ Bxe8 17.Re1 Qf6 18.Qe3 Bd7 19.h3 h4 20.c4 dxc4 21.Bxc4 b5 22.Qa3+ Kg8\n23.Qxa7 Qd8 24.Bb3 Rd6 25.Re4 Be6 26.Bxe6 Rxe6 27.Rxe6 fxe6 28.Qc5 Qa5 29.Qxc6 Qe1+\n30.Kh2 Qxf2 31.Qxe6+ Kh7 32.Qe4+ Kg8 33.b3 Qxa2 34.Qe8+ Kh7 35.Qxb5 Qf2 36.Qe5 Qb2\n37.Qe4+ Kg8 38.Qd3 Qf2 39.Qc3 Qf4+ 40.Kg1 Kh7 41.Qd3+ g6 42.Qd1 Qe3+ 43.Kh1 g5\n44.d5 g4 45.hxg4 h3 46.Qf3 1-0", + }, + { + id: "2021-carlsen-nepomniachtchi-09", + matchSlug: "2021-carlsen-nepomniachtchi", + matchLabel: "2021 — Carlsen vs Nepomniachtchi", + matchYear: 2021, + gameNumber: 9, + white: "Nepomniachtchi,I", + black: "Carlsen,M", + result: "0-1", + pgn: "[Event \"WCh 2021\"]\n[Site \"Dubai UAE\"]\n[Date \"2021.12.07\"]\n[Round \"9\"]\n[White \"Nepomniachtchi,I\"]\n[Black \"Carlsen,M\"]\n[Result \"0-1\"]\n[WhiteElo \"2782\"]\n[BlackElo \"2855\"]\n[ECO \"A13\"]\n\n1.c4 e6 2.g3 d5 3.Bg2 d4 4.Nf3 Nc6 5.O-O Bc5 6.d3 Nf6 7.Nbd2 a5 8.Nb3 Be7\n9.e3 dxe3 10.Bxe3 Ng4 11.Bc5 O-O 12.d4 a4 13.Bxe7 Qxe7 14.Nc5 a3 15.bxa3 Rd8\n16.Nb3 Nf6 17.Re1 Qxa3 18.Qe2 h6 19.h4 Bd7 20.Ne5 Be8 21.Qe3 Qb4 22.Reb1 Nxe5\n23.dxe5 Ng4 24.Qe1 Qxe1+ 25.Rxe1 h5 26.Bxb7 Ra4 27.c5 c6 28.f3 Nh6 29.Re4 Ra7\n30.Rb4 Rb8 31.a4 Raxb7 32.Rb6 Rxb6 33.cxb6 Rxb6 34.Nc5 Nf5 35.a5 Rb8 36.a6 Nxg3\n37.Na4 c5 38.a7 Rd8 39.Nxc5 Ra8 0-1", + }, + { + id: "2023-ding-nepomniachtchi-04", + matchSlug: "2023-ding-nepomniachtchi", + matchLabel: "2023 — Ding vs Nepomniachtchi", + matchYear: 2023, + gameNumber: 4, + white: "Ding Liren", + black: "Nepomniachtchi,I", + result: "1-0", + pgn: "[Event \"WCh 2023\"]\n[Site \"Astana KAZ\"]\n[Date \"2023.04.13\"]\n[Round \"4.1\"]\n[White \"Ding Liren\"]\n[Black \"Nepomniachtchi,I\"]\n[Result \"1-0\"]\n[WhiteElo \"2788\"]\n[BlackElo \"2795\"]\n[ECO \"A28\"]\n\n1.c4 Nf6 2.Nc3 e5 3.Nf3 Nc6 4.e3 Bb4 5.Qc2 Bxc3 6.bxc3 d6 7.e4 O-O 8.Be2 Nh5\n9.d4 Nf4 10.Bxf4 exf4 11.O-O Qf6 12.Rfe1 Re8 13.Bd3 Bg4 14.Nd2 Na5 15.c5 dxc5\n16.e5 Qh6 17.d5 Rad8 18.c4 b6 19.h3 Bh5 20.Be4 Re7 21.Qc3 Rde8 22.Bf3 Nb7\n23.Re2 f6 24.e6 Nd6 25.Rae1 Nf5 26.Bxh5 Qxh5 27.Re4 Qh6 28.Qf3 Nd4 29.Rxd4 cxd4\n30.Nb3 g5 31.Nxd4 Qg6 32.g4 fxg3 33.fxg3 h5 34.Nf5 Rh7 35.Qe4 Kh8 36.e7 Qf7\n37.d6 cxd6 38.Nxd6 Qg8 39.Nxe8 Qxe8 40.Qe6 Kg7 41.Rf1 Rh6 42.Rd1 f5 43.Qe5+ Kf7\n44.Qxf5+ Rf6 45.Qh7+ Ke6 46.Qg7 Rg6 47.Qf8 1-0", + }, + { + id: "2023-ding-nepomniachtchi-06", + matchSlug: "2023-ding-nepomniachtchi", + matchLabel: "2023 — Ding vs Nepomniachtchi", + matchYear: 2023, + gameNumber: 6, + white: "Ding Liren", + black: "Nepomniachtchi,I", + result: "1-0", + pgn: "[Event \"WCh 2023\"]\n[Site \"Astana KAZ\"]\n[Date \"2023.04.16\"]\n[Round \"6.1\"]\n[White \"Ding Liren\"]\n[Black \"Nepomniachtchi,I\"]\n[Result \"1-0\"]\n[WhiteElo \"2788\"]\n[BlackElo \"2795\"]\n[ECO \"D02\"]\n\n1.d4 Nf6 2.Nf3 d5 3.Bf4 c5 4.e3 Nc6 5.Nbd2 cxd4 6.exd4 Bf5 7.c3 e6 8.Bb5 Bd6\n9.Bxd6 Qxd6 10.O-O O-O 11.Re1 h6 12.Ne5 Ne7 13.a4 a6 14.Bf1 Nd7 15.Nxd7 Qxd7\n16.a5 Qc7 17.Qf3 Rfc8 18.Ra3 Bg6 19.Nb3 Nc6 20.Qg3 Qe7 21.h4 Re8 22.Nc5 e5\n23.Rb3 Nxa5 24.Rxe5 Qf6 25.Ra3 Nc4 26.Bxc4 dxc4 27.h5 Bc2 28.Nxb7 Qb6 29.Nd6 Rxe5\n30.Qxe5 Qxb2 31.Ra5 Kh7 32.Rc5 Qc1+ 33.Kh2 f6 34.Qg3 a5 35.Nxc4 a4 36.Ne3 Bb1\n37.Rc7 Rg8 38.Nd5 Kh8 39.Ra7 a3 40.Ne7 Rf8 41.d5 a2 42.Qc7 Kh7 43.Ng6 Rg8\n44.Qf7 1-0", + }, + { + id: "2023-ding-nepomniachtchi-12", + matchSlug: "2023-ding-nepomniachtchi", + matchLabel: "2023 — Ding vs Nepomniachtchi", + matchYear: 2023, + gameNumber: 12, + white: "Ding Liren", + black: "Nepomniachtchi,I", + result: "1-0", + pgn: "[Event \"WCh 2023\"]\n[Site \"Astana KAZ\"]\n[Date \"2023.04.26\"]\n[Round \"12.1\"]\n[White \"Ding Liren\"]\n[Black \"Nepomniachtchi,I\"]\n[Result \"1-0\"]\n[WhiteElo \"2788\"]\n[BlackElo \"2795\"]\n[ECO \"D04\"]\n\n1.d4 Nf6 2.Nf3 d5 3.e3 c5 4.Nbd2 cxd4 5.exd4 Qc7 6.c3 Bd7 7.Bd3 Nc6 8.O-O Bg4\n9.Re1 e6 10.Nf1 Bd6 11.Bg5 O-O 12.Bxf6 gxf6 13.Ng3 f5 14.h3 Bxf3 15.Qxf3 Ne7\n16.Nh5 Kh8 17.g4 Rg8 18.Kh1 Ng6 19.Bc2 Nh4 20.Qe3 Rg6 21.Rg1 f4 22.Qd3 Qe7\n23.Rae1 Qg5 24.c4 dxc4 25.Qc3 b5 26.a4 b4 27.Qxc4 Rag8 28.Qc6 Bb8 29.Qb7 Rh6\n30.Be4 Rf8 31.Qxb4 Qd8 32.Qc3 Ng6 33.Bg2 Qh4 34.Re2 f5 35.Rxe6 Rxh5 36.gxh5 Qxh5\n37.d5+ Kg8 38.d6 1-0", + }, + { + id: "2024-gukesh-ding-03", + matchSlug: "2024-gukesh-ding", + matchLabel: "2024 — Gukesh vs Ding", + matchYear: 2024, + gameNumber: 3, + white: "Gukesh,D", + black: "Ding Liren", + result: "1-0", + pgn: "[Event \"WCh 2024\"]\n[Site \"Singapore SIN\"]\n[Date \"2024.11.27\"]\n[Round \"3.1\"]\n[White \"Gukesh,D\"]\n[Black \"Ding Liren\"]\n[Result \"1-0\"]\n[WhiteElo \"2783\"]\n[BlackElo \"2728\"]\n[ECO \"D02\"]\n\n1.d4 Nf6 2.Nf3 d5 3.c4 e6 4.cxd5 exd5 5.Nc3 c6 6.Qc2 g6 7.h3 Bf5 8.Qb3 Qb6\n9.g4 Qxb3 10.axb3 Bc2 11.Bf4 h5 12.Rg1 hxg4 13.hxg4 Nbd7 14.Nd2 Rg8 15.g5 Nh5\n16.Bh2 Rh8 17.f3 Ng7 18.Bg3 Rh5 19.e4 dxe4 20.fxe4 Ne6 21.Rc1 Nxd4 22.Bf2 Bg7\n23.Ne2 Nxb3 24.Rxc2 Nxd2 25.Kxd2 Ne5 26.Nd4 Rd8 27.Ke2 Rh2 28.Bg2 a6 29.b3 Rd7\n30.Rcc1 Ke7 31.Rcd1 Ke8 32.Bg3 Rh5 33.Nf3 Nxf3 34.Kxf3 Bd4 35.Rh1 Rxg5 36.Bh3 f5\n37.Bf4 Rh5 1-0", + }, + { + id: "2024-gukesh-ding-11", + matchSlug: "2024-gukesh-ding", + matchLabel: "2024 — Gukesh vs Ding", + matchYear: 2024, + gameNumber: 11, + white: "Gukesh,D", + black: "Ding Liren", + result: "1-0", + pgn: "[Event \"WCh 2024\"]\n[Site \"Singapore SIN\"]\n[Date \"2024.12.08\"]\n[Round \"11.1\"]\n[White \"Gukesh,D\"]\n[Black \"Ding Liren\"]\n[Result \"1-0\"]\n[WhiteElo \"2783\"]\n[BlackElo \"2728\"]\n[ECO \"A09\"]\n\n1.Nf3 d5 2.c4 d4 3.b4 c5 4.e3 Nf6 5.a3 Bg4 6.exd4 cxd4 7.h3 Bxf3 8.Qxf3 Qc7\n9.d3 a5 10.b5 Nbd7 11.g3 Nc5 12.Bg2 Nfd7 13.O-O Ne5 14.Qf4 Rd8 15.Rd1 g6\n16.a4 h5 17.b6 Qd6 18.Ba3 Bh6 19.Bxc5 Qxc5 20.Qe4 Nc6 21.Na3 Rd7 22.Nc2 Qxb6\n23.Rab1 Qc7 24.Rb5 O-O 25.Na1 Rb8 26.Nb3 e6 27.Nc5 Re7 28.Rdb1 Qc8 29.Qxc6 1-0", + }, + { + id: "2024-gukesh-ding-14", + matchSlug: "2024-gukesh-ding", + matchLabel: "2024 — Gukesh vs Ding", + matchYear: 2024, + gameNumber: 14, + white: "Ding Liren", + black: "Gukesh,D", + result: "0-1", + pgn: "[Event \"WCh 2024\"]\n[Site \"Singapore SIN\"]\n[Date \"2024.12.12\"]\n[Round \"14.1\"]\n[White \"Ding Liren\"]\n[Black \"Gukesh,D\"]\n[Result \"0-1\"]\n[WhiteElo \"2728\"]\n[BlackElo \"2783\"]\n[ECO \"A08\"]\n\n1.Nf3 d5 2.g3 c5 3.Bg2 Nc6 4.d4 e6 5.O-O cxd4 6.Nxd4 Nge7 7.c4 Nxd4 8.Qxd4 Nc6\n9.Qd1 d4 10.e3 Bc5 11.exd4 Bxd4 12.Nc3 O-O 13.Nb5 Bb6 14.b3 a6 15.Nc3 Bd4\n16.Bb2 e5 17.Qd2 Be6 18.Nd5 b5 19.cxb5 axb5 20.Nf4 exf4 21.Bxc6 Bxb2 22.Qxb2 Rb8\n23.Rfd1 Qb6 24.Bf3 fxg3 25.hxg3 b4 26.a4 bxa3 27.Rxa3 g6 28.Qd4 Qb5 29.b4 Qxb4\n30.Qxb4 Rxb4 31.Ra8 Rxa8 32.Bxa8 g5 33.Bd5 Bf5 34.Rc1 Kg7 35.Rc7 Bg6 36.Rc4 Rb1+\n37.Kg2 Re1 38.Rb4 h5 39.Ra4 Re5 40.Bf3 Kh6 41.Kg1 Re6 42.Rc4 g4 43.Bd5 Rd6\n44.Bb7 Kg5 45.f3 f5 46.fxg4 hxg4 47.Rb4 Bf7 48.Kf2 Rd2+ 49.Kg1 Kf6 50.Rb6+ Kg5\n51.Rb4 Be6 52.Ra4 Rb2 53.Ba8 Kf6 54.Rf4 Ke5 55.Rf2 Rxf2 56.Kxf2 Bd5 57.Bxd5 Kxd5\n58.Ke3 Ke5 0-1", + }, +]; diff --git a/src/chess/wcc-games.ts b/src/chess/wcc-games.ts new file mode 100644 index 0000000..fc78f43 --- /dev/null +++ b/src/chess/wcc-games.ts @@ -0,0 +1,35 @@ +/** + * Public API over the auto-generated WCC game catalog + * ({@link WCC_GAMES} / {@link WCC_MATCHES} from `wcc-data.generated.ts`). + * + * The picker UI uses {@link listWccMatches} / {@link listWccGamesForMatch}; + * the engine uses {@link findWccGame} to resolve a slug into a PGN. + */ + +import { + WCC_GAMES, + WCC_MATCHES, + type WccGameData, + type WccMatchData, +} from "./wcc-data.generated"; + +export type { WccGameData, WccMatchData }; + +/** All matches that have at least one bundled game, sorted newest-first. */ +export function listWccMatches(): WccMatchData[] { + return [...WCC_MATCHES].sort((a, b) => b.matchYear - a.matchYear); +} + +/** All bundled games for a given matchSlug, sorted by game number ascending. */ +export function listWccGamesForMatch(matchSlug: string): WccGameData[] { + return WCC_GAMES.filter((g) => g.matchSlug === matchSlug).sort( + (a, b) => a.gameNumber - b.gameNumber + ); +} + +/** Look up a single game by id (slug). Case-insensitive. */ +export function findWccGame(idOrName: string | undefined): WccGameData | null { + if (!idOrName) return null; + const target = idOrName.trim().toLowerCase(); + return WCC_GAMES.find((g) => g.id.toLowerCase() === target) ?? null; +} diff --git a/src/commands/index.ts b/src/commands/index.ts new file mode 100644 index 0000000..54fa822 --- /dev/null +++ b/src/commands/index.ts @@ -0,0 +1,180 @@ +import { Editor, MarkdownView, Notice } from "obsidian"; +import type CaissaPlugin from "../main"; +import { OpeningPickerModal } from "../ui/opening-picker"; +import { EndgamePickerModal } from "../ui/endgame-picker"; +import { WccMatchPickerModal } from "../ui/wcc-picker"; +import { OpeningsQuizModal } from "../ui/openings-quiz"; +import { parseLichessId } from "../chess/lichess-games"; + +/** + * Register all editor / command palette commands. Stable command IDs only — + * never rename these once released. + */ +export function registerCommands(plugin: CaissaPlugin): void { + plugin.addCommand({ + id: "insert-chess-board", + name: "Insert chess board", + editorCallback: (editor: Editor) => { + insertSnippet(editor, ["```chess", "", "```", ""].join("\n")); + }, + }); + + plugin.addCommand({ + id: "insert-chess-opening", + name: "Insert chess opening from library", + editorCheckCallback: ( + checking: boolean, + editor: Editor, + view: MarkdownView + ) => { + if (!view) return false; + if (checking) return true; + new OpeningPickerModal(plugin.app, (result) => { + const lines = ["```chess"]; + lines.push(`opening: ${result.openingName}`); + if (result.variationName) { + lines.push(`variation: ${result.variationName}`); + } + lines.push("```", ""); + insertSnippet(editor, lines.join("\n")); + }).open(); + return true; + }, + }); + + plugin.addCommand({ + id: "insert-chess-endgame", + name: "Insert chess endgame from library", + editorCheckCallback: ( + checking: boolean, + editor: Editor, + view: MarkdownView + ) => { + if (!view) return false; + if (checking) return true; + new EndgamePickerModal(plugin.app, (endgame) => { + const lines = ["```chess", `endgame: ${endgame.id}`, "```", ""]; + insertSnippet(editor, lines.join("\n")); + }).open(); + return true; + }, + }); + + plugin.addCommand({ + id: "insert-chess-wcc-game", + name: "Insert chess world championship game", + editorCheckCallback: ( + checking: boolean, + editor: Editor, + view: MarkdownView + ) => { + if (!view) return false; + if (checking) return true; + new WccMatchPickerModal(plugin.app, (game) => { + const lines = ["```chess", `wccgame: ${game.id}`, "```", ""]; + insertSnippet(editor, lines.join("\n")); + }).open(); + return true; + }, + }); + + plugin.addCommand({ + id: "insert-chess-from-fen", + name: "Insert chess board from clipboard fen", + editorCallback: (editor: Editor) => { + const clip = (navigator.clipboard as Clipboard | undefined) + ?.readText + ? navigator.clipboard.readText().catch(() => "") + : Promise.resolve(""); + void clip.then((text) => { + const fen = looksLikeFen(text) ? text.trim() : ""; + const lines = ["```chess"]; + lines.push(`fen: ${fen || ""}`); + lines.push("```", ""); + insertSnippet(editor, lines.join("\n")); + if (!fen) { + new Notice("Replace with a real FEN string."); + } + }); + }, + }); + + plugin.addCommand({ + id: "insert-chess-from-lichess", + name: "Insert chess game from lichess link", + editorCallback: (editor: Editor) => { + const clip = (navigator.clipboard as Clipboard | undefined) + ?.readText + ? navigator.clipboard.readText().catch(() => "") + : Promise.resolve(""); + void clip.then((text) => { + const id = parseLichessId(text ?? ""); + const lines = ["```chess"]; + lines.push(`lichess: ${id ?? ""}`); + lines.push("```", ""); + insertSnippet(editor, lines.join("\n")); + if (!id) { + new Notice( + "Replace with a real Lichess game URL or ID." + ); + } + }); + }, + }); + + plugin.addCommand({ + id: "start-openings-quiz", + name: "Start openings quiz", + callback: () => { + new OpeningsQuizModal(plugin.app, plugin.settings).open(); + }, + }); + + plugin.addCommand({ + id: "insert-chess-from-pgn", + name: "Insert chess game from clipboard pgn", + editorCallback: (editor: Editor) => { + const clip = (navigator.clipboard as Clipboard | undefined) + ?.readText + ? navigator.clipboard.readText().catch(() => "") + : Promise.resolve(""); + void clip.then((text) => { + const pgn = (text ?? "").trim(); + const lines = ["```chess"]; + if (pgn) { + lines.push(pgn); + } else { + lines.push(""); + } + lines.push("```", ""); + insertSnippet(editor, lines.join("\n")); + if (!pgn) { + new Notice( + "Replace with PGN text (headers and/or moves)." + ); + } + }); + }, + }); +} + +/** Insert a snippet at the cursor, leaving the cursor on the first blank line. */ +function insertSnippet(editor: Editor, snippet: string): void { + const cursor = editor.getCursor(); + editor.replaceRange(snippet, cursor); + editor.setCursor({ + line: cursor.line + 1, + ch: 0, + }); +} + +function looksLikeFen(text: string): boolean { + if (!text) return false; + const t = text.trim(); + const parts = t.split(/\s+/); + if (parts.length < 4) return false; + const placement = parts[0] ?? ""; + if (!/^[1-8prnbqkPRNBQK/]+$/.test(placement)) return false; + if (placement.split("/").length !== 8) return false; + return true; +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..f390e45 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,45 @@ +import { Plugin } from "obsidian"; +import { DEFAULT_SETTINGS, type CaissaSettings } from "./types"; +import { CaissaSettingTab } from "./settings"; +import { registerCommands } from "./commands"; +import { renderChessBlock } from "./ui/chess-block"; +import { parseBlockConfig } from "./utils/parser"; +import { terminateEngine } from "./chess/engine-worker"; + +export default class CaissaPlugin extends Plugin { + settings: CaissaSettings = { ...DEFAULT_SETTINGS }; + + async onload(): Promise { + await this.loadSettings(); + + this.addSettingTab(new CaissaSettingTab(this.app, this)); + + registerCommands(this); + + this.registerMarkdownCodeBlockProcessor("chess", (source, el, ctx) => { + const config = parseBlockConfig(source); + renderChessBlock({ + host: el, + config, + settings: this.settings, + app: this.app, + ctx, + }); + }); + } + + onunload(): void { + // Tear down the shared Stockfish worker so reload/disable doesn't + // leak the (possibly running) analyzer. + terminateEngine(); + } + + async loadSettings(): Promise { + const data = (await this.loadData()) as Partial | null; + this.settings = Object.assign({}, DEFAULT_SETTINGS, data ?? {}); + } + + async saveSettings(): Promise { + await this.saveData(this.settings); + } +} diff --git a/src/settings.ts b/src/settings.ts new file mode 100644 index 0000000..0e80529 --- /dev/null +++ b/src/settings.ts @@ -0,0 +1,292 @@ +import { App, PluginSettingTab, Setting } from "obsidian"; +import type CaissaPlugin from "./main"; +import { + BOARD_COLOR_PRESETS, + DEFAULT_SETTINGS, + type ExplorerSource, + type Orientation, + type PieceSet, +} from "./types"; + +const CUSTOM_PRESET_ID = "custom"; + +/** Match the current light/dark colors against the preset list. */ +function matchPresetId(light: string, dark: string): string { + const l = light.trim().toLowerCase(); + const d = dark.trim().toLowerCase(); + const hit = BOARD_COLOR_PRESETS.find( + (p) => p.light.toLowerCase() === l && p.dark.toLowerCase() === d + ); + return hit?.id ?? CUSTOM_PRESET_ID; +} + +export class CaissaSettingTab extends PluginSettingTab { + plugin: CaissaPlugin; + + constructor(app: App, plugin: CaissaPlugin) { + super(app, plugin); + this.plugin = plugin; + } + + display(): void { + const { containerEl } = this; + containerEl.empty(); + + new Setting(containerEl).setName("Appearance").setHeading(); + + new Setting(containerEl) + .setName("Piece set") + .setDesc("Style used to draw the chess pieces.") + .addDropdown((dd) => { + const options: Array<[PieceSet, string]> = [ + ["cburnett", "Cburnett"], + ["merida", "Merida"], + ["staunty", "Staunty"], + ["caliente", "Caliente"], + ["pixel", "Pixel"], + ["letter", "Letter"], + ["unicode", "Unicode"], + ]; + for (const [value, label] of options) { + dd.addOption(value, label); + } + dd + .setValue(this.plugin.settings.pieceSet) + .onChange(async (value) => { + this.plugin.settings.pieceSet = value as PieceSet; + await this.plugin.saveSettings(); + }); + }); + + new Setting(containerEl) + .setName("Color preset") + .setDesc( + "Quick-select a board color scheme, or choose custom to set the light and dark square colors below by hand." + ) + .addDropdown((dd) => { + for (const preset of BOARD_COLOR_PRESETS) { + dd.addOption(preset.id, preset.label); + } + dd.addOption(CUSTOM_PRESET_ID, "Custom"); + dd.setValue( + matchPresetId( + this.plugin.settings.lightSquareColor, + this.plugin.settings.darkSquareColor + ) + ).onChange(async (value) => { + if (value === CUSTOM_PRESET_ID) { + return; + } + const preset = BOARD_COLOR_PRESETS.find( + (p) => p.id === value + ); + if (!preset) return; + this.plugin.settings.lightSquareColor = preset.light; + this.plugin.settings.darkSquareColor = preset.dark; + await this.plugin.saveSettings(); + this.display(); + }); + }); + + new Setting(containerEl) + .setName("Light square color") + .setDesc("CSS color for light squares.") + .addText((t) => + t + .setPlaceholder(DEFAULT_SETTINGS.lightSquareColor) + .setValue(this.plugin.settings.lightSquareColor) + .onChange(async (value) => { + this.plugin.settings.lightSquareColor = + value || DEFAULT_SETTINGS.lightSquareColor; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl) + .setName("Dark square color") + .setDesc("CSS color for dark squares.") + .addText((t) => + t + .setPlaceholder(DEFAULT_SETTINGS.darkSquareColor) + .setValue(this.plugin.settings.darkSquareColor) + .onChange(async (value) => { + this.plugin.settings.darkSquareColor = + value || DEFAULT_SETTINGS.darkSquareColor; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl) + .setName("Last move highlight") + .setDesc("Color used to highlight the most recent move.") + .addText((t) => + t + .setPlaceholder(DEFAULT_SETTINGS.lastMoveColor) + .setValue(this.plugin.settings.lastMoveColor) + .onChange(async (value) => { + this.plugin.settings.lastMoveColor = + value || DEFAULT_SETTINGS.lastMoveColor; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl) + .setName("Show coordinates") + .setDesc("Display rank and file labels on the board.") + .addToggle((t) => + t + .setValue(this.plugin.settings.showCoordinates) + .onChange(async (value) => { + this.plugin.settings.showCoordinates = value; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl).setName("Defaults").setHeading(); + + new Setting(containerEl) + .setName("Default orientation") + .setDesc("Side shown at the bottom of the board for new boards.") + .addDropdown((dd) => + dd + .addOption("white", "White") + .addOption("black", "Black") + .setValue(this.plugin.settings.defaultOrientation) + .onChange(async (value) => { + this.plugin.settings.defaultOrientation = + value as Orientation; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl) + .setName("Show interactive controls") + .setDesc( + "Show first/previous/next/last and flip buttons under each board." + ) + .addToggle((t) => + t + .setValue(this.plugin.settings.showInteractiveControls) + .onChange(async (value) => { + this.plugin.settings.showInteractiveControls = value; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl) + .setName("Show captured pieces") + .setDesc( + "Show captured-pieces trays and material balance above and below each board." + ) + .addToggle((t) => + t + .setValue(this.plugin.settings.showCapturedPieces) + .onChange(async (value) => { + this.plugin.settings.showCapturedPieces = value; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl).setName("Opening explorer").setHeading(); + + const explorerDesc = containerEl.createDiv({ + cls: "setting-item-description chess-study-explorer-disclosure", + }); + explorerDesc.createSpan({ + text: + "When enabled, the plugin makes authenticated GET requests to " + + "https://explorer.lichess.ovh per board position to fetch " + + "win/draw/loss statistics. Only the position (FEN) and your " + + "Lichess API token are sent. Off by default.", + }); + + const tokenDesc = document.createDocumentFragment(); + tokenDesc.appendChild( + document.createTextNode( + "Required by lichess as of 2026. Create a token (no scopes needed) at " + ) + ); + const tokenLink = document.createElement("a"); + tokenLink.href = "https://lichess.org/account/oauth/token"; + tokenLink.textContent = "lichess.org/account/oauth/token"; + tokenDesc.appendChild(tokenLink); + tokenDesc.appendChild( + document.createTextNode(", then paste it here.") + ); + + new Setting(containerEl) + .setName("Lichess API token") + .setDesc(tokenDesc) + .addText((t) => { + t.inputEl.setAttribute("type", "password"); + t.inputEl.setAttribute("autocomplete", "off"); + t.inputEl.setAttribute("spellcheck", "false"); + t + .setPlaceholder("Paste your token here") + .setValue(this.plugin.settings.lichessApiToken) + .onChange(async (value) => { + this.plugin.settings.lichessApiToken = value.trim(); + await this.plugin.saveSettings(); + }); + }); + + new Setting(containerEl) + .setName("Enable opening explorer") + .setDesc( + "Show win/draw/loss statistics for the current position next to each board." + ) + .addToggle((t) => + t + .setValue(this.plugin.settings.enableOpeningExplorer) + .onChange(async (value) => { + this.plugin.settings.enableOpeningExplorer = value; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl) + .setName("Data source") + .setDesc( + "Choose between the masters database (high-rated over-the-board games) or the lichess players database." + ) + .addDropdown((dd) => + dd + .addOption("masters", "Masters database") + .addOption("lichess", "Lichess players") + .setValue(this.plugin.settings.explorerSource) + .onChange(async (value) => { + this.plugin.settings.explorerSource = + value as ExplorerSource; + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl) + .setName("Maximum lines to show") + .setDesc("Cap on candidate moves displayed per position.") + .addText((t) => + t + .setPlaceholder(String(DEFAULT_SETTINGS.explorerMaxLines)) + .setValue(String(this.plugin.settings.explorerMaxLines)) + .onChange(async (value) => { + const n = parseInt(value, 10); + this.plugin.settings.explorerMaxLines = + isNaN(n) || n < 1 + ? DEFAULT_SETTINGS.explorerMaxLines + : Math.min(n, 50); + await this.plugin.saveSettings(); + }) + ); + + new Setting(containerEl).addButton((b) => + b + .setButtonText("Reset to defaults") + .setWarning() + .onClick(async () => { + this.plugin.settings = Object.assign({}, DEFAULT_SETTINGS); + await this.plugin.saveSettings(); + this.display(); + }) + ); + } +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..42c3638 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,208 @@ +export type PieceColor = "w" | "b"; +export type PieceType = "p" | "n" | "b" | "r" | "q" | "k"; +export type Orientation = "white" | "black"; +export type PieceSet = + | "cburnett" + | "merida" + | "staunty" + | "caliente" + | "pixel" + | "letter" + | "unicode"; + +/** All SVG-backed piece set IDs (i.e. everything except the pure-text fallback). */ +export const SVG_PIECE_SETS: ReadonlyArray = [ + "cburnett", + "merida", + "staunty", + "caliente", + "pixel", + "letter", +]; + +/** All piece set IDs that the parser/settings UI should accept. */ +export const ALL_PIECE_SETS: ReadonlyArray = [ + ...SVG_PIECE_SETS, + "unicode", +]; +export type ExplorerSource = "masters" | "lichess"; +export type BoardSize = "small" | "medium" | "large" | "full"; + +export interface CaissaSettings { + pieceSet: PieceSet; + lightSquareColor: string; + darkSquareColor: string; + lastMoveColor: string; + coordinateColor: string; + defaultOrientation: Orientation; + showCoordinates: boolean; + showInteractiveControls: boolean; + /** Show captured-pieces trays + material balance below/above the board. */ + showCapturedPieces: boolean; + /** + * Master switch for the Opening Explorer panel. When enabled, the plugin + * makes anonymous GET requests to https://explorer.lichess.ovh per + * position to fetch win/draw/loss statistics. OFF by default — see + * README "Privacy" section. + */ + enableOpeningExplorer: boolean; + explorerSource: ExplorerSource; + explorerMaxLines: number; + /** + * Lichess personal access token. The Opening Explorer API requires + * authentication as of March 2026. Create one at + * https://lichess.org/account/oauth/token (no scopes needed). + */ + lichessApiToken: string; +} + +/** + * Named color presets for board squares. Picking a preset in the settings UI + * just writes the two colors below into {@link CaissaSettings}; the rest + * of the renderer keeps reading the raw color strings as before. + */ +export interface BoardColorPreset { + id: string; + label: string; + light: string; + dark: string; +} + +/** Built-in board color presets, in display order. */ +export const BOARD_COLOR_PRESETS: ReadonlyArray = [ + { + id: "brown", + label: "Brown", + light: "#f0d9b5", + dark: "#b58863", + }, + { + id: "green", + label: "Green", + light: "#eeeed2", + dark: "#769656", + }, +]; + +export const DEFAULT_SETTINGS: CaissaSettings = { + pieceSet: "cburnett", + lightSquareColor: "#f0d9b5", + darkSquareColor: "#b58863", + lastMoveColor: "rgba(155, 199, 0, 0.41)", + coordinateColor: "#7a6a4a", + defaultOrientation: "white", + showCoordinates: true, + showInteractiveControls: true, + showCapturedPieces: true, + enableOpeningExplorer: false, + explorerSource: "masters", + explorerMaxLines: 15, + lichessApiToken: "", +}; + +/** + * Headers parsed from a PGN, plus a few derived fields. Display-only — + * the engine doesn't use these for move generation. + */ +export interface PgnHeaders { + event?: string; + site?: string; + date?: string; + round?: string; + white?: string; + black?: string; + result?: string; + whiteElo?: string; + blackElo?: string; + whiteTitle?: string; + blackTitle?: string; + eco?: string; + openingName?: string; + timeControl?: string; + termination?: string; +} + +/** + * Per-board configuration parsed out of a ```chess code block. + * All fields are optional — a totally empty block renders the start position. + */ +export interface ChessBlockConfig { + opening?: string; + variation?: string; + /** Endgame technique ID/name (e.g. "B+N mate", "lucena"). */ + endgame?: string; + /** WCC game slug (e.g. "1972-fischer-spassky-06"). */ + wccgame?: string; + moves?: string; + /** Full PGN text (headers + moves). Wins over `moves` if both are set. */ + pgn?: string; + /** Lichess game ID or full https://lichess.org/ URL. */ + lichess?: string; + fen?: string; + orientation?: Orientation; + pieces?: PieceSet; + light?: string; + dark?: string; + title?: string; + interactive?: boolean; + coordinates?: boolean; + startMove?: number; + /** When false, the moves panel is hidden and the board takes the row alone. */ + showMoves?: boolean; + /** + * Visual size of the board. `small`/`medium`/`large` cap the board width + * and keep the moves panel beside it (collapsing on narrow panes). `full` + * stretches the board to the writing-area width with the moves panel + * always below. + */ + size?: BoardSize; + /** Override the global "enable explorer" switch for this block only. */ + explorer?: boolean; + explorerSource?: ExplorerSource; + /** Override the global "show captured pieces" toggle for this block only. */ + captured?: boolean; + /** + * Whitespace-separated arrow tokens. Each token is `` with + * an optional `-color` suffix. Example: `e2e4 g1f3 d2d4-blue`. + */ + arrows?: string; + /** + * Whitespace-separated square highlight tokens. Each token is a + * square with an optional `-color` suffix. Example: `d4 e4-red f5-yellow`. + */ + highlights?: string; + /** + * When true, lazy-load the bundled Stockfish 10 (asm.js) engine and + * show an evaluation bar + top engine lines for the current position. + * Off by default to avoid the worker spin-up cost on every block. + */ + analyze?: boolean; + /** + * Switch the block into "play vs Stockfish" mode. Set to "white"/"black" + * to play that color (engine takes the opposite); "random" picks a + * coin-flip side at mount time. The starting position comes from + * `fen`/`opening`/`endgame` etc. — whatever you'd normally render is + * the starting position of the game. + */ + play?: "white" | "black" | "random"; + /** + * Stockfish "Skill Level" (0–20). Lower = weaker / more human. Defaults + * to 8. Combined with a shallower depth at lower levels so weak moves + * also come back fast. + */ + level?: number; +} + +export interface OpeningVariation { + name: string; + moves: string; + description?: string; +} + +export interface Opening { + name: string; + aliases?: string[]; + moves: string; + description?: string; + variations?: OpeningVariation[]; +} diff --git a/src/types/sftext.d.ts b/src/types/sftext.d.ts new file mode 100644 index 0000000..cf2aea7 --- /dev/null +++ b/src/types/sftext.d.ts @@ -0,0 +1,7 @@ +// esbuild loads `.sftext` imports as plain strings (configured in +// esbuild.config.mjs). Declaring the module shape here lets TypeScript +// type-check imports of vendored asm.js engine source. +declare module "*.sftext" { + const content: string; + export default content; +} diff --git a/src/ui/analysis-panel.ts b/src/ui/analysis-panel.ts new file mode 100644 index 0000000..b7f433b --- /dev/null +++ b/src/ui/analysis-panel.ts @@ -0,0 +1,221 @@ +import type { AnalysisResult, EngineLine } from "../chess/engine-worker"; +import { getEngine } from "../chess/engine-worker"; +import { fenInfo } from "./lines-panel"; + +/** + * Lazily-mounted Stockfish analysis panel: an evaluation bar plus the + * top-N principal variations for the current position. + * + * Lifecycle is owned by the chess block: + * 1. The block calls {@link createAnalysisController} once on mount. + * 2. On every position change (step/flip) it calls `controller.update(fen)`. + * 3. On dispose it calls `controller.destroy()` to abort any in-flight + * search and detach DOM. The shared engine worker keeps running so + * subsequent blocks don't pay the spin-up cost again. + */ + +export interface AnalysisController { + update(fen: string): void; + destroy(): void; +} + +export interface AnalysisOptions { + depth?: number; + multiPV?: number; +} + +export function createAnalysisController( + host: HTMLElement, + opts: AnalysisOptions = {} +): AnalysisController { + host.empty(); + host.classList.add("chess-study-analysis"); + + const bar = host.createDiv({ cls: "chess-study-eval-bar" }); + const fillWhite = bar.createDiv({ cls: "chess-study-eval-fill is-white" }); + const fillBlack = bar.createDiv({ cls: "chess-study-eval-fill is-black" }); + const label = bar.createDiv({ cls: "chess-study-eval-label", text: "0.0" }); + + const linesEl = host.createDiv({ cls: "chess-study-engine-lines" }); + linesEl.createDiv({ + cls: "chess-study-engine-loading", + text: "Loading engine…", + }); + + let abortController: AbortController | null = null; + let destroyed = false; + + const update = (fen: string) => { + if (destroyed) return; + abortController?.abort(); + abortController = new AbortController(); + const myAbort = abortController; + + linesEl.empty(); + linesEl.createDiv({ + cls: "chess-study-engine-loading", + text: "Analyzing…", + }); + + void getEngine() + .analyze(fen, { + depth: opts.depth ?? 16, + multiPV: opts.multiPV ?? 3, + signal: myAbort.signal, + }) + .then((res) => { + if (destroyed || myAbort.signal.aborted) return; + renderAnalysis(linesEl, fillWhite, fillBlack, label, res, fen); + }) + .catch((err) => { + if (destroyed) return; + linesEl.empty(); + linesEl.createDiv({ + cls: "chess-study-engine-error", + text: `Engine error: ${(err as Error).message}`, + }); + }); + }; + + const destroy = () => { + destroyed = true; + abortController?.abort(); + abortController = null; + host.empty(); + }; + + return { update, destroy }; +} + +function renderAnalysis( + linesEl: HTMLElement, + fillWhite: HTMLElement, + fillBlack: HTMLElement, + label: HTMLElement, + res: AnalysisResult, + fen: string +): void { + linesEl.empty(); + if (res.lines.length === 0) { + linesEl.createDiv({ + cls: "chess-study-engine-empty", + text: "No analysis available.", + }); + updateEvalBar(fillWhite, fillBlack, label, null, null, "w"); + return; + } + + const top = res.lines[0]; + if (!top) return; + const { fullMoveNumber, turn } = fenInfo(fen); + updateEvalBar(fillWhite, fillBlack, label, top.cp, top.mate, turn); + + for (const line of res.lines) { + renderLineRow(linesEl, line, fullMoveNumber, turn); + } +} + +function renderLineRow( + host: HTMLElement, + line: EngineLine, + startFullMove: number, + turn: "w" | "b" +): void { + const row = host.createDiv({ cls: "chess-study-engine-line" }); + row.createSpan({ + cls: "chess-study-engine-eval", + text: formatScore(line.cp, line.mate, turn), + }); + row.createSpan({ + cls: "chess-study-engine-depth", + text: `d${line.depth}`, + }); + row.createSpan({ + cls: "chess-study-engine-pv", + text: formatPv(line.pv, startFullMove, turn), + }); +} + +/** + * Format the engine's score from the side-to-move's perspective, then + * flip the sign so the printed value is always from White's perspective + * (e.g. "+1.20" = White is up, "-0.40" = Black is up). Mate scores are + * always shown as #N from White's POV too. + */ +function formatScore( + cp: number | null, + mate: number | null, + turn: "w" | "b" +): string { + if (mate !== null) { + const fromWhite = turn === "w" ? mate : -mate; + const sign = fromWhite > 0 ? "+" : "-"; + return `${sign}M${Math.abs(fromWhite)}`; + } + if (cp !== null) { + const fromWhite = (turn === "w" ? cp : -cp) / 100; + const sign = fromWhite >= 0 ? "+" : ""; + return `${sign}${fromWhite.toFixed(2)}`; + } + return "0.00"; +} + +/** + * Format a UCI principal variation as a human-readable move list, e.g. + * 1. e4 e5 2. Nf3 Nc6 ... + * + * We don't have a chess.js instance here, so we fall back to printing + * raw UCI moves. This is fine for analysis output where positions update + * faster than a human reads — clarity beats SAN for quick scanning. + */ +function formatPv(pv: string[], startFullMove: number, turn: "w" | "b"): string { + const out: string[] = []; + let move = startFullMove; + let side: "w" | "b" = turn; + for (let i = 0; i < pv.length; i++) { + const tok = pv[i]; + if (!tok) continue; + if (side === "w") { + out.push(`${move}.`); + } else if (i === 0) { + out.push(`${move}...`); + } + out.push(tok); + if (side === "b") move++; + side = side === "w" ? "b" : "w"; + } + return out.join(" "); +} + +/** + * Update the eval bar fill ratios. We clamp to ~5 pawns so a single + * blunder doesn't peg the bar — the numeric label still shows the true + * value. + */ +function updateEvalBar( + fillWhite: HTMLElement, + fillBlack: HTMLElement, + label: HTMLElement, + cp: number | null, + mate: number | null, + turn: "w" | "b" +): void { + let whitePct = 50; + let labelText = "0.00"; + + if (mate !== null) { + const fromWhite = turn === "w" ? mate : -mate; + whitePct = fromWhite > 0 ? 100 : 0; + labelText = `${fromWhite > 0 ? "+" : "-"}M${Math.abs(fromWhite)}`; + } else if (cp !== null) { + const pawnsFromWhite = (turn === "w" ? cp : -cp) / 100; + const clamped = Math.max(-5, Math.min(5, pawnsFromWhite)); + whitePct = 50 + (clamped / 5) * 50; + const sign = pawnsFromWhite >= 0 ? "+" : ""; + labelText = `${sign}${pawnsFromWhite.toFixed(2)}`; + } + + fillWhite.style.height = `${whitePct}%`; + fillBlack.style.height = `${100 - whitePct}%`; + label.setText(labelText); +} diff --git a/src/ui/board-renderer.ts b/src/ui/board-renderer.ts new file mode 100644 index 0000000..2b09642 --- /dev/null +++ b/src/ui/board-renderer.ts @@ -0,0 +1,519 @@ +import type { Orientation, PieceColor, PieceSet, PieceType } from "../types"; +import { + createPieceNode, + getPieceGlyph, + type PieceKey, +} from "../chess/pieces"; +import type { ArrowSpec, HighlightSpec } from "../utils/annotations"; + +const SVG_NS = "http://www.w3.org/2000/svg"; +const FILES = ["a", "b", "c", "d", "e", "f", "g", "h"] as const; +const SQUARE = 45; + +export interface BoardOptions { + fen: string; + orientation: Orientation; + pieceSet: PieceSet; + lightColor: string; + darkColor: string; + highlightColor: string; + coordinateColor: string; + showCoordinates: boolean; + from?: string; + to?: string; + /** Optional declarative arrow overlays drawn on top of the board. */ + arrows?: ArrowSpec[]; + /** Optional declarative square ring overlays drawn behind pieces. */ + highlights?: HighlightSpec[]; + /** + * When set, the board attaches transparent click targets per square and + * fires this callback with the clicked square (e.g. "e4"). Used by + * play-vs-engine mode and any future click-to-move features. + */ + onSquareClick?: (square: string) => void; + /** + * Currently-selected source square, e.g. after the user picks up a + * piece. Rendered with a brighter ring than the static `highlights`. + */ + selectedSquare?: string; + /** + * Squares that are legal destinations from {@link selectedSquare}. + * Empty squares get a small dot, capture squares get a larger ring + * (Lichess convention). + */ + legalTargets?: string[]; +} + +/** + * Render (or re-render) a chess board into a host element. Tears down any + * previous SVG inside the host and replaces it with a fresh one so it's safe + * to call repeatedly when stepping through moves. + */ +export function renderBoard(host: HTMLElement, options: BoardOptions): void { + host.empty(); + host.classList.add("chess-study-board-host"); + + const svg = document.createElementNS(SVG_NS, "svg"); + svg.setAttribute("viewBox", "0 0 360 360"); + svg.setAttribute("xmlns", SVG_NS); + svg.classList.add("chess-study-board"); + svg.setAttribute("role", "img"); + svg.setAttribute( + "aria-label", + `Chess position, ${options.orientation} to move from below` + ); + + const board = parseFen(options.fen); + + for (let r = 0; r < 8; r++) { + for (let f = 0; f < 8; f++) { + drawSquare(svg, r, f, options); + } + } + + if (options.from && options.to) { + drawHighlight(svg, options.from, options.orientation, options.highlightColor); + drawHighlight(svg, options.to, options.orientation, options.highlightColor); + } + + // User-declared square highlights drawn behind pieces so the piece glyph + // is still readable. We use a translucent ring rather than a fill so they + // stand apart from the last-move highlight. + if (options.highlights?.length) { + for (const h of options.highlights) { + drawSquareRing(svg, h.square, options.orientation, h.color); + } + } + + // Selection ring (only one at a time) sits behind the piece so the + // glyph is still readable. + if (options.selectedSquare) { + drawSelectionRing( + svg, + options.selectedSquare, + options.orientation + ); + } + + if (options.showCoordinates) { + drawCoordinates(svg, options); + } + + for (let r = 0; r < 8; r++) { + for (let f = 0; f < 8; f++) { + const piece = board[r]?.[f]; + if (!piece) continue; + drawPiece(svg, r, f, piece.color, piece.type, options); + } + } + + // Arrows draw last so they sit on top of pieces — that's the convention + // users know from Lichess and chess.com analysis boards. + if (options.arrows?.length) { + for (const a of options.arrows) { + drawArrow(svg, a.from, a.to, options.orientation, a.color); + } + } + + // Legal-move dots on top of pieces so the destination markers are + // always visible (otherwise a target piece would hide its own ring). + if (options.legalTargets?.length) { + for (const sq of options.legalTargets) { + const occupied = isOccupied(board, sq); + drawLegalTarget(svg, sq, options.orientation, occupied); + } + } + + // Click-target overlays go on top of everything else so they get the + // click events first. Pieces are drawn without pointer-events anyway, + // but stacking them last is the simplest correct contract. + if (options.onSquareClick) { + const onClick = options.onSquareClick; + for (let r = 0; r < 8; r++) { + for (let f = 0; f < 8; f++) { + attachClickTarget(svg, r, f, options.orientation, onClick); + } + } + svg.classList.add("is-clickable"); + } + + host.appendChild(svg); +} + +interface PieceCell { + color: PieceColor; + type: PieceType; +} + +/** Returns an 8x8 array indexed [rank-from-top][file-from-left]. */ +function parseFen(fen: string): (PieceCell | null)[][] { + const board: (PieceCell | null)[][] = []; + const placement = fen.split(" ")[0] ?? ""; + const ranks = placement.split("/"); + for (const rankStr of ranks) { + const row: (PieceCell | null)[] = []; + for (const ch of rankStr) { + if (/[1-8]/.test(ch)) { + const n = parseInt(ch, 10); + for (let i = 0; i < n; i++) row.push(null); + } else { + const isWhite = ch === ch.toUpperCase(); + row.push({ + color: isWhite ? "w" : "b", + type: ch.toLowerCase() as PieceType, + }); + } + } + while (row.length < 8) row.push(null); + board.push(row); + } + while (board.length < 8) board.push(new Array(8).fill(null)); + return board; +} + +/** + * Convert (rank-from-top, file-from-left) into pixel (x, y) for the given + * orientation. Each square is 45x45 inside a 360x360 viewBox. + */ +function squareToXY( + r: number, + f: number, + orientation: Orientation +): { x: number; y: number } { + if (orientation === "white") { + return { x: f * 45, y: r * 45 }; + } + return { x: (7 - f) * 45, y: (7 - r) * 45 }; +} + +/** Convert algebraic ("e4") into a (rank-from-top, file-from-left) pair. */ +function algebraicToRC(square: string): { r: number; f: number } | null { + if (square.length !== 2) return null; + const file = square.charCodeAt(0) - "a".charCodeAt(0); + const rank = parseInt(square[1] ?? "", 10); + if (file < 0 || file > 7 || isNaN(rank) || rank < 1 || rank > 8) { + return null; + } + return { r: 8 - rank, f: file }; +} + +function drawSquare( + svg: SVGElement, + r: number, + f: number, + opts: BoardOptions +): void { + const { x, y } = squareToXY(r, f, opts.orientation); + const isLight = (r + f) % 2 === 0; + const rect = document.createElementNS(SVG_NS, "rect"); + rect.setAttribute("x", String(x)); + rect.setAttribute("y", String(y)); + rect.setAttribute("width", "45"); + rect.setAttribute("height", "45"); + rect.setAttribute( + "fill", + isLight ? opts.lightColor : opts.darkColor + ); + svg.appendChild(rect); +} + +function drawHighlight( + svg: SVGElement, + square: string, + orientation: Orientation, + color: string +): void { + const rc = algebraicToRC(square); + if (!rc) return; + const { x, y } = squareToXY(rc.r, rc.f, orientation); + const rect = document.createElementNS(SVG_NS, "rect"); + rect.setAttribute("x", String(x)); + rect.setAttribute("y", String(y)); + rect.setAttribute("width", String(SQUARE)); + rect.setAttribute("height", String(SQUARE)); + rect.setAttribute("fill", color); + rect.setAttribute("pointer-events", "none"); + svg.appendChild(rect); +} + +/** + * Draw a selection ring around the picked-up piece. We use a yellow + * translucent fill (so the underlying square color still shows through) + * to match the convention from major chess sites. + */ +function drawSelectionRing( + svg: SVGElement, + square: string, + orientation: Orientation +): void { + const rc = algebraicToRC(square); + if (!rc) return; + const { x, y } = squareToXY(rc.r, rc.f, orientation); + const rect = document.createElementNS(SVG_NS, "rect"); + rect.setAttribute("x", String(x)); + rect.setAttribute("y", String(y)); + rect.setAttribute("width", String(SQUARE)); + rect.setAttribute("height", String(SQUARE)); + rect.setAttribute("fill", "rgba(255, 230, 0, 0.45)"); + rect.setAttribute("pointer-events", "none"); + svg.appendChild(rect); +} + +/** + * Draw a small dot (empty square) or a hollow ring (capture square) on + * a legal-move target. The ring sits at the square's edge so the piece + * glyph underneath stays visible — matching Lichess. + */ +function drawLegalTarget( + svg: SVGElement, + square: string, + orientation: Orientation, + occupied: boolean +): void { + const rc = algebraicToRC(square); + if (!rc) return; + const { x, y } = squareToXY(rc.r, rc.f, orientation); + const cx = x + SQUARE / 2; + const cy = y + SQUARE / 2; + const circle = document.createElementNS(SVG_NS, "circle"); + circle.setAttribute("cx", String(cx)); + circle.setAttribute("cy", String(cy)); + if (occupied) { + circle.setAttribute("r", String(SQUARE / 2 - 2)); + circle.setAttribute("fill", "none"); + circle.setAttribute("stroke", "rgba(0, 0, 0, 0.35)"); + circle.setAttribute("stroke-width", "4"); + } else { + circle.setAttribute("r", String(SQUARE / 6)); + circle.setAttribute("fill", "rgba(0, 0, 0, 0.35)"); + } + circle.setAttribute("pointer-events", "none"); + svg.appendChild(circle); +} + +/** + * Add an invisible per-square hit target on top of everything. Each + * carries its algebraic name in `data-square` so the SVG-level click + * handler can route the event without recomputing geometry. + */ +function attachClickTarget( + svg: SVGElement, + r: number, + f: number, + orientation: Orientation, + onClick: (square: string) => void +): void { + const { x, y } = squareToXY(r, f, orientation); + const file = "abcdefgh".charAt(f); + const rank = String(8 - r); + const square = `${file}${rank}`; + const rect = document.createElementNS(SVG_NS, "rect"); + rect.setAttribute("x", String(x)); + rect.setAttribute("y", String(y)); + rect.setAttribute("width", String(SQUARE)); + rect.setAttribute("height", String(SQUARE)); + rect.setAttribute("fill", "transparent"); + // Default SVG pointer-events is "visiblePainted" — a transparent fill + // wouldn't capture clicks under that policy. Force "all" so the + // invisible target still receives events and routes them. + rect.setAttribute("pointer-events", "all"); + rect.classList.add("chess-study-board-target"); + rect.addEventListener("click", () => onClick(square)); + svg.appendChild(rect); +} + +/** + * Quick "is there a piece on this square?" check against the parsed FEN + * grid. Used so legal-target rendering can pick "ring" vs "dot". + */ +function isOccupied( + board: (PieceCell | null)[][], + square: string +): boolean { + const rc = algebraicToRC(square); + if (!rc) return false; + return board[rc.r]?.[rc.f] != null; +} + +/** + * Draw a translucent ring inside a square — used for user-declared + * `highlights:` annotations. Inset slightly so the ring sits inside the + * square edge instead of bleeding into neighbors. + */ +function drawSquareRing( + svg: SVGElement, + square: string, + orientation: Orientation, + color: string +): void { + const rc = algebraicToRC(square); + if (!rc) return; + const { x, y } = squareToXY(rc.r, rc.f, orientation); + const cx = x + SQUARE / 2; + const cy = y + SQUARE / 2; + const radius = SQUARE / 2 - 2; + const circle = document.createElementNS(SVG_NS, "circle"); + circle.setAttribute("cx", String(cx)); + circle.setAttribute("cy", String(cy)); + circle.setAttribute("r", String(radius)); + circle.setAttribute("fill", "none"); + circle.setAttribute("stroke", color); + circle.setAttribute("stroke-width", "3"); + circle.setAttribute("pointer-events", "none"); + svg.appendChild(circle); +} + +/** + * Draw a thick arrow from one square to another. The arrowhead is a + * filled triangle whose base sits at the edge of the destination square, + * and the shaft is shortened so the head sits cleanly on top of it + * rather than poking past it. + */ +function drawArrow( + svg: SVGElement, + from: string, + to: string, + orientation: Orientation, + color: string +): void { + const fromRC = algebraicToRC(from); + const toRC = algebraicToRC(to); + if (!fromRC || !toRC) return; + + const fromXY = squareToXY(fromRC.r, fromRC.f, orientation); + const toXY = squareToXY(toRC.r, toRC.f, orientation); + + const x1 = fromXY.x + SQUARE / 2; + const y1 = fromXY.y + SQUARE / 2; + const x2 = toXY.x + SQUARE / 2; + const y2 = toXY.y + SQUARE / 2; + + const dx = x2 - x1; + const dy = y2 - y1; + const len = Math.hypot(dx, dy); + if (len < 1) return; + + const ux = dx / len; + const uy = dy / len; + + const shaftWidth = 7; + const headLen = 14; + const headWidth = 16; + + // Shorten the shaft so the arrowhead's tip is the actual end-of-arrow, + // and offset the start a touch so it doesn't sit dead-center on the + // piece glyph. + const startInset = 8; + const endInset = headLen; + const sx = x1 + ux * startInset; + const sy = y1 + uy * startInset; + const ex = x2 - ux * endInset; + const ey = y2 - uy * endInset; + + const g = document.createElementNS(SVG_NS, "g"); + g.setAttribute("pointer-events", "none"); + + const shaft = document.createElementNS(SVG_NS, "line"); + shaft.setAttribute("x1", String(sx)); + shaft.setAttribute("y1", String(sy)); + shaft.setAttribute("x2", String(ex)); + shaft.setAttribute("y2", String(ey)); + shaft.setAttribute("stroke", color); + shaft.setAttribute("stroke-width", String(shaftWidth)); + shaft.setAttribute("stroke-linecap", "butt"); + g.appendChild(shaft); + + // Triangular head: tip at (x2,y2), base perpendicular to the shaft + // `headLen` pixels back from the tip. + const baseCx = x2 - ux * headLen; + const baseCy = y2 - uy * headLen; + const px = -uy; + const py = ux; + const baseAx = baseCx + px * (headWidth / 2); + const baseAy = baseCy + py * (headWidth / 2); + const baseBx = baseCx - px * (headWidth / 2); + const baseBy = baseCy - py * (headWidth / 2); + + const head = document.createElementNS(SVG_NS, "polygon"); + head.setAttribute( + "points", + `${x2},${y2} ${baseAx},${baseAy} ${baseBx},${baseBy}` + ); + head.setAttribute("fill", color); + g.appendChild(head); + + svg.appendChild(g); +} + +function drawCoordinates(svg: SVGElement, opts: BoardOptions): void { + const orient = opts.orientation; + for (let i = 0; i < 8; i++) { + const fileChar = orient === "white" ? FILES[i] : FILES[7 - i]; + const rankChar = orient === "white" ? String(8 - i) : String(i + 1); + + const fileLabel = document.createElementNS(SVG_NS, "text"); + fileLabel.setAttribute("x", String(i * 45 + 38)); + fileLabel.setAttribute("y", "356"); + fileLabel.setAttribute("font-size", "8"); + fileLabel.setAttribute("font-family", "system-ui, sans-serif"); + fileLabel.setAttribute("font-weight", "600"); + fileLabel.setAttribute("fill", opts.coordinateColor); + fileLabel.setAttribute("pointer-events", "none"); + fileLabel.textContent = fileChar ?? ""; + svg.appendChild(fileLabel); + + const rankLabel = document.createElementNS(SVG_NS, "text"); + rankLabel.setAttribute("x", "3"); + rankLabel.setAttribute("y", String(i * 45 + 11)); + rankLabel.setAttribute("font-size", "8"); + rankLabel.setAttribute("font-family", "system-ui, sans-serif"); + rankLabel.setAttribute("font-weight", "600"); + rankLabel.setAttribute("fill", opts.coordinateColor); + rankLabel.setAttribute("pointer-events", "none"); + rankLabel.textContent = rankChar; + svg.appendChild(rankLabel); + } +} + +function drawPiece( + svg: SVGElement, + r: number, + f: number, + color: PieceColor, + type: PieceType, + opts: BoardOptions +): void { + const { x, y } = squareToXY(r, f, opts.orientation); + const key: PieceKey = `${color}${type}`; + + if (opts.pieceSet !== "unicode") { + const node = createPieceNode(opts.pieceSet, key); + if (node) { + // Wrap so we don't trample the per-set transform that + // createPieceNode may have already applied (for sets whose + // source viewBox differs from 45x45). + const wrap = document.createElementNS(SVG_NS, "g"); + wrap.setAttribute("transform", `translate(${x}, ${y})`); + wrap.appendChild(node); + svg.appendChild(wrap); + return; + } + } + + // Unicode fallback (or explicit unicode mode). + const text = document.createElementNS(SVG_NS, "text"); + text.setAttribute("x", String(x + 22.5)); + text.setAttribute("y", String(y + 36)); + text.setAttribute("text-anchor", "middle"); + text.setAttribute("font-size", "38"); + text.setAttribute( + "font-family", + "'Segoe UI Symbol', 'Noto Sans Symbols 2', system-ui, sans-serif" + ); + text.setAttribute("fill", color === "w" ? "#fafafa" : "#1a1a1a"); + text.setAttribute("stroke", color === "w" ? "#1a1a1a" : "#fafafa"); + text.setAttribute("stroke-width", "0.6"); + text.setAttribute("pointer-events", "none"); + text.textContent = getPieceGlyph(key); + svg.appendChild(text); +} diff --git a/src/ui/captured-tray.ts b/src/ui/captured-tray.ts new file mode 100644 index 0000000..4edbd79 --- /dev/null +++ b/src/ui/captured-tray.ts @@ -0,0 +1,106 @@ +import type { PieceColor, PieceSet, PieceType } from "../types"; +import { createPieceNode, getPieceGlyph, type PieceKey } from "../chess/pieces"; +import { + TRAY_PIECE_ORDER, + type CapturedTotals, +} from "../utils/captured-pieces"; + +const SVG_NS = "http://www.w3.org/2000/svg"; + +export interface TrayArgs { + /** Which side's captures we're showing — drives piece color and label. */ + color: PieceColor; + totals: CapturedTotals; + pieceSet: PieceSet; + /** + * Material advantage from White's perspective. We only render an + * "+N" badge on the side that's actually ahead so it never duplicates. + */ + showAdvantage: boolean; +} + +/** + * Render a single captured-pieces tray (one of two — the other is the + * opposite color shown above/below the board). Each row contains: + * + * [piece] x N [piece] x N ... [+advantage] + * + * The pieces themselves are mini SVGs cloned from the active piece set so + * the tray styles match the board. Pawns are listed first (lowest value) + * up to queens, matching Lichess and chess.com conventions. + */ +export function renderCapturedTray(host: HTMLElement, args: TrayArgs): void { + host.empty(); + host.classList.add("chess-study-captured"); + + const counts = + args.color === "w" ? args.totals.byWhite : args.totals.byBlack; + + // "Pieces captured by white" means *black* pieces — and vice versa. + // The renderer below draws those former-opponent pieces. + const drawColor: PieceColor = args.color === "w" ? "b" : "w"; + + for (const type of TRAY_PIECE_ORDER) { + const n = counts[type]; + if (n <= 0) continue; + appendPieceGroup(host, drawColor, type, n, args.pieceSet); + } + + if (args.showAdvantage && args.totals.advantage !== 0) { + const adv = args.totals.advantage; + // Show on whichever side is ahead. + const showHere = + (args.color === "w" && adv > 0) || + (args.color === "b" && adv < 0); + if (showHere) { + host.createSpan({ + cls: "chess-study-captured-adv", + text: `+${Math.abs(adv)}`, + }); + } + } +} + +/** + * Append a group like "[♟️ ♟️ ♟️]" for `count` copies of one piece type. + * Multiple copies overlap slightly to mirror the "stack" look from + * Lichess so a 7-pawn capture doesn't take up half the row. + */ +function appendPieceGroup( + host: HTMLElement, + color: PieceColor, + type: PieceType, + count: number, + pieceSet: PieceSet +): void { + const group = host.createSpan({ cls: "chess-study-captured-group" }); + for (let i = 0; i < count; i++) { + appendMiniPiece(group, color, type, pieceSet); + } +} + +function appendMiniPiece( + host: HTMLElement, + color: PieceColor, + type: PieceType, + pieceSet: PieceSet +): void { + const key: PieceKey = `${color}${type}`; + const wrap = host.createSpan({ cls: "chess-study-captured-piece" }); + + if (pieceSet !== "unicode") { + const node = createPieceNode(pieceSet, key); + if (node) { + const svg = document.createElementNS(SVG_NS, "svg"); + svg.setAttribute("viewBox", "0 0 45 45"); + svg.setAttribute("xmlns", SVG_NS); + svg.classList.add("chess-study-captured-svg"); + svg.appendChild(node); + wrap.appendChild(svg); + return; + } + } + + wrap.classList.add("chess-study-captured-glyph"); + wrap.textContent = getPieceGlyph(key); +} diff --git a/src/ui/chess-block.ts b/src/ui/chess-block.ts new file mode 100644 index 0000000..e264d74 --- /dev/null +++ b/src/ui/chess-block.ts @@ -0,0 +1,751 @@ +import { App, MarkdownPostProcessorContext, Menu, Notice, setIcon } from "obsidian"; +import type { ChessBlockConfig, CaissaSettings, PgnHeaders } from "../types"; +import { buildPositions, type BuildResult, type PositionStep } from "../chess/engine"; +import { fetchExplorer } from "../chess/explorer"; +import { fetchLichessGame } from "../chess/lichess-games"; +import { renderBoard } from "./board-renderer"; +import { renderMoveList } from "./move-list"; +import { fenInfo, renderLinesPanel } from "./lines-panel"; +import { renderInlinePicker } from "./inline-picker"; +import { rewriteChessBlock } from "../utils/block-rewrite"; +import { parseArrows, parseHighlights } from "../utils/annotations"; +import { + computeCaptured, + hasAnyCaptures, +} from "../utils/captured-pieces"; +import { renderCapturedTray } from "./captured-tray"; +import { + copyBoardAsPng, + copyBoardAsSvg, + downloadBoardAsPng, + downloadBoardAsSvg, +} from "../utils/export-board"; +import { + createAnalysisController, + type AnalysisController, +} from "./analysis-panel"; +import { createEvalGraphController } from "./eval-graph"; +import { renderPlayBlock } from "./play-controller"; + +export interface ChessBlockViewArgs { + host: HTMLElement; + config: ChessBlockConfig; + settings: CaissaSettings; + /** Obsidian app handle, used to rewrite the source file when the inline picker is used. */ + app: App; + /** Markdown context for locating the block's line range in the source file. */ + ctx: MarkdownPostProcessorContext; +} + +/** + * Render an entire interactive chess study block (board + moves + controls) + * into a host element. Stores its mutable state (current step + orientation) + * locally and re-renders on each interaction. + */ +export function renderChessBlock(args: ChessBlockViewArgs): void { + const { host, config, settings, app, ctx } = args; + host.empty(); + host.classList.add("chess-study-block"); + + if (config.lichess) { + renderRemoteLichessBlock(host, config, settings, app, ctx); + return; + } + + const result = buildPositions({ + opening: config.opening, + variation: config.variation, + endgame: config.endgame, + wccgame: config.wccgame, + moves: config.moves, + pgn: config.pgn, + fen: config.fen, + }); + + // Play-vs-Stockfish hijacks the entire block: the user is making + // moves, not stepping a fixed sequence, so the standard mountResult + // flow doesn't apply. We pull the *first* (starting) FEN from the + // build result so any opening/endgame/FEN config still seeds the game. + if (config.play && result.steps.length > 0 && !result.error) { + const startStep = + result.steps[Math.max(0, (config.startMove ?? 0) | 0)] ?? + result.steps[0]; + if (startStep) { + renderPlayBlock({ + host, + startFen: startStep.fen, + humanColor: pickHumanColor(config.play), + level: config.level ?? 8, + config, + settings, + app, + }); + return; + } + } + + mountResult(host, config, settings, result, app, ctx); +} + +/** + * Resolve the `play:` config (which can be "white", "black", or "random") + * to a concrete piece color. Random is decided once at mount time so the + * orientation doesn't flip mid-game on a re-render. + */ +function pickHumanColor(play: NonNullable): "w" | "b" { + if (play === "white") return "w"; + if (play === "black") return "b"; + return Math.random() < 0.5 ? "w" : "b"; +} + +/** + * Async path: fetch a Lichess game over HTTPS, then render it. Shows a + * loading shimmer while in flight and an inline error if it fails. + */ +function renderRemoteLichessBlock( + host: HTMLElement, + config: ChessBlockConfig, + settings: CaissaSettings, + app: App, + ctx: MarkdownPostProcessorContext +): void { + const id = config.lichess?.trim() ?? ""; + + if (config.title) { + host.createDiv({ cls: "chess-study-title", text: config.title }); + } + + const loading = host.createDiv({ + cls: "chess-study-loading", + text: `Loading Lichess game…`, + }); + + fetchLichessGame(id) + .then((pgn) => { + loading.remove(); + const result = buildPositions({ pgn }); + mountResult(host, config, settings, result, app, ctx); + }) + .catch((err: Error) => { + loading.remove(); + host.createDiv({ + cls: "chess-study-error", + text: `Could not load Lichess game "${id}": ${err.message}`, + }); + }); +} + +/** + * Shared mount path: takes a {@link BuildResult} and renders headers, the + * board, the move list, controls, and the optional explorer panel. + */ +function mountResult( + host: HTMLElement, + config: ChessBlockConfig, + settings: CaissaSettings, + result: BuildResult, + app: App, + ctx: MarkdownPostProcessorContext +): void { + // If the block has no concrete position content (no pgn/moves/fen/lichess), + // show the cascading category picker above the board so the user can pick + // a starting position without editing the source manually. The picker + // rewrites the block's source on change, which triggers a re-render. + const showInlinePicker = + !config.pgn && !config.moves && !config.fen && !config.lichess; + if (showInlinePicker) { + renderPickerStrip(host, config, app, ctx); + } + + if (config.title) { + host.createDiv({ cls: "chess-study-title", text: config.title }); + } else if (result.headers) { + renderGameHeader(host, result.headers); + } else if (result.resolvedTitle) { + host.createDiv({ + cls: "chess-study-title", + text: result.resolvedTitle, + }); + if (result.resolvedDescription) { + host.createDiv({ + cls: "chess-study-description", + text: result.resolvedDescription, + }); + } + } + + const size = config.size ?? "medium"; + // Default to showing the moves panel even when the block has no moves + // (yet) — it reserves the space and constrains the picker bars to a + // natural width. The user can opt out with `showMoves: false`. + const showMoves = config.showMoves ?? true; + + const layout = host.createDiv({ + cls: `chess-study-layout size-${size}${showMoves ? "" : " no-moves"}`, + attr: { + tabindex: "0", + role: "group", + "aria-label": + "Chess study board. Arrow keys step through moves, F flips the board.", + }, + }); + const boardCol = layout.createDiv({ cls: "chess-study-board-col" }); + const topTrayHost = boardCol.createDiv({ + cls: "chess-study-captured-wrap chess-study-captured-top", + }); + const boardHost = boardCol.createDiv({ cls: "chess-study-board-wrap" }); + const bottomTrayHost = boardCol.createDiv({ + cls: "chess-study-captured-wrap chess-study-captured-bottom", + }); + const controlsHost = boardCol.createDiv({ cls: "chess-study-controls" }); + + const sideCol = showMoves + ? layout.createDiv({ cls: "chess-study-side-col" }) + : null; + const movesHost = + sideCol?.createDiv({ cls: "chess-study-moves-wrap" }) ?? null; + + const analyzeEnabled = config.analyze === true; + const analysisHost = analyzeEnabled + ? (sideCol ?? boardCol).createDiv({ + cls: "chess-study-analysis-wrap", + }) + : null; + const evalGraphHost = analyzeEnabled + ? host.createDiv({ cls: "chess-study-eval-graph-wrap" }) + : null; + let analysisController: AnalysisController | null = null; + let evalGraphController: ReturnType | null = + null; + if (analysisHost) { + analysisController = createAnalysisController(analysisHost); + } + + const explorerEnabled = + config.explorer ?? settings.enableOpeningExplorer; + const explorerSource = + config.explorerSource ?? settings.explorerSource; + + const linesHost = explorerEnabled + ? host.createDiv({ cls: "chess-study-lines-wrap" }) + : null; + + const showControls = + config.interactive ?? settings.showInteractiveControls; + const showCoords = config.coordinates ?? settings.showCoordinates; + + const state = { + index: clampIndex( + config.startMove ?? result.steps.length - 1, + result.steps + ), + orientation: + config.orientation ?? settings.defaultOrientation, + fetchToken: 0, + }; + + const updateLinesPanel = (step: PositionStep) => { + if (!linesHost) return; + const myToken = ++state.fetchToken; + const { fullMoveNumber, turn } = fenInfo(step.fen); + renderLinesPanel(linesHost, { kind: "loading" }); + fetchExplorer(step.fen, explorerSource, settings.lichessApiToken) + .then((res) => { + if (myToken !== state.fetchToken) return; + if (res.totalGames === 0 && res.moves.length === 0) { + renderLinesPanel(linesHost, { + kind: "empty", + source: explorerSource, + }); + return; + } + renderLinesPanel(linesHost, { + kind: "ready", + result: res, + fullMoveNumber, + turn, + maxLines: settings.explorerMaxLines, + }); + }) + .catch((err: Error) => { + if (myToken !== state.fetchToken) return; + renderLinesPanel(linesHost, { + kind: "error", + message: err.message, + }); + }); + }; + + const arrows = parseArrows(config.arrows); + const highlights = parseHighlights(config.highlights); + const showCaptured = + config.captured ?? settings.showCapturedPieces; + const pieceSet = config.pieces ?? settings.pieceSet; + + const drawCapturedTrays = () => { + if (!showCaptured) { + topTrayHost.empty(); + bottomTrayHost.empty(); + topTrayHost.classList.add("is-hidden"); + bottomTrayHost.classList.add("is-hidden"); + return; + } + const totals = computeCaptured(result.steps, state.index); + // If the position has no captures (e.g. a fresh starting board or + // a custom-FEN endgame study), hide the trays entirely so they + // don't add empty vertical space. + if (!hasAnyCaptures(totals)) { + topTrayHost.empty(); + bottomTrayHost.empty(); + topTrayHost.classList.add("is-hidden"); + bottomTrayHost.classList.add("is-hidden"); + return; + } + topTrayHost.classList.remove("is-hidden"); + bottomTrayHost.classList.remove("is-hidden"); + // The tray on a side belongs to the player on that side. With + // orientation=white, white sits at the bottom, so the bottom tray + // shows white's captures and the top tray shows black's. + const bottomColor = state.orientation === "white" ? "w" : "b"; + const topColor = bottomColor === "w" ? "b" : "w"; + renderCapturedTray(topTrayHost, { + color: topColor, + totals, + pieceSet, + showAdvantage: true, + }); + renderCapturedTray(bottomTrayHost, { + color: bottomColor, + totals, + pieceSet, + showAdvantage: true, + }); + }; + + const draw = () => { + const step = result.steps[state.index] ?? result.steps[0]; + if (!step) return; + renderBoard(boardHost, { + fen: step.fen, + orientation: state.orientation, + pieceSet, + lightColor: config.light ?? settings.lightSquareColor, + darkColor: config.dark ?? settings.darkSquareColor, + highlightColor: settings.lastMoveColor, + coordinateColor: settings.coordinateColor, + showCoordinates: showCoords, + from: step.from, + to: step.to, + arrows, + highlights, + }); + drawCapturedTrays(); + if (movesHost) { + renderMoveList(movesHost, { + steps: result.steps, + activeIndex: state.index, + onSelect: (idx) => { + state.index = clampIndex(idx, result.steps); + draw(); + }, + }); + } + updateLinesPanel(step); + analysisController?.update(step.fen); + evalGraphController?.setActiveIndex(state.index); + }; + + const goFirst = () => { + state.index = 0; + draw(); + }; + const goPrev = () => { + state.index = clampIndex(state.index - 1, result.steps); + draw(); + }; + const goNext = () => { + state.index = clampIndex(state.index + 1, result.steps); + draw(); + }; + const goLast = () => { + state.index = result.steps.length - 1; + draw(); + }; + const flip = () => { + state.orientation = + state.orientation === "white" ? "black" : "white"; + draw(); + }; + + if (showControls) { + buildControls(controlsHost, { + canStep: result.steps.length > 1, + onFirst: goFirst, + onPrev: goPrev, + onNext: goNext, + onLast: goLast, + onFlip: flip, + }); + } + + bindKeyboardShortcuts(layout, { + canStep: result.steps.length > 1, + onFirst: goFirst, + onPrev: goPrev, + onNext: goNext, + onLast: goLast, + onFlip: flip, + }); + + bindBoardExportMenu(boardHost, () => result.steps[state.index]?.fen); + + if (evalGraphHost && result.steps.length > 1) { + evalGraphController = createEvalGraphController(evalGraphHost, { + steps: result.steps, + onJumpTo: (idx) => { + state.index = clampIndex(idx, result.steps); + draw(); + }, + }); + } + + if (result.error) { + host.createDiv({ + cls: "chess-study-error", + text: result.error, + }); + } + + draw(); +} + +/** + * Render a structured header strip from PGN tags. Skips gracefully if no + * meaningful fields are present. + */ +function renderGameHeader(host: HTMLElement, headers: PgnHeaders): void { + const hasMeaningfulHeader = + headers.white || headers.black || headers.event; + if (!hasMeaningfulHeader) return; + + const wrap = host.createDiv({ cls: "chess-study-game-header" }); + + if (headers.white || headers.black) { + const players = wrap.createDiv({ cls: "chess-study-players" }); + appendPlayer(players, "white", headers.white, headers.whiteElo, headers.whiteTitle); + players.createSpan({ cls: "chess-study-versus", text: "vs" }); + appendPlayer(players, "black", headers.black, headers.blackElo, headers.blackTitle); + if (headers.result) { + players.createSpan({ + cls: "chess-study-result", + text: prettyResult(headers.result), + }); + } + } + + const metaBits: string[] = []; + if (headers.event) metaBits.push(headers.event); + if (headers.round && headers.round !== "-") metaBits.push(`Round ${headers.round}`); + if (headers.date && headers.date !== "????.??.??") metaBits.push(headers.date); + if (headers.eco && headers.openingName) { + metaBits.push(`${headers.eco} · ${headers.openingName}`); + } else if (headers.eco) { + metaBits.push(headers.eco); + } else if (headers.openingName) { + metaBits.push(headers.openingName); + } + if (metaBits.length) { + wrap.createDiv({ cls: "chess-study-game-meta", text: metaBits.join(" · ") }); + } +} + +function appendPlayer( + host: HTMLElement, + color: "white" | "black", + name: string | undefined, + elo: string | undefined, + title: string | undefined +): void { + const wrap = host.createSpan({ cls: `chess-study-player chess-study-player-${color}` }); + wrap.createSpan({ cls: "chess-study-player-dot", attr: { "aria-hidden": "true" } }); + if (title) { + wrap.createSpan({ cls: "chess-study-player-title", text: title }); + } + wrap.createSpan({ cls: "chess-study-player-name", text: name ?? "?" }); + if (elo) { + wrap.createSpan({ cls: "chess-study-player-elo", text: `(${elo})` }); + } +} + +function prettyResult(result: string): string { + switch (result) { + case "1-0": + return "1–0"; + case "0-1": + return "0–1"; + case "1/2-1/2": + return "½–½"; + default: + return result; + } +} + +/** + * Render the inline category/opening/endgame/WCC picker strip above the + * board. Any change rewrites the block's source via {@link rewriteChessBlock}, + * which causes Obsidian to re-render the block with the updated config. + * + * Each emitted update clears every category-specific key (opening, variation, + * endgame, wccgame) and reapplies only the ones present in the update — that + * way switching between categories doesn't leave stale keys behind. + */ +function renderPickerStrip( + host: HTMLElement, + config: ChessBlockConfig, + app: App, + ctx: MarkdownPostProcessorContext +): void { + const pickerHost = host.createDiv({ cls: "chess-study-inline-picker-wrap" }); + renderInlinePicker(pickerHost, { + currentOpening: config.opening, + currentVariation: config.variation, + currentEndgame: config.endgame, + currentWccGame: config.wccgame, + onChange: (update) => { + void rewriteChessBlock(app, ctx, host, { + opening: update.opening ?? "", + variation: update.variation ?? "", + endgame: update.endgame ?? "", + wccgame: update.wccgame ?? "", + }); + }, + }); +} + +function clampIndex(idx: number, steps: PositionStep[]): number { + if (steps.length === 0) return 0; + if (idx < 0) return 0; + if (idx > steps.length - 1) return steps.length - 1; + return idx; +} + +interface ControlsArgs { + canStep: boolean; + onFirst: () => void; + onPrev: () => void; + onNext: () => void; + onLast: () => void; + onFlip: () => void; +} + +function buildControls(host: HTMLElement, args: ControlsArgs): void { + host.empty(); + + const make = ( + label: string, + icon: string, + onClick: () => void, + opts: { disabled?: boolean } = {} + ) => { + const btn = host.createEl("button", { + cls: "chess-study-control", + attr: { "aria-label": label, type: "button", title: label }, + }); + setIcon(btn, icon); + if (opts.disabled) btn.setAttribute("disabled", "true"); + btn.addEventListener("click", onClick); + return btn; + }; + + make("Start position", "chevrons-left", args.onFirst, { + disabled: !args.canStep, + }); + make("Previous move (←)", "chevron-left", args.onPrev, { + disabled: !args.canStep, + }); + make("Next move (→)", "chevron-right", args.onNext, { + disabled: !args.canStep, + }); + make("Last move", "chevrons-right", args.onLast, { + disabled: !args.canStep, + }); + + host.createSpan({ cls: "chess-study-control-spacer" }); + + make("Flip board (F)", "refresh-cw", args.onFlip); +} + +/** + * Wire up keyboard shortcuts that fire when the block (or any descendant + * that isn't a text input) has focus. Shortcuts: + * + * ← / Page Up — previous move + * → / Page Down — next move + * Home — first position + * End — last position + * F — flip the board + * + * The block container is given `tabindex="0"` so users can tab into it + * (and click also focuses it). We deliberately scope the listener to the + * block so multiple blocks on the same page don't fight over keys, and + * we ignore events targeted at editable elements so typing in a future + * search/quiz field would still work. + */ +function bindKeyboardShortcuts( + layout: HTMLElement, + args: ControlsArgs +): void { + layout.addEventListener("keydown", (ev) => { + const target = ev.target as HTMLElement | null; + if (target && isEditableTarget(target)) return; + + switch (ev.key) { + case "ArrowLeft": + case "PageUp": + if (!args.canStep) return; + args.onPrev(); + break; + case "ArrowRight": + case "PageDown": + if (!args.canStep) return; + args.onNext(); + break; + case "Home": + if (!args.canStep) return; + args.onFirst(); + break; + case "End": + if (!args.canStep) return; + args.onLast(); + break; + case "f": + case "F": + if (ev.ctrlKey || ev.metaKey || ev.altKey) return; + args.onFlip(); + break; + default: + return; + } + ev.preventDefault(); + ev.stopPropagation(); + }); + + // Click anywhere inside the block focuses it so keyboard shortcuts + // take effect immediately — without this users would have to Tab in. + layout.addEventListener("mousedown", (ev) => { + const target = ev.target as HTMLElement | null; + if (target && isEditableTarget(target)) return; + // Defer so any control-button click handlers run with normal focus first. + window.setTimeout(() => layout.focus({ preventScroll: true }), 0); + }); +} + +function isEditableTarget(el: HTMLElement): boolean { + const tag = el.tagName; + if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT") return true; + if (el.isContentEditable) return true; + return false; +} + +/** + * Right-click (or long-press on touch) on the board to open an export menu: + * + * - Copy as image (PNG to clipboard) + * - Copy as SVG (XML text to clipboard) + * - Save as PNG (download) + * - Save as SVG (download) + * + * `getCurrentFen` is read lazily so the exported image always reflects the + * board's *current* position (after stepping/flipping), not the one shown + * when the block first rendered. + */ +function bindBoardExportMenu( + boardHost: HTMLElement, + getCurrentFen: () => string | undefined +): void { + boardHost.addEventListener("contextmenu", (ev) => { + const svg = boardHost.querySelector("svg"); + if (!svg) return; + ev.preventDefault(); + + const filename = boardFilename(getCurrentFen()); + + const menu = new Menu(); + menu.addItem((item) => + item + .setTitle("Copy as image") + .setIcon("clipboard-copy") + .onClick(async () => { + try { + await copyBoardAsPng(svg as SVGElement); + new Notice("Board copied as PNG"); + } catch (err) { + new Notice(`Copy failed: ${(err as Error).message}`); + } + }) + ); + menu.addItem((item) => + item + .setTitle("Copy as SVG") + .setIcon("clipboard-copy") + .onClick(async () => { + try { + await copyBoardAsSvg(svg as SVGElement); + new Notice("Board SVG copied to clipboard"); + } catch (err) { + new Notice(`Copy failed: ${(err as Error).message}`); + } + }) + ); + menu.addSeparator(); + menu.addItem((item) => + item + .setTitle("Save as PNG") + .setIcon("image-down") + .onClick(async () => { + try { + await downloadBoardAsPng( + svg as SVGElement, + `${filename}.png` + ); + } catch (err) { + new Notice( + `Save failed: ${(err as Error).message}` + ); + } + }) + ); + menu.addItem((item) => + item + .setTitle("Save as SVG") + .setIcon("image-down") + .onClick(async () => { + try { + await downloadBoardAsSvg( + svg as SVGElement, + `${filename}.svg` + ); + } catch (err) { + new Notice( + `Save failed: ${(err as Error).message}` + ); + } + }) + ); + menu.showAtMouseEvent(ev); + }); +} + +/** + * Build a sensible filename from a FEN: a fixed `caissa-board-` prefix plus + * the board placement segment (with `/` replaced so it's filesystem-safe). + * Falls back to a timestamp if no FEN is available. + */ +function boardFilename(fen: string | undefined): string { + if (!fen) { + return `caissa-board-${Date.now()}`; + } + const placement = fen.split(" ")[0] ?? ""; + const safe = placement.replace(/\//g, "-").slice(0, 80); + return `caissa-board-${safe || Date.now()}`; +} diff --git a/src/ui/endgame-picker.ts b/src/ui/endgame-picker.ts new file mode 100644 index 0000000..1c25e29 --- /dev/null +++ b/src/ui/endgame-picker.ts @@ -0,0 +1,28 @@ +import { App, FuzzySuggestModal } from "obsidian"; +import { ENDGAMES, type Endgame } from "../chess/endgames"; + +/** + * Fuzzy-search modal for the curated endgame library. Single step — endgames + * are flat, no sub-categories. + */ +export class EndgamePickerModal extends FuzzySuggestModal { + private readonly onChoose: (endgame: Endgame) => void; + + constructor(app: App, onChoose: (endgame: Endgame) => void) { + super(app); + this.onChoose = onChoose; + this.setPlaceholder("Search endgames"); + } + + getItems(): Endgame[] { + return ENDGAMES; + } + + getItemText(item: Endgame): string { + return item.name; + } + + onChooseItem(item: Endgame): void { + this.onChoose(item); + } +} diff --git a/src/ui/eval-graph.ts b/src/ui/eval-graph.ts new file mode 100644 index 0000000..31953d3 --- /dev/null +++ b/src/ui/eval-graph.ts @@ -0,0 +1,316 @@ +import type { PositionStep } from "../chess/engine"; +import { getEngine } from "../chess/engine-worker"; + +/** + * Eval graph: an SVG sparkline of Stockfish's centipawn evaluation across + * every position in the loaded game. Hidden behind an "Analyze game" + * button so we never run the engine over an entire game without the + * user opting in (analyzing 80 positions at depth 14 is non-trivial). + * + * Click anywhere on the graph to jump the board to the closest position. + * + * The controller exposes `setActiveIndex` so the chess block can keep the + * cursor on the graph in sync with stepping/clicking through moves. + */ + +export interface EvalGraphArgs { + steps: PositionStep[]; + onJumpTo: (index: number) => void; +} + +export interface EvalGraphController { + setActiveIndex(index: number): void; + destroy(): void; +} + +interface EvalPoint { + index: number; + /** Centipawns from White's perspective (clamped at ±1500). null = mate. */ + cp: number | null; + mate: number | null; +} + +const GRAPH_WIDTH = 600; +const GRAPH_HEIGHT = 80; +const PADDING_Y = 6; +const CLAMP_CP = 800; + +export function createEvalGraphController( + host: HTMLElement, + args: EvalGraphArgs +): EvalGraphController { + host.empty(); + host.classList.add("chess-study-eval-graph"); + + const header = host.createDiv({ cls: "chess-study-eval-graph-header" }); + header.createSpan({ + cls: "chess-study-eval-graph-title", + text: "Evaluation", + }); + const button = header.createEl("button", { + cls: "chess-study-eval-graph-btn", + text: "Analyze game", + attr: { type: "button" }, + }); + const status = header.createSpan({ + cls: "chess-study-eval-graph-status", + text: "", + }); + + const graphHost = host.createDiv({ cls: "chess-study-eval-graph-canvas" }); + + let abortController: AbortController | null = null; + let destroyed = false; + let evals: EvalPoint[] = []; + let activeIndex = 0; + let svg: SVGSVGElement | null = null; + let cursor: SVGLineElement | null = null; + + const render = () => { + graphHost.empty(); + svg = drawGraph(graphHost, evals, args.steps.length, activeIndex); + cursor = svg.querySelector(".chess-study-eval-graph-cursor"); + svg.addEventListener("click", (ev) => { + if (!svg) return; + const rect = svg.getBoundingClientRect(); + if (rect.width === 0) return; + const ratio = (ev.clientX - rect.left) / rect.width; + const idx = Math.max( + 0, + Math.min( + args.steps.length - 1, + Math.round(ratio * (args.steps.length - 1)) + ) + ); + args.onJumpTo(idx); + }); + }; + + const updateCursor = () => { + if (!cursor || args.steps.length <= 1) return; + const x = + (activeIndex / (args.steps.length - 1)) * GRAPH_WIDTH; + cursor.setAttribute("x1", String(x)); + cursor.setAttribute("x2", String(x)); + }; + + const runAnalysis = async () => { + if (destroyed) return; + button.setAttribute("disabled", "true"); + button.setText("Analyzing…"); + abortController?.abort(); + abortController = new AbortController(); + + try { + evals = await analyzeGame( + args.steps, + abortController.signal, + (done, total) => { + if (destroyed) return; + status.setText(`${done}/${total}`); + } + ); + if (destroyed) return; + status.setText(`${evals.length} positions`); + button.setText("Re-analyze"); + button.removeAttribute("disabled"); + render(); + } catch (err) { + if (destroyed) return; + button.removeAttribute("disabled"); + button.setText("Analyze game"); + status.setText(`Error: ${(err as Error).message}`); + } + }; + + button.addEventListener("click", () => { + void runAnalysis(); + }); + + return { + setActiveIndex(idx) { + activeIndex = idx; + updateCursor(); + }, + destroy() { + destroyed = true; + abortController?.abort(); + abortController = null; + host.empty(); + }, + }; +} + +/** + * Run the engine on every position sequentially, reporting progress. + * Sequential (not parallel) because we share a single Stockfish worker; + * shallow depth (12) keeps total time tolerable for a typical game. + */ +async function analyzeGame( + steps: PositionStep[], + signal: AbortSignal, + onProgress: (done: number, total: number) => void +): Promise { + const out: EvalPoint[] = []; + const engine = getEngine(); + for (let i = 0; i < steps.length; i++) { + if (signal.aborted) break; + const step = steps[i]; + if (!step) continue; + const fen = step.fen; + const res = await engine.analyze(fen, { depth: 12, multiPV: 1, signal }); + const top = res.lines[0]; + if (!top) { + out.push({ index: i, cp: null, mate: null }); + } else { + const turn = fen.split(" ")[1] === "w" ? "w" : "b"; + const cpFromWhite = + top.cp === null + ? null + : turn === "w" + ? top.cp + : -top.cp; + const mateFromWhite = + top.mate === null + ? null + : turn === "w" + ? top.mate + : -top.mate; + out.push({ + index: i, + cp: cpFromWhite, + mate: mateFromWhite, + }); + } + onProgress(i + 1, steps.length); + } + return out; +} + +/** + * Draw the eval sparkline as an inline SVG. Positions with no evaluation + * yet are rendered as a flat line at 0 so the graph still has a shape; + * mate scores are clamped to the chart edges so a single mate doesn't + * obliterate the rest of the curve. + */ +function drawGraph( + host: HTMLElement, + evals: EvalPoint[], + totalSteps: number, + activeIndex: number +): SVGSVGElement { + const svgNs = "http://www.w3.org/2000/svg"; + const svg = document.createElementNS(svgNs, "svg"); + svg.setAttribute("class", "chess-study-eval-graph-svg"); + svg.setAttribute("viewBox", `0 0 ${GRAPH_WIDTH} ${GRAPH_HEIGHT}`); + svg.setAttribute("preserveAspectRatio", "none"); + host.appendChild(svg); + + const bg = document.createElementNS(svgNs, "rect"); + bg.setAttribute("x", "0"); + bg.setAttribute("y", "0"); + bg.setAttribute("width", String(GRAPH_WIDTH)); + bg.setAttribute("height", String(GRAPH_HEIGHT)); + bg.setAttribute("fill", "var(--background-secondary)"); + svg.appendChild(bg); + + // Midline (eval = 0). + const mid = document.createElementNS(svgNs, "line"); + mid.setAttribute("x1", "0"); + mid.setAttribute("x2", String(GRAPH_WIDTH)); + mid.setAttribute("y1", String(GRAPH_HEIGHT / 2)); + mid.setAttribute("y2", String(GRAPH_HEIGHT / 2)); + mid.setAttribute("stroke", "var(--background-modifier-border)"); + mid.setAttribute("stroke-width", "1"); + svg.appendChild(mid); + + if (evals.length === 0 || totalSteps <= 1) { + const empty = document.createElementNS(svgNs, "text"); + empty.setAttribute("x", String(GRAPH_WIDTH / 2)); + empty.setAttribute("y", String(GRAPH_HEIGHT / 2 + 4)); + empty.setAttribute("text-anchor", "middle"); + empty.setAttribute("fill", "var(--text-muted)"); + empty.setAttribute("font-size", "11"); + empty.textContent = + evals.length === 0 + ? "Click \"Analyze game\" to evaluate every position." + : "Not enough positions to graph."; + svg.appendChild(empty); + const cursor = makeCursor(svgNs); + svg.appendChild(cursor); + return svg; + } + + const points = evals.map((p) => { + const x = (p.index / (totalSteps - 1)) * GRAPH_WIDTH; + const y = scoreToY(p); + return { x, y }; + }); + + // Filled area (positive above midline = white advantage). + const path = document.createElementNS(svgNs, "path"); + const d = buildAreaPath(points); + path.setAttribute("d", d); + path.setAttribute("fill", "var(--text-accent)"); + path.setAttribute("fill-opacity", "0.25"); + svg.appendChild(path); + + const stroke = document.createElementNS(svgNs, "polyline"); + stroke.setAttribute( + "points", + points.map((p) => `${p.x},${p.y}`).join(" ") + ); + stroke.setAttribute("fill", "none"); + stroke.setAttribute("stroke", "var(--text-accent)"); + stroke.setAttribute("stroke-width", "1.5"); + svg.appendChild(stroke); + + const cursor = makeCursor(svgNs); + const cx = (activeIndex / (totalSteps - 1)) * GRAPH_WIDTH; + cursor.setAttribute("x1", String(cx)); + cursor.setAttribute("x2", String(cx)); + svg.appendChild(cursor); + + return svg; +} + +function makeCursor(_svgNs: string): SVGLineElement { + const cursor = document.createElementNS( + "http://www.w3.org/2000/svg", + "line" + ); + cursor.setAttribute("class", "chess-study-eval-graph-cursor"); + cursor.setAttribute("x1", "0"); + cursor.setAttribute("x2", "0"); + cursor.setAttribute("y1", "0"); + cursor.setAttribute("y2", String(GRAPH_HEIGHT)); + cursor.setAttribute("stroke", "var(--interactive-accent)"); + cursor.setAttribute("stroke-width", "1.5"); + cursor.setAttribute("stroke-dasharray", "3 2"); + return cursor; +} + +function buildAreaPath(points: { x: number; y: number }[]): string { + if (points.length === 0) return ""; + const first = points[0]; + const last = points[points.length - 1]; + if (!first || !last) return ""; + const mid = GRAPH_HEIGHT / 2; + const parts = [`M ${first.x} ${mid}`]; + for (const p of points) parts.push(`L ${p.x} ${p.y}`); + parts.push(`L ${last.x} ${mid}`); + parts.push("Z"); + return parts.join(" "); +} + +function scoreToY(p: EvalPoint): number { + const inner = GRAPH_HEIGHT - PADDING_Y * 2; + const mid = GRAPH_HEIGHT / 2; + if (p.mate !== null) { + return p.mate > 0 ? PADDING_Y : GRAPH_HEIGHT - PADDING_Y; + } + if (p.cp === null) return mid; + const clamped = Math.max(-CLAMP_CP, Math.min(CLAMP_CP, p.cp)); + const ratio = clamped / CLAMP_CP; + return mid - (ratio * inner) / 2; +} diff --git a/src/ui/inline-picker.ts b/src/ui/inline-picker.ts new file mode 100644 index 0000000..8c7660d --- /dev/null +++ b/src/ui/inline-picker.ts @@ -0,0 +1,341 @@ +import { OPENINGS } from "../chess/openings"; +import { ENDGAMES } from "../chess/endgames"; +import { listWccMatches, listWccGamesForMatch } from "../chess/wcc-games"; +import type { Opening, OpeningVariation } from "../types"; + +export interface InlinePickerOptions { + /** Currently selected opening (case-insensitive, aliases honored). */ + currentOpening?: string; + /** Currently selected variation, only meaningful with an opening. */ + currentVariation?: string; + /** Currently selected endgame slug or display name. */ + currentEndgame?: string; + /** Currently selected WCC game slug. */ + currentWccGame?: string; + /** All inputs collapsed into a single update — the host applies it atomically. */ + onChange: (update: PickerUpdate) => void; +} + +/** + * What the picker emits whenever any dropdown changes. The host should: + * 1. clear all category-specific keys it manages (opening/variation/endgame/wccgame) + * 2. apply only the keys present in this update + * + * Empty string values mean "clear this key". + */ +export interface PickerUpdate { + opening?: string; + variation?: string; + endgame?: string; + wccgame?: string; +} + +type Category = "openings" | "endgames" | "wcc"; + +const CATEGORY_PLACEHOLDER = "__category_placeholder__"; +const PLACEHOLDER = "__placeholder__"; +const NO_VARIATION = "__none__"; + +const CATEGORY_LABELS: Record = { + openings: "Openings", + endgames: "Endgames", + wcc: "World Championship", +}; + +/** + * Render the cascading category picker for blank chess blocks. The category + * dropdown comes first; each category swaps in its own follow-up dropdowns. + */ +export function renderInlinePicker( + host: HTMLElement, + opts: InlinePickerOptions +): void { + host.empty(); + host.classList.add("chess-study-inline-picker"); + + const initialCategory = detectCategory(opts); + + const categoryRow = host.createDiv({ cls: "chess-study-inline-picker-row" }); + categoryRow.createSpan({ + cls: "chess-study-inline-picker-label", + text: "Category", + }); + const categorySelect = categoryRow.createEl("select", { + cls: "chess-study-inline-picker-select", + }); + categorySelect.createEl("option", { + value: CATEGORY_PLACEHOLDER, + text: "Pick a category…", + }); + for (const id of Object.keys(CATEGORY_LABELS) as Category[]) { + categorySelect.createEl("option", { value: id, text: CATEGORY_LABELS[id] }); + } + categorySelect.value = initialCategory ?? CATEGORY_PLACEHOLDER; + + const subRows = host.createDiv({ cls: "chess-study-inline-picker-subrows" }); + const renderSub = (cat: Category | null) => { + subRows.empty(); + if (cat === "openings") renderOpeningsSub(subRows, opts); + else if (cat === "endgames") renderEndgamesSub(subRows, opts); + else if (cat === "wcc") renderWccSub(subRows, opts); + }; + renderSub(initialCategory); + + categorySelect.addEventListener("change", () => { + const raw = categorySelect.value; + if (raw === CATEGORY_PLACEHOLDER) { + renderSub(null); + opts.onChange({}); + return; + } + const cat = raw as Category; + renderSub(cat); + opts.onChange({}); + }); +} + +/* --- Sub-dropdowns ------------------------------------------------------- */ + +function renderOpeningsSub(host: HTMLElement, opts: InlinePickerOptions): void { + const matchedOpening = findOpening(opts.currentOpening); + + const openingRow = host.createDiv({ cls: "chess-study-inline-picker-row" }); + openingRow.createSpan({ + cls: "chess-study-inline-picker-label", + text: "Opening", + }); + const openingSelect = openingRow.createEl("select", { + cls: "chess-study-inline-picker-select", + }); + openingSelect.createEl("option", { + value: PLACEHOLDER, + text: "Pick an opening…", + }); + for (const o of OPENINGS) { + openingSelect.createEl("option", { value: o.name, text: o.name }); + } + openingSelect.value = matchedOpening?.name ?? PLACEHOLDER; + openingSelect.addEventListener("change", () => { + const v = openingSelect.value; + opts.onChange({ + opening: v === PLACEHOLDER ? "" : v, + variation: "", + }); + }); + + if (!matchedOpening || (matchedOpening.variations ?? []).length === 0) { + return; + } + + const variationRow = host.createDiv({ cls: "chess-study-inline-picker-row" }); + variationRow.createSpan({ + cls: "chess-study-inline-picker-label", + text: "Variation", + }); + const variationSelect = variationRow.createEl("select", { + cls: "chess-study-inline-picker-select", + }); + variationSelect.createEl("option", { + value: NO_VARIATION, + text: "Main line", + }); + for (const v of matchedOpening.variations ?? []) { + variationSelect.createEl("option", { value: v.name, text: v.name }); + } + const matchedVariation = findVariation(matchedOpening, opts.currentVariation); + variationSelect.value = matchedVariation?.name ?? NO_VARIATION; + variationSelect.addEventListener("change", () => { + const v = variationSelect.value; + opts.onChange({ + opening: matchedOpening.name, + variation: v === NO_VARIATION ? "" : v, + }); + }); +} + +function renderEndgamesSub(host: HTMLElement, opts: InlinePickerOptions): void { + const matched = findEndgameByIdOrName(opts.currentEndgame); + + const row = host.createDiv({ cls: "chess-study-inline-picker-row" }); + row.createSpan({ + cls: "chess-study-inline-picker-label", + text: "Endgame", + }); + const select = row.createEl("select", { + cls: "chess-study-inline-picker-select", + }); + select.createEl("option", { + value: PLACEHOLDER, + text: "Pick an endgame…", + }); + for (const e of ENDGAMES) { + select.createEl("option", { value: e.id, text: e.name }); + } + select.value = matched ?? PLACEHOLDER; + select.addEventListener("change", () => { + const v = select.value; + opts.onChange({ + endgame: v === PLACEHOLDER ? "" : v, + }); + }); +} + +function renderWccSub(host: HTMLElement, opts: InlinePickerOptions): void { + const matches = listWccMatches(); + const currentGame = opts.currentWccGame + ? findWccGameByIdLocal(opts.currentWccGame) + : null; + const initialMatchSlug = currentGame?.matchSlug; + + const matchRow = host.createDiv({ cls: "chess-study-inline-picker-row" }); + matchRow.createSpan({ + cls: "chess-study-inline-picker-label", + text: "Match", + }); + const matchSelect = matchRow.createEl("select", { + cls: "chess-study-inline-picker-select", + }); + matchSelect.createEl("option", { + value: PLACEHOLDER, + text: "Pick a match…", + }); + for (const m of matches) { + matchSelect.createEl("option", { + value: m.matchSlug, + text: m.matchLabel, + }); + } + matchSelect.value = initialMatchSlug ?? PLACEHOLDER; + + const gameRowWrap = host.createDiv({ + cls: "chess-study-inline-picker-gamerow-wrap", + }); + + const renderGameRow = (matchSlug: string | null) => { + gameRowWrap.empty(); + if (!matchSlug) return; + const games = listWccGamesForMatch(matchSlug); + if (games.length === 0) return; + + const row = gameRowWrap.createDiv({ + cls: "chess-study-inline-picker-row", + }); + row.createSpan({ + cls: "chess-study-inline-picker-label", + text: "Game", + }); + const select = row.createEl("select", { + cls: "chess-study-inline-picker-select", + }); + select.createEl("option", { value: PLACEHOLDER, text: "Pick a game…" }); + for (const g of games) { + select.createEl("option", { + value: g.id, + text: gameLabel(g.gameNumber, g.white, g.black, g.result), + }); + } + select.value = + currentGame && currentGame.matchSlug === matchSlug + ? currentGame.id + : PLACEHOLDER; + select.addEventListener("change", () => { + const v = select.value; + opts.onChange({ + wccgame: v === PLACEHOLDER ? "" : v, + }); + }); + }; + + renderGameRow(initialMatchSlug ?? null); + + matchSelect.addEventListener("change", () => { + const v = matchSelect.value; + if (v === PLACEHOLDER) { + renderGameRow(null); + opts.onChange({ wccgame: "" }); + return; + } + renderGameRow(v); + opts.onChange({ wccgame: "" }); + }); +} + +/* --- Helpers ------------------------------------------------------------- */ + +function gameLabel( + gameNumber: number, + white: string, + black: string, + result: string +): string { + const display = result === "1/2-1/2" ? "½-½" : result; + return `Game ${gameNumber} — ${shortName(white)} vs ${shortName(black)} (${display})`; +} + +/** Trim 'Lastname, Firstname' / 'Lastname,F' to just the family name. */ +function shortName(name: string): string { + const trimmed = name.trim(); + const comma = trimmed.indexOf(","); + return comma > 0 ? trimmed.slice(0, comma) : trimmed; +} + +function detectCategory(opts: InlinePickerOptions): Category | null { + if (opts.currentEndgame) return "endgames"; + if (opts.currentWccGame) return "wcc"; + if (opts.currentOpening) return "openings"; + return null; +} + +function normalize(s: string): string { + return s.toLowerCase().replace(/[^a-z0-9]+/g, " ").trim(); +} + +function findOpening(name: string | undefined): Opening | null { + if (!name) return null; + const target = normalize(name); + return ( + OPENINGS.find((o) => { + if (normalize(o.name) === target) return true; + return o.aliases?.some((a) => normalize(a) === target) ?? false; + }) ?? null + ); +} + +function findVariation( + opening: Opening, + name: string | undefined +): OpeningVariation | null { + if (!name) return null; + const target = normalize(name); + return ( + (opening.variations ?? []).find((v) => normalize(v.name) === target) ?? + null + ); +} + +function findEndgameByIdOrName(value: string | undefined): string | null { + if (!value) return null; + const target = normalize(value); + const hit = ENDGAMES.find( + (e) => normalize(e.id) === target || normalize(e.name) === target + ); + return hit?.id ?? null; +} + +/** + * Local light lookup so we don't need to import the public WCC helper just + * to find a single game (it would also pull all WCC data into this bundle + * for callers that don't need it — though picker is the only caller for + * now). + */ +function findWccGameByIdLocal( + id: string +): { id: string; matchSlug: string } | null { + const target = id.trim().toLowerCase(); + for (const m of listWccMatches()) { + const games = listWccGamesForMatch(m.matchSlug); + const hit = games.find((g) => g.id.toLowerCase() === target); + if (hit) return { id: hit.id, matchSlug: hit.matchSlug }; + } + return null; +} diff --git a/src/ui/lines-panel.ts b/src/ui/lines-panel.ts new file mode 100644 index 0000000..9f0dd52 --- /dev/null +++ b/src/ui/lines-panel.ts @@ -0,0 +1,169 @@ +import type { + ExplorerMove, + ExplorerResult, +} from "../chess/explorer"; +import type { ExplorerSource } from "../types"; + +export type LinesPanelState = + | { kind: "idle" } + | { kind: "loading" } + | { kind: "error"; message: string } + | { kind: "empty"; source: ExplorerSource } + | { + kind: "ready"; + result: ExplorerResult; + fullMoveNumber: number; + turn: "w" | "b"; + maxLines: number; + }; + +/** + * Render the "Lines" panel — a list of candidate next moves with stacked + * win/draw/loss percentage bars. Designed to be re-called whenever the + * underlying state changes; it owns the contents of `host` and rebuilds + * them in place. + */ +export function renderLinesPanel( + host: HTMLElement, + state: LinesPanelState +): void { + host.empty(); + host.classList.add("chess-study-lines-panel"); + + const header = host.createDiv({ cls: "chess-study-lines-header" }); + header.createSpan({ cls: "chess-study-lines-title", text: "Lines" }); + + switch (state.kind) { + case "idle": + host.createDiv({ + cls: "chess-study-lines-status", + text: "Opening explorer disabled.", + }); + return; + case "loading": + host.createDiv({ + cls: "chess-study-lines-status", + text: "Loading lines…", + }); + return; + case "error": + host.createDiv({ + cls: "chess-study-lines-status error", + text: `Could not load explorer: ${state.message}`, + }); + return; + case "empty": + host.createDiv({ + cls: "chess-study-lines-status", + text: `No ${state.source === "masters" ? "master" : "Lichess"} games at this position.`, + }); + return; + case "ready": + renderReady(host, state); + return; + } +} + +function renderReady( + host: HTMLElement, + state: Extract +): void { + const { result, fullMoveNumber, turn, maxLines } = state; + + const meta = host.createDiv({ cls: "chess-study-lines-meta" }); + meta.createSpan({ + text: `${formatGames(result.totalGames)} games · ${ + result.source === "masters" ? "Masters" : "Lichess" + }`, + }); + + if (result.moves.length === 0) { + host.createDiv({ + cls: "chess-study-lines-status", + text: "No book moves at this position.", + }); + return; + } + + const table = host.createDiv({ cls: "chess-study-lines-table" }); + const moves = result.moves.slice(0, maxLines); + + for (const move of moves) { + const row = table.createDiv({ cls: "chess-study-lines-row" }); + + row.createSpan({ + cls: "chess-study-lines-label", + text: formatMoveLabel(move.san, fullMoveNumber, turn), + }); + + buildBar(row, move); + } +} + +/** + * Format the move label as standard PGN-ish notation: + * white to move on move 3 -> "3. Nc3" + * black to move on move 3 -> "3...c5" + */ +function formatMoveLabel( + san: string, + fullMoveNumber: number, + turn: "w" | "b" +): string { + return turn === "w" + ? `${fullMoveNumber}. ${san}` + : `${fullMoveNumber}…${san}`; +} + +function formatGames(n: number): string { + if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`; + if (n >= 1_000) return `${(n / 1_000).toFixed(1)}k`; + return String(n); +} + +function buildBar(row: HTMLElement, move: ExplorerMove): void { + const bar = row.createDiv({ cls: "chess-study-lines-bar" }); + + const total = move.total || 1; + const whitePct = (move.white / total) * 100; + const drawsPct = (move.draws / total) * 100; + const blackPct = (move.black / total) * 100; + + makeSegment(bar, "white", whitePct); + makeSegment(bar, "draws", drawsPct); + makeSegment(bar, "black", blackPct); +} + +function makeSegment( + bar: HTMLElement, + kind: "white" | "draws" | "black", + pct: number +): void { + const seg = bar.createDiv({ + cls: `chess-study-lines-seg seg-${kind}`, + }); + seg.style.width = `${pct.toFixed(2)}%`; + if (pct >= 8) { + seg.createSpan({ + cls: "chess-study-lines-seg-label", + text: `${formatPct(pct)}%`, + }); + } +} + +function formatPct(pct: number): string { + if (pct >= 100) return "100"; + if (pct >= 10) return pct.toFixed(0); + return pct.toFixed(1); +} + +/** + * Pull the full-move number and side-to-move out of a FEN string. Used by + * the chess-block view to label candidate moves correctly. + */ +export function fenInfo(fen: string): { fullMoveNumber: number; turn: "w" | "b" } { + const parts = fen.split(/\s+/); + const turn = (parts[1] ?? "w") === "b" ? "b" : "w"; + const fullMoveNumber = parseInt(parts[5] ?? "1", 10) || 1; + return { fullMoveNumber, turn }; +} diff --git a/src/ui/move-list.ts b/src/ui/move-list.ts new file mode 100644 index 0000000..6d025ff --- /dev/null +++ b/src/ui/move-list.ts @@ -0,0 +1,86 @@ +import type { PositionStep } from "../chess/engine"; + +export interface MoveListOptions { + /** All position steps including index 0 (the start position). */ + steps: PositionStep[]; + /** Currently active step index (0 = start, 1 = after white's first move...). */ + activeIndex: number; + /** Called when the user clicks a half-move; arg is the resulting step index. */ + onSelect: (stepIndex: number) => void; +} + +/** + * Render a clean two-column move list (white | black). Step 0 (the start + * position) is *not* rendered here — it's reachable via the "Start position" + * button under the board, which keeps the move list strictly about moves. + */ +export function renderMoveList(host: HTMLElement, opts: MoveListOptions): void { + host.empty(); + host.classList.add("chess-study-moves"); + + const moves = opts.steps.slice(1); + + const table = host.createDiv({ cls: "chess-study-move-table" }); + const header = table.createDiv({ cls: "chess-study-move-row header" }); + header.createSpan({ cls: "chess-study-move-num", text: "#" }); + header.createSpan({ cls: "chess-study-move-cell header", text: "White" }); + header.createSpan({ cls: "chess-study-move-cell header", text: "Black" }); + + if (moves.length === 0) { + host.createDiv({ + cls: "chess-study-moves-empty", + text: "No moves yet.", + }); + return; + } + + let i = 0; + let moveNumber = 1; + while (i < moves.length) { + const row = table.createDiv({ cls: "chess-study-move-row" }); + row.createSpan({ + cls: "chess-study-move-num", + text: `${moveNumber}.`, + }); + + const whiteMove = moves[i]; + if (whiteMove) { + renderCell(row, whiteMove.san ?? "", i + 1, opts); + i += 1; + } else { + row.createSpan({ cls: "chess-study-move-cell empty" }); + } + + const blackMove = moves[i]; + if (blackMove) { + renderCell(row, blackMove.san ?? "", i + 1, opts); + i += 1; + } else { + row.createSpan({ cls: "chess-study-move-cell empty" }); + } + + moveNumber += 1; + } +} + +function renderCell( + row: HTMLElement, + san: string, + stepIndex: number, + opts: MoveListOptions +): void { + const cell = row.createSpan({ + cls: "chess-study-move-cell", + text: san, + }); + cell.setAttribute("role", "button"); + cell.setAttribute("tabindex", "0"); + if (stepIndex === opts.activeIndex) cell.addClass("active"); + cell.addEventListener("click", () => opts.onSelect(stepIndex)); + cell.addEventListener("keydown", (e) => { + if (e.key === "Enter" || e.key === " ") { + e.preventDefault(); + opts.onSelect(stepIndex); + } + }); +} diff --git a/src/ui/opening-picker.ts b/src/ui/opening-picker.ts new file mode 100644 index 0000000..28d0c39 --- /dev/null +++ b/src/ui/opening-picker.ts @@ -0,0 +1,107 @@ +import { App, FuzzySuggestModal } from "obsidian"; +import { OPENINGS } from "../chess/openings"; +import type { Opening, OpeningVariation } from "../types"; + +/** Result of a completed pick: an opening, optionally narrowed to a variation. */ +export interface OpeningPickResult { + openingName: string; + variationName?: string; +} + +/** + * Two-step opening picker: + * 1. {@link OpeningPickerModal} — fuzzy-search the ~30 top-level openings. + * 2. {@link VariationPickerModal} — if the chosen opening has variations, + * pick one (or "No variation — just the opening"). + * + * Splitting the pick into two stages keeps each list short and lets users + * find what they want even when they can't spell the exact name, since the + * second list is filtered to variations of one specific opening. + */ +export class OpeningPickerModal extends FuzzySuggestModal { + private readonly app_: App; + private readonly onChoose: (result: OpeningPickResult) => void; + + constructor(app: App, onChoose: (result: OpeningPickResult) => void) { + super(app); + this.app_ = app; + this.onChoose = onChoose; + this.setPlaceholder("Search openings"); + } + + getItems(): Opening[] { + return OPENINGS; + } + + getItemText(item: Opening): string { + const aliases = item.aliases?.length + ? ` (${item.aliases.join(", ")})` + : ""; + return `${item.name}${aliases}`; + } + + onChooseItem(item: Opening): void { + const variations = item.variations ?? []; + if (variations.length === 0) { + this.onChoose({ openingName: item.name }); + return; + } + new VariationPickerModal(this.app_, item, this.onChoose).open(); + } +} + +interface VariationOption { + /** Underlying variation, or undefined for the "no variation" sentinel. */ + variation?: OpeningVariation; + displayName: string; +} + +/** + * Second step of the opening picker: shows variations for one opening, plus + * a sentinel "No variation — just the opening" entry at the top. + */ +class VariationPickerModal extends FuzzySuggestModal { + private readonly opening: Opening; + private readonly onChoose: (result: OpeningPickResult) => void; + + constructor( + app: App, + opening: Opening, + onChoose: (result: OpeningPickResult) => void + ) { + super(app); + this.opening = opening; + this.onChoose = onChoose; + this.setPlaceholder(`Search variations of ${opening.name}`); + } + + getItems(): VariationOption[] { + const out: VariationOption[] = [ + { + displayName: "No variation — just the opening", + }, + ]; + for (const v of this.opening.variations ?? []) { + out.push({ + variation: v, + displayName: v.name, + }); + } + return out; + } + + getItemText(item: VariationOption): string { + return item.displayName; + } + + onChooseItem(item: VariationOption): void { + if (!item.variation) { + this.onChoose({ openingName: this.opening.name }); + return; + } + this.onChoose({ + openingName: this.opening.name, + variationName: item.variation.name, + }); + } +} diff --git a/src/ui/openings-quiz.ts b/src/ui/openings-quiz.ts new file mode 100644 index 0000000..3c4259c --- /dev/null +++ b/src/ui/openings-quiz.ts @@ -0,0 +1,401 @@ +import { App, Modal, setIcon } from "obsidian"; +import { Chess } from "chess.js"; +import type { CaissaSettings, Opening, OpeningVariation } from "../types"; +import { OPENINGS } from "../chess/openings"; +import { renderBoard } from "./board-renderer"; + +interface QuizPosition { + opening: Opening; + variation: OpeningVariation | null; + /** SAN tokens for the full line. */ + moves: string[]; + /** How many moves have already been played; user is asked for `moves[depth]`. */ + depth: number; +} + +interface QuizState { + score: number; + asked: number; + streak: number; + bestStreak: number; + answered: boolean; +} + +/** + * "Rolling openings quiz" — a self-contained modal that endlessly serves up + * positions from the bundled opening repertoire and asks the user for the + * next book move. + * + * Design notes: + * + * - Positions are sampled from the union of every opening + every variation + * in {@link OPENINGS}, so deeper variations get more questions per round. + * - We keep a tiny `recent` window so the same exact (opening, variation, + * depth) tuple doesn't get asked twice in a row. + * - Move validation goes through chess.js so we accept any legal SAN + * spelling (`Nf3`, `Ngf3`, `N1f3`, etc.) — but only the *exact* expected + * SAN from the repertoire counts as the right answer. + * - Score is per-session only — never persisted. The point is reps, not + * a leaderboard. + */ +export class OpeningsQuizModal extends Modal { + private settings: CaissaSettings; + private current: QuizPosition | null = null; + private state: QuizState = { + score: 0, + asked: 0, + streak: 0, + bestStreak: 0, + answered: false, + }; + private recent: string[] = []; + private boardHost!: HTMLElement; + private promptEl!: HTMLElement; + private feedbackEl!: HTMLElement; + private revealEl!: HTMLElement; + private input!: HTMLInputElement; + private submitBtn!: HTMLButtonElement; + private nextBtn!: HTMLButtonElement; + private scoreEl!: HTMLElement; + + constructor(app: App, settings: CaissaSettings) { + super(app); + this.settings = settings; + } + + onOpen(): void { + this.modalEl.addClass("chess-study-quiz-modal"); + this.contentEl.empty(); + + this.contentEl.createEl("h2", { text: "Openings quiz" }); + this.contentEl.createDiv({ + cls: "chess-study-quiz-help", + text: + "A position from a known opening will appear. Type the next book move (e.g. e4, Nf3, O-O) and press Enter.", + }); + + this.scoreEl = this.contentEl.createDiv({ + cls: "chess-study-quiz-score", + }); + + this.boardHost = this.contentEl.createDiv({ + cls: "chess-study-quiz-board", + }); + + this.promptEl = this.contentEl.createDiv({ + cls: "chess-study-quiz-prompt", + }); + + const inputRow = this.contentEl.createDiv({ + cls: "chess-study-quiz-input-row", + }); + this.input = inputRow.createEl("input", { + type: "text", + cls: "chess-study-quiz-input", + attr: { + placeholder: "Your move", + autocomplete: "off", + spellcheck: "false", + }, + }); + this.input.addEventListener("keydown", (ev) => { + if (ev.key === "Enter") { + ev.preventDefault(); + if (this.state.answered) { + this.next(); + } else { + this.submit(); + } + } + }); + + this.submitBtn = inputRow.createEl("button", { + cls: "mod-cta chess-study-quiz-submit", + text: "Submit", + }); + this.submitBtn.addEventListener("click", () => this.submit()); + + this.nextBtn = inputRow.createEl("button", { + cls: "chess-study-quiz-next is-hidden", + text: "Next position", + }); + this.nextBtn.addEventListener("click", () => this.next()); + + this.feedbackEl = this.contentEl.createDiv({ + cls: "chess-study-quiz-feedback", + }); + this.revealEl = this.contentEl.createDiv({ + cls: "chess-study-quiz-reveal", + }); + + this.next(); + } + + private next(): void { + this.state.answered = false; + this.feedbackEl.empty(); + this.feedbackEl.removeClass("is-correct"); + this.feedbackEl.removeClass("is-incorrect"); + this.revealEl.empty(); + this.input.disabled = false; + this.input.value = ""; + this.submitBtn.removeClass("is-hidden"); + this.nextBtn.addClass("is-hidden"); + + this.current = pickQuizPosition(this.recent); + this.recordRecent(this.current); + + const fen = computeFenAtDepth(this.current.moves, this.current.depth); + const sideToMove = + fen.split(" ")[1] === "b" ? "Black" : "White"; + const moveNumber = Math.floor(this.current.depth / 2) + 1; + const moveLabel = + sideToMove === "White" + ? `${moveNumber}.` + : `${moveNumber}…`; + + renderBoard(this.boardHost, { + fen, + orientation: sideToMove === "White" ? "white" : "black", + pieceSet: this.settings.pieceSet, + lightColor: this.settings.lightSquareColor, + darkColor: this.settings.darkSquareColor, + highlightColor: this.settings.lastMoveColor, + coordinateColor: this.settings.coordinateColor, + showCoordinates: this.settings.showCoordinates, + }); + + this.promptEl.empty(); + this.promptEl.createSpan({ + cls: "chess-study-quiz-side", + text: `${moveLabel} ${sideToMove} to move`, + }); + this.promptEl.createSpan({ + cls: "chess-study-quiz-mystery", + text: " · what's the book move?", + }); + + this.input.focus(); + this.renderScore(); + } + + private submit(): void { + if (!this.current || this.state.answered) return; + + const raw = this.input.value.trim(); + if (!raw) { + this.input.focus(); + return; + } + + const expected = this.current.moves[this.current.depth]; + if (!expected) return; + + const fen = computeFenAtDepth(this.current.moves, this.current.depth); + const verdict = checkAnswer(fen, raw, expected); + + this.state.answered = true; + this.state.asked++; + this.input.disabled = true; + this.submitBtn.addClass("is-hidden"); + this.nextBtn.removeClass("is-hidden"); + this.nextBtn.focus(); + + if (verdict.correct) { + this.state.score++; + this.state.streak++; + if (this.state.streak > this.state.bestStreak) { + this.state.bestStreak = this.state.streak; + } + this.feedbackEl.addClass("is-correct"); + const playedSan = verdict.playedSan ?? expected; + this.feedbackEl.createSpan({ text: `Correct — ${playedSan}` }); + } else { + this.state.streak = 0; + this.feedbackEl.addClass("is-incorrect"); + if (verdict.playedSan) { + this.feedbackEl.createSpan({ + text: `Not the book move. You played ${verdict.playedSan}; expected ${expected}.`, + }); + } else { + this.feedbackEl.createSpan({ + text: `Illegal move "${raw}". Expected ${expected}.`, + }); + } + } + + const labelParts: string[] = [this.current.opening.name]; + if (this.current.variation) { + labelParts.push(this.current.variation.name); + } + this.revealEl.createSpan({ + cls: "chess-study-quiz-reveal-label", + text: `From: ${labelParts.join(" — ")}`, + }); + + this.renderScore(); + } + + private renderScore(): void { + this.scoreEl.empty(); + const span = this.scoreEl.createSpan(); + setIcon(span, "trophy"); + this.scoreEl.createSpan({ + text: ` ${this.state.score} / ${this.state.asked}`, + }); + if (this.state.bestStreak > 0) { + this.scoreEl.createSpan({ + cls: "chess-study-quiz-streak", + text: ` · streak ${this.state.streak} (best ${this.state.bestStreak})`, + }); + } + } + + private recordRecent(pos: QuizPosition): void { + const key = quizKey(pos); + this.recent.push(key); + if (this.recent.length > 8) this.recent.shift(); + } +} + +interface AnswerVerdict { + correct: boolean; + playedSan?: string; +} + +/** + * Validate the user's input against the expected SAN. We rely on chess.js + * to canonicalize SAN, which both makes the comparison robust to spelling + * variants (`Nf3` vs `Ngf3` when only one knight reaches f3) and rejects + * outright illegal moves with a helpful failure mode. + */ +function checkAnswer( + fen: string, + rawInput: string, + expectedSan: string +): AnswerVerdict { + const cleaned = rawInput + .replace(/^\d+\.\s*/, "") + .replace(/^\d+\.\.\.?\s*/, "") + .trim(); + + const chess = new Chess(fen); + let played: ReturnType | null = null; + try { + played = chess.move(cleaned); + } catch { + // Fall through; played stays null. + } + + if (!played) { + return { correct: false }; + } + + // Compare canonical SAN — chess.js will return e.g. "Nf3" even if user + // typed "Ngf3", so we re-derive the expected canonical SAN by playing + // it on a fresh board and comparing the two. + const expectedChess = new Chess(fen); + let expectedMove: ReturnType | null = null; + try { + expectedMove = expectedChess.move(expectedSan); + } catch { + // shouldn't happen — repertoire moves are pre-validated + } + const expectedCanonical = expectedMove?.san ?? expectedSan; + + return { + correct: played.san === expectedCanonical, + playedSan: played.san, + }; +} + +function quizKey(pos: QuizPosition): string { + const v = pos.variation ? pos.variation.name : ""; + return `${pos.opening.name}|${v}|${pos.depth}`; +} + +/** + * Build the flat catalog of (opening, variation?, moves) entries we sample + * from. Done lazily and cached on first use because the opening list is + * stable for the life of the plugin. + */ +let CATALOG: Array<{ + opening: Opening; + variation: OpeningVariation | null; + moves: string[]; +}> | null = null; + +function getCatalog(): Array<{ + opening: Opening; + variation: OpeningVariation | null; + moves: string[]; +}> { + if (CATALOG) return CATALOG; + const out: Array<{ + opening: Opening; + variation: OpeningVariation | null; + moves: string[]; + }> = []; + for (const op of OPENINGS) { + const baseMoves = tokenize(op.moves); + if (baseMoves.length > 0) { + out.push({ opening: op, variation: null, moves: baseMoves }); + } + for (const v of op.variations ?? []) { + const m = tokenize(v.moves); + if (m.length > 0) { + out.push({ opening: op, variation: v, moves: m }); + } + } + } + CATALOG = out; + return out; +} + +function pickQuizPosition(recent: string[]): QuizPosition { + const catalog = getCatalog(); + for (let attempt = 0; attempt < 12; attempt++) { + const entry = catalog[Math.floor(Math.random() * catalog.length)]; + if (!entry) continue; + // Pick a depth in [0, moves.length-1] so we always have a "next" move. + const depth = Math.floor(Math.random() * entry.moves.length); + const candidate: QuizPosition = { + opening: entry.opening, + variation: entry.variation, + moves: entry.moves, + depth, + }; + if (!recent.includes(quizKey(candidate))) return candidate; + } + // All recent — fall back to the last attempt regardless. + const fallback = catalog[Math.floor(Math.random() * catalog.length)] ?? catalog[0]; + return { + opening: fallback?.opening as Opening, + variation: fallback?.variation ?? null, + moves: fallback?.moves ?? [], + depth: 0, + }; +} + +function computeFenAtDepth(moves: string[], depth: number): string { + const chess = new Chess(); + for (let i = 0; i < depth; i++) { + const san = moves[i]; + if (!san) break; + try { + chess.move(san); + } catch { + // Malformed repertoire entry — bail with whatever position we got. + break; + } + } + return chess.fen(); +} + +function tokenize(moves: string): string[] { + return moves + .replace(/\b\d+\.(\.\.)?/g, " ") + .split(/\s+/) + .map((t) => t.trim()) + .filter((t) => t.length > 0); +} diff --git a/src/ui/play-controller.ts b/src/ui/play-controller.ts new file mode 100644 index 0000000..5272acb --- /dev/null +++ b/src/ui/play-controller.ts @@ -0,0 +1,442 @@ +import { Chess, type Square, type Move } from "chess.js"; +import { App, setIcon } from "obsidian"; +import type { + CaissaSettings, + ChessBlockConfig, + Orientation, + PieceColor, + PieceType, +} from "../types"; +import type { PositionStep } from "../chess/engine"; +import { getEngine } from "../chess/engine-worker"; +import { renderBoard } from "./board-renderer"; +import { renderMoveList } from "./move-list"; +import { computeCaptured, hasAnyCaptures } from "../utils/captured-pieces"; +import { renderCapturedTray } from "./captured-tray"; +import { PromotionPickerModal } from "./promotion-picker"; + +/** + * Play-vs-Stockfish controller. + * + * Renders its own layout (board + side panel + controls) instead of + * piggy-backing on the analysis-style stepper, because the lifecycle is + * fundamentally different: the user is *making* moves, not just stepping + * a pre-baked sequence. State machine: + * + * awaitingHuman ── clickFriendlyPiece ──► selected + * selected ── clickLegalTarget ──► (apply move) + * │ + * └─► awaitingEngine + * awaitingEngine ── engine bestmove ──► (apply move) ──► awaitingHuman + * (any) ── checkmate/draw ──► gameOver + * + * Promotion is handled inline: when a pawn move would land on the last + * rank, the {@link PromotionPickerModal} prompts the user instead of + * silently picking a queen. + */ + +export interface PlayControllerArgs { + host: HTMLElement; + startFen: string; + humanColor: PieceColor; + level: number; + config: ChessBlockConfig; + settings: CaissaSettings; + app: App; +} + +type PlayState = + | { kind: "awaitingHuman"; selected: Square | null } + | { kind: "thinking" } + | { kind: "gameOver"; reason: string }; + +export function renderPlayBlock(args: PlayControllerArgs): void { + const { host, startFen, humanColor, level, config, settings, app } = args; + host.empty(); + host.classList.add("chess-study-block"); + + const orientation: Orientation = humanColor === "w" ? "white" : "black"; + const pieceSet = config.pieces ?? settings.pieceSet; + const lightColor = config.light ?? settings.lightSquareColor; + const darkColor = config.dark ?? settings.darkSquareColor; + const showCoords = config.coordinates ?? settings.showCoordinates; + const showMoves = config.showMoves ?? true; + const showCaptured = config.captured ?? settings.showCapturedPieces; + const size = config.size ?? "medium"; + const skill = Math.max(0, Math.min(level, 20)); + + if (config.title) { + host.createDiv({ cls: "chess-study-title", text: config.title }); + } + + const layout = host.createDiv({ + cls: `chess-study-layout size-${size}${showMoves ? "" : " no-moves"}`, + attr: { + tabindex: "0", + role: "group", + "aria-label": `Play vs Stockfish (skill ${skill}). Click a piece, then click its destination.`, + }, + }); + + const boardCol = layout.createDiv({ cls: "chess-study-board-col" }); + const topTrayHost = boardCol.createDiv({ + cls: "chess-study-captured-wrap chess-study-captured-top", + }); + const boardHost = boardCol.createDiv({ cls: "chess-study-board-wrap" }); + const bottomTrayHost = boardCol.createDiv({ + cls: "chess-study-captured-wrap chess-study-captured-bottom", + }); + const statusHost = boardCol.createDiv({ cls: "chess-study-play-status" }); + const controlsHost = boardCol.createDiv({ + cls: "chess-study-controls chess-study-play-controls", + }); + + const sideCol = showMoves + ? layout.createDiv({ cls: "chess-study-side-col" }) + : null; + const movesHost = + sideCol?.createDiv({ cls: "chess-study-moves-wrap" }) ?? null; + + let chess = new Chess(startFen); + let state: PlayState = { kind: "awaitingHuman", selected: null }; + let abortController: AbortController | null = null; + + const buildSteps = (): PositionStep[] => { + const steps: PositionStep[] = [{ fen: startFen }]; + const replay = new Chess(startFen); + const history = chess.history({ verbose: true }); + for (let i = 0; i < history.length; i++) { + const m = history[i]; + if (!m) continue; + const played = replay.move(m.san); + steps.push({ + fen: replay.fen(), + san: played.san, + from: played.from, + to: played.to, + color: played.color, + moveNumber: Math.floor(i / 2) + 1, + captured: played.captured as PieceType | undefined, + promotion: played.promotion as PieceType | undefined, + }); + } + return steps; + }; + + const draw = () => { + const lastMove = chess.history({ verbose: true }).at(-1); + const selected = + state.kind === "awaitingHuman" ? state.selected : null; + const legalTargets = selected + ? chess + .moves({ square: selected, verbose: true }) + .map((m: Move) => m.to) + : []; + + renderBoard(boardHost, { + fen: chess.fen(), + orientation, + pieceSet, + lightColor, + darkColor, + highlightColor: settings.lastMoveColor, + coordinateColor: settings.coordinateColor, + showCoordinates: showCoords, + from: lastMove?.from, + to: lastMove?.to, + selectedSquare: selected ?? undefined, + legalTargets, + onSquareClick: (sq) => onSquareClick(sq as Square), + }); + drawCapturedTrays(); + drawMoveList(); + drawStatus(); + }; + + const drawCapturedTrays = () => { + if (!showCaptured) { + topTrayHost.empty(); + bottomTrayHost.empty(); + topTrayHost.classList.add("is-hidden"); + bottomTrayHost.classList.add("is-hidden"); + return; + } + const steps = buildSteps(); + const totals = computeCaptured(steps, steps.length - 1); + if (!hasAnyCaptures(totals)) { + topTrayHost.empty(); + bottomTrayHost.empty(); + topTrayHost.classList.add("is-hidden"); + bottomTrayHost.classList.add("is-hidden"); + return; + } + topTrayHost.classList.remove("is-hidden"); + bottomTrayHost.classList.remove("is-hidden"); + const bottomColor: PieceColor = humanColor; + const topColor: PieceColor = humanColor === "w" ? "b" : "w"; + renderCapturedTray(topTrayHost, { + color: topColor, + totals, + pieceSet, + showAdvantage: true, + }); + renderCapturedTray(bottomTrayHost, { + color: bottomColor, + totals, + pieceSet, + showAdvantage: true, + }); + }; + + const drawMoveList = () => { + if (!movesHost) return; + const steps = buildSteps(); + renderMoveList(movesHost, { + steps, + activeIndex: steps.length - 1, + onSelect: () => { + /* clicking moves doesn't seek mid-game (would diverge + from the current position); kept passive on purpose. */ + }, + }); + }; + + const drawStatus = () => { + statusHost.empty(); + const turn = chess.turn(); + if (state.kind === "gameOver") { + statusHost.createSpan({ + cls: "chess-study-play-status-text is-gameover", + text: state.reason, + }); + return; + } + if (state.kind === "thinking") { + statusHost.createSpan({ + cls: "chess-study-play-status-text is-thinking", + text: `Stockfish (skill ${skill}) is thinking…`, + }); + return; + } + const youMove = turn === humanColor; + const inCheck = chess.inCheck(); + const text = youMove + ? inCheck + ? "Your move — you're in check." + : "Your move." + : "Engine to move."; + statusHost.createSpan({ + cls: "chess-study-play-status-text", + text, + }); + }; + + const onSquareClick = (sq: Square) => { + if (state.kind !== "awaitingHuman") return; + if (chess.turn() !== humanColor) return; + + const piece = chess.get(sq); + // Selecting a friendly piece (or re-selecting) just changes which + // square is "picked up". Clicking the same square again deselects. + if (piece && piece.color === humanColor) { + if (state.selected === sq) { + state = { kind: "awaitingHuman", selected: null }; + } else { + state = { kind: "awaitingHuman", selected: sq }; + } + draw(); + return; + } + + // Otherwise we're attempting a move from the current selection. + const from = state.selected; + if (!from) return; + + const legal = chess.moves({ square: from, verbose: true }); + const candidates = legal.filter((m: Move) => m.to === sq); + if (candidates.length === 0) { + // Off-target click — deselect (matches Lichess behavior). + state = { kind: "awaitingHuman", selected: null }; + draw(); + return; + } + + const needsPromotion = candidates.some( + (m: Move) => (m.promotion ?? "") !== "" + ); + if (needsPromotion) { + void promptPromotion(app, humanColor).then((piece) => { + if (!piece) return; + applyMove({ from, to: sq, promotion: piece }); + }); + return; + } + + applyMove({ from, to: sq }); + }; + + const applyMove = (move: { from: Square; to: Square; promotion?: string }) => { + try { + chess.move(move); + } catch { + state = { kind: "awaitingHuman", selected: null }; + draw(); + return; + } + state = { kind: "awaitingHuman", selected: null }; + draw(); + afterMove(); + }; + + const afterMove = () => { + if (checkAndSetGameOver()) { + draw(); + return; + } + if (chess.turn() !== humanColor) { + void requestEngineMove(); + } + }; + + const requestEngineMove = async () => { + state = { kind: "thinking" }; + draw(); + abortController?.abort(); + abortController = new AbortController(); + const signal = abortController.signal; + + try { + const uci = await getEngine().findBestMove(chess.fen(), { + skillLevel: skill, + signal, + }); + if (signal.aborted) return; + if (!uci) { + checkAndSetGameOver(); + draw(); + return; + } + const from = uci.slice(0, 2) as Square; + const to = uci.slice(2, 4) as Square; + const promotion = uci.length >= 5 ? uci.slice(4, 5) : undefined; + try { + chess.move({ from, to, promotion }); + } catch { + // Engine returned an illegal move — shouldn't happen, but + // don't blow up the board if it does. + } + state = { kind: "awaitingHuman", selected: null }; + checkAndSetGameOver(); + draw(); + } catch (err) { + state = { + kind: "gameOver", + reason: `Engine error: ${(err as Error).message}`, + }; + draw(); + } + }; + + const checkAndSetGameOver = (): boolean => { + if (chess.isCheckmate()) { + const winner = chess.turn() === "w" ? "Black" : "White"; + state = { + kind: "gameOver", + reason: `Checkmate — ${winner} wins.`, + }; + return true; + } + if (chess.isStalemate()) { + state = { kind: "gameOver", reason: "Stalemate. Draw." }; + return true; + } + if (chess.isThreefoldRepetition()) { + state = { + kind: "gameOver", + reason: "Draw by threefold repetition.", + }; + return true; + } + if (chess.isInsufficientMaterial()) { + state = { + kind: "gameOver", + reason: "Draw by insufficient material.", + }; + return true; + } + if (chess.isDraw()) { + state = { kind: "gameOver", reason: "Draw (50-move rule)." }; + return true; + } + return false; + }; + + const newGame = () => { + abortController?.abort(); + chess = new Chess(startFen); + state = { kind: "awaitingHuman", selected: null }; + draw(); + // If the human plays black, the engine moves first. + if (chess.turn() !== humanColor) { + void requestEngineMove(); + } + }; + + const undoOnce = () => { + // Roll back the last full pair (engine's reply + your move) so + // the board returns to a position where you're on move again. + if (state.kind === "thinking") return; + abortController?.abort(); + const history = chess.history({ verbose: true }); + if (history.length === 0) return; + const last = history[history.length - 1]; + const popN = last && last.color === humanColor ? 1 : 2; + for (let i = 0; i < popN; i++) chess.undo(); + state = { kind: "awaitingHuman", selected: null }; + draw(); + }; + + const buildControls = () => { + controlsHost.empty(); + const make = ( + label: string, + icon: string, + onClick: () => void + ) => { + const btn = controlsHost.createEl("button", { + cls: "chess-study-control", + attr: { "aria-label": label, type: "button", title: label }, + }); + setIcon(btn, icon); + btn.addEventListener("click", onClick); + return btn; + }; + make("Undo your last move", "rotate-ccw", undoOnce); + make("New game", "refresh-cw", newGame); + }; + + buildControls(); + draw(); + + // If the human plays black, kick off the engine so it makes the + // first move. + if (chess.turn() !== humanColor) { + void requestEngineMove(); + } +} + +/** + * Show the promotion picker modal and resolve with the user's pick, or + * `null` if they dismissed it (in which case we abandon the move). + */ +function promptPromotion( + app: App, + color: PieceColor +): Promise { + return new Promise((resolve) => { + const modal = new PromotionPickerModal(app, color, (pick) => + resolve(pick) + ); + modal.open(); + }); +} diff --git a/src/ui/promotion-picker.ts b/src/ui/promotion-picker.ts new file mode 100644 index 0000000..7c1a5c7 --- /dev/null +++ b/src/ui/promotion-picker.ts @@ -0,0 +1,94 @@ +import { App, Modal } from "obsidian"; +import type { PieceColor, PieceType } from "../types"; +import { createPieceNode, getPieceGlyph, type PieceKey } from "../chess/pieces"; + +const SVG_NS = "http://www.w3.org/2000/svg"; +const PROMOTION_PIECES: PieceType[] = ["q", "r", "b", "n"]; + +/** + * Modal that shows the four promotion choices (Queen, Rook, Bishop, Knight) + * as clickable piece glyphs. Closing the modal without picking is treated + * as "cancel" — the caller abandons the move so the user can pick a + * different from-square. + * + * Designed to feel similar to the Lichess promotion popover: pieces are + * laid out left-to-right in descending value, and each is a big easy-to-tap + * target so it works on touch. + */ +export class PromotionPickerModal extends Modal { + private color: PieceColor; + private onPick: (piece: PieceType | null) => void; + private resolved = false; + + constructor( + app: App, + color: PieceColor, + onPick: (piece: PieceType | null) => void + ) { + super(app); + this.color = color; + this.onPick = onPick; + } + + onOpen(): void { + this.modalEl.addClass("chess-study-promotion-modal"); + this.contentEl.empty(); + this.contentEl.createEl("h3", { text: "Promote to" }); + + const row = this.contentEl.createDiv({ + cls: "chess-study-promotion-row", + }); + for (const type of PROMOTION_PIECES) { + const btn = row.createEl("button", { + cls: "chess-study-promotion-choice", + attr: { type: "button", "aria-label": pieceLabel(type) }, + }); + renderChoiceGlyph(btn, this.color, type); + btn.addEventListener("click", () => { + this.resolved = true; + this.onPick(type); + this.close(); + }); + } + } + + onClose(): void { + if (!this.resolved) { + this.onPick(null); + } + } +} + +function renderChoiceGlyph( + host: HTMLElement, + color: PieceColor, + type: PieceType +): void { + const key: PieceKey = `${color}${type}`; + const node = createPieceNode("cburnett", key); + if (node) { + const svg = document.createElementNS(SVG_NS, "svg"); + svg.setAttribute("viewBox", "0 0 45 45"); + svg.setAttribute("xmlns", SVG_NS); + svg.classList.add("chess-study-promotion-svg"); + svg.appendChild(node); + host.appendChild(svg); + return; + } + host.textContent = getPieceGlyph(key); +} + +function pieceLabel(type: PieceType): string { + switch (type) { + case "q": + return "Queen"; + case "r": + return "Rook"; + case "b": + return "Bishop"; + case "n": + return "Knight"; + default: + return "Piece"; + } +} diff --git a/src/ui/wcc-picker.ts b/src/ui/wcc-picker.ts new file mode 100644 index 0000000..71afefc --- /dev/null +++ b/src/ui/wcc-picker.ts @@ -0,0 +1,71 @@ +import { App, FuzzySuggestModal } from "obsidian"; +import { + listWccMatches, + listWccGamesForMatch, + type WccMatchData, + type WccGameData, +} from "../chess/wcc-games"; + +/** + * Two-step WCC picker: + * 1. {@link WccMatchPickerModal} — fuzzy-search by match (year + players). + * 2. {@link WccGamePickerModal} — pick one of the bundled games for that match. + */ +export class WccMatchPickerModal extends FuzzySuggestModal { + private readonly app_: App; + private readonly onChoose: (game: WccGameData) => void; + + constructor(app: App, onChoose: (game: WccGameData) => void) { + super(app); + this.app_ = app; + this.onChoose = onChoose; + this.setPlaceholder("Search world championship matches"); + } + + getItems(): WccMatchData[] { + return listWccMatches(); + } + + getItemText(item: WccMatchData): string { + return item.matchLabel; + } + + onChooseItem(item: WccMatchData): void { + new WccGamePickerModal(this.app_, item, this.onChoose).open(); + } +} + +class WccGamePickerModal extends FuzzySuggestModal { + private readonly match: WccMatchData; + private readonly onChoose: (game: WccGameData) => void; + + constructor( + app: App, + match: WccMatchData, + onChoose: (game: WccGameData) => void + ) { + super(app); + this.match = match; + this.onChoose = onChoose; + this.setPlaceholder(`Search games — ${match.matchLabel}`); + } + + getItems(): WccGameData[] { + return listWccGamesForMatch(this.match.matchSlug); + } + + getItemText(item: WccGameData): string { + const display = item.result === "1/2-1/2" ? "½-½" : item.result; + return `Game ${item.gameNumber} — ${shortName(item.white)} vs ${shortName(item.black)} (${display})`; + } + + onChooseItem(item: WccGameData): void { + this.onChoose(item); + } +} + +function shortName(name: string): string { + const trimmed = name.trim(); + const comma = trimmed.indexOf(","); + return comma > 0 ? trimmed.slice(0, comma) : trimmed; +} diff --git a/src/utils/annotations.ts b/src/utils/annotations.ts new file mode 100644 index 0000000..c380a05 --- /dev/null +++ b/src/utils/annotations.ts @@ -0,0 +1,101 @@ +/** + * Parse declarative arrow and square-highlight annotations out of the + * `arrows:` and `highlights:` keys in a chess code block. + * + * Token grammar (whitespace-separated): + * + * arrow := (-)? + * highlight := (-)? + * + * Examples: + * + * arrows: e2e4 g1f3 d2d4-blue + * highlights: d4 e4-red f5-yellow + * + * Colors may be a named preset (`green`, `red`, `yellow`, `blue`) or a + * 3/6/8-character hex code without the leading `#` (so the `-` separator + * stays unambiguous). Unknown colors fall back to green. + * + * Invalid tokens are silently dropped — annotations are a presentation + * concern and should never break a board's render. + */ + +export interface ArrowSpec { + from: string; + to: string; + color: string; +} + +export interface HighlightSpec { + square: string; + color: string; +} + +const NAMED_COLORS: Record = { + green: "rgba(85, 153, 51, 0.85)", + red: "rgba(204, 51, 51, 0.85)", + yellow: "rgba(232, 197, 49, 0.85)", + blue: "rgba(0, 110, 184, 0.85)", +}; + +const DEFAULT_COLOR = NAMED_COLORS["green"] ?? "rgba(85, 153, 51, 0.85)"; + +const HEX_RE = /^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/; + +export function parseArrows(value: string | undefined): ArrowSpec[] { + if (!value) return []; + const out: ArrowSpec[] = []; + for (const tok of value.split(/\s+/)) { + if (!tok) continue; + const { squarePart, color } = splitColor(tok); + if (squarePart.length !== 4) continue; + const from = squarePart.slice(0, 2).toLowerCase(); + const to = squarePart.slice(2, 4).toLowerCase(); + if (!isAlgebraicSquare(from) || !isAlgebraicSquare(to)) continue; + if (from === to) continue; + out.push({ from, to, color }); + } + return out; +} + +export function parseHighlights(value: string | undefined): HighlightSpec[] { + if (!value) return []; + const out: HighlightSpec[] = []; + for (const tok of value.split(/\s+/)) { + if (!tok) continue; + const { squarePart, color } = splitColor(tok); + const sq = squarePart.toLowerCase(); + if (!isAlgebraicSquare(sq)) continue; + out.push({ square: sq, color }); + } + return out; +} + +function splitColor(tok: string): { squarePart: string; color: string } { + const dashIdx = tok.indexOf("-"); + if (dashIdx < 0) { + return { squarePart: tok, color: DEFAULT_COLOR }; + } + const squarePart = tok.slice(0, dashIdx); + const rawColor = tok.slice(dashIdx + 1).toLowerCase(); + return { squarePart, color: resolveColor(rawColor) }; +} + +function resolveColor(name: string): string { + const named = NAMED_COLORS[name]; + if (named) return named; + if (HEX_RE.test(name)) return `#${name}`; + return DEFAULT_COLOR; +} + +function isAlgebraicSquare(sq: string): boolean { + if (sq.length !== 2) return false; + const file = sq.charCodeAt(0); + const rank = sq.charCodeAt(1); + return ( + file >= "a".charCodeAt(0) && + file <= "h".charCodeAt(0) && + rank >= "1".charCodeAt(0) && + rank <= "8".charCodeAt(0) + ); +} diff --git a/src/utils/block-rewrite.ts b/src/utils/block-rewrite.ts new file mode 100644 index 0000000..23e1b2f --- /dev/null +++ b/src/utils/block-rewrite.ts @@ -0,0 +1,136 @@ +import { App, MarkdownPostProcessorContext, Notice, TFile } from "obsidian"; + +export interface BlockRewriteUpdates { + /** Set the `opening:` key. Pass empty string to remove it. */ + opening?: string; + /** Set the `variation:` key. Pass empty string to remove it. */ + variation?: string; + /** Set the `endgame:` key. Pass empty string to remove it. */ + endgame?: string; + /** Set the `wccgame:` key. Pass empty string to remove it. */ + wccgame?: string; +} + +/** Keys whose lines we may rewrite or strip. Anything else is preserved verbatim. */ +const REWRITABLE_KEYS = new Set([ + "opening", + "variation", + "endgame", + "wccgame", + "wcc", +]); + +/** + * Rewrite the `chess` code block backed by `el` so that its `opening:` and/or + * `variation:` lines reflect `updates`. All other body lines (style options, + * comments, blanks) are preserved in their original order. + * + * Returns true on success, false if the block can't be located (e.g. inside a + * callout, transcluded preview, or the source file has gone missing). + */ +export async function rewriteChessBlock( + app: App, + ctx: MarkdownPostProcessorContext, + el: HTMLElement, + updates: BlockRewriteUpdates +): Promise { + const info = ctx.getSectionInfo(el); + if (!info) { + new Notice( + "Couldn't locate this chess block in the source file. Try editing the block manually." + ); + return false; + } + + const file = app.vault.getAbstractFileByPath(ctx.sourcePath); + if (!(file instanceof TFile)) { + new Notice("Couldn't find the note for this chess block."); + return false; + } + + // `lineStart` is the opening fence (```chess), `lineEnd` is the closing fence (```). + const bodyStart = info.lineStart + 1; + const bodyEnd = info.lineEnd; + + // Use vault.process so the read-modify-write is atomic against any + // concurrent edits to the same file. If the boundaries no longer line up + // (e.g. the user edited the file since the post-processor ran), we bail + // out by returning the original contents unchanged. + let aborted = false; + let succeeded = false; + await app.vault.process(file, (data) => { + const lines = data.split("\n"); + if (bodyStart > bodyEnd || bodyEnd > lines.length) { + aborted = true; + return data; + } + const oldBody = lines.slice(bodyStart, bodyEnd); + const newBody = applyUpdates(oldBody, updates); + const newLines = [ + ...lines.slice(0, bodyStart), + ...newBody, + ...lines.slice(bodyEnd), + ]; + succeeded = true; + return newLines.join("\n"); + }); + + if (aborted) { + new Notice("Chess block boundaries look wrong; aborting rewrite."); + return false; + } + return succeeded; +} + +/** + * Apply `updates` to the body of a chess block. Non-rewritable lines pass + * through unchanged; rewritable lines are stripped first, then the new values + * are appended (preserving relative order: opening before variation). + */ +function applyUpdates( + body: string[], + updates: BlockRewriteUpdates +): string[] { + const preserved: string[] = []; + for (const line of body) { + const trimmed = line.trim(); + if (!trimmed || trimmed.startsWith("#") || trimmed.startsWith("//")) { + preserved.push(line); + continue; + } + const colon = trimmed.indexOf(":"); + if (colon === -1) { + preserved.push(line); + continue; + } + const key = trimmed.slice(0, colon).trim().toLowerCase(); + if (!REWRITABLE_KEYS.has(key)) { + preserved.push(line); + } + } + + // Drop trailing blank lines so we don't accumulate extra whitespace + // every time the user changes selection. + while (preserved.length > 0 && preserved[preserved.length - 1]?.trim() === "") { + preserved.pop(); + } + + const newKeyLines: string[] = []; + if (updates.opening && updates.opening.trim()) { + newKeyLines.push(`opening: ${updates.opening.trim()}`); + } + if (updates.variation && updates.variation.trim()) { + newKeyLines.push(`variation: ${updates.variation.trim()}`); + } + if (updates.endgame && updates.endgame.trim()) { + newKeyLines.push(`endgame: ${updates.endgame.trim()}`); + } + if (updates.wccgame && updates.wccgame.trim()) { + newKeyLines.push(`wccgame: ${updates.wccgame.trim()}`); + } + + if (preserved.length === 0) { + return newKeyLines; + } + return [...preserved, ...newKeyLines]; +} diff --git a/src/utils/captured-pieces.ts b/src/utils/captured-pieces.ts new file mode 100644 index 0000000..4356841 --- /dev/null +++ b/src/utils/captured-pieces.ts @@ -0,0 +1,94 @@ +import type { PieceType } from "../types"; +import type { PositionStep } from "../chess/engine"; + +/** + * Standard piece point values used to compute the material balance bar. + * The king is intentionally excluded — kings are never captured and including + * them would skew every position to a 0 balance. + */ +const PIECE_VALUE: Record = { + p: 1, + n: 3, + b: 3, + r: 5, + q: 9, + k: 0, +}; + +/** Display order from lowest to highest value, matching Lichess. */ +export const TRAY_PIECE_ORDER: ReadonlyArray = [ + "p", + "n", + "b", + "r", + "q", +]; + +export interface CapturedTotals { + /** Pieces captured by White (i.e. former Black pieces). */ + byWhite: Record; + /** Pieces captured by Black (i.e. former White pieces). */ + byBlack: Record; + /** + * Material advantage in pawn-equivalents from White's perspective. + * Positive = White is up material, negative = Black is up. + * + * This is computed from captures + promotions so it stays accurate + * even when the game starts from a non-standard FEN (we just measure + * delta from the starting position rather than from a 39-point assumption). + */ + advantage: number; +} + +/** + * Walk the steps array up to and including `untilIndex` to tally captured + * pieces and material advantage. + * + * We use move history rather than naive FEN piece-counting because the latter + * can't tell a captured queen apart from a promoted-and-then-traded queen. + * Promotion bumps the promoting side's material by (promoted_value - 1) since + * a pawn becomes the new piece. + */ +export function computeCaptured( + steps: PositionStep[], + untilIndex: number +): CapturedTotals { + const byWhite: Record = { p: 0, n: 0, b: 0, r: 0, q: 0, k: 0 }; + const byBlack: Record = { p: 0, n: 0, b: 0, r: 0, q: 0, k: 0 }; + let advantage = 0; + + const stop = Math.min(untilIndex, steps.length - 1); + // steps[0] is the starting position with no move; start at 1. + for (let i = 1; i <= stop; i++) { + const step = steps[i]; + if (!step) continue; + + if (step.captured) { + const value = PIECE_VALUE[step.captured] ?? 0; + if (step.color === "w") { + byWhite[step.captured]++; + advantage += value; + } else if (step.color === "b") { + byBlack[step.captured]++; + advantage -= value; + } + } + + if (step.promotion) { + const gain = (PIECE_VALUE[step.promotion] ?? 0) - PIECE_VALUE.p; + if (step.color === "w") advantage += gain; + else if (step.color === "b") advantage -= gain; + } + } + + return { byWhite, byBlack, advantage }; +} + +export function hasAnyCaptures(totals: CapturedTotals): boolean { + if (totals.advantage !== 0) return true; + for (const t of TRAY_PIECE_ORDER) { + if (totals.byWhite[t] > 0) return true; + if (totals.byBlack[t] > 0) return true; + } + return false; +} diff --git a/src/utils/export-board.ts b/src/utils/export-board.ts new file mode 100644 index 0000000..4225078 --- /dev/null +++ b/src/utils/export-board.ts @@ -0,0 +1,153 @@ +/** + * Export a rendered board SVG as raster (PNG) or vector (SVG) image, either + * to the system clipboard or as a downloaded file. + * + * The board renderer outputs a self-contained SVG (inline gradients, no + * external / refs), which is what makes the canvas-rasterize + * round-trip safe — no taint, no CORS, no missing assets. + */ + +const SVG_NS = "http://www.w3.org/2000/svg"; + +export interface ExportOptions { + /** Pixel multiplier for raster output. 2 = retina-quality 720x720 PNG. */ + scale?: number; + /** Background fill color for raster output. PNG would be transparent without it. */ + background?: string; +} + +export async function copyBoardAsPng( + svgEl: SVGElement, + opts: ExportOptions = {} +): Promise { + const blob = await rasterizeSvg(svgEl, opts); + await writeBlobToClipboard(blob, "image/png"); +} + +export async function copyBoardAsSvg(svgEl: SVGElement): Promise { + const xml = serializeSvg(svgEl); + await navigator.clipboard.writeText(xml); +} + +export async function downloadBoardAsPng( + svgEl: SVGElement, + filename: string, + opts: ExportOptions = {} +): Promise { + const blob = await rasterizeSvg(svgEl, opts); + triggerDownload(blob, filename); +} + +export async function downloadBoardAsSvg( + svgEl: SVGElement, + filename: string +): Promise { + const xml = serializeSvg(svgEl); + const blob = new Blob([xml], { type: "image/svg+xml;charset=utf-8" }); + triggerDownload(blob, filename); +} + +/** + * Convert the board's to a PNG blob. We clone the source so any + * temporary attribute tweaks (xmlns, explicit width/height) don't affect + * the live, on-screen board. + */ +async function rasterizeSvg( + svgEl: SVGElement, + opts: ExportOptions +): Promise { + const scale = opts.scale ?? 2; + const background = opts.background ?? "#ffffff"; + + const { width, height } = getViewBoxSize(svgEl); + const xml = serializeSvg(svgEl); + const dataUrl = + "data:image/svg+xml;charset=utf-8," + encodeURIComponent(xml); + + const img = await loadImage(dataUrl); + + const canvas = document.createElement("canvas"); + canvas.width = Math.round(width * scale); + canvas.height = Math.round(height * scale); + const ctx = canvas.getContext("2d"); + if (!ctx) throw new Error("Could not acquire 2d canvas context"); + + if (background) { + ctx.fillStyle = background; + ctx.fillRect(0, 0, canvas.width, canvas.height); + } + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + return await new Promise((resolve, reject) => { + canvas.toBlob((blob) => { + if (!blob) { + reject(new Error("Canvas returned no blob")); + return; + } + resolve(blob); + }, "image/png"); + }); +} + +/** + * Serialize the SVG with explicit width/height attributes derived from its + * viewBox so external tools (and the canvas raster path) know how big to + * draw it. Without these, browsers default to "intrinsic 0x0" for inline- + * rendered SVGs. + */ +function serializeSvg(svgEl: SVGElement): string { + const clone = svgEl.cloneNode(true) as SVGElement; + if (!clone.getAttribute("xmlns")) { + clone.setAttribute("xmlns", SVG_NS); + } + const { width, height } = getViewBoxSize(svgEl); + clone.setAttribute("width", String(width)); + clone.setAttribute("height", String(height)); + return new XMLSerializer().serializeToString(clone); +} + +function getViewBoxSize(svgEl: SVGElement): { width: number; height: number } { + const vb = svgEl.getAttribute("viewBox"); + if (vb) { + const parts = vb.split(/\s+/).map(Number); + if (parts.length === 4 && !parts.some(isNaN)) { + return { width: parts[2] ?? 360, height: parts[3] ?? 360 }; + } + } + const rect = svgEl.getBoundingClientRect(); + return { width: rect.width || 360, height: rect.height || 360 }; +} + +function loadImage(src: string): Promise { + return new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => resolve(img); + img.onerror = () => reject(new Error("Could not load SVG into image")); + img.src = src; + }); +} + +async function writeBlobToClipboard( + blob: Blob, + mimeType: string +): Promise { + if (typeof ClipboardItem === "undefined") { + throw new Error( + "Clipboard image API not available in this environment" + ); + } + const item = new ClipboardItem({ [mimeType]: blob }); + await navigator.clipboard.write([item]); +} + +function triggerDownload(blob: Blob, filename: string): void { + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + a.remove(); + // Defer revoke so the browser has time to start the download. + window.setTimeout(() => URL.revokeObjectURL(url), 1000); +} diff --git a/src/utils/parser.ts b/src/utils/parser.ts new file mode 100644 index 0000000..6c09367 --- /dev/null +++ b/src/utils/parser.ts @@ -0,0 +1,299 @@ +import { + ALL_PIECE_SETS, + type BoardSize, + type ChessBlockConfig, + type ExplorerSource, + type Orientation, + type PieceSet, +} from "../types"; + +const VALID_SIZES = new Set(["small", "medium", "large", "full"]); +const VALID_PIECE_SETS = new Set(ALL_PIECE_SETS); + +/** All recognized config keys (lowercase). Used by the raw-PGN heuristic. */ +const CONFIG_KEYS = new Set([ + "opening", + "variation", + "endgame", + "wccgame", + "wcc", + "moves", + "pgn", + "lichess", + "lichessgame", + "fen", + "orientation", + "side", + "pieces", + "pieceset", + "light", + "lightcolor", + "lightsquare", + "dark", + "darkcolor", + "darksquare", + "title", + "name", + "size", + "boardsize", + "showmoves", + "movelist", + "moveslist", + "movespanel", + "interactive", + "controls", + "coordinates", + "coords", + "explorer", + "explorersource", + "explorerdb", + "source", + "startmove", + "step", + "atmove", + "arrows", + "arrow", + "highlights", + "highlight", + "squares", + "captured", + "capturedpieces", + "materialbar", + "analyze", + "engine", + "stockfish", + "play", + "vs", + "vsstockfish", + "level", + "skill", + "skilllevel", + "strength", +]); + +/** + * Parse the body of a ```chess code block. + * + * Two styles are accepted: + * + * 1. Structured — lines of `key: value` (one per line). Lines starting with + * `#` or `//` are comments. Multi-word values are taken verbatim. Unknown + * keys are silently ignored. Keys are case-insensitive. + * + * 2. Raw PGN — if the body looks like a PGN (starts with `[Tag "value"]` + * headers, or contains a SAN move sequence with no `key: value` lines), + * it's treated as if the entire body were a `pgn:` value. This lets you + * paste a PGN copied from Lichess/chess.com/ChessBase directly. + */ +export function parseBlockConfig(source: string): ChessBlockConfig { + const cfg: ChessBlockConfig = {}; + + if (looksLikeRawPgn(source)) { + cfg.pgn = source.trim(); + return cfg; + } + + const lines = source.split(/\r?\n/); + for (const rawLine of lines) { + const line = rawLine.trim(); + if (!line || line.startsWith("#") || line.startsWith("//")) continue; + + const colon = line.indexOf(":"); + if (colon === -1) continue; + const key = line.slice(0, colon).trim().toLowerCase(); + const value = line.slice(colon + 1).trim(); + if (!value) continue; + + assignKey(cfg, key, value); + } + return cfg; +} + +/** + * Heuristic: a body is "raw PGN" if its first significant line is a PGN + * tag pair (`[Event "..."]`), or if no line in the body matches our + * `key: value` shape but at least one move-like token is present. + */ +function looksLikeRawPgn(source: string): boolean { + const lines = source + .split(/\r?\n/) + .map((l) => l.trim()) + .filter((l) => l.length > 0 && !l.startsWith("#") && !l.startsWith("//")); + + if (lines.length === 0) return false; + + // Strong signal: first line is a PGN tag pair. + if (/^\[[A-Za-z][A-Za-z0-9]*\s+"[^"]*"\s*\]\s*$/.test(lines[0] ?? "")) { + return true; + } + + // Weak signal: no `key: value` lines but body looks like SAN moves. + const hasKeyValue = lines.some((l) => { + const colon = l.indexOf(":"); + if (colon <= 0) return false; + const key = l.slice(0, colon).trim().toLowerCase(); + // Recognized config keys count as "looks like structured config". + return CONFIG_KEYS.has(key); + }); + if (hasKeyValue) return false; + + const moveLikeToken = /\b(?:O-O(?:-O)?|[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](?:=[QRBN])?[+#]?|[a-h][1-8])/; + return lines.some((l) => moveLikeToken.test(l)); +} + +function assignKey(cfg: ChessBlockConfig, key: string, value: string): void { + switch (key) { + case "opening": + cfg.opening = value; + return; + case "variation": + cfg.variation = value; + return; + case "endgame": + cfg.endgame = value; + return; + case "wccgame": + case "wcc": + cfg.wccgame = value; + return; + case "moves": + cfg.moves = value; + return; + case "pgn": + cfg.pgn = value; + return; + case "lichess": + case "lichessgame": + cfg.lichess = value; + return; + case "fen": + cfg.fen = value; + return; + case "orientation": + case "side": { + const lower = value.toLowerCase(); + if (lower === "white" || lower === "black") { + cfg.orientation = lower as Orientation; + } + return; + } + case "pieces": + case "pieceset": { + const lower = value.toLowerCase() as PieceSet; + if (VALID_PIECE_SETS.has(lower)) { + cfg.pieces = lower; + } + return; + } + case "light": + case "lightcolor": + case "lightsquare": + cfg.light = value; + return; + case "dark": + case "darkcolor": + case "darksquare": + cfg.dark = value; + return; + case "title": + case "name": + cfg.title = value; + return; + case "size": + case "boardsize": { + const lower = value.toLowerCase() as BoardSize; + if (VALID_SIZES.has(lower)) cfg.size = lower; + return; + } + case "showmoves": + case "movelist": + case "moveslist": + case "movespanel": { + const bool = parseBool(value); + if (bool !== null) cfg.showMoves = bool; + return; + } + case "interactive": + case "controls": { + const bool = parseBool(value); + if (bool !== null) cfg.interactive = bool; + return; + } + case "coordinates": + case "coords": { + const bool = parseBool(value); + if (bool !== null) cfg.coordinates = bool; + return; + } + case "explorer": { + const bool = parseBool(value); + if (bool !== null) cfg.explorer = bool; + return; + } + case "startmove": + case "step": + case "atmove": { + const n = parseInt(value, 10); + if (!isNaN(n)) cfg.startMove = n; + return; + } + case "explorersource": + case "explorerdb": + case "source": { + const lower = value.toLowerCase(); + if (lower === "masters" || lower === "lichess") { + cfg.explorerSource = lower as ExplorerSource; + } + return; + } + case "arrows": + case "arrow": + cfg.arrows = value; + return; + case "highlights": + case "highlight": + case "squares": + cfg.highlights = value; + return; + case "captured": + case "capturedpieces": + case "materialbar": { + const bool = parseBool(value); + if (bool !== null) cfg.captured = bool; + return; + } + case "analyze": + case "engine": + case "stockfish": { + const bool = parseBool(value); + if (bool !== null) cfg.analyze = bool; + return; + } + case "play": + case "vs": + case "vsstockfish": { + const lower = value.toLowerCase(); + if (lower === "white" || lower === "black" || lower === "random") { + cfg.play = lower; + } else if (parseBool(lower) === true) { + cfg.play = "white"; + } + return; + } + case "level": + case "skill": + case "skilllevel": + case "strength": { + const n = parseInt(value, 10); + if (!isNaN(n)) cfg.level = Math.max(0, Math.min(n, 20)); + return; + } + } +} + +function parseBool(value: string): boolean | null { + const v = value.toLowerCase(); + if (["true", "yes", "on", "1"].includes(v)) return true; + if (["false", "no", "off", "0"].includes(v)) return false; + return null; +} diff --git a/src/utils/user-agent.ts b/src/utils/user-agent.ts new file mode 100644 index 0000000..2e1220b --- /dev/null +++ b/src/utils/user-agent.ts @@ -0,0 +1,10 @@ +import manifest from "../../manifest.json"; + +/** + * Identifying User-Agent for all outgoing HTTPS requests this plugin makes. + * Lichess (and most public APIs) ask third-party clients to set a descriptive + * UA so they can identify and contact the developer if traffic patterns + * become problematic. The version is pulled from manifest.json so it stays + * in sync with releases automatically. + */ +export const USER_AGENT = `${manifest.id}/${manifest.version} (https://github.com/${manifest.author ?? "ekrizdis"}/${manifest.id})`; diff --git a/src/vendor/stockfish-engine.sftext b/src/vendor/stockfish-engine.sftext new file mode 100644 index 0000000..f9fcb9a --- /dev/null +++ b/src/vendor/stockfish-engine.sftext @@ -0,0 +1,48 @@ +/*! + * Stockfish copyright T. Romstad, M. Costalba, J. Kiiski, G. Linscott + * and other contributors. + * + * Multi-variant support by Daniel Dugovic and contributors: + * https://github.com/ddugovic/Stockfish + * + * Released under the GNU General Public License v3. + * + * Compiled to JavaScript and Webassembly by Niklas Fiekas + * using Emscripten and Binaryen. + * + * https://github.com/niklasf/stockfish.js + */ + +var Module=typeof Module!=="undefined"?Module:{};Module=function(){var queue=[];onmessage=function(e){if(e.data=="quit")close();else if(queue!==null)queue.push(e.data);else Module.ccall("uci_command","number",["string"],[e.data])};return{locateFile:function(file){return file},print:function(stdout){postMessage(stdout)},postRun:function(){for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function getFuncWrapper(func,sig){if(!func)return;assert(sig);if(!funcWrappers[sig]){funcWrappers[sig]={}}var sigCache=funcWrappers[sig];if(!sigCache[func]){if(sig.length===1){sigCache[func]=function dynCall_wrapper(){return dynCall(sig,func)}}else if(sig.length===2){sigCache[func]=function dynCall_wrapper(arg){return dynCall(sig,func,[arg])}}else{sigCache[func]=function dynCall_wrapper(){return dynCall(sig,func,Array.prototype.slice.call(arguments))}}}return sigCache[func]}function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STACK_BASE=1183680,DYNAMIC_BASE=6426560,DYNAMICTOP_PTR=1183648;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||33554432;if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferViews();HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}if(!Math.imul||Math.imul(4294967295,5)!==-5)Math.imul=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};if(!Math.clz32)Math.clz32=function(x){var n=32;var y=x>>16;if(y){n-=16;x=y}y=x>>8;if(y){n-=8;x=y}y=x>>4;if(y){n-=4;x=y}y=x>>2;if(y){n-=2;x=y}y=x>>1;if(y)return n-2;return n-x};if(!Math.trunc)Math.trunc=function(x){return x<0?Math.ceil(x):Math.floor(x)};var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;__ATINIT__.push({func:function(){globalCtors()}});memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAAD+/+v/dwAoAMBmAAAAAAAA/38JAQIBBCDAigAAAAAAAP8/BRAAAhAAwJYAAAAAAAACQAAIAARAAFofAAAAAAAAA9D//0EE0H+0VgAAAAAAAP7/34eIACBA5jsBAAAAAAD//0eIiABAAMsrAQAAAAAA/f91//sAaADAdgAAAAAAAP//EwEBKAAAaysAAAAAAAD///wBAgQgAB1HAAAAAAAA6P//QgDofwBJ0QAAAAAAAOj/fyEAGAAABPUAAAAAAADo/z8HABgAAOqFAAAAAAAA6P9f4AAYAAAMcgAAAAAAAOj/L2AAGAAA/lwAAAAAAACg//8vADAAAEnBAAAAAAAA//8LARgAMABqCQAAAAAAAPv/hQAMAAMAko4AAAAAAAAIAAECCAAEAJ5fAAAAAAAABAACICAABABaJwAAAAAAAAEgAAIgAAEA0zUBAAAAAABAEIAAEAABAEPKAAAAAAAAAYAAQEAAAAASNQAAAAAAAPT/zQBoAAAAe0sAAAAAAAAQAAgQACBAANQTAQAAAAAAEAAEEAAIAADERgEAAAAAAAgAAggAAQQAhvYAAAAAAAAAAiAgAAQAAMCGAAAAAAAAAAEQEIAAAgDmSwEAAAAAACAAASCAAAAARdQAAAAAAABAACAggAAAAAXsAAAAAAAAIEAAIACCAACCUQEAAAAAADAAMAAY/f8ARcQAAAAAAAAgANS/f/9/AE4rAQAAAAAAGAAYAL3/PwDESgEAAAAAABgAGIDe/x8ApTMBAAAAAAAYAOi/4P8PAOKRAAAAAAAAASAggAAAAQByAQAAAAAAAIABmP/7/wMAxqQAAAAAAADgAJD//f8BAEmxAAAAAAAAANj/6/7+/wDb8AAAAAAAAAAUwP/3/38A9jEAAAAAAAAA6P/kv/8/AHpBAAAAAAAAADDAH/D/HwAAAAAAAAAAAADov/jn/w8A7JUAAAAAAAAI+D/f3/8HAForAAAAAAAABKj/X/j/AwArVQAAAAAAAAKo/3X9/wEAFZkAAAAAAADY/+v/1///AATlAAAAAAAA2L9//3X/fwBUrAAAAAAAANh/vz+G/z8AFTIBAAAAAADY/9ffv/8fAMGtAAAAAAAAKAAoEPj/DwCG+gAAAAAAANj//vfX/wcAH6MAAAAAAABIAEgM/P8DAHIFAAAAAAAA2P/Xr///AQDOnwAAAAAAALqj3//k//8A1AMBAAAAAADa0/N/7/9/ADkPAAAAAAAA+vfv37//PwBaDwAAAAAAACL8+/fv/x8A5hwBAAAAAAABEAAIBAIAANYbAQAAAAAA/Xf///7/BwAF3AAAAAAAAOz+fb///wMAxQMBAAAAAAAzo/+d//8BAOo5AAAAAAAACAAAAAEAAAD4//////////+/v7+/v38AAhUAAAAAAAD8BxBAYKAAAP0PAAAAAAAAAAACCEAAAQDaEAAAAAAAAAAAAARggAAAuxkAAAAAAAAAAAAABBAAAFsZAAAAAAAAAACyAMEhAAC6GAAAAAAAAACAAEEABAAA6RUAAAAAAACA/z8gsA8AANxWAAAAAAAABBBAAAEEAADaFwAAAAAAAAIIIIAAAgAA+RUAAAAAAAAAICAQQAAAAJFBAAAAAAAAAAAEYIAAAACxQQAAAAAAAAAAAAJEAAAAuhoAAAAAAAAAgAABCAAAAFsbAAAAAAAAgP+/4O8HAABlEAAAAAAAACAAgiAIAAAAvBwAAAAAAACAgICAAEAAAPoRAAAAAAAACAhAAAEfAgC6EQAAAAAAAP8/b8AAgAEAW3MAAAAAAAAAEIAAgiUAAFGxAAAAAAAAAACEgAAkAACEMAAAAAAAAPj/AwwAGAAAkz0AAAAAAAAggCBAWAoAALoTAAAAAAAAIIAgCAACAAD6EAAAAAAAAAABgQBAgAAAuhcAAAAAAAAIIIAAGQEBALoeAAAAAAAAAAGBAECAAACLfQAAAAAAAP8DBDxAAAEASeEAAAAAAAAAIICoAoQHAEXYAAAAAAAAAESAABAQAADKPQAAAAAAAABBEAAICAAAuhUAAAAAAAAIIAjABEAAAPYYAAAAAAAAIIAAIAEBAQD6HgAAAAAAABBAAJqAgAAAETQAAAAAAAAQAIEI/v4HAAIcAAAAAAAAgMA/gw//AwCDagAAAAAAAEIwABmA4H8AG9IAAAAAAAAAMADq7/8/AOkTAAAAAAAAgCAAEBAQAADzGQAAAAAAAAQICAUggAAA+hcAAAAAAABAAKiAgIAAAPocAAAAAAAAQAAgAEEQAADaHgAAAAAAAMA/g3/f/wMAHKQAAAAAAAAgAEVAiAAAAAbgAAAAAAAAMAAYgPx/AAAdWQAAAAAAACgAFIDd/38Add0AAAAAAAAEAAoggAACALoWAAAAAAAAIAAQEBAQAAC6GwAAAAAAAABQgMHf/wcAYxEAAAAAAAAAIsDg7/8DAGUSAAAAAAAAAGCAIAgAAAC6EgAAAAAAAAAwQAgAAAAANDQAAAAAAAAAICAAAQAAANoRAAAAAAAAACCAQEAAAAC6EAAAAAAAAAAEEEAAAQQAdDoAAAAAAAD0AxhgIGAAALoPAAAAAAAASIDC39//AwDaEgAAAAAAACAAgiAIAAAAuhwAAAAAAABggCAIAAAAAPASAAAAAAAAIICAAAAAAABKPgAAAAAAACAgAAEAAAAAVDoAAAAAAAAIIAABBAAAAMxAAAAAAAAAQEBAQEAAAAD5GgAAAAAAABP4f9+f/38AzD4AAAAAAAAJAAAA+f////f///8HAAAAZAAAAFoAAABQAAAARgAAAEYAAABQAAAAWgAAAGQAAABaAAAARgAAADwAAAAyAAAAMgAAADwAAABGAAAAWgAAAFAAAAA8AAAAKAAAAB4AAAAeAAAAKAAAADwAAABQAAAARgAAADIAAAAeAAAAFAAAABQAAAAeAAAAMgAAAEYAAABGAAAAMgAAAB4AAAAUAAAAFAAAAB4AAAAyAAAARgAAAFAAAAA8AAAAKAAAAB4AAAAeAAAAKAAAADwAAABQAAAAWgAAAEYAAAA8AAAAMgAAADIAAAA8AAAARgAAAFoAAABkAAAAWgAAAFAAAABGAAAARgAAAFAAAABaAAAAZAAAAAAAAAAAAAAAZAAAAFAAAAA8AAAAKAAAABQAAAAKAAAAyAAAAL4AAAC0AAAAqgAAAKAAAACWAAAAjAAAAIIAAAC+AAAAtAAAAKoAAACgAAAAlgAAAIwAAACCAAAAjAAAALQAAACqAAAAmwAAAIwAAACMAAAAfQAAAIwAAACWAAAAqgAAAKAAAACMAAAAeAAAAG4AAACMAAAAlgAAAKAAAACgAAAAlgAAAIwAAABuAAAAeAAAAIwAAACgAAAAqgAAAJYAAACMAAAAfQAAAIwAAACMAAAAmwAAAKoAAAC0AAAAjAAAAIIAAACMAAAAlgAAAKAAAACqAAAAtAAAAL4AAACCAAAAjAAAAJYAAACgAAAAqgAAALQAAAC+AAAAyAAAAAAAAAAFAAAAFAAAACgAAAA8AAAAUAAAAFoAAABkAAAAAAAAAAkAAAAKAAAADgAAABUAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAE0AAAA3AAAALAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAQAAAAC4AAAALAAAAAAAAAAAAAAAAAAAAAAAAAHAAAABXAAAAPwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAATQAAADcAAAAsAAAACgAAAAAAAAAAAAAAAAAAAAAAAABMAAAAMAAAACwAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcwAAAEAAAAA+AAAAIwAAAAAAAAAAAAAAwv+u/8v/x//0/+H//P/x/wMACAANAA8AFgAXABwAGwAhACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ/8T/7P/o/xAA/f8aAA0AJgAYADMAKgA3ADYAPwA5AD8AQQBEAEkAUQBOAFEAVgBbAFgAYgBhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMb/s//l/+3/8f8bAPb/NgD7/0QA/v9RAAkAcAAQAHYAHgCEAB0AjgAgAJsAJgClAC4ApgAwAKkAOgCrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2f/b/+v/8P8DAAgAAwASAA4AIgAWADYAHAA9ACkASQArAE8AMABcADgAXgA8AGgAPABxAEIAeABDAHsARgB+AEcAhQBJAIgATwCMAFgAjwBYAJQAYwCmAGYAqgBmAK8AagC4AG0AvwBxAM4AdADUAAAAAAAAAAAAAAAAAAAAAABq/2f/kP+T/+7/y//8/+v/DAAKAB4AFgAsADQAPAA4AEgAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKD/i//W/9n/IAD8/zQAGABKACwAZgBUAGwAbAB+AHQAggB+AI4AjACeAJQAogCsALgAtADCALwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkP9j/87/2//q/zMA9v9tAPj/iwD+/6EAEADaABwA8AAqAAABLgAeAT4ANAFAAEABVgBKAWIAUAF2AFIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACw/7n/zv/n/wQADgAIACYAHABKADAAbgAyAHwAUACYAFYAngBeAK4AbAC8AHAAzAB4AN4AjADoAJAA7ACSAPQAlgAAAZoABAGqAAoBvAAQAcYAGAHYADoB4AA8AeIAQgHsAFwB7gBiAfYAfgEAAY4BAAAAAAAAAAAAAAAAAAAAAKr/sv+x/7//3P/X//7/5/8OAAgAFwAZACgAGgAeABcAJQAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyf++/+//3f8NAPf/GAAUABYAGQA5ACcAIAA0AEIAQgAzADQAOABKAEkATABVAFEAXQBaAGwAVwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD/7b/4P/j/+7/CADt/x0A7f84ABQATgAMAGgACwCGABUAhQAhAKYAIwCoACYAuQAZAKwAPAC2ADoAmwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANX/1P/y/+//+/8AAAAAFwAGABgAFwA7ABQANwAgAEIALwBZAB0ATQAvAFkARQBnAD8AbgBMAIMASQBzADAAhAA6AIMASwCHAFIAegBvAIIAcgCQAGUAiwBqAJIAawCnAHMAnQCBAK8AhACwAIIA0gAAAAAAAAAAAAAAAAAAAAAAgv+f/5n/4P+m/+T/2P8CAAAAAwAEAAAAFAAMAA8AIQAyAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABk/7D/jf/U/yoA8v8jABoAQAAaAEoAJgBGAC4AUwBHAEYARABCAFAAQABEAEYATQBhAFwAWQBiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMv/yv/q//f/0P8dAPL/OAD8/0wACwBXAAcAcwAMAHsAGwB4AAYAjAA3AJwAEgChADMAoQA2AKsANACmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5v/H/+j/8f8HAA4ACAAPABIAIgAOACkAHAA6ACEAQgAoAEYALwBKADIAZAA0AGoAOwBvADIAXwA8AHMAPQB+AEsAkABSAHcAXwCJAGYAigBkAI4AdwCaAIEAnABrAJwAbwCxAHMAtQB8AMUAfADHAAAAAAAAAAAAAAAAAAAAAACC/6X/+f/p/9L/5v8TAAcAy/9GAB8A///6/zIA9P8uAPf/x/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANL//f8eAEIAEgDl/1YAFQBBAAsAkwAtAGIAJgBfADQAegAtAF8AIQBZAGcAVQD3/2kARgCDAFIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyP+x/+f/7f/1/xkA+/82APz/RQD//1AACABtAA4AeAAVAIAAFwCPAB8AmgAgAKAAKwClADEAqAA7AKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY/9z/5//z/wIABwAEABMADgAlABgANwAZAD4AKABMACsATwAvAFcANgBeADgAZgA8AG8ARgB0AEgAdgBJAHoASwCAAE0AggBVAIUAXgCIAGMAjABsAJ0AcACeAHEAoQB2AK4AdwCxAHsAvwCAAMcAAAAAAAAAAAAAAAAAAAAAALX/s//I/8n/9//l//7/9f8GAAUADwALABYAGgAeABwAJAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0P/F/+v/7P8QAP7/GgAMACUAFgAzACoANgA2AD8AOgBBAD8ARwBGAE8ASgBRAFYAXABaAGEAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADI/7H/5//t//X/GQD7/zYA/P9FAP//UAAIAG0ADgB4ABUAgAAXAI8AHwCaACAAoAArAKUAMQCoADsAqQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANj/3P/n//P/AgAHAAQAEwAOACUAGAA3ABkAPgAoAEwAKwBPAC8AVwA2AF4AOABmADwAbwBGAHQASAB2AEkAegBLAIAATQCCAFUAhQBeAIgAYwCMAGwAnQBwAJ4AcQChAHYArgB3ALEAewC/AIAAxwAAAAAAAAAAAAAAAAAAAAAAfP+K/6f/kf/z/87/9f/w//b/4f8dABEADQAgAE8ARQBtAE8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACb/4j/7f/k/xsA9/8jAB4APgAfAHMASABbAGMAigB6AIEAdwCeAJwAmQCiAI8AvQCsALUAxADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3/Xf/H/9r/+P8uAAwAXQADAH8ACgCLAAMA8AASAOwALAD7ACwAIwExAC0BQwA8AWQARAFhAFQBbgBEAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqf+7/7f//f/5/wgA+/8PACcATAAnAHYAQACDAFYAqQBWAK8ATgCmAGEAwwB7ANgAiQDIAJsA9wCfAAQBiAD8AJwAFwGgAPsApQD7AMIACwHMAA8B2ABLAeIAMAHfACcB7wA8AeQAbQHwAIEB+QB5AQAAAAAAAAAAAAAAAAAAAAC2/7P/yf/J//f/5f/+//X/BgAFAA8ACwAWABoAHwAbACUAHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM//x//p/+3/DwD+/xkADAAkABYAMgAqADUANgBAADkAQwA/AEcARABUAEwATwBXAF8AWwBiAF0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx/+z/+f/7f/1/xgA+/80APz/RQD//00ACABvAA4AdAAWAH0AGACUAB8AnwAfAK0ALACjADIAogA4AKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADW/9z/5//z/wIABwAEABMADgAlABgANQAaAD8AJwBQACoATQAwAFgANQBgADkAYAA9AGwARwB0AEYAdABKAH0ASwCFAE4AhQBVAIkAYQCHAGcAjQBrAKUAbQCZAHMAogB3AKQAeQC4AHkAwACDAMsAAAAAAAAAAAAAAAAAAAAAABYABgAkAAwACQACAA8ABQAHBwcHBwcHBw8PDw8PDw8PDw8PDw8PDw88PDw8PDw8PDw8PDw8PDw88PDw8PDw8PDw8PDw8PDw8ODg4ODg4ODgRQAAALkAAACWAAAAAQAAAJf8///6////4v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIBAACmAAAAkgAAAAEAAABy/f//9P////n///8dAAAAdwAAALcBAACCAAAAAQAAAJv9///6/////////0ABAABlAAAA6wAAAIYAAAABAAAAM/3///X////7////AAAAAFUAAADlAAAAgwAAAAEAAABu/f//9/////v///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVAAAAiAAAAGoAAAABAAAAm/3///n///+3////tQAAADsCAABrAgAAWgMAAAAAAAAHAAAAAAAAABEAAAAOABQABwAAAAcAAAAAAAAAEAAJAB4AjQAaAF4AoQBpAEYAewA9AEgATgAMAIsAcwAAAAAAOABZAFIAawByAF0AbgBzALwAcABJADsAegA7AAAAAAB3AI4AYwBpAHsAwQCOACUAdgBgADIADABbAFUAAAAAADoAUQBCAG4AaQCZAGQAjwCMAHEAkQBJAJkAmgAAAAAAAAAAAAAAHwAnACoAOQAsAEQAcAA+AHgAAAAAAAAAAAAAAAAAAAAYACYARwAmAD0AAAAmADMAJgAAAAAAAAAAAAAAAAAFABIADAAXAAoAHwA5AD4AowCnAA8B+gAAAAAAAAAAAAUABwAFAA4AHwAmAEkASQCmAKYA/AD8AAAAAAAAAAAAXwBWAHYAKwBeAD0AjgA+AMQAlgDMAAABAAAAAAAAAAAPABsAFwANAA0AEwBYAG8AsQCMAOUAJQEAAAAAAAAAAL7/CQDn/wYAQgD0/0QAUQBIANIA+gACAQAAAAAAAAAABQAHAAUADgAfACYASQBJAKYApgD8APwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAA4AHwAmAEkASQCmAKYA/AD8AAAAAAD//wYAAAAJAPf/9//i//H/4v/x//f/9/8AAAkA//8GAL4vAAC+LwAAvi8AAL4vAAC+LwAAAAAAAL4vAAC+LwAAnQeOB8YBbAGXAJ4ASwBVACoAMQAAAAAAAAAAAAAAAADKN5044RgCFYAQ5Q1JCqsITgawBc8DdQMQAvYBAAAAAAAAAAC8AbUAeQlbAgAAAACeBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAP8AAADC////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOb////+////LwAAAGkAAAAw////AAAAAAAAAAAAAAAAQ////xgAAAB1AAAAhQAAAHr////6////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz////MQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK////+0AQAAr////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT///+4/v//AAAAAAAAAAAAAAAAAAAAAAAAAAA7////TP7///T///9J////XAAAAAAAAAAAAAAAAAAAAMUAAAAoAAAAhQAAAE3///9dAAAAvv///wAAAAAAAAAAAQAAAND///9iAAAAJAAAAFIAAAClAAAAWP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAO7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmAAAABQEAAPb///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbAAAA/v///wAAAAAAAAAAAAAAAAAAAAAAAAAA7f///+7///8cAAAAWgAAAGv///8AAAAAAAAAAAAAAABR////EgAAAG0AAACVAAAAhP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIEAAADw////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAJcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+////QgAAAMX///8GAAAAAAAAAAAAAAAAAAAAAAAAAJX///8GAAAACwAAAGsAAAB3////AAAAAAAAAAAAAAAAOv///5D///9TAAAApgAAAGD////u////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL////9CAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAAD+////AAAAAAAAAAAAAAAAAAAAAAAAAAAaAAAAFQAAANr///9QAAAAuv///wAAAAAAAAAAAAAAABgAAADl////SwAAACAAAAACAAAAuv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA/wAAAP3///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5v////7///8vAAAAaQAAAGv///8AAAAAAAAAAAAAAABH////GAAAAHoAAACJAAAAev///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAD9////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOb///8AAAAALwAAAGkAAABr////AAAAAAAAAAAAAAAAR////wAAAAB6AAAAiQAAAHr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAD/AAAA/f///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADm/////v///y8AAABpAAAAa////wAAAAAAAAAAAAAAAEf///8YAAAAegAAAIkAAAB6////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsAAABBAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgAAACcAAAAYAAAA6P///wAAAAAAAAAAAAAAAAAAAABhAAAAZAAAANb///+JAAAADAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADb////CP///+7///8AAAAAAAAAAAAAAAAAAAAAAAAAAJP///+M/f//b////2YAAAAAAAAAAAAAAAAAAAAAAAAAZP///3v///+GAAAATgAAADAAAAAAAAAAAAAAAAAAAAAWAAAAmwAAAFQAAAAxAAAAz////5j///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQAAAD4AAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAAANgAAABEAAADu////AAAAAAAAAAAAAAAAAAAAAGkAAABhAAAA3v///5cAAAAWAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMr///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAJP///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAxAAAADAAAAPH///8AAAAAAAAAAAAAAAAAAAAAFwAAAC4AAAAAAAAA/v///xcAAAAAAAAAAAAAAAAAAABLAAAAKwAAABQAAABBAAAA3QAAAFMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0/3//zn9//+q////fv7//3H9//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOwAAAEEAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAJwAAABgAAADo////AAAAAAAAAAAAAAAAAAAAAGUAAABkAAAA2////40AAAAMAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADsAAAAAAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgAAAAAAAAAYAAAA6P///wAAAAAAAAAAAAAAAAAAAABlAAAAAAAAANv///+NAAAADAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7AAAAQQAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4AAAAnAAAAGAAAAOj///8AAAAAAAAAAAAAAAAAAAAAZQAAAGQAAADb////jQAAAAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA3////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAiAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7////4D////d////BgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAA7v///zcAAADE////TAAAAAAAAAAAAAAAAAAAAOr///8RAAAAJwAAAOz///8aAAAA+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANj///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKQAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADC////9////xoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAAAhAAAAKgAAAFgAAAAAAAAAAAAAAAAAAAAAAAAA6P///wAAAAA6AAAAWgAAANr///8AAAAAAAAAAAAAAABOAAAAAwAAAC4AAAAlAAAA5v////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD6////UQAAAF0AAAA6AAAAJwAAABIAAAAZAAAAAAAAANX///89AAAAIwAAAM/////j////9f///8H///8AAAAA9v///0sAAAAXAAAA/v///yAAAAADAAAA0////wAAAADZ////8////+P////M////0P///73///9a////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAEwAAABUAAAAJgAAAAcAAAAeAAAA7f///wAAAAD9////XQAAADQAAADv////DAAAAOr////d////AAAAAPr///9TAAAAGQAAAOj///8PAAAAFgAAANn///8AAAAACwAAAFMAAAATAAAACAAAABIAAADr////4v///wAAAADQ////igAAAFAAAAAwAAAABQAAAPn///8JAAAAAAAAALL///90AAAAFAAAAP7///8OAAAABgAAANz///8AAAAAu////2MAAAAMAAAA7f///yYAAAAWAAAAzv///wAAAAD6////XwAAAAkAAAAEAAAA/v///wIAAADb////AAAAAAcAAABMAAAAVAAAACYAAAAHAAAAHgAAAO3///8AAAAA/f///10AAAA0AAAA7////wwAAADq////3f///wAAAAD6////UwAAABkAAADo////DwAAABYAAADZ////AAAAAAsAAABTAAAAEwAAAAgAAAASAAAA6////+L///8AAAAABwAAAEwAAABUAAAAJgAAAAcAAAAeAAAA7f///wAAAAD9////XQAAADQAAADv////DAAAAOr////d////AAAAAPr///9TAAAAGQAAAOj///8PAAAAFgAAANn///8AAAAACwAAAFMAAAATAAAACAAAABIAAADr////4v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAABMAAAAVAAAACYAAAAHAAAAHgAAAO3///8AAAAA/f///10AAAA0AAAA7////wwAAADq////3f///wAAAAD6////UwAAABkAAADo////DwAAABYAAADZ////AAAAAAsAAABTAAAAEwAAAAgAAAASAAAA6////+L///8AAAAAWQAAAGsAAAB7AAAAXQAAADkAAAAtAAAAMwAAAAAAAAAsAAAA7v///3sAAAAuAAAAJwAAAPn///8XAAAAAAAAAAQAAAA0AAAAogAAACUAAAAHAAAA8v////7///8AAAAA9v////L///9aAAAADwAAAAIAAAD5////8P///wAAAAAAAAAADQAAABgAAAASAAAAQQAAAGQAAACvAAAASgEAAAAAAAAIAAAAEwAAAA0AAABHAAAAXgAAAKkAAABEAQAAAAAAABIAAAALAAAADgAAAFIAAABtAAAAqgAAADsBAAAAAAAACAAAABMAAAANAAAARwAAAF4AAACpAAAARAEAACUAAAAdAAAAAwAAAAEAAABpAAAAYwAAAFcBAABeAQAAAAAAAAgAAAATAAAADQAAAEcAAABeAAAAqQAAAEQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEwAAAA0AAABHAAAAXgAAAKkAAABEAQAACwA4AAQAMwAAAAAADQAoAAsAUwANACgAAAAAAA0AKAAFAA8ANgBFABgADgAeABsAEAAmAB4AGwAAAAAAHgAbAAkAGAAaADIAIwAPACkAEwBOAA4AKQATAAAAAAApABMAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAAAAAAAIgAAAAOAwAAPgMAAAkFAADhCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAYQMAAJYDAABiBQAAfwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlP///2X////y/v//KP7//47////p////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFv////CAAAAhQAAADgAAAAm////rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD0AAAAtQEAACgCAAATAwAApwUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbwEAAIwCAADMAgAAMgQAAGQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJUAAAC/AQAAwgEAAGsCAABuAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOAAAADwIAAAkCAACdAgAAxQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQEAAHgDAADnAgAAtAMAALAKAAAZCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYBAADfAwAAWgQAAM4EAAD6CQAAmQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAAAkQIAAPsCAADyAwAAOAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4QAAAA0DAABRAwAAlwQAAGIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAwAAAQQAAPgEAACKBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQMAAC4EAAA3BwAA6AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAIUCAAC1AgAAAwQAAJsHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM0AAAACAwAA8gIAAIoFAAATCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPX//P8HAP//BwAHABEAAgDw//3//f8BABcABgAXAP//8v8GAPn/+/8UAPj/GAACAPv/DAD+/wkA///+/wwA+P/1/w8A9P8FAP7/AAAEABAA/v8AABQA9P/2/wUA/v8YAAAAAAAAAAAAAAAAAAAAAABX/5b/oP+1/7D/0f+x/+3/sf+5/9n/x//o//D/9/8FAMD/2f/s/97/BAD7/xMAGwDk/9v/BQAAACkADQAvACIA4//W/w0A7P8qAAQANAAjAPX/zP8cANr/PwDv/zcAEwC9/7//6//S/wYA2/8lABAAOP+d/7D/pv/L/8r/4P/v/8//xf/5/+D/9v/a/97/7P/o/93/CQD3/w8A8v8BAAQA9//o/xYAAAD9//z/DAAQAAQA5v8JAP3/EgD7/ygAEAD4/+X/GwD8/w0A+f8eAA4A7//n/w4A/v/6////BgANAO3/3f/z//X/BwD0//X/BQDR/8j/+f/f/+//2//j/+7/6P////H/AgD4////AAADAO7/+P/7//r////6/wEA///t/wUA9v/4/wEAAwAAAAMA6/////n/AwD8//3//P8AAOv/+P/0/wQA///6/wQA+f/p/wIA9v8BAAEA//8GAAMA9f/+/wgABwAJAAsADAD//+f/BQDu/wMA9f8FAAIAAgADALv/+//G//v/0P8EAOb//f/I/wUA4f8IAOr/DAD8//3/2P8GAO7/DQD3/wcAAwAEAOn/BQD9/wkADQAIABgAAADj/w4A+v8MAAkABQAVAPz/2f8KAO7/BgD0/wgAAQD7/83/BgDl/woA6P8IAPj//v+0//7/y/8BANX//v/b/xABAABFASkAEQFQAL4AXQAVATkAMQFiAPEAigC3AIMAxgBWAP0AigCoAKUAeACtAKkAZwC/AJgAiACoAGwAqQCRAGIAsACmAHAAxQBFAMIAegBXAJ8ApABVAK4AJAC9AFcAKAB4AGMAQACAABkAjQBAAAUAVwA8ADEASwAAAEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAOv/DQD0/yEAGgAVAAQA5f/F/+//y/8QAOD/EADq//r/6P/+/xgAIwAYABoAFADn/xkAEgAbAAoAEAAfADIA6v8SAAYA6///////CQD1//7/4f8WAAQA9P8KAAsACgAAAAAAAAAAAAAAAAAAAAAAav+V/5H/qf+t/9r/pf/r/6//y//b/9T/2P8BAAoABwC//+n/AADg/wIAAwADADEAz//f/yMA3P8gAPv/KAAFAPL/uf8VAPv/LQAmACsAIgABAM7/JgC9/ykA8v9VAAIAuP+p/9n/rv8UAOT/JwAJADr/mP+g/5v/8P/D//b/4/+3/8r/2v/Y/97/3//l/8n/3//J/xEA7v/+/+7/9P/x/+P/0v8CAAAAGAAAAAsA9//r/9//KgDz////9f/y//H/AADu/x0A7f/y/+3/AgDx/+D/0f8XAPn/AAAEAO7/CADk/9//FgDR/wYA9P/0/wYAw/+y////0f/j/8//0f/n//7/DQD8/87/AAACAPL//P/h/wcADwDu//j/AQAbAAIA5P/1//7/EADw/+H//v8DAPD/8v/8/wwAAADu/wcA4v/k/w4A7P/5/wMAAQARAAQA4f8EAAEAAAABAPf/+f8OAAsA/v////r/FwANAA4AEQD6/wEA9/8eABQABAACAP7/7v+z/+z/tv/z//D/BwDb/wAAyv8GAMv////q/xMA3//0/8v/CADx/w4A9f8KAAgADQAHAAAA+P/q/yAADgAJAAwA0f8LAPL/DAD5/xYAIwAMAM7/EQD0/xoA6/8AAAUADQC3/wYA5P8OANf/+v8IAPX/rf/8/7v/+P/f/wMA2v8jAREAJAFLACkBWgDwAIAADQFFACkBWwADAcAArACoAPUAcwALAaEAvwDCAFsAngDSAHwA4wCzALcA0QCeAPsAmwCGALsA1ACAANkATwD5AKMAYgDBAKUAZgDGAE0AzQCCAE8AowB7AFQAgAAzAJEAVQAqAHkASQA8AFUABAB2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/P8PAAoABQDl/wEA9f8BAOD/9f8LANf/AAADABoA/P8HAOr/DAAQAP7/AAAZAAkA5v8AAA4AEgAdAA4AIgARABQACQDi//7/BwAxABIA8f/1//f/GwD6//7/FADs/xwAAAAAAAAAAAAAAAAAAAAAAG7/n/9e/4//rf/V/6n//f+y/83/6P/A//3/9P8RAAMA3v/C/97/uf8IAAIAEwAcAPL/3v/r/+T/GAAGABsACADc/97/DwDy/0cABABDAE0A9f+6/w8A2v9GAAQAWwAmAMD/tP/4/+7/HQASACAADgBU/4T/w/+o/9v/7v/3/+z/yv+j/9r/9v/c/+H/u//1/9D/uf8RAOb/9P/o/+n//P///9z/CQD1/wgA9f8KAAEA8P/b/xAA4/8CAOb/CADw/9v/7v8WAOL/DgDe//X/+v/P/+r/JQD6/wAA+f/v//3/3P/J/xQA9f/z/+X/+/8IAND/wP/2/+b/2P/6/9P/3P/L/8T/7v/w/xgAFQAJAPT/0//o/xkA9f/5/wIA7//m/9T/BAD7//r/6//6/wsABQDu//H/5//0/+T/CQAOAPr/6f/y//3/9v/t/+b/6f8BAA0A+v/u//j/DAAIABsABAAcAAoAEADu//f/DgAaAP3/6f8QAPX/+v8NABoA9/8CANz/u//7/77/3f/W/yUA4P/l/7j/DwDZ/wUA7f/s/+n/AQDm/wsA5//0/+n/EQAAAOz/2P8KAPT/BQANAAQAEQDm//D/DgAKAAoABgADABgABADP//7/5v/9/93/+/8PAPr/1/8AAN//HwDy/wEA+f/7/63/8P/F/wkA3f8DAN7/EAEWAG8BUQABAUcAqQAtAPIALwAiAXQAxwB9AJ0AnQCwADwA7QB1AKYApwB0AIUAugBiALcAngCIAKQAbgDMAJ0ARACxAIYAYAC0ACkAywB5AGoArACFAFQAoAApAMgAWgBHAIAAZQBEAFkAAgCLADAACQBtADoAHwBeABIAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPf///8dAOr/EQAcAOT/BQDy/83/5/8NADMAIgASABUAwP8PAMT/DAAQAPv/7f/h/yMAGgALAA4AEACq/28ABQAbAAcA6P/k/wwA1/8JACAACAAzABwAvv/Y/9n/QAACAAAAAAAAAAAAAAAAAAAAAABv/3v/7P7E/57/AwDg/+H/n/9+/9H/fv/I/w8A0v9RAMr/uP/D/+X/BwBBANH/xf/p/8r/XADf/0oAKABZACQAeQC4/wAAnf/3/z4AeQBqACMA9f8uAIL/FADI/zIAGgCp/+H/4P/m/+z/t/8sAM//Q/+d/3v/sf+z/6j/YgBAAPf/vv/Q/7j/sv/b/+v/CAAIAPf/MgAMACYA+f8cAOn/IwAPACYA1f9cAO3/MwAcAAMA3/84AOL/PADh//z/MwAbAN7/IgD2/xcAtf8NAAkA8f/J/wMAAgD5/+n/zv/l/97/3f8hABYA7//w/w8AIQDe/+j/AgDB/+//6f/9//v/zv8NAAQA3//5/x0A4/8JAL////8SAP7/EQAAABcAFwDp/9n/zf8MABMAAQAEAAQA+/8mAA8AGgDq/+//zv8WALD/FgDL/+L/4v8RAAAA3P8IAEcACADs/xUA/f8DABkAKgAVAPj/6/8HAP//AAC//+T/EwDq/woAw//s/+T/MwAWALz/BwC1/w0Ayv8pAMr//v++/wAA5P/9/+7/IQAIABIA3f8AAPP/6f/D/9j/7v/+/6n/+/8EAO//1v/m/+v/yP/X/9z/EQDc/xQA9f8SANn/vv8JABgA3//4/wMAGwD8/+b/4f/x/+3/rv/u/93/AADC/1AA0f8lALz/KgAWAGIB3QDPAagBwAA9ADEAYwDsAH8AQQF5AAEBRgDGAO7/3QA3AOUAUgAOAXEAlgBKAAsBigDvAKEAvgDYAPMAlgCkAHYA4ACvAJsAyQBhAAsBaQCMALAArQBnALsAWgDhAIMARgCcAHoAaACyAB4AewB8AO//ZAAkAFkAawBFAIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOj/nP/Y/4z/0v/A/0UA+P/Q/8b/KADg/+j/5f8pAOz/iP/B/xkA7f/u/+z/DwARAOL/4f8qABcAAAADAEwAGgDy/+H/MgAEAPf/KwAhADQA//8cAPX/AAAeAC8AHAA4AAEAEgAhADcAPwAdAB8AFAAAAAAAAAAAAAAAAAAAAAAAff+h/6H/sv/X/+X/vv/3/5T/sv/W/8L/9f/F/w0ACgC6/8T/9v/X//H/7P8JABcA1f/Z/wkAxP82ABQANwAfAOH/1P/+//P/FQD7/zUAFgAGAMT/SADb/yIA9f9NAAcAy/+7/+7/zf8LANL/CwACADT/fP/O/4//4//Q//r/7P/L/87/6P/J//7/0f/n//H/1//C/wcA9P8FAPf/2v/q/9P/3P/9//7/AgAGAO3/DQDY/8z/HwD3/zMABAAHAO3/AgDS/wUA//8EANX/CwATAPf/wv/2//j/9P/u//r/CgDd/+X/HADX/xAA2f/4//r/y/+8/+H/yv/j/7z/8v8DAOn/EwDS/xYA1//v/+D/7P/M/xQA4P/+/+v/8/8LAA4ACwAPAPT/8v/4/+//+P/m/xIAMADr//3/HgDf/+v/BQD9/x8A///t//X//f8DAOP/AAAAAPL/7v/8/+z/BgDx/wIA7f/l//7/4f8UAB4A+/8AAN//2v8PAOX/5//+/xMABQDJ////vv/t/9f/BgDm/xgAxv8LAPf/CQDk/+b/7v8MANP/6//w//z/EgAAAAQAEQDK/xIABAAWAPX/+/8JABEAAQAcAPD/9P8EAA8ACgDw/+r/+P/r/wUA9/8qAA0A9v/i/wwA3f8DAOL/5//5/w4A4f/2/9P/CwDB//n/6v+cAEgAfQElAI4BWgDoAWcA4gAkADEBjwBHAbEACwHqAB0BAAAKAXkA/gA9ALIArADmAK0ANAHpAJ4A5gDU/0MAkgBqAAwBugCcAOwACwC9/9MAjgDKAKYAVgClAKoAEwEpAOj/zQBnANgAiADK/3oAaQA6AM8A7f9LADsA5v84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAP//6v/n/wMA3//f/+X/8f8ZAAMAGgD7/+3/9P/l//z/IAD2/z0AEQBbAAkA5P/6/wwAHgAjACkATAAAAPn/GQDu//f/7//6/xgADAAUACwAGADs/wwAKQAJAA4AAAAAAAAAAAAAAAAAAAAAAID/ov91/5H/p//e/7b/AgCl/8r/wf+2/+b/8P/2/+j/xf/W//L/2/8RAOD/FQAxAAAAyf8CAOH/IAANAFcALQDS/9z/IwD0/ysAEABWACcA5v/y/xcAqP8/AAMAVwApAJ3/sP/x/+b/BwDo/wIAEQA+/3T/1f+N/8L/5v/g/+n/8P/g//f/4f/F/7f/2v/2/9j/zv8lAMz//f/2//P/9P/m//j/GwAZABIA3v8OAPb/9v/i/xkA5f8lAOf/BQAQANb/4/8SAMr/JwDr//T/CADT/9z/HwDz/woA7v/0//P/1f/b//j/2v/t//f/8P8aAJ//wv/r/+L/6f+6/9X/BADH/+v/9P8CACQA+/8pAAAA7P8gAAAAQgD9/woAFADV/8z/AAD3/ysA7//x/ygA9f/1////AgDm/wcAAgAjAPj/8v8TAPL/BQALAN//HQDu/+n/2f8hAAoA9P/w//D/8v8AAPP/7/8cABEABwAaAOb/5f8GAN7/CwDp/+r/AQD7/+D/xv8MAKz/7//k/wgA3v/v/9T/6v/j//3/5P8WAAQA+f+2/yQA8P8bAAEACQD3/+///f8ZABAACgDn/xUAOAD4/+b/7P8SAA8AEgAHAB8AJADk/xkAz/8YAAAACgAUACUA0P8DAOf/AgDn//b/FgDV/7v/BQDZ//L/3f8NAOP/0QAjAHsB4f+CAbsAaQFBAAABGgAmAUoASQHrADIBrgH9ACUAKQFtAA0BVgAYAb8A9gCpAP0A8gCoANkA6/8YAIwAggDOAMUAjADdAPX/7//FAGsAtQDVAIwAmADDAA4BUgABAJ4AlQBLAIMAxv99AJ4ALwCwAP3/QABSADsAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY/3r/0/9B/0v/Of+R/4T/tP+//+r/p/8JAOP/2/+1/zIA5P8QAN3/GgDZ/1QAGwAXABUAPwDb/2AARQCwAIIAQQARAD4ABABlAJYAjgCqACQAKAASADYAZABAALsAoQDU/yoARwA5ABYAkAAWAEAAzf/Y//T/5f/q/zMA9P+OAND/7f/y/wYA4f/N/8v/2v/b//T/IAAAAA4A8f8jAB4A2P8aADAA2P8UAAUAFQAKAAEA0/8tABcA5f8FAE4ABAD+/wEAIAAaADYABAAuAEcAGADu/zwAHwA4AB0AMwAyADYAOgBTAFMAQgAiAD8AIgD9//P/MABCAPv/HAA1ADoA2P8AAAgA9P/w/xoABgA9ABIAOQDV/wIAMwD6/xcAGwAAAA0AOwAAACIACwAdACkABwAmACUAGQAzACMANgAbABYAGgA/AB4AOwAcACUAUgAqADEAGAA2AD4AcwBRAB8AGwAiABAANwAnADcAcQBsACkAMwAmAE4ANQBPABIAbwBgANL/DQDo/xcA5f/t/+D/CADk/ysA/P8TAPj/FAAqAA8A/f8xAP//OgAAAP//JAAnADEAQgAHAPb/KwAgAD4ANQAKACwALgAYACgAGAAfACsAFAA6AAkAbAAtAC0AJQA2AOP/MgAcAEwAOQA9AB4AKQDd/y0AJQA+APL/PwA4AFUA7/90ABwAOgA5AAIAUwBOAE8AlABrAF4AogAmAHAAlgByAJoAxgBPAMQAWgDNAG4AfwDdAJQArgDuAFIAywCdAFgAzwDOAP8A2gDEAOYA3wBgACUB0wD0AO4AuAANAREBSQB5AZwAKgHFAPYAxQBcASYAngGSAEEBmwAiAZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAUADgAOADAAKgD9/+7/3P/4/9H/3P8XAPj/7f/+/+j/BADa/+//AAAAAB0A8//p/w0ABAAeAPz/GAAxACUA8P8LAAEA/v/1//3/5f/y/wEA9P8LAAcA9f8FANP/HwAAAAAAAAAAAAAAAAAAAAAAfP+h/2//zP+0//z/lf/q/6r/q//b/8r/BADr//n/NADV/8v/3f/q/xQA/P8SACcA5P/x/zAA5v80AB0APAAwAOn/zP8LAN7/DQD9/1gAIQD0/9P/MwD9/z8A/P9OAB8Aq/+4/9f/sf8CAOX/BwAYAGz/p/+h/4H/2f/z/+v/6v8BANP/6f/V/5b/1P/W/+P/7//W/y8A8v/s/87/9f/w/9//9f8WAPP//v/6/yEAHADi/9r/+P/2/yoAAgAaAPz/yv/a/wAA+f8ZAO7///8OANb/9P/m////AADw/wAA7v/n/7j/CAD2/+P/6f/+//r/5P+z/97/zf/n/83/zP/i/6L/6P/r/wMA///6/x0A8//f//j/+//8/wQAEgAPAP//AQAiAPr/EgD4//D/6v8KAPX/3/8WAAoAAwAFAAsA1P/k//3/5P/4/+f////4//r/AgAjAOb/4P8uABUAHwATAOr/1f/q/woADgABACkAGgD2/+j/7P/x/xwAEwADAB4A8P+n/wsA0f/x/9L/FgDP/wcA0P8OANb/CwDo/wIA9/8AAOz/CwDx/wAA/f8KAAYA9f/s/xkACgD8//f/FgACAPj/6/8AABAADAAAAAEAFgAaANn/+P8OABUA5f8NAAAAFQDb/w4A2v/n//H/6P8LAOr/rf8MAPj/9P/n/93/9P82Aff/aAFNAAkBNwCZACkA+QAhAD8BewDaAJIAzgCTAMIARQD2AIsAuAC4AFcAjwDBAFkAtQC+AI0AmgBfALoAmAB0AKYAnABnALkAWQDKAHQAMwC/AJEATACfADUAsQBbADgAbgBmADIAagAIAJEAUADc/0oAKAAMAE4A9f9mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAABQAAAAUAAAAFAAAAGQAAAAUAAAAFAAAAGQAAAAUAAAAWAIAALoIAABYAgAAWAIAAFgCAABYAgAAWAIAAFgCAACvAAAAYwIAAEkCAACWAAAAsAAAANkAAABpAQAA+AAAAAABAADIAAAASwEAAHQBAAAAAgAAkAEAAAABAADIAAAABQEAAKIAAACiAQAAMQEAADABAAA7AQAApAEAAEwBAADYAAAA2AAAAMgAAADIAAAAmQAAAEQBAADyAAAAogEAADIAAAAdAAAAHQAAADIAAAAyAAAAMgAAABQAAAAyAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzTAAAAAN4SBJUAAAAA////////////////AAAAAAAAAAAAAAAACgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QX/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAAABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAbgAAAG8AAABwAAAAcQAAAHIAAABzAAAAdAAAAHUAAAB2AAAAdwAAAHgAAAB5AAAAegAAAFsAAABcAAAAXQAAAF4AAABfAAAAYAAAAGEAAABiAAAAYwAAAGQAAABlAAAAZgAAAGcAAABoAAAAaQAAAGoAAABrAAAAbAAAAG0AAABuAAAAbwAAAHAAAABxAAAAcgAAAHMAAAB0AAAAdQAAAHYAAAB3AAAAeAAAAHkAAAB6AAAAewAAAHwAAAB9AAAAfgAAAH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIAAgACAAIAAgADIAIgAiACIAIgAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAWAEwATABMAEwATABMAEwATABMAEwATABMAEwATABMAI2AjYCNgI2AjYCNgI2AjYCNgI2ATABMAEwATABMAEwATACNUI1QjVCNUI1QjVCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQTABMAEwATABMAEwAjWCNYI1gjWCNYI1gjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYEwATABMAEwAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAFsAAABcAAAAXQAAAF4AAABfAAAAYAAAAEEAAABCAAAAQwAAAEQAAABFAAAARgAAAEcAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAABRAAAAUgAAAFMAAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAABaAAAAewAAAHwAAAB9AAAAfgAAAH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDX0NUWVBFAAAAAExDX05VTUVSSUMAAExDX1RJTUUAAAAAAExDX0NPTExBVEUAAExDX01PTkVUQVJZAExDX01FU1NBR0VTAAAAAAAAAAAABAAAAAAAAAC4dwAAEwAAABQAAAD8/////P///7h3AAAVAAAAFgAAAAAAAAAAAAAAMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRnhYKy1wUGlJbk4AAAAAAAAAAAAAAAAAAAAAJQAAAG0AAAAvAAAAJQAAAGQAAAAvAAAAJQAAAHkAAAAlAAAAWQAAAC0AAAAlAAAAbQAAAC0AAAAlAAAAZAAAACUAAABJAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAAIAAAACUAAABwAAAAAAAAACUAAABIAAAAOgAAACUAAABNAAAAAAAAAAAAAAAAAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAlAAAASAAAADoAAAAlAAAATQAAADoAAAAlAAAAUwAAAEAAAAAAAAAAiHcAAAcAAAAIAAAAwP///8D///+IdwAACQAAAAoAAACglAAAm6IAAHh3AAAAAAAAQAAAAAAAAADodwAADQAAAA4AAAA4AAAA+P///+h3AAAPAAAAEAAAAMD////A////6HcAABEAAAASAAAAAAAAADgAAAAAAAAAuHcAABMAAAAUAAAAyP///8j///+4dwAAFQAAABYAAACglAAA3aIAAOh3AAAAAAAAoJQAACKjAAAwcgAAAAAAAHiUAABWowAAoJQAAHOjAAAwcgAAAAAAAKCUAACnowAAMHIAAAAAAACglAAA26MAADByAAAAAAAAoJQAAA+kAAB4cgAAAAAAAHiUAAA7pAAAoJQAAFGkAAB4cgAAAAAAAGgAAAAAAAAAuHcAABMAAAAUAAAAmP///5j///+4dwAAFQAAABYAAACglAAAAqUAAHh3AAAAAAAAoJQAADmlAAB4dwAAAAAAAKCUAABOpQAAuHcAAAAAAAA4AAAAAAAAALh3AAATAAAAFAAAAMj////I////uHcAABUAAAAWAAAAoJQAAASmAAC4dwAAAAAAADwAAAAAAAAAiHcAAAcAAAAIAAAAxP///8T///+IdwAACQAAAAoAAACglAAASqYAAIh3AAAAAAAAoJQAAGKnAABocwAAAAAAAHiUAABvpwAAoJQAAP6nAAB4cgAAAAAAAKCUAAAqqAAAeHIAAAAAAACglAAAVqgAAHhyAAAAAAAAoJQAAIKoAAB4cgAAAAAAAKCUAACuqAAAeHIAAAAAAACglAAA2qgAAHhyAAAAAAAAoJQAAAepAAB4cgAAAAAAAKCUAAAzqQAAeHIAAAAAAACglAAAX6kAAHhyAAAAAAAAoJQAAIupAAAwcgAAAAAAAKCUAAC/qQAAMHIAAAAAAACglAAA86kAADByAAAAAAAAoJQAACeqAAAwcgAAAAAAAKCUAABbqgAAMHIAAAAAAACglAAAj6oAADByAAAAAAAAoJQAAMOqAAAwcgAAAAAAAKCUAAD3qgAAMHIAAAAAAACglAAAK6sAAHhyAAAAAAAAoJQAAFirAAB4cgAAAAAAAKCUAACFqwAAeHIAAAAAAACglAAAsqsAAHhyAAAAAAAAoJQAAN+rAAB4cgAAAAAAAKCUAAAMrAAAeHIAAAAAAACglAAAOawAAHhyAAAAAAAAoJQAAGWsAAB4cgAAAAAAAKCUAAB1rwAA2HwAAAAAAAAFAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAM8OEgAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAKjfEQAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQAAALjjEQAABAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAK/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACglAAA+rEAAGB3AAAAAAAAeJQAAOixAACglAAAJLIAAGB3AAAAAAAAeJQAAE6yAAB4lAAAf7IAALSgAACwsgAAAAAAAAEAAABQdwAAA/T//7SgAADfsgAAAAAAAAEAAABodwAAA/T//7SgAAAOswAAAAAAAAEAAABQdwAAA/T//7SgAAA9swAAAAAAAAEAAABodwAAA/T//7SgAABsswAAAwAAAAIAAACIdwAAAgAAALh3AAACCAAADAAAAAAAAACIdwAABwAAAAgAAAD0////9P///4h3AAAJAAAACgAAAKCUAACcswAAgHcAAAAAAACglAAAtbMAAHh3AAAAAAAAoJQAAPSzAACAdwAAAAAAAKCUAAAMtAAAeHcAAAAAAACglAAAJLQAAIB4AAAAAAAAoJQAADi0AADQfAAAAAAAAKCUAABOtAAAgHgAAAAAAAC0oAAAZ7QAAAAAAAACAAAAgHgAAAIAAADAeAAAAAAAALSgAACrtAAAAAAAAAEAAADYeAAAAAAAAHiUAADBtAAAtKAAANq0AAAAAAAAAgAAAIB4AAACAAAAAHkAAAAAAAC0oAAAHrUAAAAAAAABAAAA2HgAAAAAAAC0oAAAQrUAAAAAAAACAAAAgHgAAAIAAAA4eQAAAAAAALSgAACGtQAAAAAAAAEAAABQeQAAAAAAAHiUAACctQAAtKAAALW1AAAAAAAAAgAAAIB4AAACAAAAeHkAAAAAAAC0oAAA+bUAAAAAAAABAAAAUHkAAAAAAAC0oAAAT7cAAAAAAAADAAAAgHgAAAIAAAC4eQAAAgAAAMB5AAAACAAAeJQAALa3AAB4lAAAlLcAALSgAADJtwAAAAAAAAMAAACAeAAAAgAAALh5AAACAAAA8HkAAAAIAAB4lAAADrgAALSgAAAwuAAAAAAAAAIAAACAeAAAAgAAABh6AAAACAAAeJQAAHW4AAC0oAAAirgAAAAAAAACAAAAgHgAAAIAAAAYegAAAAgAALSgAADPuAAAAAAAAAIAAACAeAAAAgAAAGB6AAACAAAAeJQAAOu4AAC0oAAAALkAAAAAAAACAAAAgHgAAAIAAABgegAAAgAAALSgAAAcuQAAAAAAAAIAAACAeAAAAgAAAGB6AAACAAAAtKAAADi5AAAAAAAAAgAAAIB4AAACAAAAYHoAAAIAAAC0oAAAY7kAAAAAAAACAAAAgHgAAAIAAADoegAAAAAAAHiUAACpuQAAtKAAAM25AAAAAAAAAgAAAIB4AAACAAAAEHsAAAAAAAB4lAAAE7oAALSgAAAyugAAAAAAAAIAAACAeAAAAgAAADh7AAAAAAAAeJQAAHi6AAC0oAAAkboAAAAAAAACAAAAgHgAAAIAAABgewAAAAAAAHiUAADXugAAtKAAAPC6AAAAAAAAAgAAAIB4AAACAAAAiHsAAAIAAAB4lAAABbsAALSgAACcuwAAAAAAAAIAAACAeAAAAgAAAIh7AAACAAAAoJQAAB27AADAewAAAAAAALSgAABAuwAAAAAAAAIAAACAeAAAAgAAAOB7AAACAAAAeJQAAGO7AACglAAAersAAMB7AAAAAAAAtKAAALG7AAAAAAAAAgAAAIB4AAACAAAA4HsAAAIAAAC0oAAA07sAAAAAAAACAAAAgHgAAAIAAADgewAAAgAAALSgAAD1uwAAAAAAAAIAAACAeAAAAgAAAOB7AAACAAAAoJQAABi8AACAeAAAAAAAALSgAAAuvAAAAAAAAAIAAACAeAAAAgAAAIh8AAACAAAAeJQAAEC8AAC0oAAAVbwAAAAAAAACAAAAgHgAAAIAAACIfAAAAgAAAKCUAABnvAAAgHgAAAAAAACglAAAfLwAAIB4AAAAAAAAeJQAAJG8AAC0oAAAqrwAAAAAAAABAAAA0HwAAAAAAAB4lAAAlr0AAKCUAAD2vQAACH0AAAAAAACglAAAo70AABh9AAAAAAAAeJQAAMS9AACglAAA0b0AAPh8AAAAAAAAoJQAAIa/AABAfQAAAAAAAHiUAAC1vwAAoJQAAGnAAABAfQAAAAAAAKCUAACswAAAQH0AAAAAAACglAAA+cAAAEB9AAAAAAAAoJQAAD/BAABAfQAAAAAAAKCUAABvwQAAQH0AAAAAAACglAAArcEAAEB9AAAAAAAAoJQAAN7BAABAfQAAAAAAAKCUAAAuwgAAQH0AAAAAAACglAAAZ8IAAEB9AAAAAAAAoJQAAKLCAABAfQAAAAAAAKCUAADewgAAQH0AAAAAAACglAAAIcMAAEB9AAAAAAAAoJQAAE/DAABAfQAAAAAAAKCUAACCwwAAQH0AAAAAAACglAAAPsQAAEB9AAAAAAAAoJQAAGvEAABAfQAAAAAAAKCUAACcxAAAQH0AAAAAAACglAAA2sQAAEB9AAAAAAAAoJQAAFLFAABAfQAAAAAAAKCUAAAXxQAAQH0AAAAAAACglAAAmcUAAEB9AAAAAAAAoJQAAOLFAABAfQAAAAAAAKCUAAA9xgAAQH0AAAAAAACglAAAaMYAAEB9AAAAAAAAoJQAAKLGAABAfQAAAAAAAKCUAADWxgAAQH0AAAAAAACglAAAJscAAEB9AAAAAAAAoJQAAFXHAABAfQAAAAAAAKCUAACOxwAAQH0AAAAAAACglAAAx8cAAEB9AAAAAAAAoJQAAOzJAABAfQAAAAAAAKCUAAA6ygAAQH0AAAAAAACglAAAdcoAAEB9AAAAAAAAoJQAAKHKAABAfQAAAAAAAKCUAADrygAAQH0AAAAAAACglAAAIMsAAEB9AAAAAAAAoJQAAFPLAABAfQAAAAAAAKCUAACKywAAQH0AAAAAAACglAAAv8sAAEB9AAAAAAAAoJQAAFXMAABAfQAAAAAAAKCUAACHzAAAQH0AAAAAAACglAAAucwAAEB9AAAAAAAAoJQAABHNAABAfQAAAAAAAKCUAABZzQAAQH0AAAAAAACglAAAkc0AAEB9AAAAAAAAoJQAAN/NAABAfQAAAAAAAKCUAAAezgAAQH0AAAAAAACglAAAYc4AAEB9AAAAAAAAoJQAAJLOAABAfQAAAAAAAKCUAADMzwAAQH0AAAAAAACglAAADNAAAEB9AAAAAAAAoJQAAD/QAABAfQAAAAAAAKCUAAB50AAAQH0AAAAAAACglAAAstAAAEB9AAAAAAAAoJQAAO/QAABAfQAAAAAAAKCUAABs0QAAQH0AAAAAAACglAAAmNEAAEB9AAAAAAAAoJQAAM7RAABAfQAAAAAAAKCUAAAi0gAAQH0AAAAAAACglAAAWtIAAEB9AAAAAAAAoJQAAJ3SAABAfQAAAAAAAKCUAADO0gAAQH0AAAAAAACglAAA/tIAAEB9AAAAAAAAoJQAADnTAABAfQAAAAAAAKCUAAB70wAAQH0AAAAAAACglAAAatQAAEB9AAAAAAAAoJQAAPXUAADwfAAAAAAAAKCUAAAF1QAAaIEAAAAAAACglAAAJNUAAPB8AAAAAAAAoJQAADDVAAAIfQAAAAAAAKCUAABS1QAAmIEAAAAAAACglAAAdtUAAPh8AAAAAAAAEgAHACwAFABAAAAAAAAAABByAAABAAAAAgAAADgAAAD4////EHIAAAMAAAAEAAAAwP///8D///8QcgAABQAAAAYAAADcgQAAtHEAAHxxAACQcQAA9HEAAAhyAADccQAAyHEAAASCAADwgQAAAAAAAJhxAAALAAAADAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAABAAAAAEAAAADAAAAAgAAAAAAAACAcgAAFwAAABgAAAADAAAAAAAAAGhyAAAXAAAAGQAAAAQAAAAAAAAAWHIAABoAAAAbAAAABQAAAAAAAABIcgAAGgAAABwAAAAGAAAAAAAAADhyAAAaAAAAHQAAAAcAAAAAAAAAIHIAABoAAAAeAAAACAAAAGgAAAAAAAAA2HIAAB8AAAAgAAAAmP///5j////YcgAAIQAAACIAAAD4ggAAnHIAALByAAAMgwAAAAAAAMhyAAAjAAAAJAAAAAEAAAABAAAAAgAAAAIAAAAFAAAAAgAAAAIAAAAGAAAABwAAAAkAAAADAAAACgAAAAAAAAC4cgAAJQAAACYAAAACAAAABAAAAAMAAAADAAAACAAAAAIAAAACAAAACQAAAAQAAAALAAAAAwAAAAwAAAAKAAAAOAAAAAAAAAAQcwAAJwAAACgAAADI////yP///xBzAAApAAAAKgAAALSDAAD0cgAACHMAAMiDAAA8AAAAAAAAAEhzAAArAAAALAAAAMT////E////SHMAAC0AAAAuAAAA7IMAACxzAABAcwAAAIQAAAAAAABYcwAALwAAADAAAAAxAAAAAAAAAGhzAAAvAAAAMgAAADMAAAAAAAAAcHMAABcAAAA0AAAADQAAAAAAAACAcwAAFwAAADUAAAAOAAAAAAAAAJBzAAAXAAAANgAAAA8AAAAAAAAAoHMAABcAAAA3AAAAEAAAAAAAAACwcwAAFwAAADgAAAARAAAAAAAAAMBzAAAXAAAAOQAAABIAAAAAAAAA0HMAABcAAAA6AAAAEwAAAAAAAADgcwAAFwAAADsAAAAUAAAAAAAAAPBzAAAXAAAAPAAAABUAAAAAAAAAAHQAABoAAAA9AAAAFgAAAAAAAAAQdAAAGgAAAD4AAAAXAAAAAAAAACB0AAAaAAAAPwAAABgAAAAAAAAAMHQAABoAAABAAAAAGQAAAAAAAABAdAAAGgAAAEEAAAAaAAAAAAAAAFB0AAAaAAAAQgAAABsAAAAAAAAAYHQAABoAAABDAAAAHAAAAAAAAABwdAAAGgAAAEQAAAAdAAAAAAAAAIB0AAAXAAAARQAAAB4AAAAAAAAAkHQAABcAAABGAAAAHwAAAAAAAACgdAAAFwAAAEcAAAAgAAAAAAAAALB0AAAXAAAASAAAACEAAAAAAAAAwHQAABcAAABJAAAAIgAAAAAAAADQdAAAFwAAAEoAAAAjAAAAAAAAAOB0AAAXAAAASwAAACQAAAAAAAAA8HQAABcAAABMAAAAJQAAAAAAAAAAdQAATQAAAE4AAABPAAAAJgAAAFAAAAAQdQAAoHUAADB2AAAwdgAAwF0AABQAAABDLlVURi04AAAAAAAAAAAAAAAAAGCGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9wiQD/CS8PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0BhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPBiAADwZwAA8GsAAAAAAABgdwAAUQAAAFIAAAAAAAAAeHcAACMAAABTAAAAAQAAAAEAAAACAAAAAgAAAAEAAAACAAAAAgAAAAsAAAAEAAAACQAAAAMAAAAnAAAAAAAAAIB3AABUAAAAVQAAAAMAAAAJAAAABAAAAAQAAAAMAAAADQAAAAoAAAAOAAAADwAAACgAAAALAAAAKQAAAAgAAAAAAAAAiHcAAAcAAAAIAAAA+P////j///+IdwAACQAAAAoAAAA4iAAATIgAAAgAAAAAAAAAoHcAAFYAAABXAAAA+P////j///+gdwAAWAAAAFkAAABoiAAAfIgAAExwAABgcAAABAAAAAAAAADQdwAAWgAAAFsAAAD8/////P///9B3AABcAAAAXQAAAKCIAAC0iAAADAAAAAAAAADodwAADQAAAA4AAAAEAAAA+P///+h3AAAPAAAAEAAAAPT////0////6HcAABEAAAASAAAA0IgAABR4AAAoeAAATHAAAGBwAAD4iAAA5IgAAAAAAAAweAAAVAAAAF4AAAAEAAAACQAAAAQAAAAEAAAAEAAAAA0AAAAKAAAADgAAAA8AAAAoAAAADAAAACoAAAAAAAAAQHgAACMAAABfAAAABQAAAAEAAAACAAAAAgAAABEAAAACAAAAAgAAAAsAAAAEAAAACQAAAA0AAAArAAAAAAAAAFB4AABUAAAAYAAAAAYAAAAJAAAABAAAAAQAAAAMAAAADQAAAAoAAAASAAAAEwAAACwAAAALAAAAKQAAAAAAAABgeAAAIwAAAGEAAAAHAAAAAQAAAAIAAAACAAAAAQAAAAIAAAACAAAAFAAAABUAAAAtAAAAAwAAACcAAAAAAAAAcHgAAGIAAABjAAAAZAAAAAEAAAAFAAAADgAAAAAAAACQeAAAZQAAAGYAAABkAAAAAgAAAAYAAAAPAAAAAAAAAKB4AABnAAAAaAAAAGQAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAAAAADgeAAAaQAAAGoAAABkAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAAAAAAGHkAAGsAAABsAAAAZAAAAAMAAAAEAAAAFwAAAAUAAAAYAAAAAQAAAAIAAAAGAAAAAAAAAFh5AABtAAAAbgAAAGQAAAAHAAAACAAAABkAAAAJAAAAGgAAAAMAAAAEAAAACgAAAAAAAACQeQAAbwAAAHAAAABkAAAAFgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAAQAAAPj///+QeQAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAAAAAADIeQAAcQAAAHIAAABkAAAAHgAAACAAAAAhAAAAIgAAACMAAAAkAAAAAgAAAPj////IeQAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACUAAABIAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAAAAAAACUAAABtAAAALwAAACUAAABkAAAALwAAACUAAAB5AAAAAAAAACUAAABJAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAAIAAAACUAAABwAAAAAAAAACUAAABhAAAAIAAAACUAAABiAAAAIAAAACUAAABkAAAAIAAAACUAAABIAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAAIAAAACUAAABZAAAAAAAAAEEAAABNAAAAAAAAAFAAAABNAAAAAAAAAEoAAABhAAAAbgAAAHUAAABhAAAAcgAAAHkAAAAAAAAARgAAAGUAAABiAAAAcgAAAHUAAABhAAAAcgAAAHkAAAAAAAAATQAAAGEAAAByAAAAYwAAAGgAAAAAAAAAQQAAAHAAAAByAAAAaQAAAGwAAAAAAAAATQAAAGEAAAB5AAAAAAAAAEoAAAB1AAAAbgAAAGUAAAAAAAAASgAAAHUAAABsAAAAeQAAAAAAAABBAAAAdQAAAGcAAAB1AAAAcwAAAHQAAAAAAAAAUwAAAGUAAABwAAAAdAAAAGUAAABtAAAAYgAAAGUAAAByAAAAAAAAAE8AAABjAAAAdAAAAG8AAABiAAAAZQAAAHIAAAAAAAAATgAAAG8AAAB2AAAAZQAAAG0AAABiAAAAZQAAAHIAAAAAAAAARAAAAGUAAABjAAAAZQAAAG0AAABiAAAAZQAAAHIAAAAAAAAASgAAAGEAAABuAAAAAAAAAEYAAABlAAAAYgAAAAAAAABNAAAAYQAAAHIAAAAAAAAAQQAAAHAAAAByAAAAAAAAAEoAAAB1AAAAbgAAAAAAAABKAAAAdQAAAGwAAAAAAAAAQQAAAHUAAABnAAAAAAAAAFMAAABlAAAAcAAAAAAAAABPAAAAYwAAAHQAAAAAAAAATgAAAG8AAAB2AAAAAAAAAEQAAABlAAAAYwAAAAAAAABTAAAAdQAAAG4AAABkAAAAYQAAAHkAAAAAAAAATQAAAG8AAABuAAAAZAAAAGEAAAB5AAAAAAAAAFQAAAB1AAAAZQAAAHMAAABkAAAAYQAAAHkAAAAAAAAAVwAAAGUAAABkAAAAbgAAAGUAAABzAAAAZAAAAGEAAAB5AAAAAAAAAFQAAABoAAAAdQAAAHIAAABzAAAAZAAAAGEAAAB5AAAAAAAAAEYAAAByAAAAaQAAAGQAAABhAAAAeQAAAAAAAABTAAAAYQAAAHQAAAB1AAAAcgAAAGQAAABhAAAAeQAAAAAAAABTAAAAdQAAAG4AAAAAAAAATQAAAG8AAABuAAAAAAAAAFQAAAB1AAAAZQAAAAAAAABXAAAAZQAAAGQAAAAAAAAAVAAAAGgAAAB1AAAAAAAAAEYAAAByAAAAaQAAAAAAAABTAAAAYQAAAHQAAAAAAAAAAAAAAPh5AABzAAAAdAAAAGQAAAABAAAAAAAAACB6AAB1AAAAdgAAAGQAAAACAAAAAAAAAEB6AAB3AAAAeAAAAGQAAAAmAAAAJwAAAAgAAAAJAAAACgAAAAsAAAAoAAAADAAAAA0AAAAAAAAAaHoAAHkAAAB6AAAAZAAAACkAAAAqAAAADgAAAA8AAAAQAAAAEQAAACsAAAASAAAAEwAAAAAAAACIegAAewAAAHwAAABkAAAALAAAAC0AAAAUAAAAFQAAABYAAAAXAAAALgAAABgAAAAZAAAAAAAAAKh6AAB9AAAAfgAAAGQAAAAvAAAAMAAAABoAAAAbAAAAHAAAAB0AAAAxAAAAHgAAAB8AAAAAAAAAyHoAAH8AAACAAAAAZAAAAAMAAAAEAAAAAAAAAPB6AACBAAAAggAAAGQAAAAFAAAABgAAAAAAAAAYewAAgwAAAIQAAABkAAAAAQAAACUAAAAAAAAAQHsAAIUAAACGAAAAZAAAAAIAAAAmAAAAAAAAAGh7AACHAAAAiAAAAGQAAAAQAAAABQAAACAAAAAAAAAAkHsAAIkAAACKAAAAZAAAABEAAAAGAAAAIQAAAAAAAADoewAAiwAAAIwAAABkAAAAAwAAAAQAAAALAAAAMgAAADMAAAAMAAAANAAAAAAAAACwewAAiwAAAI0AAABkAAAAAwAAAAQAAAALAAAAMgAAADMAAAAMAAAANAAAAAAAAAAYfAAAjgAAAI8AAABkAAAABQAAAAYAAAANAAAANQAAADYAAAAOAAAANwAAAAAAAABYfAAAkAAAAJEAAABkAAAAAAAAAGh8AACSAAAAkwAAAGQAAAAuAAAAEgAAAC8AAAATAAAAMAAAAAIAAAAUAAAADwAAAAAAAACwfAAAlAAAAJUAAABkAAAAOAAAADkAAAAiAAAAIwAAACQAAAAAAAAAwHwAAJYAAACXAAAAZAAAADoAAAA7AAAAJQAAACYAAAAnAAAAZgAAAGEAAABsAAAAcwAAAGUAAAAAAAAAdAAAAHIAAAB1AAAAZQAAAAAAAAAAAAAAgHgAAIsAAACYAAAAZAAAAAAAAACQfAAAiwAAAJkAAABkAAAAFQAAAAMAAAAEAAAABQAAADEAAAAWAAAAMgAAABcAAAAzAAAABgAAABgAAAAQAAAAAAAAAPh7AACLAAAAmgAAAGQAAAAHAAAACAAAABEAAAA8AAAAPQAAABIAAAA+AAAAAAAAADh8AACLAAAAmwAAAGQAAAAJAAAACgAAABMAAAA/AAAAQAAAABQAAABBAAAAAAAAAMB7AACLAAAAnAAAAGQAAAADAAAABAAAAAsAAAAyAAAAMwAAAAwAAAA0AAAAAAAAAMB5AAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAAAAAAPB5AAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAAAAAAPh8AACdAAAAngAAAJ8AAACgAAAAGQAAAAcAAAABAAAABwAAAAAAAAAgfQAAnQAAAKEAAACfAAAAoAAAABkAAAAIAAAAAgAAAAgAAAAAAAAAMH0AADQAAAA1AAAANgAAADcAAAAoAAAAKQAAACoAAACiAAAAowAAAAAAAABAfQAANAAAADUAAAA2AAAANwAAAAEAAAApAAAAKgAAAKIAAACkAAAAAAAAAEh9AAA0AAAANQAAADYAAAA3AAAAKwAAACkAAAAsAAAAogAAAKUAAAAAAAAAWH0AADQAAAA1AAAANgAAADcAAAAtAAAAKQAAACoAAACiAAAApgAAAAAAAABofQAAOAAAADUAAAA2AAAANwAAAC4AAAAvAAAAKgAAAKIAAACnAAAAAAAAAHh9AAA5AAAANQAAADYAAAA3AAAAMAAAADEAAAAqAAAAogAAAKgAAAAAAAAAiH0AADQAAAA1AAAANgAAADcAAAAyAAAAKQAAADMAAACiAAAAqQAAAAAAAACYfQAANAAAADUAAAA2AAAANwAAADQAAAApAAAAKgAAAKIAAACqAAAAAAAAAKh9AAA6AAAAOwAAADwAAAA9AAAANQAAADYAAAAqAAAAogAAAKsAAAAAAAAAuH0AADQAAAA1AAAANgAAADcAAAA3AAAAKQAAACoAAACiAAAArAAAAAAAAADIfQAANAAAADUAAAA2AAAANwAAADgAAAApAAAAKgAAAKIAAACtAAAAAAAAANh9AAA0AAAANQAAADYAAAA3AAAAOQAAACkAAAAqAAAAogAAAK4AAAAAAAAA6H0AADQAAAA1AAAANgAAADcAAAA6AAAAKQAAACoAAACiAAAArwAAAAAAAAD4fQAANAAAADUAAAA2AAAANwAAADsAAAApAAAAKgAAAKIAAACwAAAAAAAAAAh+AAA0AAAANQAAADYAAAA3AAAAPAAAACkAAAAqAAAAogAAALEAAAAAAAAAGH4AADQAAAA1AAAANgAAADcAAAA9AAAAKQAAACoAAACiAAAAsgAAAAAAAAAofgAANAAAADUAAAA2AAAANwAAAD4AAAApAAAAKgAAAKIAAACzAAAAAAAAADh+AAA0AAAANQAAADYAAAA3AAAAPwAAACkAAAAqAAAAogAAALQAAAAAAAAASH4AADQAAAA1AAAANgAAADcAAABAAAAAKQAAACoAAACiAAAAtQAAAAAAAABYfgAANAAAADUAAAA2AAAANwAAAEEAAAApAAAAKgAAAKIAAAC2AAAAAAAAAGh+AAA0AAAANQAAADYAAAA3AAAAQgAAACkAAAAqAAAAogAAALcAAAAAAAAAeH4AADQAAAA1AAAANgAAADcAAABDAAAAKQAAACoAAACiAAAAuAAAAAAAAACIfgAANAAAADUAAAA2AAAANwAAAEQAAAApAAAAKgAAAKIAAAC5AAAAAAAAAJh+AAA0AAAANQAAADYAAAA3AAAARQAAACkAAAAqAAAAogAAALoAAAAAAAAAqH4AADQAAAA1AAAANgAAADcAAABGAAAAKQAAACoAAACiAAAAuwAAAAAAAAC4fgAANAAAADUAAAA2AAAANwAAAEcAAAApAAAAKgAAAKIAAAC8AAAAAAAAAMh+AAA0AAAANQAAADYAAAA3AAAASAAAACkAAAAqAAAAogAAAL0AAAAAAAAA2H4AADQAAAA1AAAANgAAADcAAABJAAAAKQAAACoAAACiAAAAvgAAAAAAAADofgAANAAAADUAAAA2AAAANwAAAEoAAAApAAAASwAAAKIAAAC/AAAAAAAAAPh+AAA0AAAANQAAADYAAAA3AAAATAAAACkAAAAqAAAAogAAAMAAAAAAAAAACH8AADQAAAA1AAAANgAAADcAAABNAAAAKQAAACoAAACiAAAAwQAAAAAAAAAYfwAANAAAADUAAAA2AAAANwAAAE4AAAApAAAATwAAAKIAAADCAAAAAAAAACh/AAA0AAAANQAAADYAAAA3AAAAUAAAACkAAAAqAAAAogAAAMMAAAAAAAAAOH8AADQAAAA1AAAANgAAADcAAABRAAAAKQAAACoAAACiAAAAxAAAAAAAAABIfwAANAAAADUAAAA2AAAANwAAAFIAAAApAAAAKgAAAKIAAADFAAAAAAAAAFh/AAA0AAAANQAAADYAAAA3AAAAUwAAACkAAABUAAAAogAAAMYAAAAAAAAAaH8AADQAAAA1AAAANgAAADcAAABVAAAAKQAAACoAAACiAAAAxwAAAAAAAAB4fwAANAAAADUAAAA2AAAANwAAAFYAAAApAAAAKgAAAKIAAADIAAAAAAAAAIh/AAA0AAAANQAAADYAAAA3AAAAVwAAACkAAAAqAAAAogAAAMkAAAAAAAAAmH8AADQAAAA1AAAANgAAADcAAABYAAAAKQAAACoAAACiAAAAygAAAAAAAACofwAANAAAADUAAAA2AAAANwAAAFkAAAApAAAAKgAAAKIAAADLAAAAAAAAALh/AAA0AAAANQAAADYAAAA3AAAAWgAAACkAAAAqAAAAogAAAMwAAAAAAAAAyH8AADQAAAA1AAAANgAAADcAAABbAAAAKQAAACoAAACiAAAAzQAAAAAAAADYfwAAPgAAAD8AAABAAAAAQQAAAFwAAABdAAAAKgAAAKIAAADOAAAAAAAAAOh/AAA0AAAANQAAADYAAAA3AAAAXgAAACkAAAAqAAAAogAAAM8AAAAAAAAA+H8AADQAAAA1AAAANgAAADcAAABfAAAAKQAAAGAAAACiAAAA0AAAAAAAAAAIgAAANAAAADUAAAA2AAAANwAAAGEAAAApAAAAKgAAAKIAAADRAAAAAAAAABiAAAA0AAAANQAAADYAAAA3AAAAYgAAACkAAAAqAAAAogAAANIAAAAAAAAAKIAAADQAAAA1AAAANgAAADcAAABjAAAAKQAAACoAAACiAAAA0wAAAAAAAAA4gAAANAAAADUAAAA2AAAANwAAAGQAAAApAAAAKgAAAKIAAADUAAAAAAAAAEiAAAA0AAAANQAAADYAAAA3AAAAZQAAACkAAAAqAAAAogAAANUAAAAAAAAAWIAAADQAAAA1AAAANgAAADcAAABmAAAAKQAAAGcAAACiAAAA1gAAAAAAAABogAAANAAAADUAAAA2AAAANwAAAGgAAAApAAAAaQAAAKIAAADXAAAAAAAAAHiAAABCAAAANQAAADYAAAA3AAAAagAAAGsAAAAqAAAAogAAANgAAAAAAAAAiIAAAEMAAABEAAAANgAAADcAAABsAAAAbQAAACoAAACiAAAA2QAAAAAAAACYgAAANAAAADUAAAA2AAAANwAAAG4AAAApAAAAKgAAAKIAAADaAAAAAAAAAKiAAAA0AAAANQAAADYAAAA3AAAAbwAAACkAAAAqAAAAogAAANsAAAAAAAAAuIAAAEUAAABGAAAARwAAADcAAABwAAAAcQAAACoAAACiAAAA3AAAAAAAAADIgAAANAAAADUAAAA2AAAANwAAAHIAAAApAAAAKgAAAKIAAADdAAAAAAAAANiAAAA0AAAANQAAADYAAAA3AAAAcwAAACkAAAAqAAAAogAAAN4AAAAAAAAA6IAAAEgAAAA1AAAASQAAADcAAAB0AAAAdQAAACoAAACiAAAA3wAAAAAAAAD4gAAANAAAADUAAAA2AAAANwAAAHYAAAApAAAAKgAAAKIAAADgAAAAAAAAAAiBAAA0AAAANQAAADYAAAA3AAAAdwAAACkAAAAqAAAAogAAAOEAAAAAAAAAGIEAADQAAAA1AAAANgAAADcAAAB4AAAAKQAAACoAAACiAAAA4gAAAAAAAAAogQAANAAAADUAAAA2AAAANwAAAHkAAAApAAAAKgAAAKIAAADjAAAAAAAAADiBAABKAAAANQAAAEsAAAA3AAAAegAAAHsAAAAqAAAAogAAAOQAAAAAAAAASIEAADQAAAA1AAAANgAAADcAAAB8AAAAKQAAACoAAACiAAAA5QAAAAAAAABYgQAANAAAADUAAAA2AAAANwAAAH0AAAApAAAAKgAAAKIAAADmAAAAAAAAAGiBAADnAAAA6AAAAEIAAAAAAAAAeIEAAOcAAADpAAAAQgAAAAAAAACIgQAA6gAAAOsAAABDAAAAAAAAALiBAACdAAAA7AAAAJ8AAACgAAAAGQAAAAkAAAADAAAACQAAACAtLS0tICAtLS0tACAgICAgVGVybSAgICB8ICAgIFdoaXRlICAgIHwgICAgQmxhY2sgICAgfCAgICBUb3RhbCAgIAoAICAgICAgICAgICAgIHwgICBNRyAgICBFRyAgfCAgIE1HICAgIEVHICB8ICAgTUcgICAgRUcgCgAgLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KACAgICBNYXRlcmlhbCB8IAAgICBJbWJhbGFuY2UgfCAAICBJbml0aWF0aXZlIHwgACAgICAgICBQYXducyB8IAAgICAgIEtuaWdodHMgfCAAICAgICBCaXNob3BzIHwgACAgICAgICBSb29rcyB8IAAgICAgICBRdWVlbnMgfCAAICAgIE1vYmlsaXR5IHwgACBLaW5nIHNhZmV0eSB8IAAgICAgIFRocmVhdHMgfCAAICAgICAgUGFzc2VkIHwgACAgICAgICBTcGFjZSB8IAAgICAgIFZhcmlhbnQgfCAAICAgICAgIFRvdGFsIHwgAApUb3RhbCBldmFsdWF0aW9uOiAAICh3aGl0ZSBzaWRlKQoATlN0M19fMjE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUATlN0M19fMjE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAN0VuZGdhbWVJTDdWYXJpYW50MEVMMTFFbmRnYW1lQ29kZTI5RTExU2NhbGVGYWN0b3JFADExRW5kZ2FtZUJhc2VJMTFTY2FsZUZhY3RvckUAN0VuZGdhbWVJTDdWYXJpYW50MEVMMTFFbmRnYW1lQ29kZTIzRTExU2NhbGVGYWN0b3JFADdFbmRnYW1lSUw3VmFyaWFudDBFTDExRW5kZ2FtZUNvZGUxOUUxMVNjYWxlRmFjdG9yRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMThFMTFTY2FsZUZhY3RvckUAN0VuZGdhbWVJTDdWYXJpYW50MkVMMTFFbmRnYW1lQ29kZTlFNVZhbHVlRQAxMUVuZGdhbWVCYXNlSTVWYWx1ZUUAN0VuZGdhbWVJTDdWYXJpYW50MEVMMTFFbmRnYW1lQ29kZTlFNVZhbHVlRQBKYW4gRmViIE1hciBBcHIgTWF5IEp1biBKdWwgQXVnIFNlcCBPY3QgTm92IERlYwBBdWcgMTUgMjAxOQBTdG9ja2Zpc2ggACBNdWx0aS1WYXJpYW50AAppZCBhdXRob3IgACBieSAARC4gRHVnb3ZpYywgRi4gRmljaHRlciBldCBhbC4ATlN0M19fMjEzYmFzaWNfZmlsZWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQA8PCAAPj4gAE4xMl9HTE9CQUxfX05fMTNUaWVFAE5TdDNfXzIxNGJhc2ljX29mc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFACBQTkJSUUsgIHBuYnJxawAKICstLS0rLS0tKy0tLSstLS0rLS0tKy0tLSstLS0rLS0tKwoACkZlbjogACB8IAAgfAogKy0tLSstLS0rLS0tKy0tLSstLS0rLS0tKy0tLSstLS0rCgAKS2V5OiAACkNoZWNrZXJzOiAAIHcgACBiIAAgLSAATlN0M19fMjE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAE5TdDNfXzIxOWJhc2ljX2lzdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQA4LwAvOC84LzgvOC8ALzggdyAtIC0gMCAxMAB3AEIgAFcgADYAMwA6IAAKTm9kZXMgc2VhcmNoZWQ6IABpbmZvIGRlcHRoIDAgc2NvcmUgAGJlc3Rtb3ZlIAAgcG9uZGVyIABpbmZvACBkZXB0aCAAIHNlbGRlcHRoIAAgbXVsdGlwdiAAIHNjb3JlIAAgdXBwZXJib3VuZAAgbG93ZXJib3VuZAAgbm9kZXMgACBucHMgACBoYXNoZnVsbCAAIHRiaGl0cyAAIHRpbWUgACBwdgAxME1haW5UaHJlYWQANlRocmVhZAB1bmlxdWVfbG9jazo6dW5sb2NrOiBub3QgbG9ja2VkAEtOTnZLAEtCTnZLAEtSdktQAEtSdktCAEtSdktOAEtRdktQAEtRdktSAEtOUHZLAEtOUHZLQgBLUlB2S1IAS1JQdktCAEtCUHZLQgBLQlB2S04AS0JQUHZLQgBSdksAS3ZOAE52TgA3RW5kZ2FtZUlMN1ZhcmlhbnQyRUwxMUVuZGdhbWVDb2RlOEU1VmFsdWVFADdFbmRnYW1lSUw3VmFyaWFudDJFTDExRW5kZ2FtZUNvZGU0RTVWYWx1ZUUAN0VuZGdhbWVJTDdWYXJpYW50MkVMMTFFbmRnYW1lQ29kZTVFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQyRUwxMUVuZGdhbWVDb2RlNkU1VmFsdWVFADdFbmRnYW1lSUw3VmFyaWFudDJFTDExRW5kZ2FtZUNvZGU3RTVWYWx1ZUUAN0VuZGdhbWVJTDdWYXJpYW50MkVMMTFFbmRnYW1lQ29kZTExRTVWYWx1ZUUAN0VuZGdhbWVJTDdWYXJpYW50MUVMMTFFbmRnYW1lQ29kZTNFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQxRUwxMUVuZGdhbWVDb2RlMkU1VmFsdWVFADdFbmRnYW1lSUw3VmFyaWFudDFFTDExRW5kZ2FtZUNvZGUxRTVWYWx1ZUUAN0VuZGdhbWVJTDdWYXJpYW50MEVMMTFFbmRnYW1lQ29kZTIyRTExU2NhbGVGYWN0b3JFADdFbmRnYW1lSUw3VmFyaWFudDBFTDExRW5kZ2FtZUNvZGUyNUUxMVNjYWxlRmFjdG9yRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMjZFMTFTY2FsZUZhY3RvckUAN0VuZGdhbWVJTDdWYXJpYW50MEVMMTFFbmRnYW1lQ29kZTI0RTExU2NhbGVGYWN0b3JFADdFbmRnYW1lSUw3VmFyaWFudDBFTDExRW5kZ2FtZUNvZGUyMUUxMVNjYWxlRmFjdG9yRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMjBFMTFTY2FsZUZhY3RvckUAN0VuZGdhbWVJTDdWYXJpYW50MEVMMTFFbmRnYW1lQ29kZTI4RTExU2NhbGVGYWN0b3JFADdFbmRnYW1lSUw3VmFyaWFudDBFTDExRW5kZ2FtZUNvZGUyN0UxMVNjYWxlRmFjdG9yRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMTZFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMTVFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMTRFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMTNFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMTJFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlMTBFNVZhbHVlRQA3RW5kZ2FtZUlMN1ZhcmlhbnQwRUwxMUVuZGdhbWVDb2RlOEU1VmFsdWVFADdFbmRnYW1lSUw3VmFyaWFudDBFTDExRW5kZ2FtZUNvZGUxMUU1VmFsdWVFAEZhaWxlZCB0byBhbGxvY2F0ZSAATUIgZm9yIHRyYW5zcG9zaXRpb24gdGFibGUuAHJuYnFrYm5yL3BwcHBwcHBwLzgvOC84LzgvUFBQUFBQUFAvUk5CUUtCTlIgdyBLUWtxIC0gMCAxAHJuYnFrYm5yL3BwcHBwcHBwLzgvOC84LzgvUFBQUFBQUFAvUk5CUUtCTlJbXSB3IEtRa3EgLSAwIDEAcm5icWtibnIvcHBwcHBwcHAvOC8xUFAyUFAxL1BQUFBQUFBQL1BQUFBQUFBQL1BQUFBQUFBQL1BQUFBQUFBQIHcga3EgLSAwIDEAOC84LzgvOC84Lzgva3Jibk5CUksvcXJibk5CUlEgdyAtIC0gMCAxAHJuYnFrYm5yL3BwcHBwcHBwLzgvOC84LzgvUFBQUFBQUFAvUk5CUUtCTlIgdyBLUWtxIC0gMyszIDAgMQBxdWl0AHN0b3AAcG9uZGVyaGl0AHVjaQBpZCBuYW1lIAAKAAp1Y2lvawBzZXRvcHRpb24AdmFsdWUAdWNpX3ZhcmlhbnQAaW5mbyBzdHJpbmcgdmFyaWFudCAAIHN0YXJ0cG9zIABObyBzdWNoIG9wdGlvbjogAGdvAHNlYXJjaG1vdmVzAHd0aW1lAGJ0aW1lAHdpbmMAYmluYwBtb3Zlc3RvZ28AZGVwdGgAbm9kZXMAbW92ZXRpbWUAbWF0ZQBwZXJmdABpbmZpbml0ZQBwb25kZXIAcG9zaXRpb24Ac3RhcnRwb3MAZmVuAG1vdmVzAHVjaW5ld2dhbWUAaXNyZWFkeQByZWFkeW9rAGZsaXAAZABldmFsAFVua25vd24gY29tbWFuZDogAGFsbG9jYXRvcjxUPjo6YWxsb2NhdGUoc2l6ZV90IG4pICduJyBleGNlZWRzIG1heGltdW0gc3VwcG9ydGVkIHNpemUAKG5vbmUpACBQTkJSUUsgIFBOQlJRSyAAIHBuYnJxawBOU3QzX18yMjBfX3NoYXJlZF9wdHJfZW1wbGFjZUk2VGhyZWFkTlNfOWFsbG9jYXRvcklTMV9FRUVFAGNwIABtYXRlIABjaGVzcwBhdG9taWMAY3Jhenlob3VzZQBob3JkZQBraW5nb2Z0aGVoaWxsAHJhY2luZ2tpbmdzADNjaGVjawBzcGluAERlYnVnIExvZyBGaWxlAGJ1dHRvbgBBbmFseXNpcyBDb250ZW1wdABPZmYAV2hpdGUAQmxhY2sAVGhyZWFkcwBDbGVhciBIYXNoAFBvbmRlcgBNdWx0aVBWAFNraWxsIExldmVsAE1vdmUgT3ZlcmhlYWQATWluaW11bSBUaGlua2luZyBUaW1lAFNsb3cgTW92ZXIAbm9kZXN0aW1lAFVDSV9DaGVzczk2MABVQ0lfVmFyaWFudABVQ0lfQW5hbHlzZU1vZGUAQm90aABjb21ibwBjaGVjawAKb3B0aW9uIG5hbWUgACB0eXBlIAAgZGVmYXVsdCAAIHZhciAAIG1pbiAAIG1heCAAaW5maW5pdHkAAAECBAcDBgUALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOAHJ3YQBMQ19BTEwATEFORwBDLlVURi04AFBPU0lYAE1VU0xfTE9DUEFUSABjbG9ja19nZXR0aW1lKENMT0NLX1JFQUxUSU1FKSBmYWlsZWQAY29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0OiBtdXRleCBub3QgbG9ja2VkAGNvbmRpdGlvbl92YXJpYWJsZSB3YWl0IGZhaWxlZABOU3QzX18yOGlvc19iYXNlRQBOU3QzX18yOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBOU3QzX18yOWJhc2ljX2lvc0l3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFAE5TdDNfXzIxM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjEzYmFzaWNfaXN0cmVhbUl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxM2Jhc2ljX29zdHJlYW1Jd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjE0YmFzaWNfaW9zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjExX19zdGRvdXRidWZJd0VFAE5TdDNfXzIxMV9fc3Rkb3V0YnVmSWNFRQB1bnN1cHBvcnRlZCBsb2NhbGUgZm9yIHN0YW5kYXJkIGlucHV0AE5TdDNfXzIxMF9fc3RkaW5idWZJd0VFAE5TdDNfXzIxMF9fc3RkaW5idWZJY0VFAE5TdDNfXzI3Y29sbGF0ZUljRUUATlN0M19fMjZsb2NhbGU1ZmFjZXRFAE5TdDNfXzI3Y29sbGF0ZUl3RUUAJXAAQwBOU3QzX18yN251bV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzI5X19udW1fZ2V0SWNFRQBOU3QzX18yMTRfX251bV9nZXRfYmFzZUUATlN0M19fMjdudW1fZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yOV9fbnVtX2dldEl3RUUAJXAAAAAATAAlAAAAAABOU3QzX18yN251bV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzI5X19udW1fcHV0SWNFRQBOU3QzX18yMTRfX251bV9wdXRfYmFzZUUATlN0M19fMjdudW1fcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yOV9fbnVtX3B1dEl3RUUAJUg6JU06JVMAJW0vJWQvJXkAJUk6JU06JVMgJXAAJWEgJWIgJWQgJUg6JU06JVMgJVkAQU0AUE0ASmFudWFyeQBGZWJydWFyeQBNYXJjaABBcHJpbABNYXkASnVuZQBKdWx5AEF1Z3VzdABTZXB0ZW1iZXIAT2N0b2JlcgBOb3ZlbWJlcgBEZWNlbWJlcgBKYW4ARmViAE1hcgBBcHIASnVuAEp1bABBdWcAU2VwAE9jdABOb3YARGVjAFN1bmRheQBNb25kYXkAVHVlc2RheQBXZWRuZXNkYXkAVGh1cnNkYXkARnJpZGF5AFNhdHVyZGF5AFN1bgBNb24AVHVlAFdlZABUaHUARnJpAFNhdAAlbS8lZC8leSVZLSVtLSVkJUk6JU06JVMgJXAlSDolTSVIOiVNOiVTJUg6JU06JVNOU3QzX18yOHRpbWVfZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yMjBfX3RpbWVfZ2V0X2Nfc3RvcmFnZUljRUUATlN0M19fMjl0aW1lX2Jhc2VFAE5TdDNfXzI4dGltZV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIyMF9fdGltZV9nZXRfY19zdG9yYWdlSXdFRQBOU3QzX18yOHRpbWVfcHV0SWNOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yMTBfX3RpbWVfcHV0RQBOU3QzX18yOHRpbWVfcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTBtb25leXB1bmN0SWNMYjBFRUUATlN0M19fMjEwbW9uZXlfYmFzZUUATlN0M19fMjEwbW9uZXlwdW5jdEljTGIxRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMEVFRQBOU3QzX18yMTBtb25leXB1bmN0SXdMYjFFRUUAMDEyMzQ1Njc4OQAlTGYATlN0M19fMjltb25leV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SWNFRQAwMTIzNDU2Nzg5AE5TdDNfXzI5bW9uZXlfZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTFfX21vbmV5X2dldEl3RUUAJS4wTGYATlN0M19fMjltb25leV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfcHV0SWNFRQBOU3QzX18yOW1vbmV5X3B1dEl3TlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjExX19tb25leV9wdXRJd0VFAE5TdDNfXzI4bWVzc2FnZXNJY0VFAE5TdDNfXzIxM21lc3NhZ2VzX2Jhc2VFAE5TdDNfXzIxN19fd2lkZW5fZnJvbV91dGY4SUxtMzJFRUUATlN0M19fMjdjb2RlY3Z0SURpYzExX19tYnN0YXRlX3RFRQBOU3QzX18yMTJjb2RlY3Z0X2Jhc2VFAE5TdDNfXzIxNl9fbmFycm93X3RvX3V0ZjhJTG0zMkVFRQBOU3QzX18yOG1lc3NhZ2VzSXdFRQBOU3QzX18yN2NvZGVjdnRJY2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjdjb2RlY3Z0SXdjMTFfX21ic3RhdGVfdEVFAE5TdDNfXzI3Y29kZWN2dElEc2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjZsb2NhbGU1X19pbXBFAE5TdDNfXzI1Y3R5cGVJY0VFAE5TdDNfXzIxMGN0eXBlX2Jhc2VFAE5TdDNfXzI1Y3R5cGVJd0VFAE5TdDNfXzI4bnVtcHVuY3RJY0VFAE5TdDNfXzI4bnVtcHVuY3RJd0VFAE5TdDNfXzIxNF9fc2hhcmVkX2NvdW50RQBOU3QzX18yMTlfX3NoYXJlZF93ZWFrX2NvdW50RQBtdXRleCBsb2NrIGZhaWxlZAA6IG5vIGNvbnZlcnNpb24AJXMKADogb3V0IG9mIHJhbmdlAHN0b2YAJWYAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlczogJXMAdGVybWluYXRpbmcgd2l0aCAlcyBleGNlcHRpb24gb2YgdHlwZSAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGZvcmVpZ24gZXhjZXB0aW9uAHRlcm1pbmF0aW5nAHVuY2F1Z2h0AFN0OWV4Y2VwdGlvbgBOMTBfX2N4eGFiaXYxMTZfX3NoaW1fdHlwZV9pbmZvRQBTdDl0eXBlX2luZm8ATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQB0ZXJtaW5hdGVfaGFuZGxlciB1bmV4cGVjdGVkbHkgcmV0dXJuZWQAX1oAX19fWgBfYmxvY2tfaW52b2tlAGludm9jYXRpb24gZnVuY3Rpb24gZm9yIGJsb2NrIGluIAB2b2lkAGJvb2wAY2hhcgBzaWduZWQgY2hhcgB1bnNpZ25lZCBjaGFyAHNob3J0AHVuc2lnbmVkIHNob3J0AGludAB1bnNpZ25lZCBpbnQAbG9uZwB1bnNpZ25lZCBsb25nAGxvbmcgbG9uZwBfX2ludDEyOAB1bnNpZ25lZCBfX2ludDEyOABmbG9hdABsb25nIGRvdWJsZQBfX2Zsb2F0MTI4AC4uLgBkZWNpbWFsNjQAZGVjaW1hbDEyOABkZWNpbWFsMzIAZGVjaW1hbDE2AGNoYXIzMl90AGNoYXIxNl90AGF1dG8AZGVjbHR5cGUoYXV0bykAc3RkOjpudWxscHRyX3QAW2FiaToAXQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMEFiaVRhZ0F0dHJFAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTROb2RlRQBhbGxvY2F0b3IAYmFzaWNfc3RyaW5nAHN0cmluZwBpc3RyZWFtAG9zdHJlYW0AaW9zdHJlYW0Ac3RkOjphbGxvY2F0b3IAc3RkOjpiYXNpY19zdHJpbmcAc3RkOjpzdHJpbmcAc3RkOjppc3RyZWFtAHN0ZDo6b3N0cmVhbQBzdGQ6Omlvc3RyZWFtAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE5U3BlY2lhbFN1YnN0aXR1dGlvbkUAIGltYWdpbmFyeQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUyMFBvc3RmaXhRdWFsaWZpZWRUeXBlRQAgY29tcGxleAApACAAKAAmACYmAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTEzUmVmZXJlbmNlVHlwZUUAb2JqY19vYmplY3QAKgBpZDwAPgBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMVBvaW50ZXJUeXBlRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUyME5hbWVXaXRoVGVtcGxhdGVBcmdzRQA8ACwgAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTEyVGVtcGxhdGVBcmdzRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxM1BhcmFtZXRlclBhY2tFAHdjaGFyX3QAYjBFAGIxRQB1AGwAdWwAbGwAdWxsAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE1SW50ZWdlckNhc3RFeHByRQAlTGFMAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE2RmxvYXRMaXRlcmFsSW1wbEllRUUAJWEATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTZGbG9hdExpdGVyYWxJbXBsSWRFRQAlYWYATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTZGbG9hdExpdGVyYWxJbXBsSWZFRQB0cnVlAGZhbHNlAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZThCb29sRXhwckUALQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxNEludGVnZXJMaXRlcmFsRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUyMFRlbXBsYXRlQXJndW1lbnRQYWNrRQBncwAmPQA9AGFsaWdub2YgKAAsAH4ALioALwAvPQBeAF49AD09AD49ADw9ADw8ADw8PQAtPQAqPQAtLQAhPQAhAHx8AHwAfD0ALT4qACsAKz0AKysALT4AJQAlPQA+PgA+Pj0Ac2l6ZW9mICgAdHlwZWlkICgAdGhyb3cAdGhyb3cgAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTlUaHJvd0V4cHJFAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTEySW5pdExpc3RFeHByRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxM05vZGVBcnJheU5vZGVFAHNpemVvZi4uLiAoAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTEzRW5jbG9zaW5nRXhwckUAc2l6ZW9mLi4uKABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUyMlBhcmFtZXRlclBhY2tFeHBhbnNpb25FAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE5U2l6ZW9mUGFyYW1QYWNrRXhwckUAc3RhdGljX2Nhc3QAPigATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlOENhc3RFeHByRQByZWludGVycHJldF9jYXN0ACkgPyAoACkgOiAoAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE1Q29uZGl0aW9uYWxFeHByRQBub2V4Y2VwdCAoAG53AG5hAHBpADo6b3BlcmF0b3IgAG5ldwBbXQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGU3TmV3RXhwckUATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTFQb3N0Zml4RXhwckUAIC4uLiAAID0gAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE1QnJhY2VkUmFuZ2VFeHByRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMEJyYWNlZEV4cHJFAF9HTE9CQUxfX04AKGFub255bW91cyBuYW1lc3BhY2UpAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZThOYW1lVHlwZUUAKVsATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMThBcnJheVN1YnNjcmlwdEV4cHJFAC4ATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTBNZW1iZXJFeHByRQBzck4Ac3IAOjoATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTlHbG9iYWxRdWFsaWZpZWROYW1lRQBkbgBvbgBvcGVyYXRvciYmAG9wZXJhdG9yJgBvcGVyYXRvciY9AG9wZXJhdG9yPQBvcGVyYXRvcigpAG9wZXJhdG9yLABvcGVyYXRvcn4Ab3BlcmF0b3IgZGVsZXRlW10Ab3BlcmF0b3IqAG9wZXJhdG9yLwBvcGVyYXRvci89AG9wZXJhdG9yXgBvcGVyYXRvcl49AG9wZXJhdG9yPT0Ab3BlcmF0b3I+PQBvcGVyYXRvcj4Ab3BlcmF0b3JbXQBvcGVyYXRvcjw9AG9wZXJhdG9yPDwAb3BlcmF0b3I8PD0Ab3BlcmF0b3I8AG9wZXJhdG9yLQBvcGVyYXRvci09AG9wZXJhdG9yKj0Ab3BlcmF0b3ItLQBvcGVyYXRvciBuZXdbXQBvcGVyYXRvciE9AG9wZXJhdG9yIQBvcGVyYXRvciBuZXcAb3BlcmF0b3J8fABvcGVyYXRvcnwAb3BlcmF0b3J8PQBvcGVyYXRvci0+KgBvcGVyYXRvcisAb3BlcmF0b3IrPQBvcGVyYXRvcisrAG9wZXJhdG9yLT4Ab3BlcmF0b3I/AG9wZXJhdG9yJQBvcGVyYXRvciU9AG9wZXJhdG9yPj4Ab3BlcmF0b3I+Pj0Ab3BlcmF0b3I8PT4Ab3BlcmF0b3IiIiAATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTVMaXRlcmFsT3BlcmF0b3JFAG9wZXJhdG9yIGRlbGV0ZQBvcGVyYXRvciAATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMjJDb252ZXJzaW9uT3BlcmF0b3JUeXBlRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGU4RHRvck5hbWVFAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTEzUXVhbGlmaWVkTmFtZUUAZHluYW1pY19jYXN0AGRlbGV0ZQBbXSAATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTBEZWxldGVFeHByRQBjdgApKABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxNENvbnZlcnNpb25FeHByRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGU4Q2FsbEV4cHJFAGNvbnN0X2Nhc3QATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTBQcmVmaXhFeHByRQApIAAgKABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMEJpbmFyeUV4cHJFAGFhAGFuAGFOAGFTAGNtAGRzAGR2AGRWAGVvAGVPAGVxAGdlAGd0AGxlAGxzAGxTAGx0AG1pAG1JAG1sAG1MAG5lAG9vAG9yAG9SAHBsAHBMAHJtAHJNAHJzAHJTAC4uLiAAIC4uLgBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGU4Rm9sZEV4cHJFAGZwAGZMAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTEzRnVuY3Rpb25QYXJhbUUATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMjRGb3J3YXJkVGVtcGxhdGVSZWZlcmVuY2VFAFRzAHN0cnVjdABUdQB1bmlvbgBUZQBlbnVtAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTIyRWxhYm9yYXRlZFR5cGVTcGVmVHlwZUUAU3RMAFN0AHN0ZDo6AE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE2U3RkUXVhbGlmaWVkTmFtZUUAREMATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMjFTdHJ1Y3R1cmVkQmluZGluZ05hbWVFAFV0AFVsAHZFACdsYW1iZGEAJygATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTVDbG9zdXJlVHlwZU5hbWVFACd1bm5hbWVkACcATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTVVbm5hbWVkVHlwZU5hbWVFAHN0cmluZyBsaXRlcmFsAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTlMb2NhbE5hbWVFAHN0ZABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMkN0b3JEdG9yTmFtZUUAYmFzaWNfaXN0cmVhbQBiYXNpY19vc3RyZWFtAGJhc2ljX2lvc3RyZWFtAHN0ZDo6YmFzaWNfc3RyaW5nPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4sIHN0ZDo6YWxsb2NhdG9yPGNoYXI+ID4Ac3RkOjpiYXNpY19pc3RyZWFtPGNoYXIsIHN0ZDo6Y2hhcl90cmFpdHM8Y2hhcj4gPgBzdGQ6OmJhc2ljX29zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AHN0ZDo6YmFzaWNfaW9zdHJlYW08Y2hhciwgc3RkOjpjaGFyX3RyYWl0czxjaGFyPiA+AE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTI3RXhwYW5kZWRTcGVjaWFsU3Vic3RpdHV0aW9uRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxME5lc3RlZE5hbWVFADo6KgBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxOVBvaW50ZXJUb01lbWJlclR5cGVFAFsATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlOUFycmF5VHlwZUUARHYAIHZlY3RvclsATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTBWZWN0b3JUeXBlRQBwaXhlbCB2ZWN0b3JbAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTE1UGl4ZWxWZWN0b3JUeXBlRQBkZWNsdHlwZSgAZG91YmxlAHVuc2lnbmVkIGxvbmcgbG9uZwBvYmpjcHJvdG8AIGNvbnN0ACB2b2xhdGlsZQAgcmVzdHJpY3QATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlOFF1YWxUeXBlRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxN1ZlbmRvckV4dFF1YWxUeXBlRQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxM09iakNQcm90b05hbWVFAERvAG5vZXhjZXB0AERPAER3AER4AFJFAE9FACAmACAmJgBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMkZ1bmN0aW9uVHlwZUUAdGhyb3coAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTIwRHluYW1pY0V4Y2VwdGlvblNwZWNFAG5vZXhjZXB0KABOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMk5vZXhjZXB0U3BlY0UATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlMTFTcGVjaWFsTmFtZUUATjEyX0dMT0JBTF9fTl8xMTZpdGFuaXVtX2RlbWFuZ2xlOURvdFN1ZmZpeEUAVWE5ZW5hYmxlX2lmSQBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxNkZ1bmN0aW9uRW5jb2RpbmdFACBbZW5hYmxlX2lmOgBOMTJfR0xPQkFMX19OXzExNml0YW5pdW1fZGVtYW5nbGUxMkVuYWJsZUlmQXR0ckUAdGhyZWFkLWxvY2FsIHdyYXBwZXIgcm91dGluZSBmb3IgAHJlZmVyZW5jZSB0ZW1wb3JhcnkgZm9yIABndWFyZCB2YXJpYWJsZSBmb3IgAG5vbi12aXJ0dWFsIHRodW5rIHRvIAB2aXJ0dWFsIHRodW5rIHRvIAB0aHJlYWQtbG9jYWwgaW5pdGlhbGl6YXRpb24gcm91dGluZSBmb3IgAGNvbnN0cnVjdGlvbiB2dGFibGUgZm9yIAAtaW4tAE4xMl9HTE9CQUxfX05fMTE2aXRhbml1bV9kZW1hbmdsZTIxQ3RvclZ0YWJsZVNwZWNpYWxOYW1lRQBjb3ZhcmlhbnQgcmV0dXJuIHRodW5rIHRvIAB0eXBlaW5mbyBuYW1lIGZvciAAdHlwZWluZm8gZm9yIABWVFQgZm9yIAB2dGFibGUgZm9yIABTdDExbG9naWNfZXJyb3IAU3QxMmxlbmd0aF9lcnJvcgBzdGQ6OmJhZF9jYXN0AFN0OGJhZF9jYXN0AE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMTlfX3BvaW50ZXJfdHlwZV9pbmZvRQBOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9F";var tempDoublePtr=1183664;function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}function ___atomic_fetch_add_8(ptr,vall,valh,memmodel){var l=HEAP32[ptr>>2];var h=HEAP32[ptr+4>>2];HEAP32[ptr>>2]=_i64Add(l,h,vall,valh);HEAP32[ptr+4>>2]=getTempRet0();return(setTempRet0(h),l)|0}function ___atomic_load_8(ptr,memmodel){return(setTempRet0(HEAP32[ptr+4>>2]),HEAP32[ptr>>2])|0}function ___atomic_store_8(ptr,vall,valh,memmodel){HEAP32[ptr>>2]=vall;HEAP32[ptr+4>>2]=valh}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=value;return value}function ___map_file(pathname,size){___setErrNo(1);return-1}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(1)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=function(e){done(this.error);e.preventDefault()};transaction.oncomplete=function(e){if(!errored){callback(null)}};create.sort().forEach(function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var NODEFS={isWindows:false,staticInit:function(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process["binding"]("constants");if(flags["fs"]){flags=flags["fs"]}NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"]}},bufferFrom:function(arrayBuffer){return Buffer.alloc?Buffer.from(arrayBuffer):new Buffer(arrayBuffer)},mount:function(mount){assert(ENVIRONMENT_HAS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode:function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(22)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode:function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&292)>>2}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}return stat.mode},realPath:function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)},flagsForNode:function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(!flags){return newFlags}else{throw new FS.ErrnoError(22)}},node_ops:{getattr:function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr:function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},lookup:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod:function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}return node},rename:function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},unlink:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},rmdir:function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},readdir:function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},symlink:function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},readlink:function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}}},stream_ops:{open:function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},close:function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(-e.errno)}},read:function(stream,buffer,offset,length,position){if(length===0)return 0;try{return fs.readSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(-e.errno)}},write:function(stream,buffer,offset,length,position){try{return fs.writeSync(stream.nfd,NODEFS.bufferFrom(buffer.buffer),offset,length,position)}catch(e){throw new FS.ErrnoError(-e.errno)}},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=fs.fstatSync(stream.nfd);position+=stat.size}catch(e){throw new FS.ErrnoError(-e.errno)}}}if(position<0){throw new FS.ErrnoError(22)}return position}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(mount){assert(ENVIRONMENT_IS_WORKER);if(!WORKERFS.reader)WORKERFS.reader=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write:function(stream,buffer,offset,length,position){throw new FS.ErrnoError(5)},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(22)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)},lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(40)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(40)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 13}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 13}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 13}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 13;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 17}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return 20}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 16}}else{if(FS.isDir(node.mode)){return 21}}return 0},mayOpen:function(node,flags){if(!node){return 2}if(FS.isLink(node.mode)){return 40}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 21}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(24)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(29)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(16)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(16)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(20)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(22)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(22)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(1)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(5)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-22}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-22;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-22}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-2}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-13}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:0,get:function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(){var ret=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(9);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-75}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[result>>2]=tempI64[0],HEAP32[result+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-22}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-22;case 9:___setErrNo(22);return-1;default:{return-22}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-25;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-25;return 0}case 21519:{if(!stream.tty)return-25;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-25;return-22}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-25;return 0}case 21524:{if(!stream.tty)return-25;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_syscall_munmap(addr,len){if(addr===-1||len===0){return-22}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();return __emscripten_syscall_munmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function _abort(){Module["abort"]()}function _emscripten_get_now(){abort()}function _emscripten_get_now_is_monotonic(){return 0||ENVIRONMENT_IS_NODE||typeof dateNow!=="undefined"||typeof performance==="object"&&performance&&typeof performance["now"]==="function"}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if(clk_id===1&&_emscripten_get_now_is_monotonic()){now=_emscripten_get_now()}else{___setErrNo(22);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop,arg,noSetTiming){Module["noExitRuntime"]=true;assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=func;Browser.mainLoop.arg=arg;var browserIterationFunc;if(typeof arg!=="undefined"){browserIterationFunc=function(){Module["dynCall_vi"](func,arg)}}else{browserIterationFunc=function(){Module["dynCall_v"](func)}}var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}console.log('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(thisMainLoopId1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}if(Browser.mainLoop.method==="timeout"&&Module.ctx){err("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!");Browser.mainLoop.method=""}Browser.mainLoop.runIter(browserIterationFunc);if(thisMainLoopId0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"SimulateInfiniteLoop"}}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;_emscripten_set_main_loop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;Browser.safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas,vrDevice){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;Browser.vrDevice=vrDevice;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;if(typeof Browser.vrDevice==="undefined")Browser.vrDevice=null;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);if(vrDevice){canvasContainer.requestFullscreen({vrDisplay:vrDevice})}else{canvasContainer.requestFullscreen()}},requestFullScreen:function(lockPointer,resizeCanvas,vrDevice){err("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.");Browser.requestFullScreen=function(lockPointer,resizeCanvas,vrDevice){return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};return Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;if(typeof window!=="undefined"){RAF=window["requestAnimationFrame"]||window["mozRequestAnimationFrame"]||window["webkitRequestAnimationFrame"]||window["msRequestAnimationFrame"]||window["oRequestAnimationFrame"]||RAF}RAF(func)},safeCallback:function(func){return function(){if(!ABORT)return func.apply(null,arguments)}},allowAsyncCallbacks:true,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=false},resumeAsyncCallbacks:function(){Browser.allowAsyncCallbacks=true;if(Browser.queuedAsyncCallbacks.length>0){var callbacks=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[];callbacks.forEach(function(func){func()})}},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}})},safeSetTimeout:function(func,timeout){Module["noExitRuntime"]=true;return setTimeout(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}else{Browser.queuedAsyncCallbacks.push(func)}},timeout)},safeSetInterval:function(func,timeout){Module["noExitRuntime"]=true;return setInterval(function(){if(ABORT)return;if(Browser.allowAsyncCallbacks){func()}},timeout)},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},asyncLoad:function(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";readAsync(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0){Browser.safeSetTimeout(wrapper,millis)}else{Browser.safeRequestAnimationFrame(wrapper)}}function _emscripten_get_heap_size(){return HEAP8.length}function _exit(status){exit(status)}var ENV={};function _getenv(name){if(name===0)return 0;name=UTF8ToString(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocateUTF8(ENV[name]);return _getenv.ret}function _llvm_cttz_i64(l,h){var ret=_llvm_cttz_i32(l);if(ret==32)ret+=_llvm_cttz_i32(h);return(setTempRet0(0),ret)|0}function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);stackRestore(ret)}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(stackSave());return self.LLVM_SAVEDSTACKS.length-1}function _llvm_trap(){abort("trap!")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function _pthread_attr_init(attr){return 0}function _pthread_attr_setstacksize(){}function _pthread_cond_destroy(){return 0}function _pthread_cond_signal(){return 0}function _pthread_cond_wait(){return 0}function _pthread_create(){return 11}function _pthread_join(){}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){abortOnCannotGrowMemory(requestedSize)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}FS.staticInit();if(ENVIRONMENT_HAS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function _emscripten_get_now_actual(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof performance==="object"&&performance&&typeof performance["now"]==="function"){_emscripten_get_now=function(){return performance["now"]()}}else{_emscripten_get_now=Date.now}Module["requestFullScreen"]=function Module_requestFullScreen(lockPointer,resizeCanvas,vrDevice){err("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.");Module["requestFullScreen"]=Module["requestFullscreen"];Browser.requestFullScreen(lockPointer,resizeCanvas,vrDevice)};Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas,vrDevice){Browser.requestFullscreen(lockPointer,resizeCanvas,vrDevice)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=Sk(a[f>>0]|0)|0;if(sn(f&255,x,b,t,u,a[r>>0]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+1;Sk(a[f>>0]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}c[h>>2]=Zn(b,c[t>>2]|0,g,x)|0;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function Zn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;h=i;if((a|0)==(b|0)){c[d>>2]=4;a=0}else{g=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;a=jk(a,h,e,tn()|0)|0;e=E()|0;f=c[(Nh()|0)>>2]|0;if(!f)c[(Nh()|0)>>2]=g;a:do if((c[h>>2]|0)==(b|0)){do if((f|0)==34){c[d>>2]=4;if((e|0)>0|(e|0)==0&a>>>0>0){a=2147483647;break a}}else{if((e|0)<-1|(e|0)==-1&a>>>0<2147483648){c[d>>2]=4;break}if((e|0)>0|(e|0)==0&a>>>0>2147483647){c[d>>2]=4;a=2147483647;break a}else break a}while(0);a=-2147483648}else{c[d>>2]=4;a=0}while(0)}Ia=i;return a|0}function _n(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=Ia;Ia=Ia+112|0;k=w;l=(f-e|0)/12|0;if(l>>>0>100){k=kk(l)|0;if(!k)Fv();else{u=k;j=k}}else{u=0;j=k}n=e;k=0;o=l;m=j;while(1){if((n|0)==(f|0))break;l=a[n+11>>0]|0;if(l<<24>>24<0)l=c[n+4>>2]|0;else l=l&255;if(!l){a[m>>0]=2;k=k+1|0;l=o+-1|0}else{a[m>>0]=1;l=o}n=n+12|0;o=l;m=m+1|0}t=0;while(1){l=c[b>>2]|0;do if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))l=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else l=Sk(a[m>>0]|0)|0;if(Pl(l,Rk()|0)|0){c[b>>2]=0;p=1;break}else{p=(c[b>>2]|0)==0;break}}else p=1;while(0);m=c[d>>2]|0;if(m){l=c[m+12>>2]|0;if((l|0)==(c[m+16>>2]|0))l=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else l=Sk(a[l>>0]|0)|0;if(Pl(l,Rk()|0)|0){c[d>>2]=0;l=1;m=0}else l=0}else{l=1;m=0}n=c[b>>2]|0;if(!((o|0)!=0&(p^l)))break;l=c[n+12>>2]|0;if((l|0)==(c[n+16>>2]|0))l=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else l=Sk(a[l>>0]|0)|0;l=l&255;if(!i)l=Na[c[(c[g>>2]|0)+12>>2]&127](g,l)|0;s=t+1|0;p=0;r=e;q=j;while(1){if((r|0)==(f|0))break;do if((a[q>>0]|0)==1){n=r+11|0;if((a[n>>0]|0)<0)m=c[r>>2]|0;else m=r;m=a[m+t>>0]|0;if(!i)m=Na[c[(c[g>>2]|0)+12>>2]&127](g,m)|0;if(l<<24>>24!=m<<24>>24){a[q>>0]=0;m=p;o=o+-1|0;break}m=a[n>>0]|0;if(m<<24>>24<0)m=c[r+4>>2]|0;else m=m&255;if((m|0)==(s|0)){a[q>>0]=2;m=1;k=k+1|0;o=o+-1|0}else m=1}else m=p;while(0);p=m;r=r+12|0;q=q+1|0}a:do if(p){l=c[b>>2]|0;n=l+12|0;m=c[n>>2]|0;if((m|0)==(c[l+16>>2]|0))La[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[n>>2]=m+1;Sk(a[m>>0]|0)|0}if((k+o|0)>>>0>1){n=e;m=j;while(1){if((n|0)==(f|0))break a;if((a[m>>0]|0)==2){l=a[n+11>>0]|0;if(l<<24>>24<0)l=c[n+4>>2]|0;else l=l&255;if((l|0)!=(s|0)){a[m>>0]=0;k=k+-1|0}}n=n+12|0;m=m+1|0}}}while(0);t=s}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=Sk(a[k>>0]|0)|0;if(Pl(k,Rk()|0)|0){c[b>>2]=0;l=1;break}else{l=(c[b>>2]|0)==0;break}}else l=1;while(0);do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=Sk(a[k>>0]|0)|0;if(!(Pl(k,Rk()|0)|0))if(l)break;else{v=79;break}else{c[d>>2]=0;v=41;break}}else v=41;while(0);if((v|0)==41?l:0)v=79;if((v|0)==79)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){v=84;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((v|0)==84){c[h>>2]=c[h>>2]|4;e=f}lk(u);Ia=w;return e|0}function $n(a){a=a|0;Wm(a);return}function ao(a){a=a|0;Wm(a);Jv(a);return}function bo(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+48|0;m=o+40|0;n=o;i=o+32|0;j=o+36|0;k=o+28|0;l=o+24|0;if(!(c[f+4>>2]&1)){c[i>>2]=-1;l=c[(c[b>>2]|0)+16>>2]|0;c[j>>2]=c[d>>2];c[k>>2]=c[e>>2];c[n>>2]=c[j>>2];c[m>>2]=c[k>>2];c[d>>2]=Ta[l&63](b,n,m,f,g,i)|0;switch(c[i>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}d=c[d>>2]|0}else{Ql(m,f);b=qn(m,1183020)|0;rn(m);Ql(m,f);k=qn(m,1183028)|0;rn(m);Ya[c[(c[k>>2]|0)+24>>2]&127](n,k);Ya[c[(c[k>>2]|0)+28>>2]&127](n+12|0,k);c[l>>2]=c[e>>2];e=n+24|0;c[m>>2]=c[l>>2];a[h>>0]=(Co(d,m,n,e,b,g,1)|0)==(n|0)&1;d=c[d>>2]|0;do{e=e+-12|0;rw(e)}while((e|0)!=(n|0))}Ia=o;return d|0}function co(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Bo(a,j,i,e,f,g)|0;Ia=h;return a|0}function eo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Ao(a,j,i,e,f,g)|0;Ia=h;return a|0}function fo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=zo(a,j,i,e,f,g)|0;Ia=h;return a|0}function go(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=yo(a,j,i,e,f,g)|0;Ia=h;return a|0}function ho(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=xo(a,j,i,e,f,g)|0;Ia=h;return a|0}function io(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=to(a,j,i,e,f,g)|0;Ia=h;return a|0}function jo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=so(a,j,i,e,f,g)|0;Ia=h;return a|0}function ko(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=ro(a,j,i,e,f,g)|0;Ia=h;return a|0}function lo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=oo(a,j,i,e,f,g)|0;Ia=h;return a|0}function mo(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=Ia;Ia=Ia+304|0;v=y+264|0;q=y+160|0;w=y+292|0;x=y+280|0;u=y+276|0;s=y;t=y+272|0;r=y+268|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}Ql(x,f);b=qn(x,1183020)|0;Pa[c[(c[b>>2]|0)+48>>2]&7](b,28784,28810,q)|0;rn(x);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}p=x+11|0;o=x+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b;c[t>>2]=s;c[r>>2]=0;n=x+4|0;i=c[d>>2]|0;j=i;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(k)break;else break a;else{c[e>>2]=0;z=22;break}}else z=22;while(0);if((z|0)==22){z=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[u>>2]|0)==(b+f|0)){aw(x,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=il(c[f>>2]|0)|0;if(no(f,16,b,u,r,0,w,s,t,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+4;il(c[f>>2]|0)|0}i=m}aw(x,(c[u>>2]|0)-b|0,0);t=(a[p>>0]|0)<0?c[x>>2]|0:x;u=tn()|0;c[v>>2]=h;if((un(t,u,46178,v)|0)!=1)c[g>>2]=4;if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{z=52;break}else{c[e>>2]=0;z=50;break}}else z=50;while(0);if((z|0)==50?f:0)z=52;if((z|0)==52)c[g>>2]=c[g>>2]|2;z=c[d>>2]|0;Wv(x);Wv(w);Ia=y;return z|0}function no(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(c[l+96>>2]|0)==(b|0);if(!m?(c[l+100>>2]|0)!=(b|0):0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;i=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if((b|0)==(h|0)?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){i=c[k>>2]|0;if((i-j|0)>=160){i=0;break}p=c[g>>2]|0;c[k>>2]=i+4;c[i>>2]=p;c[g>>2]=0;i=0;break}m=l+104|0;h=0;while(1){i=l+(h<<2)|0;if((h|0)==26){i=m;break}if((c[i>>2]|0)==(b|0))break;else h=h+1|0}h=i-l|0;i=2?h>>2:h;if((h|0)>92)i=-1;else{switch(d|0){case 10:case 8:{if((i|0)>=(d|0)){i=-1;break a}break}case 16:{if((h|0)>=88){if(p){i=-1;break a}if((o-e|0)>=3){i=-1;break a}if((a[o+-1>>0]|0)!=48){i=-1;break a}c[g>>2]=0;i=a[28784+i>>0]|0;c[f>>2]=o+1;a[o>>0]=i;i=0;break a}break}default:{}}i=a[28784+i>>0]|0;c[f>>2]=o+1;a[o>>0]=i;c[g>>2]=(c[g>>2]|0)+1;i=0}}while(0);return i|0}function oo(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=Ia;Ia=Ia+336|0;r=D+160|0;s=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;x=D;y=D+292|0;w=D+288|0;z=D+333|0;t=D+332|0;po(C,f,r,s,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}q=B+11|0;p=B+8|0;if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[y>>2]=x;c[w>>2]=0;a[z>>0]=1;a[t>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[q>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){aw(B,f<<1,0);if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}m=n+12|0;f=c[m>>2]|0;l=n+16|0;if((f|0)==(c[l>>2]|0))f=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else f=il(c[f>>2]|0)|0;if(qo(f,z,t,b,v,c[s>>2]|0,c[u>>2]|0,C,x,y,w,r)|0)break;f=c[m>>2]|0;if((f|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=f+4;il(c[f>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[y>>2]|0,(A-x|0)<160):0){z=c[w>>2]|0;c[y>>2]=A+4;c[A>>2]=z}g[i>>3]=+En(b,c[v>>2]|0,h);Fn(C,x,c[y>>2]|0,h);if(n){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;Wv(B);Wv(C);Ia=D;return E|0}function po(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=Ia;Ia=Ia+16|0;h=g;Ql(h,b);b=qn(h,1183020)|0;Pa[c[(c[b>>2]|0)+48>>2]&7](b,28784,28816,d)|0;b=qn(h,1183028)|0;c[e>>2]=La[c[(c[b>>2]|0)+12>>2]&127](b)|0;c[f>>2]=La[c[(c[b>>2]|0)+16>>2]&127](b)|0;Ya[c[(c[b>>2]|0)+20>>2]&127](a,b);rn(h);Ia=g;return}function qo(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if((b|0)==(h|0))if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;e=a[j+11>>0]|0;if(((e<<24>>24<0?c[j+4>>2]|0:e&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if((b|0)==(i|0)?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+128|0;h=0;while(1){o=n+(h<<2)|0;if((h|0)==32){o=i;break}if((c[o>>2]|0)==(b|0))break;else h=h+1|0}h=o-n|0;if((h|0)<=124){i=a[28784+(2?h>>2:h)>>0]|0;n=h+-88|0;switch((2?n>>>2:n)|n<<30|0){case 2:case 3:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 1:case 0:{a[e>>0]=80;break}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}}}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>84)o=0;else{c[m>>2]=(c[m>>2]|0)+1;o=0}}else o=-1}while(0);return o|0}function ro(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=Ia;Ia=Ia+336|0;r=D+160|0;s=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;x=D;y=D+292|0;w=D+288|0;z=D+333|0;t=D+332|0;po(C,f,r,s,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}q=B+11|0;p=B+8|0;if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[y>>2]=x;c[w>>2]=0;a[z>>0]=1;a[t>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[q>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){aw(B,f<<1,0);if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}m=n+12|0;f=c[m>>2]|0;l=n+16|0;if((f|0)==(c[l>>2]|0))f=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else f=il(c[f>>2]|0)|0;if(qo(f,z,t,b,v,c[s>>2]|0,c[u>>2]|0,C,x,y,w,r)|0)break;f=c[m>>2]|0;if((f|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=f+4;il(c[f>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[y>>2]|0,(A-x|0)<160):0){z=c[w>>2]|0;c[y>>2]=A+4;c[A>>2]=z}g[i>>3]=+Hn(b,c[v>>2]|0,h);Fn(C,x,c[y>>2]|0,h);if(n){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;Wv(B);Wv(C);Ia=D;return E|0}function so(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=Ia;Ia=Ia+336|0;r=D+160|0;s=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;x=D;y=D+292|0;w=D+288|0;z=D+333|0;t=D+332|0;po(C,g,r,s,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}q=B+11|0;p=B+8|0;if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[y>>2]=x;c[w>>2]=0;a[z>>0]=1;a[t>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=il(c[g>>2]|0)|0;if(Rl(g,hl()|0)|0){c[d>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[e>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=il(c[g>>2]|0)|0;if(!(Rl(g,hl()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}g=a[q>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[v>>2]|0)==(b+g|0)){aw(B,g<<1,0);if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+g}m=n+12|0;g=c[m>>2]|0;l=n+16|0;if((g|0)==(c[l>>2]|0))g=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else g=il(c[g>>2]|0)|0;if(qo(g,z,t,b,v,c[s>>2]|0,c[u>>2]|0,C,x,y,w,r)|0)break;g=c[m>>2]|0;if((g|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=g+4;il(c[g>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[y>>2]|0,(A-x|0)<160):0){z=c[w>>2]|0;c[y>>2]=A+4;c[A>>2]=z}f[i>>2]=+Jn(b,c[v>>2]|0,h);Fn(C,x,c[y>>2]|0,h);if(n){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;g=1}else g=0}else g=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(g)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?g:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;Wv(B);Wv(C);Ia=D;return E|0}function to(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+304|0;r=B+300|0;z=B+288|0;y=B+276|0;t=B+272|0;v=B;w=B+268|0;u=B+264|0;x=Ln(f)|0;q=uo(b,f,B+160|0)|0;vo(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=il(c[f>>2]|0)|0;if(no(f,x,b,t,u,c[r>>2]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+4;il(c[f>>2]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}t=On(b,c[t>>2]|0,g,x)|0;u=E()|0;x=h;c[x>>2]=t;c[x+4>>2]=u;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function uo(a,b,c){a=a|0;b=b|0;c=c|0;return wo(a,b,c)|0}function vo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;Ql(f,b);b=qn(f,1183028)|0;c[d>>2]=La[c[(c[b>>2]|0)+16>>2]&127](b)|0;Ya[c[(c[b>>2]|0)+20>>2]&127](a,b);rn(f);Ia=e;return}function wo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=Ia;Ia=Ia+16|0;e=a;Ql(e,b);b=qn(e,1183020)|0;Pa[c[(c[b>>2]|0)+48>>2]&7](b,28784,28810,d)|0;rn(e);Ia=a;return d|0}function xo(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+304|0;r=B+300|0;z=B+288|0;y=B+276|0;t=B+272|0;v=B;w=B+268|0;u=B+264|0;x=Ln(f)|0;q=uo(b,f,B+160|0)|0;vo(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=il(c[f>>2]|0)|0;if(no(f,x,b,t,u,c[r>>2]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+4;il(c[f>>2]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}c[h>>2]=Rn(b,c[t>>2]|0,g,x)|0;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function yo(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+304|0;r=B+300|0;z=B+288|0;y=B+276|0;t=B+272|0;v=B;w=B+268|0;u=B+264|0;x=Ln(f)|0;q=uo(b,f,B+160|0)|0;vo(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=il(c[f>>2]|0)|0;if(no(f,x,b,t,u,c[r>>2]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+4;il(c[f>>2]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}c[h>>2]=Tn(b,c[t>>2]|0,g,x)|0;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function zo(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=Ia;Ia=Ia+304|0;s=C+300|0;A=C+288|0;z=C+276|0;u=C+272|0;w=C;x=C+268|0;v=C+264|0;y=Ln(g)|0;r=uo(d,g,C+160|0)|0;vo(A,g,s);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[z+(d<<2)>>2]=0;d=d+1|0}q=z+11|0;p=z+8|0;if((a[q>>0]|0)<0)d=(c[p>>2]&2147483647)+-1|0;else d=10;aw(z,d,0);d=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=d;c[x>>2]=w;c[v>>2]=0;o=z+4|0;k=c[e>>2]|0;j=k;a:while(1){if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=il(c[g>>2]|0)|0;if(Rl(g,hl()|0)|0){c[e>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[f>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=il(c[g>>2]|0)|0;if(!(Rl(g,hl()|0)|0))if(l)break;else break a;else{c[f>>2]=0;B=19;break}}else B=19;while(0);if((B|0)==19){B=0;if(l){j=0;break}else j=0}g=a[q>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[u>>2]|0)==(d+g|0)){aw(z,g<<1,0);if((a[q>>0]|0)<0)d=(c[p>>2]&2147483647)+-1|0;else d=10;aw(z,d,0);d=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=d+g}m=n+12|0;g=c[m>>2]|0;l=n+16|0;if((g|0)==(c[l>>2]|0))g=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else g=il(c[g>>2]|0)|0;if(no(g,y,d,u,v,c[s>>2]|0,A,w,x,r)|0)break;g=c[m>>2]|0;if((g|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=g+4;il(c[g>>2]|0)|0}j=n}s=a[A+11>>0]|0;if((s<<24>>24<0?c[A+4>>2]|0:s&255)|0?(t=c[x>>2]|0,(t-w|0)<160):0){v=c[v>>2]|0;c[x>>2]=t+4;c[t>>2]=v}b[i>>1]=Vn(d,c[u>>2]|0,h,y)|0;Fn(A,w,c[x>>2]|0,h);if(n){d=c[n+12>>2]|0;if((d|0)==(c[n+16>>2]|0))d=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else d=il(c[d>>2]|0)|0;if(Rl(d,hl()|0)|0){c[e>>2]=0;g=1}else g=0}else g=1;do if(j){d=c[j+12>>2]|0;if((d|0)==(c[j+16>>2]|0))d=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else d=il(c[d>>2]|0)|0;if(!(Rl(d,hl()|0)|0))if(g)break;else{B=50;break}else{c[f>>2]=0;B=48;break}}else B=48;while(0);if((B|0)==48?g:0)B=50;if((B|0)==50)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Wv(z);Wv(A);Ia=C;return B|0}function Ao(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+304|0;r=B+300|0;z=B+288|0;y=B+276|0;t=B+272|0;v=B;w=B+268|0;u=B+264|0;x=Ln(f)|0;q=uo(b,f,B+160|0)|0;vo(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=il(c[f>>2]|0)|0;if(no(f,x,b,t,u,c[r>>2]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+4;il(c[f>>2]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}t=Xn(b,c[t>>2]|0,g,x)|0;u=E()|0;x=h;c[x>>2]=t;c[x+4>>2]=u;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function Bo(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+304|0;r=B+300|0;z=B+288|0;y=B+276|0;t=B+272|0;v=B;w=B+268|0;u=B+264|0;x=Ln(f)|0;q=uo(b,f,B+160|0)|0;vo(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(Rl(f,hl()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=il(c[f>>2]|0)|0;if(no(f,x,b,t,u,c[r>>2]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+4;il(c[f>>2]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}c[h>>2]=Zn(b,c[t>>2]|0,g,x)|0;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=il(c[b>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function Co(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=Ia;Ia=Ia+112|0;k=w;l=(f-e|0)/12|0;if(l>>>0>100){k=kk(l)|0;if(!k)Fv();else{u=k;j=k}}else{u=0;j=k}n=e;k=0;o=l;m=j;while(1){if((n|0)==(f|0))break;l=a[n+8+3>>0]|0;if(l<<24>>24<0)l=c[n+4>>2]|0;else l=l&255;if(!l){a[m>>0]=2;k=k+1|0;l=o+-1|0}else{a[m>>0]=1;l=o}n=n+12|0;o=l;m=m+1|0}t=0;while(1){l=c[b>>2]|0;do if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))l=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else l=il(c[m>>2]|0)|0;if(Rl(l,hl()|0)|0){c[b>>2]=0;p=1;break}else{p=(c[b>>2]|0)==0;break}}else p=1;while(0);m=c[d>>2]|0;if(m){l=c[m+12>>2]|0;if((l|0)==(c[m+16>>2]|0))l=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else l=il(c[l>>2]|0)|0;if(Rl(l,hl()|0)|0){c[d>>2]=0;l=1;m=0}else l=0}else{l=1;m=0}n=c[b>>2]|0;if(!((o|0)!=0&(p^l)))break;l=c[n+12>>2]|0;if((l|0)==(c[n+16>>2]|0))l=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else l=il(c[l>>2]|0)|0;if(!i)l=Na[c[(c[g>>2]|0)+28>>2]&127](g,l)|0;s=t+1|0;p=0;r=e;q=j;while(1){if((r|0)==(f|0))break;do if((a[q>>0]|0)==1){n=r+8+3|0;if((a[n>>0]|0)<0)m=c[r>>2]|0;else m=r;m=c[m+(t<<2)>>2]|0;if(!i)m=Na[c[(c[g>>2]|0)+28>>2]&127](g,m)|0;if((l|0)!=(m|0)){a[q>>0]=0;m=p;o=o+-1|0;break}m=a[n>>0]|0;if(m<<24>>24<0)m=c[r+4>>2]|0;else m=m&255;if((m|0)==(s|0)){a[q>>0]=2;m=1;k=k+1|0;o=o+-1|0}else m=1}else m=p;while(0);p=m;r=r+12|0;q=q+1|0}a:do if(p){l=c[b>>2]|0;n=l+12|0;m=c[n>>2]|0;if((m|0)==(c[l+16>>2]|0))La[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[n>>2]=m+4;il(c[m>>2]|0)|0}if((k+o|0)>>>0>1){n=e;m=j;while(1){if((n|0)==(f|0))break a;if((a[m>>0]|0)==2){l=a[n+8+3>>0]|0;if(l<<24>>24<0)l=c[n+4>>2]|0;else l=l&255;if((l|0)!=(s|0)){a[m>>0]=0;k=k+-1|0}}n=n+12|0;m=m+1|0}}}while(0);t=s}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=il(c[k>>2]|0)|0;if(Rl(k,hl()|0)|0){c[b>>2]=0;l=1;break}else{l=(c[b>>2]|0)==0;break}}else l=1;while(0);do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=il(c[k>>2]|0)|0;if(!(Rl(k,hl()|0)|0))if(l)break;else{v=79;break}else{c[d>>2]=0;v=41;break}}else v=41;while(0);if((v|0)==41?l:0)v=79;if((v|0)==79)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){v=84;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((v|0)==84){c[h>>2]=c[h>>2]|4;e=f}lk(u);Ia=w;return e|0}function Do(a){a=a|0;Wm(a);return}function Eo(a){a=a|0;Wm(a);Jv(a);return}function Fo(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+16|0;k=l+4|0;h=l;if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];f=Ra[j&31](b,k,e,f,g&1)|0}else{Ql(k,e);f=qn(k,1183004)|0;rn(k);e=c[f>>2]|0;if(g)Ya[c[e+24>>2]&127](k,f);else Ya[c[e+28>>2]&127](k,f);i=k+11|0;b=a[i>>0]|0;g=c[k>>2]|0;j=k+4|0;f=b;e=g;g=b<<24>>24<0?g:k;while(1){b=f<<24>>24<0;if((g|0)==((b?e:k)+(b?c[j>>2]|0:f&255)|0))break;f=a[g>>0]|0;e=c[d>>2]|0;if(e|0){b=e+24|0;h=c[b>>2]|0;if((h|0)==(c[e+28>>2]|0)){b=c[(c[e>>2]|0)+52>>2]|0;f=Sk(f)|0;f=Na[b&127](e,f)|0}else{c[b>>2]=h+1;a[h>>0]=f;f=Sk(f)|0}if(Pl(f,Rk()|0)|0)c[d>>2]=0}f=a[i>>0]|0;e=c[k>>2]|0;g=g+1|0}f=c[d>>2]|0;Wv(k)}Ia=l;return f|0}function Go(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ia;Ia=Ia+32|0;k=h;n=h+16|0;m=h+12|0;b=h+4|0;l=h+8|0;a[n>>0]=a[46396]|0;a[n+1>>0]=a[46397]|0;a[n+2>>0]=a[46398]|0;a[n+3>>0]=a[46399]|0;a[n+4>>0]=a[46400]|0;a[n+5>>0]=a[46401]|0;p=e+4|0;So(n+1|0,49698,1,c[p>>2]|0);p=c[p>>2]|0;p=(9?p>>>9:p)&1;q=p+13|0;i=sa()|0;o=Ia;Ia=Ia+((1*q|0)+15&-16)|0;j=tn()|0;c[k>>2]=g;g=o+(No(o,q,j,n,k)|0)|0;n=Oo(o,g,e)|0;j=Ia;Ia=Ia+((1*((p<<1|24)+-1|0)|0)+15&-16)|0;Ql(k,e);To(o,n,g,j,m,b,k);rn(k);c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=Ub(k,j,g,b,e,f)|0;ra(i|0);Ia=h;return b|0}function Ho(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=Ia;Ia=Ia+32|0;j=h+8|0;m=h;l=h+24|0;a=h+16|0;k=h+20|0;o=m;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;So(m+1|0,49703,1,c[o>>2]|0);o=c[o>>2]|0;o=(9?o>>>9:o)&1;q=o+23|0;i=sa()|0;n=Ia;Ia=Ia+((1*q|0)+15&-16)|0;p=tn()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(No(n,q,p,m,j)|0)|0;m=Oo(n,f,d)|0;g=Ia;Ia=Ia+((1*((o<<1|44)+-1|0)|0)+15&-16)|0;Ql(j,d);To(n,m,f,g,l,a,j);rn(j);c[k>>2]=c[b>>2];b=c[l>>2]|0;a=c[a>>2]|0;c[j>>2]=c[k>>2];a=Ub(j,g,b,a,d,e)|0;ra(i|0);Ia=h;return a|0}function Io(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ia;Ia=Ia+32|0;k=h;n=h+16|0;m=h+12|0;b=h+4|0;l=h+8|0;a[n>>0]=a[46396]|0;a[n+1>>0]=a[46397]|0;a[n+2>>0]=a[46398]|0;a[n+3>>0]=a[46399]|0;a[n+4>>0]=a[46400]|0;a[n+5>>0]=a[46401]|0;p=e+4|0;So(n+1|0,49698,0,c[p>>2]|0);p=c[p>>2]|0;p=(9?p>>>9:p)&1;q=p|12;i=sa()|0;o=Ia;Ia=Ia+((1*q|0)+15&-16)|0;j=tn()|0;c[k>>2]=g;g=o+(No(o,q,j,n,k)|0)|0;n=Oo(o,g,e)|0;j=Ia;Ia=Ia+((1*(p<<1|21)|0)+15&-16)|0;Ql(k,e);To(o,n,g,j,m,b,k);rn(k);c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=Ub(k,j,g,b,e,f)|0;ra(i|0);Ia=h;return b|0}function Jo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=Ia;Ia=Ia+32|0;j=h+8|0;m=h;l=h+24|0;a=h+16|0;k=h+20|0;o=m;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;So(m+1|0,49703,0,c[o>>2]|0);o=c[o>>2]|0;o=(9?o>>>9:o)&1|22;q=o+1|0;i=sa()|0;n=Ia;Ia=Ia+((1*q|0)+15&-16)|0;p=tn()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(No(n,q,p,m,j)|0)|0;m=Oo(n,f,d)|0;g=Ia;Ia=Ia+((1*((o<<1)+-1|0)|0)+15&-16)|0;Ql(j,d);To(n,m,f,g,l,a,j);rn(j);c[k>>2]=c[b>>2];b=c[l>>2]|0;a=c[a>>2]|0;c[j>>2]=c[k>>2];a=Ub(j,g,b,a,d,e)|0;ra(i|0);Ia=h;return a|0}function Ko(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;v=Ia;Ia=Ia+176|0;u=v+168|0;m=v+144|0;l=v+128|0;i=v+120|0;h=v+104|0;j=v+96|0;o=v+64|0;n=v+164|0;p=v;s=v+160|0;r=v+156|0;t=v+152|0;k=j;c[k>>2]=37;c[k+4>>2]=0;k=Po(j+1|0,1183440,c[d+4>>2]|0)|0;c[n>>2]=o;a=tn()|0;if(k){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=No(o,30,a,j,h)|0}else{g[i>>3]=f;a=No(o,30,a,j,i)|0}if((a|0)>29){a=tn()|0;if(k){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=Qo(n,a,j,l)|0}else{g[m>>3]=f;h=Qo(n,a,j,m)|0}a=c[n>>2]|0;if(!a)Fv();else{w=a;x=a;q=h}}else{w=c[n>>2]|0;x=0;q=a}h=w+q|0;i=Oo(w,h,d)|0;if((w|0)!=(o|0)){a=kk(q<<1)|0;if(!a)Fv();else{y=a;z=a}}else{y=p;z=0}Ql(u,d);Ro(w,i,h,y,s,r,u);rn(u);c[t>>2]=c[b>>2];w=c[s>>2]|0;b=c[r>>2]|0;c[u>>2]=c[t>>2];b=Ub(u,y,w,b,d,e)|0;lk(z);lk(x);Ia=v;return b|0}function Lo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;v=Ia;Ia=Ia+176|0;u=v+168|0;m=v+144|0;l=v+128|0;i=v+120|0;h=v+104|0;j=v+96|0;o=v+64|0;n=v+164|0;p=v;s=v+160|0;r=v+156|0;t=v+152|0;k=j;c[k>>2]=37;c[k+4>>2]=0;k=Po(j+1|0,46394,c[d+4>>2]|0)|0;c[n>>2]=o;a=tn()|0;if(k){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=No(o,30,a,j,h)|0}else{g[i>>3]=f;a=No(o,30,a,j,i)|0}if((a|0)>29){a=tn()|0;if(k){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=Qo(n,a,j,l)|0}else{g[m>>3]=f;h=Qo(n,a,j,m)|0}a=c[n>>2]|0;if(!a)Fv();else{w=a;x=a;q=h}}else{w=c[n>>2]|0;x=0;q=a}h=w+q|0;i=Oo(w,h,d)|0;if((w|0)!=(o|0)){a=kk(q<<1)|0;if(!a)Fv();else{y=a;z=a}}else{y=p;z=0}Ql(u,d);Ro(w,i,h,y,s,r,u);rn(u);c[t>>2]=c[b>>2];w=c[s>>2]|0;b=c[r>>2]|0;c[u>>2]=c[t>>2];b=Ub(u,y,w,b,d,e)|0;lk(z);lk(x);Ia=v;return b|0}function Mo(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=Ia;Ia=Ia+96|0;l=h+72|0;b=h+80|0;i=h+48|0;j=h;m=h+76|0;a[b>>0]=a[46388]|0;a[b+1>>0]=a[46389]|0;a[b+2>>0]=a[46390]|0;a[b+3>>0]=a[46391]|0;a[b+4>>0]=a[46392]|0;a[b+5>>0]=a[46393]|0;k=tn()|0;c[l>>2]=g;b=No(i,20,k,b,l)|0;k=i+b|0;g=Oo(i,k,e)|0;Ql(l,e);n=qn(l,1182988)|0;rn(l);Pa[c[(c[n>>2]|0)+32>>2]&7](n,i,k,j)|0;b=j+b|0;c[m>>2]=c[d>>2];c[l>>2]=c[m>>2];b=Ub(l,j,(g|0)==(k|0)?b:j+(g-i)|0,b,e,f)|0;Ia=h;return b|0}function No(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=Ia;Ia=Ia+16|0;h=g;c[h>>2]=f;f=fk(d)|0;d=mi(a,b,e,h)|0;if(f|0)fk(f)|0;Ia=g;return d|0}function Oo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;a:do switch((c[e+4>>2]&176)<<24>>24){case 16:{e=a[b>>0]|0;switch(e<<24>>24){case 43:case 45:{b=b+1|0;break a}default:{}}if((d-b|0)>1&e<<24>>24==48){switch(a[b+1>>0]|0){case 88:case 120:break;default:{f=7;break a}}b=b+2|0}else f=7;break}case 32:{b=d;break}default:f=7}while(0);return b|0}function Po(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if(d&2048){a[b>>0]=43;b=b+1|0}if(d&1024){a[b>>0]=35;b=b+1|0}g=d&260;f=d&16384;h=(g|0)==260;if(h)i=0;else{a[b>>0]=46;a[b+1>>0]=42;b=b+2|0;i=1}e=b;d=c;while(1){b=a[d>>0]|0;if(!(b<<24>>24))break;a[e>>0]=b;e=e+1|0;d=d+1|0}a:do switch(g&511){case 4:{b=(9?f>>>9:f)&255^102;break}case 256:{b=(9?f>>>9:f)&255^101;break}default:{b=(9?f>>>9:f)&255;if(h){b=b^97;break a}else{b=b^103;break a}}}while(0);a[e>>0]=b;return i|0}function Qo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;c[g>>2]=e;e=fk(b)|0;b=xj(a,d,g)|0;if(e|0)fk(e)|0;Ia=f;return b|0}function Ro(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=Ia;Ia=Ia+16|0;s=v;t=qn(i,1182988)|0;q=qn(i,1183004)|0;Ya[c[(c[q>>2]|0)+20>>2]&127](s,q);c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{r=Na[c[(c[t>>2]|0)+28>>2]&127](t,i)|0;j=c[h>>2]|0;c[h>>2]=j+1;a[j>>0]=r;j=b+1|0;break}default:j=b}r=e;a:do if((r-j|0)>1?(a[j>>0]|0)==48:0){i=j+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:{u=4;break a}}o=Na[c[(c[t>>2]|0)+28>>2]&127](t,48)|0;p=c[h>>2]|0;c[h>>2]=p+1;a[p>>0]=o;j=j+2|0;p=Na[c[(c[t>>2]|0)+28>>2]&127](t,a[i>>0]|0)|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=p;i=j;while(1){if(i>>>0>=e>>>0)break a;p=a[i>>0]|0;if(!(ek(p,tn()|0)|0))break a;i=i+1|0}}else u=4;while(0);b:do if((u|0)==4){i=j;while(1){if(i>>>0>=e>>>0)break b;p=a[i>>0]|0;if(!(hk(p,tn()|0)|0))break b;i=i+1|0}}while(0);o=s+11|0;n=a[o>>0]|0;p=s+4|0;c:do if((n<<24>>24<0?c[p>>2]|0:n&255)|0){d:do if((j|0)!=(i|0)){l=j;k=i;while(1){k=k+-1|0;if(l>>>0>=k>>>0)break d;n=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=n;l=l+1|0}}while(0);n=La[c[(c[q>>2]|0)+16>>2]&127](q)|0;k=0;l=0;m=j;while(1){if(m>>>0>=i>>>0)break;w=a[((a[o>>0]|0)<0?c[s>>2]|0:s)+l>>0]|0;if(w<<24>>24>0&(k|0)==(w<<24>>24|0)){w=c[h>>2]|0;c[h>>2]=w+1;a[w>>0]=n;w=a[o>>0]|0;k=0;l=l+(l>>>0<((w<<24>>24<0?c[p>>2]|0:w&255)+-1|0)>>>0&1)|0}x=Na[c[(c[t>>2]|0)+28>>2]&127](t,a[m>>0]|0)|0;w=c[h>>2]|0;c[h>>2]=w+1;a[w>>0]=x;k=k+1|0;m=m+1|0}k=f+(j-b)|0;j=c[h>>2]|0;if((k|0)==(j|0))k=t;else while(1){j=j+-1|0;if(k>>>0>=j>>>0){k=t;break c}x=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=x;k=k+1|0}}else{Pa[c[(c[t>>2]|0)+32>>2]&7](t,j,i,c[h>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+(i-j);k=t}while(0);while(1){if(i>>>0>=e>>>0)break;j=a[i>>0]|0;if(j<<24>>24==46){u=32;break}w=Na[c[(c[k>>2]|0)+28>>2]&127](t,j)|0;x=c[h>>2]|0;c[h>>2]=x+1;a[x>>0]=w;i=i+1|0}if((u|0)==32){w=La[c[(c[q>>2]|0)+12>>2]&127](q)|0;x=c[h>>2]|0;c[h>>2]=x+1;a[x>>0]=w;i=i+1|0}Pa[c[(c[t>>2]|0)+32>>2]&7](t,i,e,c[h>>2]|0)|0;x=(c[h>>2]|0)+(r-i)|0;c[h>>2]=x;c[g>>2]=(d|0)==(e|0)?x:f+(d-b)|0;Wv(s);Ia=v;return}function So(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;if(e&2048){a[b>>0]=43;b=b+1|0}if(e&512){a[b>>0]=35;b=b+1|0}f=b;while(1){b=a[c>>0]|0;if(!(b<<24>>24))break;a[f>>0]=b;f=f+1|0;c=c+1|0}switch(e&74){case 64:{b=111;break}case 8:{b=(9?e>>>9:e)&32^120;break}default:b=d?100:117}a[f>>0]=b;return}function To(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=Ia;Ia=Ia+16|0;q=r;p=qn(i,1182988)|0;l=qn(i,1183004)|0;Ya[c[(c[l>>2]|0)+20>>2]&127](q,l);n=q+11|0;m=a[n>>0]|0;o=q+4|0;if((m<<24>>24<0?c[o>>2]|0:m&255)|0){c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{m=Na[c[(c[p>>2]|0)+28>>2]&127](p,i)|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=m;i=b+1|0;break}default:i=b}a:do if((e-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}m=Na[c[(c[p>>2]|0)+28>>2]&127](p,48)|0;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=m;k=Na[c[(c[p>>2]|0)+28>>2]&127](p,a[j>>0]|0)|0;m=c[h>>2]|0;c[h>>2]=m+1;a[m>>0]=k;i=i+2|0}while(0);b:do if((i|0)!=(e|0)){k=i;j=e;while(1){j=j+-1|0;if(k>>>0>=j>>>0)break b;m=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=m;k=k+1|0}}while(0);m=La[c[(c[l>>2]|0)+16>>2]&127](l)|0;j=0;k=0;l=i;while(1){if(l>>>0>=e>>>0)break;s=a[((a[n>>0]|0)<0?c[q>>2]|0:q)+k>>0]|0;if(s<<24>>24!=0&(j|0)==(s<<24>>24|0)){s=c[h>>2]|0;c[h>>2]=s+1;a[s>>0]=m;s=a[n>>0]|0;j=0;k=k+(k>>>0<((s<<24>>24<0?c[o>>2]|0:s&255)+-1|0)>>>0&1)|0}t=Na[c[(c[p>>2]|0)+28>>2]&127](p,a[l>>0]|0)|0;s=c[h>>2]|0;c[h>>2]=s+1;a[s>>0]=t;j=j+1|0;l=l+1|0}i=f+(i-b)|0;j=c[h>>2]|0;if((i|0)!=(j|0)){while(1){j=j+-1|0;if(i>>>0>=j>>>0)break;t=a[i>>0]|0;a[i>>0]=a[j>>0]|0;a[j>>0]=t;i=i+1|0}i=c[h>>2]|0}}else{Pa[c[(c[p>>2]|0)+32>>2]&7](p,b,e,f)|0;i=f+(e-b)|0;c[h>>2]=i}c[g>>2]=(d|0)==(e|0)?i:f+(d-b)|0;Wv(q);Ia=r;return}function Uo(a){a=a|0;Wm(a);return}function Vo(a){a=a|0;Wm(a);Jv(a);return}function Wo(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+16|0;k=l+4|0;h=l;if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];f=Ra[j&31](b,k,e,f,g&1)|0}else{Ql(k,e);f=qn(k,1183028)|0;rn(k);e=c[f>>2]|0;if(g)Ya[c[e+24>>2]&127](k,f);else Ya[c[e+28>>2]&127](k,f);i=k+8+3|0;b=a[i>>0]|0;g=c[k>>2]|0;j=k+4|0;f=g;e=b;g=b<<24>>24<0?g:k;while(1){b=e<<24>>24<0;if((g|0)==((b?f:k)+((b?c[j>>2]|0:e&255)<<2)|0))break;f=c[g>>2]|0;e=c[d>>2]|0;if(e|0){b=e+24|0;h=c[b>>2]|0;if((h|0)==(c[e+28>>2]|0)){b=c[(c[e>>2]|0)+52>>2]|0;f=il(f)|0;f=Na[b&127](e,f)|0}else{c[b>>2]=h+4;c[h>>2]=f;f=il(f)|0}if(Rl(f,hl()|0)|0)c[d>>2]=0}f=c[k>>2]|0;e=a[i>>0]|0;g=g+4|0}f=c[d>>2]|0;rw(k)}Ia=l;return f|0}function Xo(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ia;Ia=Ia+32|0;k=h;n=h+16|0;m=h+12|0;b=h+4|0;l=h+8|0;a[n>>0]=a[46396]|0;a[n+1>>0]=a[46397]|0;a[n+2>>0]=a[46398]|0;a[n+3>>0]=a[46399]|0;a[n+4>>0]=a[46400]|0;a[n+5>>0]=a[46401]|0;p=e+4|0;So(n+1|0,49698,1,c[p>>2]|0);p=c[p>>2]|0;p=(9?p>>>9:p)&1;q=p+13|0;i=sa()|0;o=Ia;Ia=Ia+((1*q|0)+15&-16)|0;j=tn()|0;c[k>>2]=g;g=o+(No(o,q,j,n,k)|0)|0;n=Oo(o,g,e)|0;j=Ia;Ia=Ia+((1*((p<<1|24)+-1<<2)|0)+15&-16)|0;Ql(k,e);ep(o,n,g,j,m,b,k);rn(k);c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=cp(k,j,g,b,e,f)|0;ra(i|0);Ia=h;return b|0}function Yo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=Ia;Ia=Ia+32|0;j=h+8|0;m=h;l=h+24|0;a=h+16|0;k=h+20|0;o=m;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;So(m+1|0,49703,1,c[o>>2]|0);o=c[o>>2]|0;o=(9?o>>>9:o)&1;q=o+23|0;i=sa()|0;n=Ia;Ia=Ia+((1*q|0)+15&-16)|0;p=tn()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(No(n,q,p,m,j)|0)|0;m=Oo(n,f,d)|0;g=Ia;Ia=Ia+((1*((o<<1|44)+-1<<2)|0)+15&-16)|0;Ql(j,d);ep(n,m,f,g,l,a,j);rn(j);c[k>>2]=c[b>>2];b=c[l>>2]|0;a=c[a>>2]|0;c[j>>2]=c[k>>2];a=cp(j,g,b,a,d,e)|0;ra(i|0);Ia=h;return a|0}function Zo(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=Ia;Ia=Ia+32|0;k=h;n=h+16|0;m=h+12|0;b=h+4|0;l=h+8|0;a[n>>0]=a[46396]|0;a[n+1>>0]=a[46397]|0;a[n+2>>0]=a[46398]|0;a[n+3>>0]=a[46399]|0;a[n+4>>0]=a[46400]|0;a[n+5>>0]=a[46401]|0;p=e+4|0;So(n+1|0,49698,0,c[p>>2]|0);p=c[p>>2]|0;p=(9?p>>>9:p)&1;q=p|12;i=sa()|0;o=Ia;Ia=Ia+((1*q|0)+15&-16)|0;j=tn()|0;c[k>>2]=g;g=o+(No(o,q,j,n,k)|0)|0;n=Oo(o,g,e)|0;j=Ia;Ia=Ia+((1*((p<<1|21)<<2)|0)+15&-16)|0;Ql(k,e);ep(o,n,g,j,m,b,k);rn(k);c[l>>2]=c[d>>2];g=c[m>>2]|0;b=c[b>>2]|0;c[k>>2]=c[l>>2];b=cp(k,j,g,b,e,f)|0;ra(i|0);Ia=h;return b|0}function _o(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;h=Ia;Ia=Ia+32|0;j=h+8|0;m=h;l=h+24|0;a=h+16|0;k=h+20|0;o=m;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;So(m+1|0,49703,0,c[o>>2]|0);o=c[o>>2]|0;o=(9?o>>>9:o)&1|22;q=o+1|0;i=sa()|0;n=Ia;Ia=Ia+((1*q|0)+15&-16)|0;p=tn()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(No(n,q,p,m,j)|0)|0;m=Oo(n,f,d)|0;g=Ia;Ia=Ia+((1*((o<<1)+-1<<2)|0)+15&-16)|0;Ql(j,d);ep(n,m,f,g,l,a,j);rn(j);c[k>>2]=c[b>>2];b=c[l>>2]|0;a=c[a>>2]|0;c[j>>2]=c[k>>2];a=cp(j,g,b,a,d,e)|0;ra(i|0);Ia=h;return a|0}function $o(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=Ia;Ia=Ia+352|0;u=x+344|0;m=x+320|0;l=x+304|0;i=x+296|0;h=x+280|0;j=x+272|0;o=x+240|0;n=x+340|0;p=x;s=x+336|0;r=x+332|0;t=x+328|0;k=j;c[k>>2]=37;c[k+4>>2]=0;k=Po(j+1|0,1183440,c[d+4>>2]|0)|0;c[n>>2]=o;a=tn()|0;if(k){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=No(o,30,a,j,h)|0}else{g[i>>3]=f;a=No(o,30,a,j,i)|0}if((a|0)>29){a=tn()|0;if(k){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=Qo(n,a,j,l)|0}else{g[m>>3]=f;h=Qo(n,a,j,m)|0}a=c[n>>2]|0;if(!a)Fv();else{v=a;z=a;q=h}}else{v=c[n>>2]|0;z=0;q=a}h=v+q|0;i=Oo(v,h,d)|0;do if((v|0)!=(o|0)){a=kk(q<<3)|0;if(!a)Fv();else{y=a;w=a;A=0;break}}else{y=0;w=p;A=1}while(0);Ql(u,d);dp(v,i,h,w,s,r,u);rn(u);c[t>>2]=c[b>>2];v=c[s>>2]|0;a=c[r>>2]|0;c[u>>2]=c[t>>2];a=cp(u,w,v,a,d,e)|0;c[b>>2]=a;if(!A)lk(y);lk(z);Ia=x;return a|0}function ap(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;x=Ia;Ia=Ia+352|0;u=x+344|0;m=x+320|0;l=x+304|0;i=x+296|0;h=x+280|0;j=x+272|0;o=x+240|0;n=x+340|0;p=x;s=x+336|0;r=x+332|0;t=x+328|0;k=j;c[k>>2]=37;c[k+4>>2]=0;k=Po(j+1|0,46394,c[d+4>>2]|0)|0;c[n>>2]=o;a=tn()|0;if(k){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=No(o,30,a,j,h)|0}else{g[i>>3]=f;a=No(o,30,a,j,i)|0}if((a|0)>29){a=tn()|0;if(k){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=Qo(n,a,j,l)|0}else{g[m>>3]=f;h=Qo(n,a,j,m)|0}a=c[n>>2]|0;if(!a)Fv();else{v=a;z=a;q=h}}else{v=c[n>>2]|0;z=0;q=a}h=v+q|0;i=Oo(v,h,d)|0;do if((v|0)!=(o|0)){a=kk(q<<3)|0;if(!a)Fv();else{y=a;w=a;A=0;break}}else{y=0;w=p;A=1}while(0);Ql(u,d);dp(v,i,h,w,s,r,u);rn(u);c[t>>2]=c[b>>2];v=c[s>>2]|0;a=c[r>>2]|0;c[u>>2]=c[t>>2];a=cp(u,w,v,a,d,e)|0;c[b>>2]=a;if(!A)lk(y);lk(z);Ia=x;return a|0}function bp(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=Ia;Ia=Ia+208|0;l=h+184|0;b=h+192|0;i=h+160|0;j=h;m=h+188|0;a[b>>0]=a[46388]|0;a[b+1>>0]=a[46389]|0;a[b+2>>0]=a[46390]|0;a[b+3>>0]=a[46391]|0;a[b+4>>0]=a[46392]|0;a[b+5>>0]=a[46393]|0;k=tn()|0;c[l>>2]=g;b=No(i,20,k,b,l)|0;k=i+b|0;g=Oo(i,k,e)|0;Ql(l,e);n=qn(l,1183020)|0;rn(l);Pa[c[(c[n>>2]|0)+48>>2]&7](n,i,k,j)|0;b=j+(b<<2)|0;c[m>>2]=c[d>>2];c[l>>2]=c[m>>2];b=cp(l,j,(g|0)==(k|0)?b:j+(g-i<<2)|0,b,e,f)|0;Ia=h;return b|0}function cp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=Ia;Ia=Ia+16|0;m=n;i=c[b>>2]|0;a:do if(!i)i=0;else{o=d;k=f-o|0;k=2?k>>2:k;l=g+12|0;g=c[l>>2]|0;g=(g|0)>(k|0)?g-k|0:0;k=e;o=k-o|0;j=2?o>>2:o;if((o|0)>0?(Oa[c[(c[i>>2]|0)+48>>2]&31](i,d,j)|0)!=(j|0):0){c[b>>2]=0;i=0;break}do if((g|0)>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;pw(m,g,h);if((Oa[c[(c[i>>2]|0)+48>>2]&31](i,(a[m+8+3>>0]|0)<0?c[m>>2]|0:m,g)|0)==(g|0)){rw(m);break}else{c[b>>2]=0;rw(m);i=0;break a}}while(0);o=f-k|0;f=2?o>>2:o;if((o|0)>0?(Oa[c[(c[i>>2]|0)+48>>2]&31](i,e,f)|0)!=(f|0):0){c[b>>2]=0;i=0;break}c[l>>2]=0}while(0);Ia=n;return i|0}function dp(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=Ia;Ia=Ia+16|0;s=v;t=qn(i,1183020)|0;q=qn(i,1183028)|0;Ya[c[(c[q>>2]|0)+20>>2]&127](s,q);c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{r=Na[c[(c[t>>2]|0)+44>>2]&127](t,i)|0;j=c[h>>2]|0;c[h>>2]=j+4;c[j>>2]=r;j=b+1|0;break}default:j=b}r=e;a:do if((r-j|0)>1?(a[j>>0]|0)==48:0){i=j+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:{u=4;break a}}o=Na[c[(c[t>>2]|0)+44>>2]&127](t,48)|0;p=c[h>>2]|0;c[h>>2]=p+4;c[p>>2]=o;j=j+2|0;p=Na[c[(c[t>>2]|0)+44>>2]&127](t,a[i>>0]|0)|0;i=c[h>>2]|0;c[h>>2]=i+4;c[i>>2]=p;i=j;while(1){if(i>>>0>=e>>>0)break a;p=a[i>>0]|0;if(!(ek(p,tn()|0)|0))break a;i=i+1|0}}else u=4;while(0);b:do if((u|0)==4){i=j;while(1){if(i>>>0>=e>>>0)break b;p=a[i>>0]|0;if(!(hk(p,tn()|0)|0))break b;i=i+1|0}}while(0);o=s+11|0;n=a[o>>0]|0;p=s+4|0;c:do if((n<<24>>24<0?c[p>>2]|0:n&255)|0){d:do if((j|0)!=(i|0)){l=j;k=i;while(1){k=k+-1|0;if(l>>>0>=k>>>0)break d;n=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=n;l=l+1|0}}while(0);n=La[c[(c[q>>2]|0)+16>>2]&127](q)|0;k=0;l=0;m=j;while(1){if(m>>>0>=i>>>0)break;w=a[((a[o>>0]|0)<0?c[s>>2]|0:s)+l>>0]|0;if(w<<24>>24>0&(k|0)==(w<<24>>24|0)){w=c[h>>2]|0;c[h>>2]=w+4;c[w>>2]=n;w=a[o>>0]|0;k=0;l=l+(l>>>0<((w<<24>>24<0?c[p>>2]|0:w&255)+-1|0)>>>0&1)|0}x=Na[c[(c[t>>2]|0)+44>>2]&127](t,a[m>>0]|0)|0;w=c[h>>2]|0;c[h>>2]=w+4;c[w>>2]=x;k=k+1|0;m=m+1|0}k=f+(j-b<<2)|0;j=c[h>>2]|0;if((k|0)==(j|0)){l=t;j=k}else{l=k;k=j;while(1){k=k+-4|0;if(l>>>0>=k>>>0){l=t;break c}x=c[l>>2]|0;c[l>>2]=c[k>>2];c[k>>2]=x;l=l+4|0}}}else{Pa[c[(c[t>>2]|0)+48>>2]&7](t,j,i,c[h>>2]|0)|0;j=(c[h>>2]|0)+(i-j<<2)|0;c[h>>2]=j;l=t}while(0);while(1){if(i>>>0>=e>>>0)break;j=a[i>>0]|0;if(j<<24>>24==46){u=32;break}w=Na[c[(c[l>>2]|0)+44>>2]&127](t,j)|0;x=c[h>>2]|0;j=x+4|0;c[h>>2]=j;c[x>>2]=w;i=i+1|0}if((u|0)==32){w=La[c[(c[q>>2]|0)+12>>2]&127](q)|0;x=c[h>>2]|0;j=x+4|0;c[h>>2]=j;c[x>>2]=w;i=i+1|0}Pa[c[(c[t>>2]|0)+48>>2]&7](t,i,e,j)|0;x=(c[h>>2]|0)+(r-i<<2)|0;c[h>>2]=x;c[g>>2]=(d|0)==(e|0)?x:f+(d-b<<2)|0;Wv(s);Ia=v;return}function ep(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=Ia;Ia=Ia+16|0;q=r;p=qn(i,1183020)|0;l=qn(i,1183028)|0;Ya[c[(c[l>>2]|0)+20>>2]&127](q,l);n=q+11|0;m=a[n>>0]|0;o=q+4|0;if((m<<24>>24<0?c[o>>2]|0:m&255)|0){c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{m=Na[c[(c[p>>2]|0)+44>>2]&127](p,i)|0;i=c[h>>2]|0;c[h>>2]=i+4;c[i>>2]=m;i=b+1|0;break}default:i=b}a:do if((e-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}m=Na[c[(c[p>>2]|0)+44>>2]&127](p,48)|0;k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=m;k=Na[c[(c[p>>2]|0)+44>>2]&127](p,a[j>>0]|0)|0;m=c[h>>2]|0;c[h>>2]=m+4;c[m>>2]=k;i=i+2|0}while(0);b:do if((i|0)!=(e|0)){k=i;j=e;while(1){j=j+-1|0;if(k>>>0>=j>>>0)break b;m=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=m;k=k+1|0}}while(0);m=La[c[(c[l>>2]|0)+16>>2]&127](l)|0;j=0;k=0;l=i;while(1){if(l>>>0>=e>>>0)break;s=a[((a[n>>0]|0)<0?c[q>>2]|0:q)+k>>0]|0;if(s<<24>>24!=0&(j|0)==(s<<24>>24|0)){s=c[h>>2]|0;c[h>>2]=s+4;c[s>>2]=m;s=a[n>>0]|0;j=0;k=k+(k>>>0<((s<<24>>24<0?c[o>>2]|0:s&255)+-1|0)>>>0&1)|0}t=Na[c[(c[p>>2]|0)+44>>2]&127](p,a[l>>0]|0)|0;s=c[h>>2]|0;c[h>>2]=s+4;c[s>>2]=t;j=j+1|0;l=l+1|0}i=f+(i-b<<2)|0;j=c[h>>2]|0;if((i|0)!=(j|0)){while(1){j=j+-4|0;if(i>>>0>=j>>>0)break;t=c[i>>2]|0;c[i>>2]=c[j>>2];c[j>>2]=t;i=i+4|0}i=c[h>>2]|0}}else{Pa[c[(c[p>>2]|0)+48>>2]&7](p,b,e,f)|0;i=f+(e-b<<2)|0;c[h>>2]=i}c[g>>2]=(d|0)==(e|0)?i:f+(d-b<<2)|0;Wv(q);Ia=r;return}function fp(a){a=a|0;Wm(a);return}function gp(a){a=a|0;Wm(a);Jv(a);return}function hp(a){a=a|0;return 2}function ip(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Ap(a,j,i,e,f,g,46919,46927)|0;Ia=h;return a|0}function jp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=Ia;Ia=Ia+16|0;j=i+12|0;k=i+8|0;m=i+4|0;l=i;n=b+8|0;n=La[c[(c[n>>2]|0)+20>>2]&127](n)|0;c[m>>2]=c[d>>2];c[l>>2]=c[e>>2];e=a[n+11>>0]|0;o=e<<24>>24<0;d=o?c[n>>2]|0:n;e=d+(o?c[n+4>>2]|0:e&255)|0;c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];b=Ap(b,k,j,f,g,h,d,e)|0;Ia=i;return b|0}function kp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;Ql(i,e);e=qn(i,1182988)|0;rn(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];yp(a,g+24|0,b,i,f,e);Ia=h;return c[b>>2]|0}function lp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;Ql(i,e);e=qn(i,1182988)|0;rn(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];zp(a,g+16|0,b,i,f,e);Ia=h;return c[b>>2]|0}function mp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;Ql(i,e);e=qn(i,1182988)|0;rn(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];Lp(a,g+20|0,b,i,f,e);Ia=h;return c[b>>2]|0}function np(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;R=Ia;Ia=Ia+144|0;P=R+128|0;K=R+112|0;j=R+124|0;q=R+120|0;F=R+116|0;I=R+108|0;k=R+104|0;l=R+100|0;m=R+96|0;n=R+92|0;o=R+88|0;p=R+84|0;r=R+80|0;s=R+76|0;t=R+72|0;u=R+68|0;v=R+64|0;w=R+60|0;x=R+56|0;y=R+52|0;z=R+48|0;A=R+44|0;B=R+40|0;C=R+36|0;D=R+32|0;E=R+28|0;G=R+24|0;H=R+20|0;J=R+16|0;L=R+12|0;M=R+8|0;N=R+4|0;O=R;c[g>>2]=0;Ql(P,f);Q=qn(P,1182988)|0;rn(P);do switch(i<<24>>24|0){case 65:case 97:{c[j>>2]=c[e>>2];c[P>>2]=c[j>>2];yp(b,h+24|0,d,P,g,Q);S=26;break}case 104:case 66:case 98:{c[q>>2]=c[e>>2];c[P>>2]=c[q>>2];zp(b,h+16|0,d,P,g,Q);S=26;break}case 99:{Q=b+8|0;Q=La[c[(c[Q>>2]|0)+12>>2]&127](Q)|0;c[F>>2]=c[d>>2];c[I>>2]=c[e>>2];S=a[Q+11>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+(e?c[Q+4>>2]|0:S&255)|0;c[K>>2]=c[F>>2];c[P>>2]=c[I>>2];c[d>>2]=Ap(b,K,P,f,g,h,i,S)|0;S=26;break}case 101:case 100:{c[k>>2]=c[e>>2];c[P>>2]=c[k>>2];Bp(b,h+12|0,d,P,g,Q);S=26;break}case 68:{c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];c[K>>2]=c[l>>2];c[P>>2]=c[m>>2];c[d>>2]=Ap(b,K,P,f,g,h,46879,46887)|0;S=26;break}case 70:{c[n>>2]=c[d>>2];c[o>>2]=c[e>>2];c[K>>2]=c[n>>2];c[P>>2]=c[o>>2];c[d>>2]=Ap(b,K,P,f,g,h,46887,46895)|0;S=26;break}case 72:{c[p>>2]=c[e>>2];c[P>>2]=c[p>>2];Cp(b,h+8|0,d,P,g,Q);S=26;break}case 73:{c[r>>2]=c[e>>2];c[P>>2]=c[r>>2];Dp(b,h+8|0,d,P,g,Q);S=26;break}case 106:{c[s>>2]=c[e>>2];c[P>>2]=c[s>>2];Ep(b,h+28|0,d,P,g,Q);S=26;break}case 109:{c[t>>2]=c[e>>2];c[P>>2]=c[t>>2];Fp(b,h+16|0,d,P,g,Q);S=26;break}case 77:{c[u>>2]=c[e>>2];c[P>>2]=c[u>>2];Gp(b,h+4|0,d,P,g,Q);S=26;break}case 116:case 110:{c[v>>2]=c[e>>2];c[P>>2]=c[v>>2];Hp(b,d,P,g,Q);S=26;break}case 112:{c[w>>2]=c[e>>2];c[P>>2]=c[w>>2];Ip(b,h+8|0,d,P,g,Q);S=26;break}case 114:{c[x>>2]=c[d>>2];c[y>>2]=c[e>>2];c[K>>2]=c[x>>2];c[P>>2]=c[y>>2];c[d>>2]=Ap(b,K,P,f,g,h,46895,46906)|0;S=26;break}case 82:{c[z>>2]=c[d>>2];c[A>>2]=c[e>>2];c[K>>2]=c[z>>2];c[P>>2]=c[A>>2];c[d>>2]=Ap(b,K,P,f,g,h,46906,46911)|0;S=26;break}case 83:{c[B>>2]=c[e>>2];c[P>>2]=c[B>>2];Jp(b,h,d,P,g,Q);S=26;break}case 84:{c[C>>2]=c[d>>2];c[D>>2]=c[e>>2];c[K>>2]=c[C>>2];c[P>>2]=c[D>>2];c[d>>2]=Ap(b,K,P,f,g,h,46911,46919)|0;S=26;break}case 119:{c[E>>2]=c[e>>2];c[P>>2]=c[E>>2];Kp(b,h+24|0,d,P,g,Q);S=26;break}case 120:{j=c[(c[b>>2]|0)+20>>2]|0;c[G>>2]=c[d>>2];c[H>>2]=c[e>>2];c[K>>2]=c[G>>2];c[P>>2]=c[H>>2];j=Ta[j&63](b,K,P,f,g,h)|0;break}case 88:{Q=b+8|0;Q=La[c[(c[Q>>2]|0)+24>>2]&127](Q)|0;c[J>>2]=c[d>>2];c[L>>2]=c[e>>2];S=a[Q+11>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+(e?c[Q+4>>2]|0:S&255)|0;c[K>>2]=c[J>>2];c[P>>2]=c[L>>2];c[d>>2]=Ap(b,K,P,f,g,h,i,S)|0;S=26;break}case 121:{c[M>>2]=c[e>>2];c[P>>2]=c[M>>2];Lp(b,h+20|0,d,P,g,Q);S=26;break}case 89:{c[N>>2]=c[e>>2];c[P>>2]=c[N>>2];Mp(b,h+20|0,d,P,g,Q);S=26;break}case 37:{c[O>>2]=c[e>>2];c[P>>2]=c[O>>2];Np(b,d,P,g,Q);S=26;break}default:{c[g>>2]=c[g>>2]|4;S=26}}while(0);if((S|0)==26)j=c[d>>2]|0;Ia=R;return j|0}function op(b){b=b|0;if((a[1180104]|0)==0?hJ(1180104)|0:0){xp();c[295779]=1173760;jJ(1180104)}return c[295779]|0}function pp(b){b=b|0;if((a[1180088]|0)==0?hJ(1180088)|0:0){wp();c[295778]=1173472;jJ(1180088)}return c[295778]|0}function qp(b){b=b|0;if((a[1180072]|0)==0?hJ(1180072)|0:0){vp();c[295777]=1173440;jJ(1180072)}return c[295777]|0}function rp(b){b=b|0;if((a[1180064]|0)==0?hJ(1180064)|0:0){c[295774]=0;c[295775]=0;c[295776]=0;Sv(1183096,46637,Ml(46637)|0);jJ(1180064)}return 1183096}function sp(b){b=b|0;if((a[1180056]|0)==0?hJ(1180056)|0:0){c[295771]=0;c[295772]=0;c[295773]=0;Sv(1183084,46625,Ml(46625)|0);jJ(1180056)}return 1183084}function tp(b){b=b|0;if((a[1180048]|0)==0?hJ(1180048)|0:0){c[295768]=0;c[295769]=0;c[295770]=0;Sv(1183072,46616,Ml(46616)|0);jJ(1180048)}return 1183072}function up(b){b=b|0;if((a[1180040]|0)==0?hJ(1180040)|0:0){c[295765]=0;c[295766]=0;c[295767]=0;Sv(1183060,46607,Ml(46607)|0);jJ(1180040)}return 1183060}function vp(){var b=0,d=0;if((a[1180080]|0)==0?hJ(1180080)|0:0){d=1173440;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=1173464);jJ(1180080)}$v(1173440,46658)|0;$v(1173452,46661)|0;return}function wp(){var b=0,d=0;if((a[1180096]|0)==0?hJ(1180096)|0:0){d=1173472;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=1173760);jJ(1180096)}$v(1173472,46664)|0;$v(1173484,46672)|0;$v(1173496,46681)|0;$v(1173508,46687)|0;$v(1173520,46693)|0;$v(1173532,46697)|0;$v(1173544,46702)|0;$v(1173556,46707)|0;$v(1173568,46714)|0;$v(1173580,46724)|0;$v(1173592,46732)|0;$v(1173604,46741)|0;$v(1173616,46750)|0;$v(1173628,46754)|0;$v(1173640,46758)|0;$v(1173652,46762)|0;$v(1173664,46693)|0;$v(1173676,46766)|0;$v(1173688,46770)|0;$v(1173700,46774)|0;$v(1173712,46778)|0;$v(1173724,46782)|0;$v(1173736,46786)|0;$v(1173748,46790)|0;return}function xp(){var b=0,d=0;if((a[1180112]|0)==0?hJ(1180112)|0:0){d=1173760;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=1173928);jJ(1180112)}$v(1173760,46794)|0;$v(1173772,46801)|0;$v(1173784,46808)|0;$v(1173796,46816)|0;$v(1173808,46826)|0;$v(1173820,46835)|0;$v(1173832,46842)|0;$v(1173844,46851)|0;$v(1173856,46855)|0;$v(1173868,46859)|0;$v(1173880,46863)|0;$v(1173892,46867)|0;$v(1173904,46871)|0;$v(1173916,46875)|0;return}function yp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;a=a+8|0;a=La[c[c[a>>2]>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];d=(_n(d,i,a,a+168|0,g,f,0)|0)-a|0;if((d|0)<168)c[b>>2]=((d|0)/12|0|0)%7|0;Ia=h;return}function zp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;a=a+8|0;a=La[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];d=(_n(d,i,a,a+288|0,g,f,0)|0)-a|0;if((d|0)<288)c[b>>2]=((d|0)/12|0|0)%12|0;Ia=h;return}function Ap(d,e,f,g,h,i,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=Ia;Ia=Ia+16|0;w=z+12|0;u=z+8|0;t=z+4|0;v=z;Ql(w,g);x=qn(w,1182988)|0;rn(w);c[h>>2]=0;s=x+8|0;m=0;a:while(1){l=c[e>>2]|0;if(!((j|0)!=(k|0)&(m|0)==0))break;n=l;if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))m=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=Sk(a[m>>0]|0)|0;if(Pl(m,Rk()|0)|0){c[e>>2]=0;n=0;l=0;q=1}else q=0}else{l=0;q=1}p=c[f>>2]|0;m=p;do if(p){o=c[p+12>>2]|0;if((o|0)==(c[p+16>>2]|0))o=La[c[(c[p>>2]|0)+36>>2]&127](p)|0;else o=Sk(a[o>>0]|0)|0;if(!(Pl(o,Rk()|0)|0))if(q){o=p;break}else{y=63;break a}else{c[f>>2]=0;m=0;y=15;break}}else y=15;while(0);if((y|0)==15){y=0;if(q){y=63;break}else o=0}b:do if((Oa[c[(c[x>>2]|0)+36>>2]&31](x,a[j>>0]|0,0)|0)<<24>>24==37){o=j+1|0;if((o|0)==(k|0)){y=63;break a}q=Oa[c[(c[x>>2]|0)+36>>2]&31](x,a[o>>0]|0,0)|0;switch(q<<24>>24){case 48:case 69:{p=j+2|0;if((p|0)==(k|0)){y=63;break a}j=o;o=Oa[c[(c[x>>2]|0)+36>>2]&31](x,a[p>>0]|0,0)|0;l=q;break}default:{o=q;l=0}}q=c[(c[d>>2]|0)+36>>2]|0;c[t>>2]=n;c[v>>2]=m;c[u>>2]=c[t>>2];c[w>>2]=c[v>>2];c[e>>2]=Va[q&15](d,u,w,g,h,i,o,l)|0;j=j+2|0}else{m=a[j>>0]|0;if(m<<24>>24>-1?(r=c[s>>2]|0,b[r+(m<<24>>24<<1)>>1]&8192):0){do{j=j+1|0;if((j|0)==(k|0)){j=k;break}m=a[j>>0]|0;if(m<<24>>24<=-1)break}while((b[r+(m<<24>>24<<1)>>1]&8192)!=0);while(1){if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))m=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=Sk(a[m>>0]|0)|0;if(Pl(m,Rk()|0)|0){c[e>>2]=0;l=0;n=1}else n=0}else{l=0;n=1}do if(o){m=c[o+12>>2]|0;if((m|0)==(c[o+16>>2]|0))m=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else m=Sk(a[m>>0]|0)|0;if(!(Pl(m,Rk()|0)|0))if(n){p=o;break}else break b;else{c[f>>2]=0;y=42;break}}else y=42;while(0);if((y|0)==42){y=0;if(n)break b;else p=0}o=l+12|0;m=c[o>>2]|0;n=l+16|0;if((m|0)==(c[n>>2]|0))m=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=Sk(a[m>>0]|0)|0;if((m&255)<<24>>24<=-1)break b;q=m<<24;if(!(b[(c[s>>2]|0)+((24?q>>24:q)<<1)>>1]&8192))break b;m=c[o>>2]|0;if((m|0)==(c[n>>2]|0))La[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[o>>2]=m+1;Sk(a[m>>0]|0)|0}o=p}}o=l+12|0;m=c[o>>2]|0;n=l+16|0;if((m|0)==(c[n>>2]|0))m=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=Sk(a[m>>0]|0)|0;q=Na[c[(c[x>>2]|0)+12>>2]&127](x,m&255)|0;if(q<<24>>24!=(Na[c[(c[x>>2]|0)+12>>2]&127](x,a[j>>0]|0)|0)<<24>>24){c[h>>2]=4;break}m=c[o>>2]|0;if((m|0)==(c[n>>2]|0))La[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[o>>2]=m+1;Sk(a[m>>0]|0)|0}j=j+1|0}while(0);m=c[h>>2]|0}if((y|0)==63)c[h>>2]=4;if(l){j=c[l+12>>2]|0;if((j|0)==(c[l+16>>2]|0))j=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else j=Sk(a[j>>0]|0)|0;if(Pl(j,Rk()|0)|0){c[e>>2]=0;n=1;m=0}else{n=0;m=l}}else{n=1;m=0}j=c[f>>2]|0;do if(j){l=c[j+12>>2]|0;if((l|0)==(c[j+16>>2]|0))j=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=Sk(a[l>>0]|0)|0;if(!(Pl(j,Rk()|0)|0))if(n)break;else{y=78;break}else{c[f>>2]=0;y=76;break}}else y=76;while(0);if((y|0)==76?n:0)y=78;if((y|0)==78)c[h>>2]=c[h>>2]|2;Ia=z;return m|0}function Bp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,2)|0;a=c[f>>2]|0;if((d+-1|0)>>>0<31&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function Cp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<24&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function Dp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,2)|0;a=c[f>>2]|0;if((d+-1|0)>>>0<12&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function Ep(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,3)|0;a=c[f>>2]|0;if((d|0)<366&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function Fp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<13&(a&4|0)==0)c[b>>2]=d+-1;else c[f>>2]=a|4;Ia=h;return}function Gp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<60&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function Hp(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;j=h+8|0;a:while(1){h=c[e>>2]|0;do if(h){d=c[h+12>>2]|0;if((d|0)==(c[h+16>>2]|0))h=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=Sk(a[d>>0]|0)|0;if(Pl(h,Rk()|0)|0){c[e>>2]=0;d=1;break}else{d=(c[e>>2]|0)==0;break}}else d=1;while(0);i=c[f>>2]|0;do if(i){h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=Sk(a[h>>0]|0)|0;if(!(Pl(h,Rk()|0)|0))if(d)break;else break a;else{c[f>>2]=0;k=15;break}}else k=15;while(0);if((k|0)==15){k=0;if(d){i=0;break}else i=0}h=c[e>>2]|0;d=c[h+12>>2]|0;if((d|0)==(c[h+16>>2]|0))h=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=Sk(a[d>>0]|0)|0;if((h&255)<<24>>24<=-1)break;d=h<<24;if(!(b[(c[j>>2]|0)+((24?d>>24:d)<<1)>>1]&8192))break;h=c[e>>2]|0;i=h+12|0;d=c[i>>2]|0;if((d|0)==(c[h+16>>2]|0))La[c[(c[h>>2]|0)+40>>2]&127](h)|0;else{c[i>>2]=d+1;Sk(a[d>>0]|0)|0}}h=c[e>>2]|0;do if(h){d=c[h+12>>2]|0;if((d|0)==(c[h+16>>2]|0))h=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=Sk(a[d>>0]|0)|0;if(Pl(h,Rk()|0)|0){c[e>>2]=0;d=1;break}else{d=(c[e>>2]|0)==0;break}}else d=1;while(0);do if(i){h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=Sk(a[h>>0]|0)|0;if(!(Pl(h,Rk()|0)|0))if(d)break;else{k=41;break}else{c[f>>2]=0;k=39;break}}else k=39;while(0);if((k|0)==39?d:0)k=41;if((k|0)==41)c[g>>2]=c[g>>2]|2;return}function Ip(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+16|0;l=m+4|0;k=m;j=b+8|0;j=La[c[(c[j>>2]|0)+8>>2]&127](j)|0;b=a[j+11>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+12+11>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){c[k>>2]=c[f>>2];c[l>>2]=c[k>>2];i=(_n(e,l,j,j+24|0,h,g,0)|0)-j|0;b=c[d>>2]|0;if((b|0)==12&(i|0)==0){c[d>>2]=0;break}if((b|0)<12&(i|0)==12)c[d>>2]=b+12}else c[g>>2]=c[g>>2]|4;while(0);Ia=m;return}function Jp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<61&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function Kp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=Op(d,a,f,g,1)|0;a=c[f>>2]|0;if((d|0)<7&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function Lp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=Op(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a|0)<100?a+1900|0:a;c[b>>2]=a+-1900}Ia=h;return}function Mp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=Op(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;Ia=h;return}function Np(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;b=c[d>>2]|0;do if(b){h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=Sk(a[h>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;i=1;break}else{i=(c[d>>2]|0)==0;break}}else i=1;while(0);h=c[e>>2]|0;do if(h){b=c[h+12>>2]|0;if((b|0)==(c[h+16>>2]|0))b=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(i){j=h;k=17;break}else{k=16;break}else{c[e>>2]=0;k=14;break}}else k=14;while(0);if((k|0)==14)if(i)k=16;else{j=0;k=17}a:do if((k|0)==16)c[f>>2]=c[f>>2]|6;else if((k|0)==17){b=c[d>>2]|0;h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=Sk(a[h>>0]|0)|0;if((Oa[c[(c[g>>2]|0)+36>>2]&31](g,b&255,0)|0)<<24>>24!=37){c[f>>2]=c[f>>2]|4;break}b=c[d>>2]|0;i=b+12|0;h=c[i>>2]|0;if((h|0)==(c[b+16>>2]|0))La[c[(c[b>>2]|0)+40>>2]&127](b)|0;else{c[i>>2]=h+1;Sk(a[h>>0]|0)|0}b=c[d>>2]|0;do if(b){h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=Sk(a[h>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;h=1;break}else{h=(c[d>>2]|0)==0;break}}else h=1;while(0);do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(h)break a;else break;else{c[e>>2]=0;k=38;break}}else k=38;while(0);if((k|0)==38?!h:0)break;c[f>>2]=c[f>>2]|2}while(0);return}function Op(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=c[d>>2]|0;do if(i){j=c[i+12>>2]|0;if((j|0)==(c[i+16>>2]|0))i=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else i=Sk(a[j>>0]|0)|0;if(Pl(i,Rk()|0)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);j=c[e>>2]|0;do if(j){i=c[j+12>>2]|0;if((i|0)==(c[j+16>>2]|0))i=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else i=Sk(a[i>>0]|0)|0;if(!(Pl(i,Rk()|0)|0))if(k){m=j;r=17;break}else{r=16;break}else{c[e>>2]=0;r=14;break}}else r=14;while(0);if((r|0)==14)if(k)r=16;else{m=0;r=17}a:do if((r|0)==16){c[f>>2]=c[f>>2]|6;i=0}else if((r|0)==17){i=c[d>>2]|0;j=c[i+12>>2]|0;if((j|0)==(c[i+16>>2]|0))j=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else j=Sk(a[j>>0]|0)|0;i=j&255;if(i<<24>>24>-1?(p=j<<24,q=g+8|0,b[(c[q>>2]|0)+((24?p>>24:p)<<1)>>1]&2048):0){i=(Oa[c[(c[g>>2]|0)+36>>2]&31](g,i,0)|0)<<24>>24;j=c[d>>2]|0;l=j+12|0;k=c[l>>2]|0;if((k|0)==(c[j+16>>2]|0))La[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[l>>2]=k+1;Sk(a[k>>0]|0)|0}n=m;while(1){i=i+-48|0;p=h+-1|0;j=c[d>>2]|0;do if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))j=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=Sk(a[k>>0]|0)|0;if(Pl(j,Rk()|0)|0){c[d>>2]=0;l=1;break}else{l=(c[d>>2]|0)==0;break}}else l=1;while(0);if(n){j=c[n+12>>2]|0;if((j|0)==(c[n+16>>2]|0))j=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else j=Sk(a[j>>0]|0)|0;if(Pl(j,Rk()|0)|0){c[e>>2]=0;j=1;o=0;m=0}else{j=0;o=m;m=n}}else{j=1;o=m;m=0}k=c[d>>2]|0;if(!((h|0)>1&(l^j)))break;j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0))k=La[c[(c[k>>2]|0)+36>>2]&127](k)|0;else k=Sk(a[j>>0]|0)|0;j=k&255;if(j<<24>>24<=-1)break a;h=k<<24;if(!(b[(c[q>>2]|0)+((24?h>>24:h)<<1)>>1]&2048))break a;i=(i*10|0)+((Oa[c[(c[g>>2]|0)+36>>2]&31](g,j,0)|0)<<24>>24)|0;j=c[d>>2]|0;l=j+12|0;k=c[l>>2]|0;if((k|0)==(c[j+16>>2]|0))La[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[l>>2]=k+1;Sk(a[k>>0]|0)|0}n=m;m=o;h=p}do if(k){j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0))j=La[c[(c[k>>2]|0)+36>>2]&127](k)|0;else j=Sk(a[j>>0]|0)|0;if(Pl(j,Rk()|0)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);do if(o){j=c[o+12>>2]|0;if((j|0)==(c[o+16>>2]|0))j=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else j=Sk(a[j>>0]|0)|0;if(!(Pl(j,Rk()|0)|0))if(k)break a;else break;else{c[e>>2]=0;r=63;break}}else r=63;while(0);if((r|0)==63?!k:0)break;c[f>>2]=c[f>>2]|2;break}c[f>>2]=c[f>>2]|4;i=0}while(0);return i|0}function Pp(a){a=a|0;Wm(a);return}function Qp(a){a=a|0;Wm(a);Jv(a);return}function Rp(a){a=a|0;return 2}function Sp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=jq(a,j,i,e,f,g,29008,29040)|0;Ia=h;return a|0}function Tp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=Ia;Ia=Ia+16|0;j=i+12|0;k=i+8|0;m=i+4|0;l=i;n=b+8|0;n=La[c[(c[n>>2]|0)+20>>2]&127](n)|0;c[m>>2]=c[d>>2];c[l>>2]=c[e>>2];e=a[n+8+3>>0]|0;o=e<<24>>24<0;d=o?c[n>>2]|0:n;e=d+((o?c[n+4>>2]|0:e&255)<<2)|0;c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];b=jq(b,k,j,f,g,h,d,e)|0;Ia=i;return b|0}function Up(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;Ql(i,e);e=qn(i,1183020)|0;rn(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];hq(a,g+24|0,b,i,f,e);Ia=h;return c[b>>2]|0}function Vp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;Ql(i,e);e=qn(i,1183020)|0;rn(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];iq(a,g+16|0,b,i,f,e);Ia=h;return c[b>>2]|0}function Wp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;Ql(i,e);e=qn(i,1183020)|0;rn(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];uq(a,g+20|0,b,i,f,e);Ia=h;return c[b>>2]|0}function Xp(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;R=Ia;Ia=Ia+144|0;P=R+128|0;K=R+112|0;j=R+124|0;q=R+120|0;F=R+116|0;I=R+108|0;k=R+104|0;l=R+100|0;m=R+96|0;n=R+92|0;o=R+88|0;p=R+84|0;r=R+80|0;s=R+76|0;t=R+72|0;u=R+68|0;v=R+64|0;w=R+60|0;x=R+56|0;y=R+52|0;z=R+48|0;A=R+44|0;B=R+40|0;C=R+36|0;D=R+32|0;E=R+28|0;G=R+24|0;H=R+20|0;J=R+16|0;L=R+12|0;M=R+8|0;N=R+4|0;O=R;c[g>>2]=0;Ql(P,f);Q=qn(P,1183020)|0;rn(P);do switch(i<<24>>24|0){case 65:case 97:{c[j>>2]=c[e>>2];c[P>>2]=c[j>>2];hq(b,h+24|0,d,P,g,Q);S=26;break}case 104:case 66:case 98:{c[q>>2]=c[e>>2];c[P>>2]=c[q>>2];iq(b,h+16|0,d,P,g,Q);S=26;break}case 99:{Q=b+8|0;Q=La[c[(c[Q>>2]|0)+12>>2]&127](Q)|0;c[F>>2]=c[d>>2];c[I>>2]=c[e>>2];S=a[Q+8+3>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+((e?c[Q+4>>2]|0:S&255)<<2)|0;c[K>>2]=c[F>>2];c[P>>2]=c[I>>2];c[d>>2]=jq(b,K,P,f,g,h,i,S)|0;S=26;break}case 101:case 100:{c[k>>2]=c[e>>2];c[P>>2]=c[k>>2];kq(b,h+12|0,d,P,g,Q);S=26;break}case 68:{c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];c[K>>2]=c[l>>2];c[P>>2]=c[m>>2];c[d>>2]=jq(b,K,P,f,g,h,28832,28864)|0;S=26;break}case 70:{c[n>>2]=c[d>>2];c[o>>2]=c[e>>2];c[K>>2]=c[n>>2];c[P>>2]=c[o>>2];c[d>>2]=jq(b,K,P,f,g,h,28864,28896)|0;S=26;break}case 72:{c[p>>2]=c[e>>2];c[P>>2]=c[p>>2];lq(b,h+8|0,d,P,g,Q);S=26;break}case 73:{c[r>>2]=c[e>>2];c[P>>2]=c[r>>2];mq(b,h+8|0,d,P,g,Q);S=26;break}case 106:{c[s>>2]=c[e>>2];c[P>>2]=c[s>>2];nq(b,h+28|0,d,P,g,Q);S=26;break}case 109:{c[t>>2]=c[e>>2];c[P>>2]=c[t>>2];oq(b,h+16|0,d,P,g,Q);S=26;break}case 77:{c[u>>2]=c[e>>2];c[P>>2]=c[u>>2];pq(b,h+4|0,d,P,g,Q);S=26;break}case 116:case 110:{c[v>>2]=c[e>>2];c[P>>2]=c[v>>2];qq(b,d,P,g,Q);S=26;break}case 112:{c[w>>2]=c[e>>2];c[P>>2]=c[w>>2];rq(b,h+8|0,d,P,g,Q);S=26;break}case 114:{c[x>>2]=c[d>>2];c[y>>2]=c[e>>2];c[K>>2]=c[x>>2];c[P>>2]=c[y>>2];c[d>>2]=jq(b,K,P,f,g,h,28896,28940)|0;S=26;break}case 82:{c[z>>2]=c[d>>2];c[A>>2]=c[e>>2];c[K>>2]=c[z>>2];c[P>>2]=c[A>>2];c[d>>2]=jq(b,K,P,f,g,h,28944,28964)|0;S=26;break}case 83:{c[B>>2]=c[e>>2];c[P>>2]=c[B>>2];sq(b,h,d,P,g,Q);S=26;break}case 84:{c[C>>2]=c[d>>2];c[D>>2]=c[e>>2];c[K>>2]=c[C>>2];c[P>>2]=c[D>>2];c[d>>2]=jq(b,K,P,f,g,h,28976,29008)|0;S=26;break}case 119:{c[E>>2]=c[e>>2];c[P>>2]=c[E>>2];tq(b,h+24|0,d,P,g,Q);S=26;break}case 120:{j=c[(c[b>>2]|0)+20>>2]|0;c[G>>2]=c[d>>2];c[H>>2]=c[e>>2];c[K>>2]=c[G>>2];c[P>>2]=c[H>>2];j=Ta[j&63](b,K,P,f,g,h)|0;break}case 88:{Q=b+8|0;Q=La[c[(c[Q>>2]|0)+24>>2]&127](Q)|0;c[J>>2]=c[d>>2];c[L>>2]=c[e>>2];S=a[Q+8+3>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+((e?c[Q+4>>2]|0:S&255)<<2)|0;c[K>>2]=c[J>>2];c[P>>2]=c[L>>2];c[d>>2]=jq(b,K,P,f,g,h,i,S)|0;S=26;break}case 121:{c[M>>2]=c[e>>2];c[P>>2]=c[M>>2];uq(b,h+20|0,d,P,g,Q);S=26;break}case 89:{c[N>>2]=c[e>>2];c[P>>2]=c[N>>2];vq(b,h+20|0,d,P,g,Q);S=26;break}case 37:{c[O>>2]=c[e>>2];c[P>>2]=c[O>>2];wq(b,d,P,g,Q);S=26;break}default:{c[g>>2]=c[g>>2]|4;S=26}}while(0);if((S|0)==26)j=c[d>>2]|0;Ia=R;return j|0}function Yp(b){b=b|0;if((a[1180184]|0)==0?hJ(1180184)|0:0){gq();c[295796]=1174256;jJ(1180184)}return c[295796]|0}function Zp(b){b=b|0;if((a[1180168]|0)==0?hJ(1180168)|0:0){fq();c[295795]=1173968;jJ(1180168)}return c[295795]|0}function _p(b){b=b|0;if((a[1180152]|0)==0?hJ(1180152)|0:0){eq();c[295794]=1173936;jJ(1180152)}return c[295794]|0}function $p(b){b=b|0;if((a[1180144]|0)==0?hJ(1180144)|0:0){c[295791]=0;c[295792]=0;c[295793]=0;ow(1183164,35940,dq(35940)|0);jJ(1180144)}return 1183164}function aq(b){b=b|0;if((a[1180136]|0)==0?hJ(1180136)|0:0){c[295788]=0;c[295789]=0;c[295790]=0;ow(1183152,35892,dq(35892)|0);jJ(1180136)}return 1183152}function bq(b){b=b|0;if((a[1180128]|0)==0?hJ(1180128)|0:0){c[295785]=0;c[295786]=0;c[295787]=0;ow(1183140,35856,dq(35856)|0);jJ(1180128)}return 1183140}function cq(b){b=b|0;if((a[1180120]|0)==0?hJ(1180120)|0:0){c[295782]=0;c[295783]=0;c[295784]=0;ow(1183128,35820,dq(35820)|0);jJ(1180120)}return 1183128}function dq(a){a=a|0;return ii(a)|0}function eq(){var b=0,d=0;if((a[1180160]|0)==0?hJ(1180160)|0:0){d=1173936;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=1173960);jJ(1180160)}vw(1173936,36024)|0;vw(1173948,36036)|0;return}function fq(){var b=0,d=0;if((a[1180176]|0)==0?hJ(1180176)|0:0){d=1173968;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=1174256);jJ(1180176)}vw(1173968,36048)|0;vw(1173980,36080)|0;vw(1173992,36116)|0;vw(1174004,36140)|0;vw(1174016,36164)|0;vw(1174028,36180)|0;vw(1174040,36200)|0;vw(1174052,36220)|0;vw(1174064,36248)|0;vw(1174076,36288)|0;vw(1174088,36320)|0;vw(1174100,36356)|0;vw(1174112,36392)|0;vw(1174124,36408)|0;vw(1174136,36424)|0;vw(1174148,36440)|0;vw(1174160,36164)|0;vw(1174172,36456)|0;vw(1174184,36472)|0;vw(1174196,36488)|0;vw(1174208,36504)|0;vw(1174220,36520)|0;vw(1174232,36536)|0;vw(1174244,36552)|0;return}function gq(){var b=0,d=0;if((a[1180192]|0)==0?hJ(1180192)|0:0){d=1174256;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=1174424);jJ(1180192)}vw(1174256,36568)|0;vw(1174268,36596)|0;vw(1174280,36624)|0;vw(1174292,36656)|0;vw(1174304,36696)|0;vw(1174316,36732)|0;vw(1174328,36760)|0;vw(1174340,36796)|0;vw(1174352,36812)|0;vw(1174364,36828)|0;vw(1174376,36844)|0;vw(1174388,36860)|0;vw(1174400,36876)|0;vw(1174412,36892)|0;return}function hq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;a=a+8|0;a=La[c[c[a>>2]>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];d=(Co(d,i,a,a+168|0,g,f,0)|0)-a|0;if((d|0)<168)c[b>>2]=((d|0)/12|0|0)%7|0;Ia=h;return}function iq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=Ia;Ia=Ia+16|0;i=h+4|0;j=h;a=a+8|0;a=La[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];d=(Co(d,i,a,a+288|0,g,f,0)|0)-a|0;if((d|0)<288)c[b>>2]=((d|0)/12|0|0)%12|0;Ia=h;return}function jq(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=Ia;Ia=Ia+16|0;s=v+12|0;q=v+8|0;p=v+4|0;r=v;Ql(s,e);t=qn(s,1183020)|0;rn(s);c[f>>2]=0;k=0;a:while(1){j=c[b>>2]|0;if(!((h|0)!=(i|0)&(k|0)==0))break;l=j;if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))k=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=il(c[k>>2]|0)|0;if(Rl(k,hl()|0)|0){c[b>>2]=0;l=0;j=0;o=1}else o=0}else{j=0;o=1}n=c[d>>2]|0;k=n;do if(n){m=c[n+12>>2]|0;if((m|0)==(c[n+16>>2]|0))m=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else m=il(c[m>>2]|0)|0;if(!(Rl(m,hl()|0)|0))if(o){m=n;break}else{u=60;break a}else{c[d>>2]=0;k=0;u=15;break}}else u=15;while(0);if((u|0)==15){u=0;if(o){u=60;break}else m=0}b:do if((Oa[c[(c[t>>2]|0)+52>>2]&31](t,c[h>>2]|0,0)|0)<<24>>24==37){m=h+4|0;if((m|0)==(i|0)){u=60;break a}o=Oa[c[(c[t>>2]|0)+52>>2]&31](t,c[m>>2]|0,0)|0;switch(o<<24>>24){case 48:case 69:{n=h+8|0;if((n|0)==(i|0)){u=60;break a}h=m;m=Oa[c[(c[t>>2]|0)+52>>2]&31](t,c[n>>2]|0,0)|0;j=o;break}default:{m=o;j=0}}o=c[(c[a>>2]|0)+36>>2]|0;c[p>>2]=l;c[r>>2]=k;c[q>>2]=c[p>>2];c[s>>2]=c[r>>2];c[b>>2]=Va[o&15](a,q,s,e,f,g,m,j)|0;h=h+8|0}else{if(!(Oa[c[(c[t>>2]|0)+12>>2]&31](t,8192,c[h>>2]|0)|0)){m=j+12|0;k=c[m>>2]|0;l=j+16|0;if((k|0)==(c[l>>2]|0))k=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=il(c[k>>2]|0)|0;o=Na[c[(c[t>>2]|0)+28>>2]&127](t,k)|0;if((o|0)!=(Na[c[(c[t>>2]|0)+28>>2]&127](t,c[h>>2]|0)|0)){c[f>>2]=4;break}k=c[m>>2]|0;if((k|0)==(c[l>>2]|0))La[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[m>>2]=k+4;il(c[k>>2]|0)|0}h=h+4|0;break}do{h=h+4|0;if((h|0)==(i|0)){h=i;break}}while(Oa[c[(c[t>>2]|0)+12>>2]&31](t,8192,c[h>>2]|0)|0);while(1){if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))k=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=il(c[k>>2]|0)|0;if(Rl(k,hl()|0)|0){c[b>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=il(c[k>>2]|0)|0;if(!(Rl(k,hl()|0)|0))if(l){n=m;break}else break b;else{c[d>>2]=0;u=40;break}}else u=40;while(0);if((u|0)==40){u=0;if(l)break b;else n=0}m=j+12|0;k=c[m>>2]|0;l=j+16|0;if((k|0)==(c[l>>2]|0))k=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=il(c[k>>2]|0)|0;if(!(Oa[c[(c[t>>2]|0)+12>>2]&31](t,8192,k)|0))break b;k=c[m>>2]|0;if((k|0)==(c[l>>2]|0))La[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[m>>2]=k+4;il(c[k>>2]|0)|0}m=n}}while(0);k=c[f>>2]|0}if((u|0)==60)c[f>>2]=4;if(j){h=c[j+12>>2]|0;if((h|0)==(c[j+16>>2]|0))h=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else h=il(c[h>>2]|0)|0;if(Rl(h,hl()|0)|0){c[b>>2]=0;l=1;k=0}else{l=0;k=j}}else{l=1;k=0}h=c[d>>2]|0;do if(h){j=c[h+12>>2]|0;if((j|0)==(c[h+16>>2]|0))h=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=il(c[j>>2]|0)|0;if(!(Rl(h,hl()|0)|0))if(l)break;else{u=75;break}else{c[d>>2]=0;u=73;break}}else u=73;while(0);if((u|0)==73?l:0)u=75;if((u|0)==75)c[f>>2]=c[f>>2]|2;Ia=v;return k|0}function kq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,2)|0;a=c[f>>2]|0;if((d+-1|0)>>>0<31&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function lq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<24&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function mq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,2)|0;a=c[f>>2]|0;if((d+-1|0)>>>0<12&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function nq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,3)|0;a=c[f>>2]|0;if((d|0)<366&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function oq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<13&(a&4|0)==0)c[b>>2]=d+-1;else c[f>>2]=a|4;Ia=h;return}function pq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<60&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function qq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;a:while(1){a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=il(c[g>>2]|0)|0;if(Rl(a,hl()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);h=c[d>>2]|0;do if(h){a=c[h+12>>2]|0;if((a|0)==(c[h+16>>2]|0))a=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else a=il(c[a>>2]|0)|0;if(!(Rl(a,hl()|0)|0))if(g)break;else break a;else{c[d>>2]=0;i=15;break}}else i=15;while(0);if((i|0)==15){i=0;if(g){h=0;break}else h=0}a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=il(c[g>>2]|0)|0;if(!(Oa[c[(c[f>>2]|0)+12>>2]&31](f,8192,a)|0))break;a=c[b>>2]|0;h=a+12|0;g=c[h>>2]|0;if((g|0)==(c[a+16>>2]|0))La[c[(c[a>>2]|0)+40>>2]&127](a)|0;else{c[h>>2]=g+4;il(c[g>>2]|0)|0}}a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=il(c[g>>2]|0)|0;if(Rl(a,hl()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){a=c[h+12>>2]|0;if((a|0)==(c[h+16>>2]|0))a=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else a=il(c[a>>2]|0)|0;if(!(Rl(a,hl()|0)|0))if(g)break;else{i=40;break}else{c[d>>2]=0;i=38;break}}else i=38;while(0);if((i|0)==38?g:0)i=40;if((i|0)==40)c[e>>2]=c[e>>2]|2;return}function rq(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+16|0;l=m+4|0;k=m;j=b+8|0;j=La[c[(c[j>>2]|0)+8>>2]&127](j)|0;b=a[j+8+3>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+20+3>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){c[k>>2]=c[f>>2];c[l>>2]=c[k>>2];i=(Co(e,l,j,j+24|0,h,g,0)|0)-j|0;b=c[d>>2]|0;if((b|0)==12&(i|0)==0){c[d>>2]=0;break}if((b|0)<12&(i|0)==12)c[d>>2]=b+12}else c[g>>2]=c[g>>2]|4;while(0);Ia=m;return}function sq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,2)|0;a=c[f>>2]|0;if((d|0)<61&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function tq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];d=xq(d,a,f,g,1)|0;a=c[f>>2]|0;if((d|0)<7&(a&4|0)==0)c[b>>2]=d;else c[f>>2]=a|4;Ia=h;return}function uq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=xq(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a|0)<100?a+1900|0:a;c[b>>2]=a+-1900}Ia=h;return}function vq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=xq(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;Ia=h;return}function wq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=il(c[g>>2]|0)|0;if(Rl(a,hl()|0)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);g=c[d>>2]|0;do if(g){a=c[g+12>>2]|0;if((a|0)==(c[g+16>>2]|0))a=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else a=il(c[a>>2]|0)|0;if(!(Rl(a,hl()|0)|0))if(h){i=g;j=17;break}else{j=16;break}else{c[d>>2]=0;j=14;break}}else j=14;while(0);if((j|0)==14)if(h)j=16;else{i=0;j=17}a:do if((j|0)==16)c[e>>2]=c[e>>2]|6;else if((j|0)==17){a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=il(c[g>>2]|0)|0;if((Oa[c[(c[f>>2]|0)+52>>2]&31](f,a,0)|0)<<24>>24!=37){c[e>>2]=c[e>>2]|4;break}a=c[b>>2]|0;h=a+12|0;g=c[h>>2]|0;if((g|0)==(c[a+16>>2]|0))La[c[(c[a>>2]|0)+40>>2]&127](a)|0;else{c[h>>2]=g+4;il(c[g>>2]|0)|0}a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=il(c[g>>2]|0)|0;if(Rl(a,hl()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(i){a=c[i+12>>2]|0;if((a|0)==(c[i+16>>2]|0))a=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else a=il(c[a>>2]|0)|0;if(!(Rl(a,hl()|0)|0))if(g)break a;else break;else{c[d>>2]=0;j=38;break}}else j=38;while(0);if((j|0)==38?!g:0)break;c[e>>2]=c[e>>2]|2}while(0);return}function xq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=c[a>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=il(c[h>>2]|0)|0;if(Rl(g,hl()|0)|0){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);h=c[b>>2]|0;do if(h){g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0))g=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else g=il(c[g>>2]|0)|0;if(!(Rl(g,hl()|0)|0))if(i){k=h;o=17;break}else{o=16;break}else{c[b>>2]=0;o=14;break}}else o=14;while(0);if((o|0)==14)if(i)o=16;else{k=0;o=17}a:do if((o|0)==16){c[d>>2]=c[d>>2]|6;g=0}else if((o|0)==17){g=c[a>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=il(c[h>>2]|0)|0;if(!(Oa[c[(c[e>>2]|0)+12>>2]&31](e,2048,g)|0)){c[d>>2]=c[d>>2]|4;g=0;break}g=(Oa[c[(c[e>>2]|0)+52>>2]&31](e,g,0)|0)<<24>>24;h=c[a>>2]|0;j=h+12|0;i=c[j>>2]|0;if((i|0)==(c[h+16>>2]|0))La[c[(c[h>>2]|0)+40>>2]&127](h)|0;else{c[j>>2]=i+4;il(c[i>>2]|0)|0}l=k;while(1){g=g+-48|0;n=f+-1|0;h=c[a>>2]|0;do if(h){i=c[h+12>>2]|0;if((i|0)==(c[h+16>>2]|0))h=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=il(c[i>>2]|0)|0;if(Rl(h,hl()|0)|0){c[a>>2]=0;j=1;break}else{j=(c[a>>2]|0)==0;break}}else j=1;while(0);if(l){h=c[l+12>>2]|0;if((h|0)==(c[l+16>>2]|0))h=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else h=il(c[h>>2]|0)|0;if(Rl(h,hl()|0)|0){c[b>>2]=0;h=1;m=0;k=0}else{h=0;m=k;k=l}}else{h=1;m=k;k=0}i=c[a>>2]|0;if(!((f|0)>1&(j^h)))break;h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=il(c[h>>2]|0)|0;if(!(Oa[c[(c[e>>2]|0)+12>>2]&31](e,2048,h)|0))break a;g=(g*10|0)+((Oa[c[(c[e>>2]|0)+52>>2]&31](e,h,0)|0)<<24>>24)|0;h=c[a>>2]|0;j=h+12|0;i=c[j>>2]|0;if((i|0)==(c[h+16>>2]|0))La[c[(c[h>>2]|0)+40>>2]&127](h)|0;else{c[j>>2]=i+4;il(c[i>>2]|0)|0}l=k;k=m;f=n}do if(i){h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=il(c[h>>2]|0)|0;if(Rl(h,hl()|0)|0){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);do if(m){h=c[m+12>>2]|0;if((h|0)==(c[m+16>>2]|0))h=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else h=il(c[h>>2]|0)|0;if(!(Rl(h,hl()|0)|0))if(i)break a;else break;else{c[b>>2]=0;o=61;break}}else o=61;while(0);if((o|0)==61?!i:0)break;c[d>>2]=c[d>>2]|2}while(0);return g|0}function yq(a){a=a|0;Dq(a+8|0);Wm(a);return}function zq(a){a=a|0;Dq(a+8|0);Wm(a);Jv(a);return}function Aq(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;j=Ia;Ia=Ia+112|0;e=j;f=j+100|0;c[f>>2]=e+100;Bq(b+8|0,e,f,g,h,i);g=c[f>>2]|0;b=e;e=c[d>>2]|0;while(1){if((b|0)==(g|0))break;f=a[b>>0]|0;if(!e)e=0;else{i=e+24|0;h=c[i>>2]|0;if((h|0)==(c[e+28>>2]|0)){d=c[(c[e>>2]|0)+52>>2]|0;f=Sk(f)|0;f=Na[d&127](e,f)|0}else{c[i>>2]=h+1;a[h>>0]=f;f=Sk(f)|0}d=Pl(f,Rk()|0)|0;e=d?0:e}b=b+1|0}Ia=j;return e|0}function Bq(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+16|0;k=l;a[k>>0]=37;i=k+1|0;a[i>>0]=g;j=k+2|0;a[j>>0]=h;a[k+3>>0]=0;if(h<<24>>24){a[i>>0]=h;a[j>>0]=g}j=Cq(d,c[e>>2]|0)|0;c[e>>2]=d+(Ca(d|0,j|0,k|0,f|0,c[b>>2]|0)|0);Ia=l;return}function Cq(a,b){a=a|0;b=b|0;return b-a|0}function Dq(a){a=a|0;var b=0;b=c[a>>2]|0;if((b|0)!=(tn()|0))$j(c[a>>2]|0);return}function Eq(a){a=a|0;Dq(a+8|0);Wm(a);return}function Fq(a){a=a|0;Dq(a+8|0);Wm(a);Jv(a);return}function Gq(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=Ia;Ia=Ia+416|0;d=i;e=i+400|0;c[e>>2]=d+400;Hq(a+8|0,d,e,f,g,h);f=c[e>>2]|0;a=d;d=c[b>>2]|0;while(1){if((a|0)==(f|0))break;e=c[a>>2]|0;if(!d)d=0;else{h=d+24|0;g=c[h>>2]|0;if((g|0)==(c[d+28>>2]|0)){b=c[(c[d>>2]|0)+52>>2]|0;e=il(e)|0;e=Na[b&127](d,e)|0}else{c[h>>2]=g+4;c[g>>2]=e;e=il(e)|0}b=Rl(e,hl()|0)|0;d=b?0:d}a=a+4|0}Ia=i;return d|0}function Hq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+128|0;k=h;l=h+116|0;i=h+104|0;j=h+112|0;c[l>>2]=k+100;Bq(a,k,l,e,f,g);f=i;c[f>>2]=0;c[f+4>>2]=0;c[j>>2]=k;f=Iq(b,c[d>>2]|0)|0;g=fk(c[a>>2]|0)|0;f=_i(b,j,f,i)|0;if(g|0)fk(g)|0;if((f|0)==-1)Jq(0);else{c[d>>2]=b+(f<<2);Ia=h;return}}function Iq(a,b){a=a|0;b=b|0;b=b-a|0;return (2?b>>2:b)|0}function Jq(a){a=a|0;ea()}function Kq(a){a=a|0;Wm(a);return}function Lq(a){a=a|0;Wm(a);Jv(a);return}function Mq(a){a=a|0;return 127}function Nq(a){a=a|0;return 127}function Oq(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function Pq(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function Qq(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function Rq(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Tv(a,1,45);return}function Sq(a){a=a|0;return 0}function Tq(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function Uq(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function Vq(a){a=a|0;Wm(a);return}function Wq(a){a=a|0;Wm(a);Jv(a);return}function Xq(a){a=a|0;return 127}function Yq(a){a=a|0;return 127}function Zq(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function _q(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function $q(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function ar(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Tv(a,1,45);return}function br(a){a=a|0;return 0}function cr(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function dr(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function er(a){a=a|0;Wm(a);return}function fr(a){a=a|0;Wm(a);Jv(a);return}function gr(a){a=a|0;return 2147483647}function hr(a){a=a|0;return 2147483647}function ir(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return} +function mj(e,h,i){e=e|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=Ia;Ia=Ia+288|0;M=Q+264|0;J=Q;N=Q+260|0;B=Q+272|0;if((c[e+76>>2]|0)>-1)P=si(e)|0;else P=0;j=a[h>>0]|0;a:do if(j<<24>>24){I=e+4|0;L=e+104|0;K=e+120|0;H=e+8|0;C=J+10|0;D=J+33|0;F=J+46|0;G=J+94|0;A=M+4|0;k=0;l=j;u=0;v=0;j=0;p=h;h=0;b:while(1){c:do if(!(Wh(l&255)|0)){n=(a[p>>0]|0)==37;d:do if(n){l=p+1|0;m=a[l>>0]|0;e:do switch(m<<24>>24){case 37:break d;case 42:{z=0;l=p+2|0;break}default:{if(ji(m&255)|0?(a[p+2>>0]|0)==36:0){z=nj(i,(d[l>>0]|0)+-48|0)|0;l=p+3|0;break e}y=(c[i>>2]|0)+(4-1)&~(4-1);z=c[y>>2]|0;c[i>>2]=y+4}}while(0);if(!(ji(d[l>>0]|0)|0)){r=l;m=0}else{m=0;do{m=(m*10|0)+-48+(d[l>>0]|0)|0;l=l+1|0}while((ji(d[l>>0]|0)|0)!=0);r=l}l=a[r>>0]|0;n=r+1|0;if(l<<24>>24==109){k=0;p=a[n>>0]|0;l=(z|0)!=0&1;q=r+2|0;h=0}else{p=l;l=0;q=n;n=r}switch(p<<24>>24){case 104:{y=(a[q>>0]|0)==104;q=y?n+2|0:q;n=y?-2:-1;break}case 108:{y=(a[q>>0]|0)==108;q=y?n+2|0:q;n=y?3:1;break}case 106:{n=3;break}case 116:case 122:{n=1;break}case 76:{n=2;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{q=n;n=0;break}default:{O=143;break b}}s=d[q>>0]|0;t=(s&47|0)==3;s=t?s|32:s;t=t?1:n;r=s&255;switch(r<<24>>24){case 99:{y=u;m=(m|0)>1?m:1;break}case 91:{y=u;break}case 110:{oj(z,t,u,v);n=u;r=v;l=q;break c}default:{Th(e,0,0);do{n=c[I>>2]|0;if(n>>>0<(c[L>>2]|0)>>>0){c[I>>2]=n+1;n=d[n>>0]|0}else n=Vh(e)|0}while((Wh(n)|0)!=0);if(!(c[L>>2]|0))n=c[I>>2]|0;else{n=(c[I>>2]|0)+-1|0;c[I>>2]=n}x=K;y=n-(c[H>>2]|0)|0;v=pJ(c[x>>2]|0,c[x+4>>2]|0,u|0,v|0)|0;y=pJ(v|0,E()|0,y|0,((y|0)<0)<<31>>31|0)|0;v=E()|0}}x=((m|0)<0)<<31>>31;Th(e,m,x);p=c[I>>2]|0;n=c[L>>2]|0;if(p>>>0>>0)c[I>>2]=p+1;else{if((Vh(e)|0)<0){O=143;break b}n=c[L>>2]|0}if(n|0)c[I>>2]=(c[I>>2]|0)+-1;f:do switch(r<<24>>24){case 91:case 99:case 115:{w=(s|0)==99;g:do if((s|16|0)==115){DJ(J|0,-1,257)|0;a[J>>0]=0;if((s|0)==115){a[D>>0]=0;b[C>>1]=0;b[C+2>>1]=0;a[C+4>>0]=0;n=q}else n=q}else{n=q+1|0;u=(a[n>>0]|0)==94;p=u&1;n=u?q+2|0:n;DJ(J|0,p|0,257)|0;a[J>>0]=0;switch(a[n>>0]|0){case 45:{r=(p^1)&255;a[F>>0]=r;n=n+1|0;break}case 93:{r=(p^1)&255;a[G>>0]=r;n=n+1|0;break}default:r=(p^1)&255}while(1){p=a[n>>0]|0;h:do switch(p<<24>>24){case 0:{O=143;break b}case 93:break g;case 45:{q=n+1|0;p=a[q>>0]|0;switch(p<<24>>24){case 93:case 0:{p=45;break h}default:{}}n=a[n+-1>>0]|0;if((n&255)<(p&255)){n=n&255;do{n=n+1|0;a[J+n>>0]=r;p=a[q>>0]|0}while(n>>>0<(p&255)>>>0);n=q}else n=q;break}default:{}}while(0);a[J+((p&255)+1)>>0]=r;n=n+1|0}}while(0);q=w?m+1|0:31;t=(t|0)==1;u=(l|0)!=0;i:do if(t){if(u){k=kk(q<<2)|0;if(!k){k=0;h=0;O=143;break b}}else k=z;c[M>>2]=0;c[A>>2]=0;h=0;j:while(1){r=(k|0)==0;p=h;do{k:while(1){h=c[I>>2]|0;if(h>>>0<(c[L>>2]|0)>>>0){c[I>>2]=h+1;h=d[h>>0]|0}else h=Vh(e)|0;if(!(a[J+(h+1)>>0]|0))break j;a[B>>0]=h;switch(aj(N,B,1,M)|0){case -1:{h=0;O=143;break b}case -2:break;default:break k}}if(!r){c[k+(p<<2)>>2]=c[N>>2];p=p+1|0}}while(!(u&(p|0)==(q|0)));q=q<<1|1;h=mk(k,q<<2)|0;if(!h){h=0;O=143;break b}else{k=h;h=p}}if(!(ej(M)|0)){h=0;O=143;break b}else{s=k;h=0;r=k}}else{if(u){h=kk(q)|0;if(!h){k=0;h=0;O=143;break b}p=0;while(1){do{k=c[I>>2]|0;if(k>>>0<(c[L>>2]|0)>>>0){c[I>>2]=k+1;k=d[k>>0]|0}else k=Vh(e)|0;if(!(a[J+(k+1)>>0]|0)){s=0;r=0;break i}s=p;p=p+1|0;a[h+s>>0]=k}while((p|0)!=(q|0));q=q<<1|1;k=mk(h,q)|0;if(!k){k=0;O=143;break b}else h=k}}if(!z)while(1){h=c[I>>2]|0;if(h>>>0<(c[L>>2]|0)>>>0){c[I>>2]=h+1;h=d[h>>0]|0}else h=Vh(e)|0;if(!(a[J+(h+1)>>0]|0)){s=0;p=0;h=0;r=0;break i}}k=0;while(1){h=c[I>>2]|0;if(h>>>0<(c[L>>2]|0)>>>0){c[I>>2]=h+1;h=d[h>>0]|0}else h=Vh(e)|0;if(!(a[J+(h+1)>>0]|0)){s=0;p=k;h=z;r=0;break i}a[z+k>>0]=h;k=k+1|0}}while(0);if(!(c[L>>2]|0))k=c[I>>2]|0;else{k=(c[I>>2]|0)+-1|0;c[I>>2]=k}q=K;k=k-(c[H>>2]|0)|0;k=pJ(c[q>>2]|0,c[q+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;q=E()|0;if((k|0)==0&(q|0)==0){k=s;break b}if(!((k|0)==(m|0)&(q|0)==(x|0)|w^1)){k=s;break b}do if(u)if(t){c[z>>2]=r;break}else{c[z>>2]=h;break}while(0);if(w){k=s;l=n}else{if(r|0)c[r+(p<<2)>>2]=0;if(!h){k=s;l=n;h=0;break f}a[h+p>>0]=0;k=s;l=n}break}case 120:case 88:case 112:{m=16;O=131;break}case 111:{m=8;O=131;break}case 117:case 100:{m=10;O=131;break}case 105:{m=0;O=131;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{o=+Uh(e,t,0);x=K;u=c[x>>2]|0;x=c[x+4>>2]|0;w=(c[I>>2]|0)-(c[H>>2]|0)|0;w=qJ(0,0,w|0,((w|0)<0)<<31>>31|0)|0;if((u|0)==(w|0)&(x|0)==(E()|0))break b;if(!z)l=q;else switch(t|0){case 0:{f[z>>2]=o;l=q;break f}case 1:{g[z>>3]=o;l=q;break f}case 2:{g[z>>3]=o;l=q;break f}default:{l=q;break f}}break}default:l=q}while(0);do if((O|0)==131){O=0;m=hi(e,m,0,-1,-1)|0;n=E()|0;x=K;u=c[x>>2]|0;x=c[x+4>>2]|0;w=(c[I>>2]|0)-(c[H>>2]|0)|0;w=qJ(0,0,w|0,((w|0)<0)<<31>>31|0)|0;if((u|0)==(w|0)&(x|0)==(E()|0))break b;if((z|0)!=0&(s|0)==112){c[z>>2]=m;l=q;break}else{oj(z,t,m,n);l=q;break}}while(0);r=K;n=(c[I>>2]|0)-(c[H>>2]|0)|0;r=pJ(c[r>>2]|0,c[r+4>>2]|0,y|0,v|0)|0;n=pJ(r|0,E()|0,n|0,((n|0)<0)<<31>>31|0)|0;r=E()|0;j=j+((z|0)!=0&1)|0;break c}while(0);m=p+(n&1)|0;Th(e,0,0);l=c[I>>2]|0;if(l>>>0<(c[L>>2]|0)>>>0){c[I>>2]=l+1;l=d[l>>0]|0}else l=Vh(e)|0;if((l|0)!=(d[m>>0]|0)){O=23;break b}n=pJ(u|0,v|0,1,0)|0;r=E()|0;l=m}else{m=p;while(1){l=m+1|0;if(!(Wh(d[l>>0]|0)|0))break;else m=l}Th(e,0,0);do{l=c[I>>2]|0;if(l>>>0<(c[L>>2]|0)>>>0){c[I>>2]=l+1;l=d[l>>0]|0}else l=Vh(e)|0}while((Wh(l)|0)!=0);if(!(c[L>>2]|0))l=c[I>>2]|0;else{l=(c[I>>2]|0)+-1|0;c[I>>2]=l}r=K;n=l-(c[H>>2]|0)|0;r=pJ(c[r>>2]|0,c[r+4>>2]|0,u|0,v|0)|0;n=pJ(r|0,E()|0,n|0,((n|0)<0)<<31>>31|0)|0;r=E()|0;l=m}while(0);p=l+1|0;l=a[p>>0]|0;if(!(l<<24>>24))break a;else{u=n;v=r}}if((O|0)==23){if(c[L>>2]|0)c[I>>2]=(c[I>>2]|0)+-1;if((j|0)!=0|(l|0)>-1)break;else{j=k;l=0;O=144}}else if((O|0)==143)if(!j){j=k;O=144}if((O|0)==144){k=j;j=-1}if(l){lk(h);lk(k)}}else j=0;while(0);if(P|0)ti(e);Ia=Q;return j|0}function nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=Ia;Ia=Ia+16|0;d=e;c[d>>2]=c[a>>2];while(1){f=(c[d>>2]|0)+(4-1)&~(4-1);a=c[f>>2]|0;c[d>>2]=f+4;if(b>>>0>1)b=b+-1|0;else break}Ia=e;return a|0}function oj(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;a:do if(d|0)switch(e|0){case -2:{a[d>>0]=f;break a}case -1:{b[d>>1]=f;break a}case 0:{c[d>>2]=f;break a}case 1:{c[d>>2]=f;break a}case 3:{e=d;c[e>>2]=f;c[e+4>>2]=g;break a}default:break a}while(0);return}function pj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=z(d,b)|0;d=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){g=(si(e)|0)==0;a=Gi(a,f,e)|0;if(!g)ti(e)}else a=Gi(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function qj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;d=ni(a,b,f)|0;Ia=e;return d|0}function rj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;c[g>>2]=e;e=mi(a,b,d,g)|0;Ia=f;return e|0}function sj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((e|0)==1){g=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;b=qJ(b|0,d|0,g|0,((g|0)<0)<<31>>31|0)|0;d=E()|0}g=a+20|0;f=a+28|0;if((c[g>>2]|0)>>>0>(c[f>>2]|0)>>>0?(Oa[c[a+36>>2]&31](a,0,0)|0,(c[g>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[f>>2]=0;c[g>>2]=0;Pa[c[a+40>>2]&7](a,b,d,e)|0;if((E()|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function tj(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((c[a+76>>2]|0)>-1){f=(si(a)|0)==0;b=sj(a,b,d,e)|0;if(!f)ti(a)}else b=sj(a,b,d,e)|0;return b|0}function uj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+48|0;h=i+32|0;g=i+16|0;e=i;if(ij(45390,a[d>>0]|0)|0){f=vj(d)|0;c[e>>2]=b;c[e+4>>2]=f|32768;c[e+8>>2]=438;e=Mh(X(5,e|0)|0)|0;if((e|0)>=0){if(f&524288|0){c[g>>2]=e;c[g+4>>2]=2;c[g+8>>2]=1;W(221,g|0)|0}b=wj(e,d)|0;if(!b){c[h>>2]=e;Z(6,h|0)|0;b=0}}else b=0}else{c[(Nh()|0)>>2]=22;b=0}Ia=i;return b|0}function vj(b){b=b|0;var c=0,d=0,e=0;d=(ij(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(ij(b,120)|0)==0;d=e?d:d|128;b=(ij(b,101)|0)==0;b=b?d:d|524288;b=c<<24>>24==114?b:b|64;b=c<<24>>24==119?b|512:b;return (c<<24>>24==97?b|1024:b)|0}function wj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+64|0;i=k+40|0;h=k+24|0;g=k+16|0;f=k;j=k+56|0;if(ij(45390,a[d>>0]|0)|0){e=kk(1176)|0;if(!e)e=0;else{DJ(e|0,0,144)|0;if(!(ij(d,43)|0))c[e>>2]=(a[d>>0]|0)==114?8:4;if(ij(d,101)|0){c[f>>2]=b;c[f+4>>2]=2;c[f+8>>2]=1;W(221,f|0)|0}if((a[d>>0]|0)==97){c[g>>2]=b;c[g+4>>2]=3;d=W(221,g|0)|0;if(!(d&1024)){c[h>>2]=b;c[h+4>>2]=4;c[h+8>>2]=d|1024;W(221,h|0)|0}f=c[e>>2]|128;c[e>>2]=f}else f=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+152;c[e+48>>2]=1024;d=e+75|0;a[d>>0]=-1;if((f&8|0)==0?(c[i>>2]=b,c[i+4>>2]=21523,c[i+8>>2]=j,(Y(54,i|0)|0)==0):0)a[d>>0]=10;c[e+32>>2]=6;c[e+36>>2]=5;c[e+40>>2]=1;c[e+12>>2]=10;if(!(c[295332]|0))c[e+76>>2]=-1;jj(e)|0}}else{c[(Nh()|0)>>2]=22;e=0}Ia=k;return e|0}function xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;f=h;c[f>>2]=c[d>>2];f=mi(0,0,b,f)|0;if((f|0)>=0?(e=f+1|0,g=kk(e)|0,c[a>>2]=g,(g|0)!=0):0)e=mi(g,e,b,d)|0;else e=-1;Ia=h;return e|0}function yj(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;k=z(e,d)|0;e=(d|0)==0?0:e;if((c[f+76>>2]|0)>-1)j=si(f)|0;else j=0;h=f+74|0;g=a[h>>0]|0;a[h>>0]=g+255|g;h=f+4|0;g=c[h>>2]|0;i=(c[f+8>>2]|0)-g|0;if((i|0)>0){i=i>>>0>>0?i:k;BJ(b|0,g|0,i|0)|0;c[h>>2]=(c[h>>2]|0)+i;b=b+i|0;g=k-i|0}else g=k;a:do if(!g)l=13;else{i=f+32|0;while(1){if(gi(f)|0)break;h=Oa[c[i>>2]&31](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g){l=13;break a}else b=b+h|0}if(j|0)ti(f);e=((k-g|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(j)ti(f);return e|0}function zj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+144|0;f=e;DJ(f|0,0,144)|0;c[f+32>>2]=26;c[f+44>>2]=a;c[f+76>>2]=-1;c[f+84>>2]=a;a=mj(f,b,d)|0;Ia=e;return a|0}function Aj(a,b,c){a=a|0;b=b|0;c=c|0;return hj(a,b,c)|0}function Bj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;do if((b|0)!=-1){if((c[d+76>>2]|0)>-1)g=si(d)|0;else g=0;h=d+4|0;e=c[h>>2]|0;if(!e){gi(d)|0;e=c[h>>2]|0;if(e|0){f=e;i=6}}else{f=e;i=6}if((i|0)==6?f>>>0>((c[d+44>>2]|0)+-8|0)>>>0:0){i=f+-1|0;c[h>>2]=i;a[i>>0]=b;c[d>>2]=c[d>>2]&-17;if(!g)break;ti(d);break}if(g){ti(d);b=-1}else b=-1}else b=-1;while(0);return b|0}function Cj(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(si(a)|0)!=0:0){e=a+4|0;b=c[e>>2]|0;if(b>>>0<(c[a+8>>2]|0)>>>0){c[e>>2]=b+1;b=d[b>>0]|0}else b=fi(a)|0}else f=3;do if((f|0)==3){e=a+4|0;b=c[e>>2]|0;if(b>>>0<(c[a+8>>2]|0)>>>0){c[e>>2]=b+1;b=d[b>>0]|0;break}else{b=fi(a)|0;break}}while(0);return b|0}function Dj(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=Hj(a)|0;break}d=(si(a)|0)==0;b=Hj(a)|0;if(!d)ti(a)}else{if(!(c[8599]|0))b=0;else b=Dj(c[8599]|0)|0;a=c[(kj()|0)>>2]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=si(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=Hj(a)|0|b;if(d|0)ti(a);a=c[a+56>>2]|0}while((a|0)!=0);lj()}while(0);return b|0}function Ej(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((c[a+76>>2]|0)>-1)f=si(a)|0;else f=0;Fj(a);g=(c[a>>2]&1|0)!=0;if(!g){e=kj()|0;d=c[a+52>>2]|0;b=a+56|0;if(d|0)c[d+56>>2]=c[b>>2];b=c[b>>2]|0;if(b|0)c[b+52>>2]=d;if((c[e>>2]|0)==(a|0))c[e>>2]=b;lj()}d=Dj(a)|0;d=La[c[a+12>>2]&127](a)|0|d;b=c[a+96>>2]|0;if(b|0)lk(b);if(g){if(f|0)ti(a)}else lk(a);return d|0}function Fj(a){a=a|0;var b=0;if(c[a+68>>2]|0){b=c[a+132>>2]|0;a=a+128|0;if(b|0)c[b+128>>2]=c[a>>2];a=c[a>>2]|0;if(!a)a=(Gj()|0)+232|0;else a=a+132|0;c[a>>2]=b}return}function Gj(){return Fi()|0}function Hj(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=a+20|0;g=a+28|0;if((c[h>>2]|0)>>>0>(c[g>>2]|0)>>>0?(Oa[c[a+36>>2]&31](a,0,0)|0,(c[h>>2]|0)==0):0)b=-1;else{f=a+4|0;b=c[f>>2]|0;e=a+8|0;d=c[e>>2]|0;if(b>>>0>>0){d=b-d|0;Pa[c[a+40>>2]&7](a,d,((d|0)<0)<<31>>31,1)|0;E()|0}c[a+16>>2]=0;c[g>>2]=0;c[h>>2]=0;c[e>>2]=0;c[f>>2]=0;b=0}return b|0}function Ij(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=d;d=zj(a,b,f)|0;Ia=e;return d|0}function Jj(a){a=a|0;var b=0,d=0,e=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=Pa[c[a+40>>2]&7](a,0,0,b)|0;d=E()|0;if((d|0)>=0){e=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;e=qJ(b|0,d|0,e|0,((e|0)<0)<<31>>31|0)|0;d=E()|0;b=(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;b=pJ(e|0,d|0,b|0,((b|0)<0)<<31>>31|0)|0;d=E()|0}D(d|0);return b|0}function Kj(a){a=a|0;var b=0,d=0,e=0;if((c[a+76>>2]|0)>-1){e=(si(a)|0)==0;b=Jj(a)|0;d=E()|0;if(!e)ti(a)}else{b=Jj(a)|0;d=E()|0}D(d|0);return b|0}function Lj(){return 34704}function Mj(){return 34708}function Nj(){var a=0;a=(c[c[(Oj()|0)+188>>2]>>2]|0)==0;return (a?1:4)|0}function Oj(){return Fi()|0}function Pj(){return 34712}function Qj(a){a=a|0;return (a+-97|0)>>>0<26|0}function Rj(a){a=a|0;return (a+-65|0)>>>0<26|0}function Sj(a){a=a|0;var b=0;b=(Qj(a)|0)==0;return (b?a:a&95)|0}function Tj(a){a=a|0;return (((a|32)+-97|0)>>>0<6|(ji(a)|0)!=0)&1|0}function Uj(a){a=a|0;var b=0;b=(Rj(a)|0)==0;return (b?a:a|32)|0}function Vj(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)b=0;else{while(1){e=a[b>>0]|0;f=a[c>>0]|0;if(e<<24>>24!=f<<24>>24)break;d=d+-1|0;if(!d){b=0;break a}else{b=b+1|0;c=c+1|0}}b=(e&255)-(f&255)|0}while(0);return b|0}function Wj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{e=e+4|0;b=b+4|0}}}return a|0}function Xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=a-b|0;if((2?e>>2:e)>>>0>=d>>>0){if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{e=e+4|0;b=b+4|0}}}}else do{d=d+-1|0;c[a+(d<<2)>>2]=c[b+(d<<2)>>2]}while((d|0)!=0);return a|0}function Yj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=b;if(!d)break;else e=e+4|0}}return a|0}function Zj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function _j(a){a=a|0;return 0}function $j(a){a=a|0;if(ak(a)|0)lk(a);return}function ak(a){a=a|0;return (a|0)!=34428&((a|0)!=0&(a|0)!=1181388)&1|0}function bk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+32|0;h=j;a:do if(!(ak(d)|0)){i=(d|0)!=0;f=0;g=0;do{e=1<>2]|0;else e=ck(f,(e|0)==0?1183440:b)|0;g=g+((e|0)!=0&1)|0;c[h+(f<<2)>>2]=e;f=f+1|0}while((f|0)!=6);switch(g&2147483647|0){case 0:{d=1181388;break a}case 1:{if((c[h>>2]|0)==34400){d=34428;break a}break}default:{}}}else{e=0;do{if(1<>2]=ck(e,b)|0;e=e+1|0}while((e|0)!=6)}while(0);Ia=j;return d|0}function ck(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+272|0;m=o;n=o+256|0;do if(!(a[d>>0]|0)){d=pa(45394)|0;if(d|0?a[d>>0]|0:0)break;d=pa(28656+(b*12|0)|0)|0;if(d|0?a[d>>0]|0:0)break;d=pa(45401)|0;if(d|0?a[d>>0]|0:0)break;d=45406}while(0);e=0;a:while(1){switch(a[d+e>>0]|0){case 47:case 0:break a;default:{}}e=e+1|0;if(e>>>0>=15){e=15;break}}f=a[d>>0]|0;if(f<<24>>24!=46?(a[d+e>>0]|0)==0:0)if(f<<24>>24==67)l=15;else{k=d;l=16}else{d=45406;l=15}if((l|0)==15)if(!(a[d+1>>0]|0))l=18;else{k=d;l=16}b:do if((l|0)==16)if((Vi(k,45406)|0)!=0?(Vi(k,45414)|0)!=0:0){d=c[295358]|0;if(d|0)do{if(!(Vi(k,d+8|0)|0))break b;d=c[d+24>>2]|0}while((d|0)!=0);Q(1181436);d=c[295358]|0;c:do if(d|0){while(1){if(!(Vi(k,d+8|0)|0))break;d=c[d+24>>2]|0;if(!d)break c}$(1181436);break b}while(0);d:do if(((c[295333]|0)==0?(g=pa(45420)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){j=254-e|0;i=e+1|0;f=g;while(1){h=ki(f,58)|0;d=a[h>>0]|0;g=h-f+((d<<24>>24!=0)<<31>>31)|0;if(g>>>0>>0){BJ(m|0,f|0,g|0)|0;f=m+g|0;a[f>>0]=47;BJ(f+1|0,k|0,e|0)|0;a[m+(i+g)>>0]=0;f=R(m|0,n|0)|0;if(f|0)break;d=a[h>>0]|0}f=h+(d<<24>>24!=0&1)|0;if(!(a[f>>0]|0)){l=41;break d}}d=kk(28)|0;if(!d){Ui(f,c[n>>2]|0)|0;l=41;break}else{c[d>>2]=f;c[d+4>>2]=c[n>>2];n=d+8|0;BJ(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[295358];c[295358]=d;break}}else l=41;while(0);if((l|0)==41){d=kk(28)|0;if(d){c[d>>2]=c[8600];c[d+4>>2]=c[8601];n=d+8|0;BJ(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[295358];c[295358]=d}}$(1181436);d=(b|0)==0&(d|0)==0?34400:d}else{d=k;l=18}while(0);do if((l|0)==18){if((b|0)==0?(a[d+1>>0]|0)==46:0){d=34400;break}d=0}while(0);Ia=o;return d|0}function dk(a,b){a=a|0;b=b|0;return -1|0}function ek(a,b){a=a|0;b=b|0;return Tj(a)|0}function fk(a){a=a|0;var b=0,d=0;d=(gk()|0)+188|0;b=c[d>>2]|0;if(a|0)c[d>>2]=(a|0)==(-1|0)?1181364:a;return ((b|0)==1181364?-1:b)|0}function gk(){return Fi()|0}function hk(a,b){a=a|0;b=b|0;return ji(a)|0}function ik(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=Li(a,b,c)|0;D(E()|0);return a|0}function jk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;a=Ni(a,b,c)|0;D(E()|0);return a|0}function kk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=Ia;Ia=Ia+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=3?k>>>3:k;m=c[295361]|0;d=a?m>>>a:m;if(d&3|0){e=(d&1^1)+a|0;f=1181484+(e<<1<<2)|0;b=f+8|0;a=c[b>>2]|0;g=a+8|0;d=c[g>>2]|0;if((d|0)==(f|0))c[295361]=m&~(1<>2]=f;c[b>>2]=d}v=e<<3;c[a+4>>2]=v|3;v=a+v+4|0;c[v>>2]=c[v>>2]|1;v=g;Ia=w;return v|0}l=c[295363]|0;if(k>>>0>l>>>0){if(d|0){e=2<>>12:e)&16;e=i?e>>>i:e;a=(5?e>>>5:e)&8;e=a?e>>>a:e;g=(2?e>>>2:e)&4;e=g?e>>>g:e;b=(1?e>>>1:e)&2;e=b?e>>>b:e;d=(1?e>>>1:e)&1;e=(a|i|g|b|d)+(d?e>>>d:e)|0;d=1181484+(e<<1<<2)|0;b=d+8|0;g=c[b>>2]|0;i=g+8|0;a=c[i>>2]|0;if((a|0)==(d|0)){a=m&~(1<>2]=d;c[b>>2]=a;a=m}v=e<<3;h=v-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+v>>2]=h;if(l|0){e=c[295366]|0;b=3?l>>>3:l;d=1181484+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[295363]=h;c[295366]=f;v=i;Ia=w;return v|0}g=c[295362]|0;if(g){j=(g&0-g)+-1|0;f=(12?j>>>12:j)&16;j=f?j>>>f:j;e=(5?j>>>5:j)&8;j=e?j>>>e:j;h=(2?j>>>2:j)&4;j=h?j>>>h:j;d=(1?j>>>1:j)&2;j=d?j>>>d:j;i=(1?j>>>1:j)&1;j=c[1181748+((e|f|h|d|i)+(i?j>>>i:j)<<2)>>2]|0;i=(c[j+4>>2]&-8)-k|0;d=j;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}d=(c[a+4>>2]&-8)-k|0;h=d>>>0>>0;i=h?d:i;d=a;j=h?a:j}h=j+k|0;if(h>>>0>j>>>0){f=c[j+24>>2]|0;b=c[j+12>>2]|0;do if((b|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[j+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[j+28>>2]|0;a=1181748+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[295362]=g&~(1<>2]|0)==(j|0)?v:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[j+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[j+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(i>>>0<16){v=i+k|0;c[j+4>>2]=v|3;v=j+v+4|0;c[v>>2]=c[v>>2]|1}else{c[j+4>>2]=k|3;c[h+4>>2]=i|1;c[h+i>>2]=i;if(l|0){e=c[295366]|0;b=3?l>>>3:l;d=1181484+(b<<1<<2)|0;b=1<>2]|0}c[b>>2]=e;c[a+12>>2]=e;c[e+8>>2]=a;c[e+12>>2]=d}c[295363]=i;c[295366]=h}v=j+8|0;Ia=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[295362]|0;if(e){d=0-k|0;a=8?a>>>8:a;if(a)if(k>>>0>16777215)j=31;else{m=a+1048320|0;m=(16?m>>>16:m)&8;j=a<>>16:i)&4;j=j<>>16:q)&2;j=j<>>15:j)|0;q=j+7|0;j=(q?k>>>q:k)&1|j<<1}else j=0;a=c[1181748+(j<<2)>>2]|0;a:do if(!a){f=0;a=0;q=61}else{f=0;h=k<<((j|0)==31?0:25-(1?j>>>1:j)|0);i=a;a=0;while(1){g=(c[i+4>>2]&-8)-k|0;if(g>>>0>>0)if(!g){d=0;f=i;a=i;q=65;break a}else{d=g;a=i}q=c[i+20>>2]|0;i=c[i+16+((31?h>>>31:h)<<2)>>2]|0;f=(q|0)==0|(q|0)==(i|0)?f:q;if(!i){q=61;break}else h=h<<1}}while(0);if((q|0)==61){if((f|0)==0&(a|0)==0){a=2<>>12:f)&16;f=i?f>>>i:f;h=(5?f>>>5:f)&8;f=h?f>>>h:f;j=(2?f>>>2:f)&4;f=j?f>>>j:f;m=(1?f>>>1:f)&2;f=m?f>>>m:f;a=(1?f>>>1:f)&1;f=c[1181748+((h|i|j|m|a)+(a?f>>>a:f)<<2)>>2]|0;a=0}if(!f){i=d;g=a}else q=65}if((q|0)==65)while(1){m=(c[f+4>>2]&-8)-k|0;g=m>>>0>>0;d=g?m:d;g=g?f:a;a=c[f+16>>2]|0;if(!a)a=c[f+20>>2]|0;if(!a){i=d;break}else{f=a;a=g}}if(((g|0)!=0?i>>>0<((c[295363]|0)-k|0)>>>0:0)?(l=g+k|0,l>>>0>g>>>0):0){h=c[g+24>>2]|0;b=c[g+12>>2]|0;do if((b|0)==(g|0)){a=g+20|0;b=c[a>>2]|0;if(!b){a=g+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{v=c[g+8>>2]|0;c[v+12>>2]=b;c[b+8>>2]=v}while(0);do if(h){a=c[g+28>>2]|0;d=1181748+(a<<2)|0;if((g|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<>2]|0)==(g|0)?v:h+20|0)>>2]=b;if(!b)break}c[b+24>>2]=h;a=c[g+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[g+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(i>>>0<16){v=i+k|0;c[g+4>>2]=v|3;v=g+v+4|0;c[v>>2]=c[v>>2]|1}else{c[g+4>>2]=k|3;c[l+4>>2]=i|1;c[l+i>>2]=i;b=3?i>>>3:i;if(i>>>0<256){d=1181484+(b<<1<<2)|0;a=c[295361]|0;b=1<>2]|0}c[b>>2]=l;c[a+12>>2]=l;c[l+8>>2]=a;c[l+12>>2]=d;break}b=8?i>>>8:i;if(b)if(i>>>0>16777215)d=31;else{u=b+1048320|0;u=(16?u>>>16:u)&8;d=b<>>16:t)&4;d=d<>>16:v)&2;d=d<>>15:d)|0;v=d+7|0;d=(v?i>>>v:i)&1|d<<1}else d=0;b=1181748+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((d|0)==31?0:25-(1?d>>>1:d)|0);while(1){d=b+16+((31?e>>>31:e)<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(i|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break b}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=l;c[u>>2]=l;c[l+8>>2]=v;c[l+12>>2]=b;c[l+24>>2]=0}while(0);v=g+8|0;Ia=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=c[295363]|0;if(d>>>0>=m>>>0){a=d-m|0;b=c[295366]|0;if(a>>>0>15){v=b+m|0;c[295366]=v;c[295363]=a;c[v+4>>2]=a|1;c[b+d>>2]=a;c[b+4>>2]=m|3}else{c[295363]=0;c[295366]=0;c[b+4>>2]=d|3;v=b+d+4|0;c[v>>2]=c[v>>2]|1}v=b+8|0;Ia=w;return v|0}h=c[295364]|0;if(h>>>0>m>>>0){t=h-m|0;c[295364]=t;v=c[295367]|0;u=v+m|0;c[295367]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;Ia=w;return v|0}if(!(c[295479]|0)){c[295481]=4096;c[295480]=4096;c[295482]=-1;c[295483]=-1;c[295484]=0;c[295472]=0;c[295479]=n&-16^1431655768;a=4096}else a=c[295481]|0;i=m+48|0;j=m+47|0;g=a+j|0;e=0-a|0;k=g&e;if(k>>>0<=m>>>0){v=0;Ia=w;return v|0}a=c[295471]|0;if(a|0?(l=c[295469]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;Ia=w;return v|0}d:do if(!(c[295472]&4)){d=c[295367]|0;e:do if(d){f=1181892;while(1){n=c[f>>2]|0;if(n>>>0<=d>>>0?(n+(c[f+4>>2]|0)|0)>>>0>d>>>0:0)break;a=c[f+8>>2]|0;if(!a){q=128;break e}else f=a}b=g-h&e;if(b>>>0<2147483647){a=FJ(b|0)|0;if((a|0)==((c[f>>2]|0)+(c[f+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=a;g=b;q=145;break d}}else{e=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){d=FJ(0)|0;if((d|0)!=(-1|0)?(b=d,o=c[295480]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=c[295469]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=c[295471]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=FJ(b|0)|0;if((a|0)==(d|0)){h=d;g=b;q=145;break d}else{e=a;q=136}}else b=0}while(0);do if((q|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=e;g=b;q=145;break d}a=c[295481]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=e;g=b;q=145;break d}if((FJ(a|0)|0)==(-1|0)){FJ(d|0)|0;b=0;break}else{h=e;g=a+b|0;q=145;break d}}while(0);c[295472]=c[295472]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(r=FJ(k|0)|0,p=FJ(0)|0,t=p-r|0,s=t>>>0>(m+40|0)>>>0,!((r|0)==(-1|0)|s^1|r>>>0

>>0&((r|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=r;g=s?t:b;q=145}if((q|0)==145){b=(c[295469]|0)+g|0;c[295469]=b;if(b>>>0>(c[295470]|0)>>>0)c[295470]=b;j=c[295367]|0;f:do if(j){e=1181892;while(1){b=c[e>>2]|0;a=c[e+4>>2]|0;if((h|0)==(b+a|0)){q=154;break}d=c[e+8>>2]|0;if(!d)break;else e=d}if(((q|0)==154?(u=e+4|0,(c[e+12>>2]&8|0)==0):0)?h>>>0>j>>>0&b>>>0<=j>>>0:0){c[u>>2]=a+g;v=(c[295364]|0)+g|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;c[295367]=u;c[295364]=t;c[u+4>>2]=t|1;c[j+v+4>>2]=40;c[295368]=c[295483];break}if(h>>>0<(c[295365]|0)>>>0)c[295365]=h;d=h+g|0;a=1181892;while(1){if((c[a>>2]|0)==(d|0)){q=162;break}b=c[a+8>>2]|0;if(!b)break;else a=b}if((q|0)==162?(c[a+12>>2]&8|0)==0:0){c[a>>2]=h;l=a+4|0;c[l>>2]=(c[l>>2]|0)+g;l=h+8|0;l=h+((l&7|0)==0?0:0-l&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(b|0)){v=(c[295364]|0)+i|0;c[295364]=v;c[295367]=k;c[k+4>>2]=v|1}else{if((c[295366]|0)==(b|0)){v=(c[295363]|0)+i|0;c[295363]=v;c[295366]=k;c[k+4>>2]=v|1;c[k+v>>2]=v;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=3?a>>>3:a;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[295361]=c[295361]&~(1<>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){a=0;break}else d=e}while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{v=c[b+8>>2]|0;c[v+12>>2]=a;c[a+8>>2]=v}while(0);if(!g)break;d=c[b+28>>2]|0;e=1181748+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){v=g+16|0;c[((c[v>>2]|0)==(b|0)?v:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[295362]=c[295362]&~(1<>2]=g;e=b+16|0;d=c[e>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}d=c[e+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=3?f>>>3:f;if(f>>>0<256){d=1181484+(b<<1<<2)|0;a=c[295361]|0;b=1<>2]|0}c[b>>2]=k;c[a+12>>2]=k;c[k+8>>2]=a;c[k+12>>2]=d;break}b=8?f>>>8:f;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}u=b+1048320|0;u=(16?u>>>16:u)&8;e=b<>>16:t)&4;e=e<>>16:v)&2;e=e<>>15:e)|0;v=e+7|0;e=(v?f>>>v:f)&1|e<<1}while(0);a=1181748+(e<<2)|0;c[k+28>>2]=e;b=k+16|0;c[b+4>>2]=0;c[b>>2]=0;b=c[295362]|0;d=1<>2]=k;c[k+24>>2]=a;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[a>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(1?e>>>1:e)|0);while(1){d=b+16+((31?e>>>31:e)<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=k;c[u>>2]=k;c[k+8>>2]=v;c[k+12>>2]=b;c[k+24>>2]=0}while(0);v=l+8|0;Ia=w;return v|0}a=1181892;while(1){b=c[a>>2]|0;if(b>>>0<=j>>>0?(v=b+(c[a+4>>2]|0)|0,v>>>0>j>>>0):0)break;a=c[a+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;d=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=d-t|0;c[295367]=u;c[295364]=t;c[u+4>>2]=t|1;c[h+d+4>>2]=40;c[295368]=c[295483];d=a+4|0;c[d>>2]=27;c[b>>2]=c[295473];c[b+4>>2]=c[295474];c[b+8>>2]=c[295475];c[b+12>>2]=c[295476];c[295473]=h;c[295474]=g;c[295476]=0;c[295475]=b;b=a+24|0;do{u=b;b=b+4|0;c[b>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=3?g>>>3:g;if(g>>>0<256){d=1181484+(b<<1<<2)|0;a=c[295361]|0;b=1<>2]|0}c[b>>2]=j;c[a+12>>2]=j;c[j+8>>2]=a;c[j+12>>2]=d;break}b=8?g>>>8:g;if(b)if(g>>>0>16777215)e=31;else{u=b+1048320|0;u=(16?u>>>16:u)&8;e=b<>>16:t)&4;e=e<>>16:v)&2;e=e<>>15:e)|0;v=e+7|0;e=(v?g>>>v:g)&1|e<<1}else e=0;d=1181748+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[295362]|0;a=1<>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(1?e>>>1:e)|0);while(1){d=b+16+((31?e>>>31:e)<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=j;c[u>>2]=j;c[j+8>>2]=v;c[j+12>>2]=b;c[j+24>>2]=0}}else{v=c[295365]|0;if((v|0)==0|h>>>0>>0)c[295365]=h;c[295473]=h;c[295474]=g;c[295476]=0;c[295370]=c[295479];c[295369]=-1;c[295374]=1181484;c[295373]=1181484;c[295376]=1181492;c[295375]=1181492;c[295378]=1181500;c[295377]=1181500;c[295380]=1181508;c[295379]=1181508;c[295382]=1181516;c[295381]=1181516;c[295384]=1181524;c[295383]=1181524;c[295386]=1181532;c[295385]=1181532;c[295388]=1181540;c[295387]=1181540;c[295390]=1181548;c[295389]=1181548;c[295392]=1181556;c[295391]=1181556;c[295394]=1181564;c[295393]=1181564;c[295396]=1181572;c[295395]=1181572;c[295398]=1181580;c[295397]=1181580;c[295400]=1181588;c[295399]=1181588;c[295402]=1181596;c[295401]=1181596;c[295404]=1181604;c[295403]=1181604;c[295406]=1181612;c[295405]=1181612;c[295408]=1181620;c[295407]=1181620;c[295410]=1181628;c[295409]=1181628;c[295412]=1181636;c[295411]=1181636;c[295414]=1181644;c[295413]=1181644;c[295416]=1181652;c[295415]=1181652;c[295418]=1181660;c[295417]=1181660;c[295420]=1181668;c[295419]=1181668;c[295422]=1181676;c[295421]=1181676;c[295424]=1181684;c[295423]=1181684;c[295426]=1181692;c[295425]=1181692;c[295428]=1181700;c[295427]=1181700;c[295430]=1181708;c[295429]=1181708;c[295432]=1181716;c[295431]=1181716;c[295434]=1181724;c[295433]=1181724;c[295436]=1181732;c[295435]=1181732;v=g+-40|0;t=h+8|0;t=(t&7|0)==0?0:0-t&7;u=h+t|0;t=v-t|0;c[295367]=u;c[295364]=t;c[u+4>>2]=t|1;c[h+v+4>>2]=40;c[295368]=c[295483]}while(0);b=c[295364]|0;if(b>>>0>m>>>0){t=b-m|0;c[295364]=t;v=c[295367]|0;u=v+m|0;c[295367]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;Ia=w;return v|0}}c[(Nh()|0)>>2]=12;v=0;Ia=w;return v|0}function lk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;if(!a)return;d=a+-8|0;e=c[295365]|0;a=c[a+-4>>2]|0;b=a&-8;k=d+b|0;do if(!(a&1)){f=c[d>>2]|0;if(!(a&3))return;g=d+(0-f)|0;h=f+b|0;if(g>>>0>>0)return;if((c[295366]|0)==(g|0)){b=k+4|0;a=c[b>>2]|0;if((a&3|0)!=3){i=g;j=g;b=h;break}c[295363]=h;c[b>>2]=a&-2;c[g+4>>2]=h|1;c[g+h>>2]=h;return}d=3?f>>>3:f;if(f>>>0<256){a=c[g+8>>2]|0;b=c[g+12>>2]|0;if((b|0)==(a|0)){c[295361]=c[295361]&~(1<>2]=b;c[b+8>>2]=a;i=g;j=g;b=h;break}}f=c[g+24>>2]|0;a=c[g+12>>2]|0;do if((a|0)==(g|0)){d=g+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[g+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(f){a=c[g+28>>2]|0;b=1181748+(a<<2)|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;if(!d){c[295362]=c[295362]&~(1<>2]|0)==(g|0)?j:f+20|0)>>2]=d;if(!d){i=g;j=g;b=h;break}}c[d+24>>2]=f;b=g+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a){c[d+20>>2]=a;c[a+24>>2]=d;i=g;j=g;b=h}else{i=g;j=g;b=h}}else{i=g;j=g;b=h}}else{i=d;j=d}while(0);if(i>>>0>=k>>>0)return;a=k+4|0;d=c[a>>2]|0;if(!(d&1))return;if(!(d&2)){if((c[295367]|0)==(k|0)){k=(c[295364]|0)+b|0;c[295364]=k;c[295367]=j;c[j+4>>2]=k|1;if((j|0)!=(c[295366]|0))return;c[295366]=0;c[295363]=0;return}if((c[295366]|0)==(k|0)){k=(c[295363]|0)+b|0;c[295363]=k;c[295366]=i;c[j+4>>2]=k|1;c[i+k>>2]=k;return}f=(d&-8)+b|0;e=3?d>>>3:d;do if(d>>>0<256){b=c[k+8>>2]|0;a=c[k+12>>2]|0;if((a|0)==(b|0)){c[295361]=c[295361]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[k+24>>2]|0;a=c[k+12>>2]|0;do if((a|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){d=0;break}else b=d}while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[k+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[k+28>>2]|0;b=1181748+(a<<2)|0;if((c[b>>2]|0)==(k|0)){c[b>>2]=d;if(!d){c[295362]=c[295362]&~(1<>2]|0)==(k|0)?h:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;b=k+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}a=c[b+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[j+4>>2]=f|1;c[i+f>>2]=f;if((j|0)==(c[295366]|0)){c[295363]=f;return}}else{c[a>>2]=d&-2;c[j+4>>2]=b|1;c[i+b>>2]=b;f=b}a=3?f>>>3:f;if(f>>>0<256){d=1181484+(a<<1<<2)|0;b=c[295361]|0;a=1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;return}a=8?f>>>8:f;if(a)if(f>>>0>16777215)e=31;else{i=a+1048320|0;i=(16?i>>>16:i)&8;e=a<>>16:h)&4;e=e<>>16:k)&2;e=e<>>15:e)|0;k=e+7|0;e=(k?f>>>k:f)&1|e<<1}else e=0;b=1181748+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[j+16>>2]=0;a=c[295362]|0;d=1<>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j}else{a=c[b>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(1?e>>>1:e)|0);while(1){d=a+16+((31?e>>>31:e)<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=j;c[j+24>>2]=a;c[j+12>>2]=j;c[j+8>>2]=j;break a}while(0);i=a+8|0;k=c[i>>2]|0;c[k+12>>2]=j;c[i>>2]=j;c[j+8>>2]=k;c[j+12>>2]=a;c[j+24>>2]=0}while(0);k=(c[295369]|0)+-1|0;c[295369]=k;if(k|0)return;a=1181900;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[295369]=-1;return}function mk(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=kk(b)|0;return a|0}if(b>>>0>4294967231){c[(Nh()|0)>>2]=12;a=0;return a|0}d=nk(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){a=d+8|0;return a|0}d=kk(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;BJ(d|0,a|0,(e>>>0>>0?e:b)|0)|0;lk(a);a=d;return a|0}function nk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=a+4|0;l=c[m>>2]|0;d=l&-8;i=a+d|0;if(!(l&3)){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[295481]<<1>>>0:0)return a|0;a=0;return a|0}if(d>>>0>=b>>>0){d=d-b|0;if(d>>>0<=15)return a|0;k=a+b|0;c[m>>2]=l&1|b|2;c[k+4>>2]=d|3;b=i+4|0;c[b>>2]=c[b>>2]|1;ok(k,d);return a|0}if((c[295367]|0)==(i|0)){k=(c[295364]|0)+d|0;e=k-b|0;d=a+b|0;if(k>>>0<=b>>>0){a=0;return a|0}c[m>>2]=l&1|b|2;c[d+4>>2]=e|1;c[295367]=d;c[295364]=e;return a|0}if((c[295366]|0)==(i|0)){e=(c[295363]|0)+d|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){k=a+b|0;e=a+e|0;c[m>>2]=l&1|b|2;c[k+4>>2]=d|1;c[e>>2]=d;e=e+4|0;c[e>>2]=c[e>>2]&-2;e=k}else{c[m>>2]=l&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[295363]=d;c[295366]=e;return a|0}e=c[i+4>>2]|0;if(e&2|0){a=0;return a|0}j=(e&-8)+d|0;if(j>>>0>>0){a=0;return a|0}k=j-b|0;f=3?e>>>3:e;do if(e>>>0<256){e=c[i+8>>2]|0;d=c[i+12>>2]|0;if((d|0)==(e|0)){c[295361]=c[295361]&~(1<>2]=d;c[d+8>>2]=e;break}}else{h=c[i+24>>2]|0;d=c[i+12>>2]|0;do if((d|0)==(i|0)){f=i+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){f=0;break}else e=f}while(1){g=d+20|0;f=c[g>>2]|0;if(!f){g=d+16|0;f=c[g>>2]|0;if(!f)break;else{d=f;e=g}}else{d=f;e=g}}c[e>>2]=0;f=d}else{f=c[i+8>>2]|0;c[f+12>>2]=d;c[d+8>>2]=f;f=d}while(0);if(h|0){d=c[i+28>>2]|0;e=1181748+(d<<2)|0;if((c[e>>2]|0)==(i|0)){c[e>>2]=f;if(!f){c[295362]=c[295362]&~(1<>2]|0)==(i|0)?g:h+20|0)>>2]=f;if(!f)break}c[f+24>>2]=h;e=i+16|0;d=c[e>>2]|0;if(d|0){c[f+16>>2]=d;c[d+24>>2]=f}d=c[e+4>>2]|0;if(d|0){c[f+20>>2]=d;c[d+24>>2]=f}}}while(0);if(k>>>0<16){c[m>>2]=l&1|j|2;b=a+j+4|0;c[b>>2]=c[b>>2]|1;return a|0}else{i=a+b|0;c[m>>2]=l&1|b|2;c[i+4>>2]=k|3;b=a+j+4|0;c[b>>2]=c[b>>2]|1;ok(i,k);return a|0}return 0}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){e=c[a>>2]|0;if(!(d&3))return;g=a+(0-e)|0;h=e+b|0;if((c[295366]|0)==(g|0)){a=j+4|0;d=c[a>>2]|0;if((d&3|0)!=3){i=g;a=h;break}c[295363]=h;c[a>>2]=d&-2;c[g+4>>2]=h|1;c[j>>2]=h;return}b=3?e>>>3:e;if(e>>>0<256){d=c[g+8>>2]|0;a=c[g+12>>2]|0;if((a|0)==(d|0)){c[295361]=c[295361]&~(1<>2]=a;c[a+8>>2]=d;i=g;a=h;break}}f=c[g+24>>2]|0;d=c[g+12>>2]|0;do if((d|0)==(g|0)){b=g+16|0;a=b+4|0;d=c[a>>2]|0;if(!d){d=c[b>>2]|0;if(!d){b=0;break}else a=b}while(1){e=d+20|0;b=c[e>>2]|0;if(!b){e=d+16|0;b=c[e>>2]|0;if(!b)break;else{d=b;a=e}}else{d=b;a=e}}c[a>>2]=0;b=d}else{b=c[g+8>>2]|0;c[b+12>>2]=d;c[d+8>>2]=b;b=d}while(0);if(f){d=c[g+28>>2]|0;a=1181748+(d<<2)|0;if((c[a>>2]|0)==(g|0)){c[a>>2]=b;if(!b){c[295362]=c[295362]&~(1<>2]|0)==(g|0)?i:f+20|0)>>2]=b;if(!b){i=g;a=h;break}}c[b+24>>2]=f;a=g+16|0;d=c[a>>2]|0;if(d|0){c[b+16>>2]=d;c[d+24>>2]=b}d=c[a+4>>2]|0;if(d){c[b+20>>2]=d;c[d+24>>2]=b;i=g;a=h}else{i=g;a=h}}else{i=g;a=h}}else{i=a;a=b}while(0);d=j+4|0;b=c[d>>2]|0;if(!(b&2)){if((c[295367]|0)==(j|0)){j=(c[295364]|0)+a|0;c[295364]=j;c[295367]=i;c[i+4>>2]=j|1;if((i|0)!=(c[295366]|0))return;c[295366]=0;c[295363]=0;return}if((c[295366]|0)==(j|0)){j=(c[295363]|0)+a|0;c[295363]=j;c[295366]=i;c[i+4>>2]=j|1;c[i+j>>2]=j;return}g=(b&-8)+a|0;e=3?b>>>3:b;do if(b>>>0<256){a=c[j+8>>2]|0;d=c[j+12>>2]|0;if((d|0)==(a|0)){c[295361]=c[295361]&~(1<>2]=d;c[d+8>>2]=a;break}}else{f=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){b=j+16|0;a=b+4|0;d=c[a>>2]|0;if(!d){d=c[b>>2]|0;if(!d){b=0;break}else a=b}while(1){e=d+20|0;b=c[e>>2]|0;if(!b){e=d+16|0;b=c[e>>2]|0;if(!b)break;else{d=b;a=e}}else{d=b;a=e}}c[a>>2]=0;b=d}else{b=c[j+8>>2]|0;c[b+12>>2]=d;c[d+8>>2]=b;b=d}while(0);if(f|0){d=c[j+28>>2]|0;a=1181748+(d<<2)|0;if((c[a>>2]|0)==(j|0)){c[a>>2]=b;if(!b){c[295362]=c[295362]&~(1<>2]|0)==(j|0)?h:f+20|0)>>2]=b;if(!b)break}c[b+24>>2]=f;a=j+16|0;d=c[a>>2]|0;if(d|0){c[b+16>>2]=d;c[d+24>>2]=b}d=c[a+4>>2]|0;if(d|0){c[b+20>>2]=d;c[d+24>>2]=b}}}while(0);c[i+4>>2]=g|1;c[i+g>>2]=g;if((i|0)==(c[295366]|0)){c[295363]=g;return}else a=g}else{c[d>>2]=b&-2;c[i+4>>2]=a|1;c[i+a>>2]=a}d=3?a>>>3:a;if(a>>>0<256){b=1181484+(d<<1<<2)|0;a=c[295361]|0;d=1<>2]|0}c[d>>2]=i;c[a+12>>2]=i;c[i+8>>2]=a;c[i+12>>2]=b;return}d=8?a>>>8:a;if(d)if(a>>>0>16777215)f=31;else{h=d+1048320|0;h=(16?h>>>16:h)&8;f=d<>>16:g)&4;f=f<>>16:j)&2;f=f<>>15:f)|0;j=f+7|0;f=(j?a>>>j:a)&1|f<<1}else f=0;b=1181748+(f<<2)|0;c[i+28>>2]=f;c[i+20>>2]=0;c[i+16>>2]=0;d=c[295362]|0;e=1<>2]=i;c[i+24>>2]=b;c[i+12>>2]=i;c[i+8>>2]=i;return}d=c[b>>2]|0;a:do if((c[d+4>>2]&-8|0)!=(a|0)){f=a<<((f|0)==31?0:25-(1?f>>>1:f)|0);while(1){e=d+16+((31?f>>>31:f)<<2)|0;b=c[e>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(a|0)){d=b;break a}else{f=f<<1;d=b}}c[e>>2]=i;c[i+24>>2]=d;c[i+12>>2]=i;c[i+8>>2]=i;return}while(0);h=d+8|0;j=c[h>>2]|0;c[j+12>>2]=i;c[h>>2]=i;c[i+8>>2]=j;c[i+12>>2]=d;c[i+24>>2]=0;return}function pk(a){a=a|0;return 0}function qk(a){a=a|0;return 0}function rk(a){a=a|0;return 0}function sk(){var a=0,b=0,d=0;b=Ia;Ia=Ia+16|0;a=b;if(!(fa(0,a|0)|0)){d=c[a>>2]|0;a=(c[a+4>>2]|0)/1e3|0;d=vJ(d|0,((d|0)<0)<<31>>31|0,1e6,0)|0;a=pJ(d|0,E()|0,a|0,((a|0)<0)<<31>>31|0)|0;D(E()|0);Ia=b;return a|0}else Kw(c[(Nh()|0)>>2]|0,45433);return 0}function tk(a){a=a|0;wa(a|0)|0;return}function uk(a){a=a|0;xa(a|0)|0;return}function vk(b,d){b=b|0;d=d|0;if(!(a[d+4>>0]|0))Kw(1,45470);d=ya(b|0,c[d>>2]|0)|0;if(!d)return;else Kw(d,45513)}function wk(){return (xk()|0)>0|0}function xk(){return M()|0}function yk(a){a=a|0;zk(a);return}function zk(a){a=a|0;c[a>>2]=34724;Ak(a,0);rn(a+28|0);lk(c[a+32>>2]|0);lk(c[a+36>>2]|0);lk(c[a+48>>2]|0);lk(c[a+60>>2]|0);return}function Ak(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=a+32|0;e=a+36|0;f=c[a+40>>2]|0;while(1){if(!f)break;g=f+-1|0;Za[c[(c[d>>2]|0)+(g<<2)>>2]&0](b,a,c[(c[e>>2]|0)+(g<<2)>>2]|0);f=g}return}function Bk(a){a=a|0;zk(a);Jv(a);return}function Ck(a){a=a|0;zk(a);return}function Dk(a){a=a|0;c[a>>2]=34740;rn(a+4|0);return}function Ek(a){a=a|0;Dk(a);Jv(a);return}function Fk(a,b){a=a|0;b=b|0;return}function Gk(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Hk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function Ik(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function Jk(a){a=a|0;return 0}function Kk(a){a=a|0;return 0}function Lk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;Rk()|0;j=b+12|0;h=b+16|0;i=0;while(1){if((i|0)>=(e|0))break;f=c[j>>2]|0;g=c[h>>2]|0;if(f>>>0>>0){g=g-f|0;k=e-i|0;g=(k|0)<(g|0)?k:g;Tk(d,f,g)|0;c[j>>2]=(c[j>>2]|0)+g;f=g;d=d+g|0}else{f=La[c[(c[b>>2]|0)+40>>2]&127](b)|0;if((f|0)==-1)break;a[d>>0]=Uk(f)|0;f=1;d=d+1|0}i=f+i|0}return i|0}function Mk(a){a=a|0;return Rk()|0}function Nk(b){b=b|0;var d=0;d=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;if((d|0)==(Rk()|0))b=Rk()|0;else{d=b+12|0;b=c[d>>2]|0;c[d>>2]=b+1;b=Sk(a[b>>0]|0)|0}return b|0}function Ok(a,b){a=a|0;b=b|0;return Rk()|0}function Pk(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=Rk()|0;j=b+24|0;i=b+28|0;f=0;while(1){if((f|0)>=(e|0))break;g=c[j>>2]|0;h=c[i>>2]|0;if(g>>>0>>0){h=h-g|0;l=e-f|0;h=(l|0)<(h|0)?l:h;Tk(g,d,h)|0;c[j>>2]=(c[j>>2]|0)+h;f=h+f|0;d=d+h|0}else{h=c[(c[b>>2]|0)+52>>2]|0;l=Sk(a[d>>0]|0)|0;if((Na[h&127](b,l)|0)==(k|0))break;f=f+1|0;d=d+1|0}}return f|0}function Qk(a,b){a=a|0;b=b|0;return Rk()|0}function Rk(){return -1}function Sk(a){a=a|0;return a&255|0}function Tk(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)BJ(a|0,b|0,c|0)|0;return a|0}function Uk(a){a=a|0;return a&255|0}function Vk(a){a=a|0;c[a>>2]=34804;rn(a+4|0);return}function Wk(a){a=a|0;Vk(a);Jv(a);return}function Xk(a,b){a=a|0;b=b|0;return}function Yk(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function Zk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function _k(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=a;c[b>>2]=0;c[b+4>>2]=0;b=a+8|0;c[b>>2]=-1;c[b+4>>2]=-1;return}function $k(a){a=a|0;return 0}function al(a){a=a|0;return 0}function bl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;hl()|0;i=a+12|0;g=a+16|0;h=0;while(1){if((h|0)>=(d|0))break;e=c[i>>2]|0;f=c[g>>2]|0;if(e>>>0>>0){f=f-e|0;f=2?f>>2:f;j=d-h|0;f=(j|0)<(f|0)?j:f;jl(b,e,f)|0;c[i>>2]=(c[i>>2]|0)+(f<<2);e=f;b=b+(f<<2)|0}else{e=La[c[(c[a>>2]|0)+40>>2]&127](a)|0;if((e|0)==-1)break;c[b>>2]=kl(e)|0;e=1;b=b+4|0}h=e+h|0}return h|0}function cl(a){a=a|0;return hl()|0}function dl(a){a=a|0;var b=0;b=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;if((b|0)==(hl()|0))a=hl()|0;else{b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+4;a=il(c[a>>2]|0)|0}return a|0}function el(a,b){a=a|0;b=b|0;return hl()|0}function fl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=hl()|0;i=a+24|0;h=a+28|0;e=0;while(1){if((e|0)>=(d|0))break;f=c[i>>2]|0;g=c[h>>2]|0;if(f>>>0>>0){g=g-f|0;g=2?g>>2:g;k=d-e|0;g=(k|0)<(g|0)?k:g;jl(f,b,g)|0;c[i>>2]=(c[i>>2]|0)+(g<<2);e=g+e|0;b=b+(g<<2)|0}else{g=c[(c[a>>2]|0)+52>>2]|0;k=il(c[b>>2]|0)|0;if((Na[g&127](a,k)|0)==(j|0))break;e=e+1|0;b=b+4|0}}return e|0}function gl(a,b){a=a|0;b=b|0;return hl()|0}function hl(){return -1}function il(a){a=a|0;return a|0}function jl(a,b,c){a=a|0;b=b|0;c=c|0;if(c)Wj(a,b,c)|0;return a|0}function kl(a){a=a|0;return a|0}function ll(a){a=a|0;pl(a,34900);yk(a+8|0);return}function ml(a){a=a|0;ll(a);Jv(a);return}function nl(a){a=a|0;ll(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function ol(a){a=a|0;ml(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function pl(a,b){a=a|0;b=b|0;return}function ql(a){a=a|0;ul(a,34948);Ck(a+8|0);return}function rl(a){a=a|0;ql(a);Jv(a);return}function sl(a){a=a|0;ql(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function tl(a){a=a|0;rl(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function ul(a,b){a=a|0;b=b|0;return}function vl(a){a=a|0;zl(a,34956);yk(a+4|0);return}function wl(a){a=a|0;vl(a);Jv(a);return}function xl(a){a=a|0;vl(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function yl(a){a=a|0;wl(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function zl(a,b){a=a|0;b=b|0;return}function Al(a){a=a|0;El(a,35004);Ck(a+4|0);return}function Bl(a){a=a|0;Al(a);Jv(a);return}function Cl(a){a=a|0;Al(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function Dl(a){a=a|0;Bl(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function El(a,b){a=a|0;b=b|0;return}function Fl(a){a=a|0;Ll(a,35072);yk(a+12|0);return}function Gl(a){a=a|0;Fl(a);Jv(a);return}function Hl(a){a=a|0;Fl(a+-8|0);return}function Il(a){a=a|0;Gl(a+-8|0);return}function Jl(a){a=a|0;Fl(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function Kl(a){a=a|0;Gl(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function Ll(a,b){a=a|0;b=b|0;zl(a+8|0,b+12|0);pl(a,b+4|0);return}function Ml(a){a=a|0;return li(a)|0}function Nl(a,b){a=a|0;b=b|0;c[a+16>>2]=(c[a+24>>2]|0)==0|b;return}function Ol(a,b){a=a|0;b=b|0;var d=0;c[a+24>>2]=b;c[a+16>>2]=(b|0)==0&1;c[a+20>>2]=0;c[a+4>>2]=4098;c[a+12>>2]=0;c[a+8>>2]=6;d=a+28|0;b=a+32|0;a=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));vv(d);return}function Pl(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}function Ql(a,b){a=a|0;b=b|0;tv(a,b+28|0);return}function Rl(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}function Sl(a,b){a=a|0;b=b|0;return a<<24>>24==b<<24>>24|0}function Tl(a){a=a|0;c[a>>2]=34740;vv(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function Ul(a){a=a|0;c[a>>2]=34804;vv(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function Vl(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+16|0;j=s;a[d>>0]=0;h=e+(c[(c[e>>2]|0)+-12>>2]|0)|0;g=c[h+16>>2]|0;if(!g){g=c[h+72>>2]|0;if(g|0)Wl(g)|0;do if(!f?(i=e+(c[(c[e>>2]|0)+-12>>2]|0)|0,c[i+4>>2]&4096|0):0){Ql(j,i);p=qn(j,1182988)|0;rn(j);h=c[e+(c[(c[e>>2]|0)+-12>>2]|0)+24>>2]|0;p=p+8|0;l=h;q=(h|0)==0;o=l+12|0;n=l+16|0;m=h;while(1){if(q){f=0;h=0;break}g=c[o>>2]|0;if((g|0)==(c[n>>2]|0))g=La[c[(c[m>>2]|0)+36>>2]&127](l)|0;else g=Sk(a[g>>0]|0)|0;k=Pl(g,Rk()|0)|0;f=k?0:h;if(k){f=0;h=0;break}i=f;k=i+12|0;g=c[k>>2]|0;j=i+16|0;if((g|0)==(c[j>>2]|0))g=La[c[(c[f>>2]|0)+36>>2]&127](i)|0;else g=Sk(a[g>>0]|0)|0;if((g&255)<<24>>24<=-1){r=21;break}g=g<<24;if(!(b[(c[p>>2]|0)+((24?g>>24:g)<<1)>>1]&8192)){r=21;break}g=c[k>>2]|0;if((g|0)==(c[j>>2]|0))La[c[(c[f>>2]|0)+40>>2]&127](i)|0;else{c[k>>2]=g+1;Sk(a[g>>0]|0)|0}}if(h|0){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))g=La[c[(c[h>>2]|0)+36>>2]&127](f)|0;else g=Sk(a[g>>0]|0)|0;if(!(Pl(g,Rk()|0)|0))break}r=e+(c[(c[e>>2]|0)+-12>>2]|0)|0;Nl(r,c[r+16>>2]|6)}while(0);a[d>>0]=(c[e+(c[(c[e>>2]|0)+-12>>2]|0)+16>>2]|0)==0&1}else Nl(h,g|4);Ia=s;return}function Wl(b){b=b|0;var d=0,e=0,f=0;e=Ia;Ia=Ia+16|0;d=e;if(c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0){Xl(d,b);if(a[d>>0]|0?(f=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0,(La[c[(c[f>>2]|0)+24>>2]&127](f)|0)==-1):0){f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(f,c[f+16>>2]|1)}Yl(d)}Ia=e;return b|0}function Xl(b,d){b=b|0;d=d|0;a[b>>0]=0;c[b+4>>2]=d;d=d+(c[(c[d>>2]|0)+-12>>2]|0)|0;if(!(c[d+16>>2]|0)){d=c[d+72>>2]|0;if(d|0)Wl(d)|0;a[b>>0]=1}return}function Yl(a){a=a|0;var b=0;a=a+4|0;b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;if((((c[b+24>>2]|0?(c[b+16>>2]|0)==0:0)?c[b+4>>2]&8192|0:0)?!(wk()|0):0)?(b=c[a>>2]|0,b=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0,(La[c[(c[b>>2]|0)+24>>2]&127](b)|0)==-1):0){b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(b,c[b+16>>2]|1)}return}function Zl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=Ia;Ia=Ia+32|0;j=l+24|0;h=l+20|0;g=l+16|0;i=l+12|0;m=l+28|0;e=l+8|0;f=l+4|0;k=l;Vl(m,b,0);if(a[m>>0]|0){c[e>>2]=0;Ql(k,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);n=qn(k,1183012)|0;m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;o=c[(c[n>>2]|0)+16>>2]|0;c[g>>2]=c[m+24>>2];c[i>>2]=0;c[h>>2]=c[g>>2];c[j>>2]=c[i>>2];Ta[o&63](n,h,j,m,e,f)|0;rn(k);c[d>>2]=c[f>>2];m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(m,c[m+16>>2]|c[e>>2])}Ia=l;return b|0}function _l(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=Ia;Ia=Ia+32|0;i=k+20|0;g=k+16|0;f=k+12|0;h=k+8|0;l=k+24|0;e=k+4|0;j=k;Vl(l,b,0);if(a[l>>0]|0){c[e>>2]=0;Ql(j,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);m=qn(j,1183012)|0;l=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;n=c[(c[m>>2]|0)+20>>2]|0;c[f>>2]=c[l+24>>2];c[h>>2]=0;c[g>>2]=c[f>>2];c[i>>2]=c[h>>2];Ta[n&63](m,g,i,l,e,d)|0;rn(j);l=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(l,c[l+16>>2]|c[e>>2])}Ia=k;return b|0}function $l(b){b=b|0;var d=0,e=0,f=0;f=Ia;Ia=Ia+16|0;e=f;c[b+4>>2]=0;d=Rk()|0;Vl(e,b,1);if(a[e>>0]|0){d=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;e=c[d+12>>2]|0;if((e|0)==(c[d+16>>2]|0))d=La[c[(c[d>>2]|0)+36>>2]&127](d)|0;else d=Sk(a[e>>0]|0)|0;if(Pl(d,Rk()|0)|0){b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(b,c[b+16>>2]|2)}}Ia=f;return d|0}function am(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;g=h;c[b+4>>2]=0;e=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(e,c[e+16>>2]&-3);Vl(g,b,1);e=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;do if(!(a[g>>0]|0))Nl(e,c[e+16>>2]|4);else{g=c[e+24>>2]|0;if(g){f=g+12|0;e=c[f>>2]|0;if((c[g+8>>2]|0)!=(e|0)?Sl(d,a[e+-1>>0]|0)|0:0){e=(c[f>>2]|0)+-1|0;c[f>>2]=e;e=Sk(a[e>>0]|0)|0}else{f=c[(c[g>>2]|0)+44>>2]|0;e=Sk(d)|0;e=Na[f&127](g,e)|0}if((e|0)!=(Rk()|0))break;e=b+(c[(c[b>>2]|0)+-12>>2]|0)|0}Nl(e,c[e+16>>2]|1)}while(0);Ia=h;return b|0}function bm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=Ia;Ia=Ia+16|0;j=l+12|0;i=l+8|0;g=l;Xl(g,b);if(a[g>>0]|0){Ql(j,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);k=qn(j,1183044)|0;rn(j);h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;f=c[h+24>>2]|0;m=Rk()|0;e=h+76|0;if(Pl(m,c[e>>2]|0)|0){Ql(j,h);m=qn(j,1182988)|0;m=Na[c[(c[m>>2]|0)+28>>2]&127](m,32)|0;rn(j);m=m<<24>>24;c[e>>2]=m;e=m}else e=c[e>>2]|0;m=c[(c[k>>2]|0)+16>>2]|0;c[i>>2]=f;c[j>>2]=c[i>>2];if(!(Ra[m&31](k,j,h,e&255,d)|0)){m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(m,c[m+16>>2]|5)}}Yl(g);Ia=l;return b|0}function cm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=Ia;Ia=Ia+16|0;j=l+12|0;i=l+8|0;g=l;Xl(g,b);if(a[g>>0]|0){Ql(j,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);k=qn(j,1183044)|0;rn(j);h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;f=c[h+24>>2]|0;m=Rk()|0;e=h+76|0;if(Pl(m,c[e>>2]|0)|0){Ql(j,h);m=qn(j,1182988)|0;m=Na[c[(c[m>>2]|0)+28>>2]&127](m,32)|0;rn(j);m=m<<24>>24;c[e>>2]=m;e=m}else e=c[e>>2]|0;m=c[(c[k>>2]|0)+24>>2]|0;c[i>>2]=f;c[j>>2]=c[i>>2];if(!(Ra[m&31](k,j,h,e&255,d)|0)){m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(m,c[m+16>>2]|5)}}Yl(g);Ia=l;return b|0}function dm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=Ia;Ia=Ia+16|0;k=m+12|0;j=m+8|0;h=m;Xl(h,b);if(a[h>>0]|0){Ql(k,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);l=qn(k,1183044)|0;rn(k);i=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;g=c[i+24>>2]|0;n=Rk()|0;f=i+76|0;if(Pl(n,c[f>>2]|0)|0){Ql(k,i);n=qn(k,1182988)|0;n=Na[c[(c[n>>2]|0)+28>>2]&127](n,32)|0;rn(k);n=n<<24>>24;c[f>>2]=n;f=n}else f=c[f>>2]|0;n=c[(c[l>>2]|0)+20>>2]|0;c[j>>2]=g;c[k>>2]=c[j>>2];if(!(Ta[n&63](l,k,i,f&255,d,e)|0)){n=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(n,c[n+16>>2]|5)}}Yl(h);Ia=m;return b|0}function em(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=Ia;Ia=Ia+16|0;k=m+12|0;j=m+8|0;h=m;Xl(h,b);if(a[h>>0]|0){Ql(k,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);l=qn(k,1183044)|0;rn(k);i=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;g=c[i+24>>2]|0;n=Rk()|0;f=i+76|0;if(Pl(n,c[f>>2]|0)|0){Ql(k,i);n=qn(k,1182988)|0;n=Na[c[(c[n>>2]|0)+28>>2]&127](n,32)|0;rn(k);n=n<<24>>24;c[f>>2]=n;f=n}else f=c[f>>2]|0;n=c[(c[l>>2]|0)+28>>2]|0;c[j>>2]=g;c[k>>2]=c[j>>2];if(!(Ta[n&63](l,k,i,f&255,d,e)|0)){n=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(n,c[n+16>>2]|5)}}Yl(h);Ia=m;return b|0}function fm(b,d){b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=Ia;Ia=Ia+16|0;j=l+12|0;i=l+8|0;g=l;Xl(g,b);if(a[g>>0]|0){Ql(j,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);k=qn(j,1183044)|0;rn(j);h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;f=c[h+24>>2]|0;m=Rk()|0;e=h+76|0;if(Pl(m,c[e>>2]|0)|0){Ql(j,h);m=qn(j,1182988)|0;m=Na[c[(c[m>>2]|0)+28>>2]&127](m,32)|0;rn(j);m=m<<24>>24;c[e>>2]=m;e=m}else e=c[e>>2]|0;m=c[(c[k>>2]|0)+32>>2]|0;c[i>>2]=f;c[j>>2]=c[i>>2];if(!(Qa[m&7](k,j,h,e&255,d)|0)){m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(m,c[m+16>>2]|5)}}Yl(g);Ia=l;return b|0}function gm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;i=j;Xl(i,b);do if(a[i>>0]|0){e=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;f=e;if(e|0){h=f+24|0;g=c[h>>2]|0;if((g|0)==(c[f+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;e=Sk(d)|0;e=Na[h&127](f,e)|0}else{c[h>>2]=g+1;a[g>>0]=d;e=Sk(d)|0}if(!(Pl(e,Rk()|0)|0))break}h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(h,c[h+16>>2]|1)}while(0);Yl(i);Ia=j;return b|0}function hm(a){a=a|0;a=a+16|0;c[a>>2]=c[a>>2]|1;return}function im(){km();return}function jm(){return}function km(){lm(0);return}function lm(a){a=a|0;var b=0,d=0;b=c[8597]|0;mm(1182620,b,1182676);c[295485]=34872;c[295487]=34892;c[295486]=0;Ol(1181948,1182620);c[295505]=0;c[295506]=Rk()|0;nm(1182684,b,1182740);c[295507]=34920;c[295509]=34940;c[295508]=0;Ol(1182036,1182684);c[295527]=0;c[295528]=hl()|0;b=c[8598]|0;om(1182748,b,1182796);c[295529]=28748;c[295530]=28768;Ol(1182120,1182748);c[295548]=0;c[295549]=Rk()|0;pm(1182804,b,1182852);c[295550]=34976;c[295551]=34996;Ol(1182204,1182804);c[295569]=0;c[295570]=hl()|0;b=c[8596]|0;om(1182860,b,1182908);c[295571]=28748;c[295572]=28768;Ol(1182288,1182860);c[295590]=0;c[295591]=Rk()|0;a=c[1182284+(c[(c[295571]|0)+-12>>2]|0)+24>>2]|0;c[295613]=28748;c[295614]=28768;Ol(1182456,a);c[295632]=0;c[295633]=Rk()|0;pm(1182916,b,1182964);c[295592]=34976;c[295593]=34996;Ol(1182372,1182916);c[295611]=0;c[295612]=hl()|0;b=c[1182368+(c[(c[295592]|0)+-12>>2]|0)+24>>2]|0;c[295634]=34976;c[295635]=34996;Ol(1182540,b);c[295653]=0;c[295654]=hl()|0;c[1181940+(c[(c[295485]|0)+-12>>2]|0)+72>>2]=1182116;c[1182028+(c[(c[295507]|0)+-12>>2]|0)+72>>2]=1182200;b=(c[295571]|0)+-12|0;a=1182284+(c[b>>2]|0)+4|0;c[a>>2]=c[a>>2]|8192;a=(c[295592]|0)+-12|0;d=1182368+(c[a>>2]|0)+4|0;c[d>>2]=c[d>>2]|8192;c[1182284+(c[b>>2]|0)+72>>2]=1182116;c[1182368+(c[a>>2]|0)+72>>2]=1182200;return}function mm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;Tl(b);c[b>>2]=35300;c[b+32>>2]=d;c[b+40>>2]=e;c[b+48>>2]=Rk()|0;a[b+52>>0]=0;e=c[(c[b>>2]|0)+8>>2]|0;tv(g,b+4|0);Ya[e&127](b,g);rn(g);Ia=f;return}function nm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;Ul(b);c[b>>2]=35236;c[b+32>>2]=d;c[b+40>>2]=e;c[b+48>>2]=hl()|0;a[b+52>>0]=0;e=c[(c[b>>2]|0)+8>>2]|0;tv(g,b+4|0);Ya[e&127](b,g);rn(g);Ia=f;return}function om(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;Tl(b);c[b>>2]=35172;c[b+32>>2]=d;tv(g,b+4|0);d=qn(g,1183292)|0;rn(g);c[b+36>>2]=d;c[b+40>>2]=e;a[b+44>>0]=(La[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;Ia=f;return}function pm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;Ul(b);c[b>>2]=35108;c[b+32>>2]=d;tv(g,b+4|0);d=qn(g,1183300)|0;rn(g);c[b+36>>2]=d;c[b+40>>2]=e;a[b+44>>0]=(La[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;Ia=f;return}function qm(a){a=a|0;Vk(a);Jv(a);return}function rm(b,d){b=b|0;d=d|0;La[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=qn(d,1183300)|0;c[b+36>>2]=d;a[b+44>>0]=(La[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;return}function sm(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=Ia;Ia=Ia+16|0;f=k+8|0;e=k;d=a+36|0;g=a+40|0;h=f+8|0;i=f;a=a+32|0;a:while(1){b=c[d>>2]|0;b=Ra[c[(c[b>>2]|0)+20>>2]&31](b,c[g>>2]|0,f,h,e)|0;l=(c[e>>2]|0)-i|0;if((pj(f,1,l,c[a>>2]|0)|0)!=(l|0)){a=-1;break}switch(b|0){case 1:break;case 2:{a=-1;break a}default:{j=4;break a}}}if((j|0)==4)a=((Dj(c[a>>2]|0)|0)!=0)<<31>>31;Ia=k;return a|0}function tm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=il(c[d>>2]|0)|0;g=Na[h&127](b,g)|0;if((g|0)==(hl()|0))break a;f=f+1|0;d=d+4|0}}else f=pj(d,4,e,c[b+32>>2]|0)|0;while(0);return f|0}function um(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+32|0;n=o+16|0;f=o+8|0;m=o+4|0;l=o;do if(!(Rl(d,hl()|0)|0)){c[f>>2]=kl(d)|0;if(a[b+44>>0]|0){if((pj(f,4,1,c[b+32>>2]|0)|0)==1){e=15;break}b=hl()|0;break}c[m>>2]=n;i=f+4|0;e=b+36|0;h=b+40|0;j=n+8|0;k=n;g=b+32|0;while(1){b=c[e>>2]|0;b=Va[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,i,l,n,j,m)|0;if((c[l>>2]|0)==(f|0)){e=14;break}if((b|0)==3){e=8;break}if(b>>>0>=2){e=14;break}f=(c[m>>2]|0)-k|0;if((pj(n,1,f,c[g>>2]|0)|0)!=(f|0)){e=14;break}if((b|0)==1)f=c[l>>2]|0;else{e=13;break}}if((e|0)==8)if((pj(f,1,1,c[g>>2]|0)|0)==1)e=13;else e=14;if((e|0)==13){e=15;break}else if((e|0)==14){b=hl()|0;break}}else e=15;while(0);if((e|0)==15)b=vm(d)|0;Ia=o;return b|0}function vm(a){a=a|0;if(Rl(a,hl()|0)|0)a=~(hl()|0);return a|0}function wm(a){a=a|0;Dk(a);Jv(a);return}function xm(b,d){b=b|0;d=d|0;La[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=qn(d,1183292)|0;c[b+36>>2]=d;a[b+44>>0]=(La[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;return}function ym(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=Ia;Ia=Ia+16|0;f=k+8|0;e=k;d=a+36|0;g=a+40|0;h=f+8|0;i=f;a=a+32|0;a:while(1){b=c[d>>2]|0;b=Ra[c[(c[b>>2]|0)+20>>2]&31](b,c[g>>2]|0,f,h,e)|0;l=(c[e>>2]|0)-i|0;if((pj(f,1,l,c[a>>2]|0)|0)!=(l|0)){a=-1;break}switch(b|0){case 1:break;case 2:{a=-1;break a}default:{j=4;break a}}}if((j|0)==4)a=((Dj(c[a>>2]|0)|0)!=0)<<31>>31;Ia=k;return a|0}function zm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=Sk(a[d>>0]|0)|0;g=Na[h&127](b,g)|0;if((g|0)==(Rk()|0))break a;f=f+1|0;d=d+1|0}}else f=pj(d,1,e,c[b+32>>2]|0)|0;while(0);return f|0}function Am(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+32|0;n=o+16|0;f=o+8|0;m=o+4|0;l=o;do if(!(Pl(d,Rk()|0)|0)){a[f>>0]=Uk(d)|0;if(a[b+44>>0]|0){if((pj(f,1,1,c[b+32>>2]|0)|0)==1){e=15;break}b=Rk()|0;break}c[m>>2]=n;i=f+1|0;e=b+36|0;h=b+40|0;j=n+8|0;k=n;g=b+32|0;while(1){b=c[e>>2]|0;b=Va[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,i,l,n,j,m)|0;if((c[l>>2]|0)==(f|0)){e=14;break}if((b|0)==3){e=8;break}if(b>>>0>=2){e=14;break}f=(c[m>>2]|0)-k|0;if((pj(n,1,f,c[g>>2]|0)|0)!=(f|0)){e=14;break}if((b|0)==1)f=c[l>>2]|0;else{e=13;break}}if((e|0)==8)if((pj(f,1,1,c[g>>2]|0)|0)==1)e=13;else e=14;if((e|0)==13){e=15;break}else if((e|0)==14){b=Rk()|0;break}}else e=15;while(0);if((e|0)==15)b=Bm(d)|0;Ia=o;return b|0}function Bm(a){a=a|0;if(Pl(a,Rk()|0)|0)a=~(Rk()|0);return a|0}function Cm(a){a=a|0;Vk(a);Jv(a);return}function Dm(b,d){b=b|0;d=d|0;var e=0,f=0;f=qn(d,1183300)|0;e=b+36|0;c[e>>2]=f;d=b+44|0;c[d>>2]=La[c[(c[f>>2]|0)+24>>2]&127](f)|0;e=c[e>>2]|0;a[b+53>>0]=(La[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;if((c[d>>2]|0)>8)Jq(46030);else return}function Em(a){a=a|0;return Hm(a,0)|0}function Fm(a){a=a|0;return Hm(a,1)|0}function Gm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+32|0;j=l+16|0;i=l+8|0;f=l+4|0;g=l;h=Rl(d,hl()|0)|0;k=b+52|0;e=(a[k>>0]|0)!=0;do if(h){if(!e){d=c[b+48>>2]|0;a[k>>0]=((Rl(d,hl()|0)|0)^1)&1}}else{if(e){e=b+48|0;c[f>>2]=kl(c[e>>2]|0)|0;h=c[b+36>>2]|0;switch(Va[c[(c[h>>2]|0)+12>>2]&15](h,c[b+40>>2]|0,f,f+4|0,g,j,j+8|0,i)|0){case 1:case 2:{h=11;break}case 3:{a[j>>0]=c[e>>2];c[i>>2]=j+1;h=8;break}default:h=8}a:do if((h|0)==8){g=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=j>>>0){f=1;g=0;break a}b=f+-1|0;c[i>>2]=b;if((Bj(a[b>>0]|0,c[g>>2]|0)|0)==-1){h=11;break}}}while(0);if((h|0)==11){f=0;g=hl()|0}if(!f){d=g;break}}else e=b+48|0;c[e>>2]=d;a[k>>0]=1}while(0);Ia=l;return d|0}function Hm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=Ia;Ia=Ia+32|0;q=r+16|0;p=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){c[f>>2]=hl()|0;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;o=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){n=9;break}g=Cj(c[o>>2]|0)|0;if((g|0)==-1){n=8;break}a[q+f>>0]=g;f=f+1|0}if((n|0)==8)e=hl()|0;else if((n|0)==9){do if(!(a[b+53>>0]|0)){j=b+40|0;i=b+36|0;k=p+4|0;a:while(1){s=c[j>>2]|0;f=s;g=c[f>>2]|0;f=c[f+4>>2]|0;t=c[i>>2]|0;h=q+e|0;switch(Va[c[(c[t>>2]|0)+16>>2]&15](t,s,q,h,l,p,k,m)|0){case 3:{n=15;break a}case 2:{n=17;break a}case 1:break;default:break a}t=c[j>>2]|0;c[t>>2]=g;c[t+4>>2]=f;if((e|0)==8){n=17;break}f=Cj(c[o>>2]|0)|0;if((f|0)==-1){n=17;break}a[h>>0]=f;e=e+1|0}if((n|0)==15)c[p>>2]=a[q>>0];else if((n|0)==17){e=hl()|0;break}n=19}else{c[p>>2]=a[q>>0];n=19}while(0);b:do if((n|0)==19){c:do if(d)c[b+48>>2]=il(c[p>>2]|0)|0;else{do{if((e|0)<=0)break c;e=e+-1|0;t=il(a[q+e>>0]|0)|0}while((Bj(t,c[o>>2]|0)|0)!=-1);e=hl()|0;break b}while(0);e=il(c[p>>2]|0)|0}while(0)}}Ia=r;return e|0}function Im(a){a=a|0;Dk(a);Jv(a);return}function Jm(b,d){b=b|0;d=d|0;var e=0,f=0;f=qn(d,1183292)|0;e=b+36|0;c[e>>2]=f;d=b+44|0;c[d>>2]=La[c[(c[f>>2]|0)+24>>2]&127](f)|0;e=c[e>>2]|0;a[b+53>>0]=(La[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;if((c[d>>2]|0)>8)Jq(46030);else return}function Km(a){a=a|0;return Nm(a,0)|0}function Lm(a){a=a|0;return Nm(a,1)|0}function Mm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+32|0;j=l+16|0;i=l+4|0;f=l+8|0;g=l;h=Pl(d,Rk()|0)|0;k=b+52|0;e=(a[k>>0]|0)!=0;do if(h){if(!e){d=c[b+48>>2]|0;a[k>>0]=((Pl(d,Rk()|0)|0)^1)&1}}else{if(e){e=b+48|0;a[f>>0]=Uk(c[e>>2]|0)|0;h=c[b+36>>2]|0;switch(Va[c[(c[h>>2]|0)+12>>2]&15](h,c[b+40>>2]|0,f,f+1|0,g,j,j+8|0,i)|0){case 1:case 2:{h=11;break}case 3:{a[j>>0]=c[e>>2];c[i>>2]=j+1;h=8;break}default:h=8}a:do if((h|0)==8){g=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=j>>>0){f=1;g=0;break a}b=f+-1|0;c[i>>2]=b;if((Bj(a[b>>0]|0,c[g>>2]|0)|0)==-1){h=11;break}}}while(0);if((h|0)==11){f=0;g=Rk()|0}if(!f){d=g;break}}else e=b+48|0;c[e>>2]=d;a[k>>0]=1}while(0);Ia=l;return d|0}function Nm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=Ia;Ia=Ia+32|0;q=r+16|0;p=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){c[f>>2]=Rk()|0;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;o=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){n=9;break}g=Cj(c[o>>2]|0)|0;if((g|0)==-1){n=8;break}a[q+f>>0]=g;f=f+1|0}if((n|0)==8)e=Rk()|0;else if((n|0)==9){do if(!(a[b+53>>0]|0)){j=b+40|0;i=b+36|0;k=p+1|0;a:while(1){s=c[j>>2]|0;f=s;g=c[f>>2]|0;f=c[f+4>>2]|0;t=c[i>>2]|0;h=q+e|0;switch(Va[c[(c[t>>2]|0)+16>>2]&15](t,s,q,h,l,p,k,m)|0){case 3:{n=15;break a}case 2:{n=17;break a}case 1:break;default:break a}t=c[j>>2]|0;c[t>>2]=g;c[t+4>>2]=f;if((e|0)==8){n=17;break}f=Cj(c[o>>2]|0)|0;if((f|0)==-1){n=17;break}a[h>>0]=f;e=e+1|0}if((n|0)==15)a[p>>0]=a[q>>0]|0;else if((n|0)==17){e=Rk()|0;break}n=19}else{a[p>>0]=a[q>>0]|0;n=19}while(0);b:do if((n|0)==19){c:do if(d)c[b+48>>2]=Sk(a[p>>0]|0)|0;else{do{if((e|0)<=0)break c;e=e+-1|0;t=Sk(a[q+e>>0]|0)|0}while((Bj(t,c[o>>2]|0)|0)!=-1);e=Rk()|0;break b}while(0);e=Sk(a[p>>0]|0)|0}while(0)}}Ia=r;return e|0}function Om(a){a=a|0;Wm(a);return}function Pm(a){a=a|0;Om(a);Jv(a);return}function Qm(a){a=a|0;if(a|0)Xa[c[(c[a>>2]|0)+4>>2]&255](a);return}function Rm(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=e;while(1){if((g|0)==(f|0)){h=7;break}if((c|0)==(d|0)){c=-1;break}b=a[c>>0]|0;e=a[g>>0]|0;if(b<<24>>24>24){c=-1;break}if(e<<24>>24>24){c=1;break}c=c+1|0;g=g+1|0}if((h|0)==7)c=(c|0)!=(d|0)&1;return c|0}function Sm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Um(a,d,e);return}function Tm(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;b=0;while(1){if((c|0)==(d|0))break;e=(b<<4)+(a[c>>0]|0)|0;f=e&-268435456;b=((24?f>>>24:f)|f)^e;c=c+1|0}return b|0}function Um(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=Ia;Ia=Ia+16|0;g=d;h=i;f=e-g|0;if(f>>>0>4294967279)Pv(b);if(f>>>0<11)a[b+11>>0]=f;else{k=f+16&-16;j=Gv(k)|0;c[b>>2]=j;c[b+8>>2]=k|-2147483648;c[b+4>>2]=f;b=j}g=e-g|0;f=b;while(1){if((d|0)==(e|0))break;Vm(f,d);d=d+1|0;f=f+1|0}a[h>>0]=0;Vm(b+g|0,h);Ia=i;return}function Vm(b,c){b=b|0;c=c|0;a[b>>0]=a[c>>0]|0;return}function Wm(a){a=a|0;return}function Xm(a){a=a|0;Wm(a);return}function Ym(a){a=a|0;Xm(a);Jv(a);return}function Zm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=e;while(1){if((g|0)==(f|0)){h=7;break}if((b|0)==(d|0)){b=-1;break}a=c[b>>2]|0;e=c[g>>2]|0;if((a|0)<(e|0)){b=-1;break}if((e|0)<(a|0)){b=1;break}b=b+4|0;g=g+4|0}if((h|0)==7)b=(b|0)!=(d|0)&1;return b|0}function _m(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;an(a,d,e);return}function $m(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=0;while(1){if((b|0)==(d|0))break;e=(c[b>>2]|0)+(a<<4)|0;f=e&-268435456;a=((24?f>>>24:f)|f)^e;b=b+4|0}return a|0}function an(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;i=j;h=e-d|0;h=2?h>>2:h;if(h>>>0>1073741807)Pv(b);do if(h>>>0>=2){g=h+4&-4;if(g>>>0>1073741823)ea();else{f=Gv(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=h;break}}else{a[b+8+3>>0]=h;f=b}while(0);while(1){if((d|0)==(e|0))break;bn(f,d);d=d+4|0;f=f+4|0}c[i>>2]=0;bn(f,i);Ia=j;return}function bn(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];return}function cn(a){a=a|0;Wm(a);return}function dn(a){a=a|0;Wm(a);Jv(a);return}function en(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+48|0;m=o+40|0;n=o;i=o+32|0;j=o+36|0;k=o+28|0;l=o+24|0;if(!(c[f+4>>2]&1)){c[i>>2]=-1;l=c[(c[b>>2]|0)+16>>2]|0;c[j>>2]=c[d>>2];c[k>>2]=c[e>>2];c[n>>2]=c[j>>2];c[m>>2]=c[k>>2];c[d>>2]=Ta[l&63](b,n,m,f,g,i)|0;switch(c[i>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}d=c[d>>2]|0}else{Ql(m,f);b=qn(m,1182988)|0;rn(m);Ql(m,f);k=qn(m,1183004)|0;rn(m);Ya[c[(c[k>>2]|0)+24>>2]&127](n,k);Ya[c[(c[k>>2]|0)+28>>2]&127](n+12|0,k);c[l>>2]=c[e>>2];e=n+24|0;c[m>>2]=c[l>>2];a[h>>0]=(_n(d,m,n,e,b,g,1)|0)==(n|0)&1;d=c[d>>2]|0;do{e=e+-12|0;Wv(e)}while((e|0)!=(n|0))}Ia=o;return d|0}function fn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Yn(a,j,i,e,f,g)|0;Ia=h;return a|0}function gn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Wn(a,j,i,e,f,g)|0;Ia=h;return a|0}function hn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Un(a,j,i,e,f,g)|0;Ia=h;return a|0}function jn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Sn(a,j,i,e,f,g)|0;Ia=h;return a|0}function kn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Qn(a,j,i,e,f,g)|0;Ia=h;return a|0}function ln(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Kn(a,j,i,e,f,g)|0;Ia=h;return a|0}function mn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=In(a,j,i,e,f,g)|0;Ia=h;return a|0}function nn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Gn(a,j,i,e,f,g)|0;Ia=h;return a|0}function on(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];a=Bn(a,j,i,e,f,g)|0;Ia=h;return a|0}function pn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=Ia;Ia=Ia+240|0;v=y+192|0;q=y+160|0;w=y+220|0;x=y+208|0;u=y+204|0;s=y;t=y+200|0;r=y+196|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}Ql(x,f);b=qn(x,1182988)|0;Pa[c[(c[b>>2]|0)+32>>2]&7](b,28784,28810,q)|0;rn(x);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}p=x+11|0;o=x+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b;c[t>>2]=s;c[r>>2]=0;n=x+4|0;i=c[d>>2]|0;j=i;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(k)break;else break a;else{c[e>>2]=0;z=22;break}}else z=22;while(0);if((z|0)==22){z=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[u>>2]|0)==(b+f|0)){aw(x,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=Sk(a[f>>0]|0)|0;if(sn(f&255,16,b,u,r,0,w,s,t,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+1;Sk(a[f>>0]|0)|0}i=m}aw(x,(c[u>>2]|0)-b|0,0);t=(a[p>>0]|0)<0?c[x>>2]|0:x;u=tn()|0;c[v>>2]=h;if((un(t,u,46178,v)|0)!=1)c[g>>2]=4;if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{z=52;break}else{c[e>>2]=0;z=50;break}}else z=50;while(0);if((z|0)==50?f:0)z=52;if((z|0)==52)c[g>>2]=c[g>>2]|2;z=c[d>>2]|0;Wv(x);Wv(w);Ia=y;return z|0}function qn(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return wn(a,vn(b)|0)|0}function rn(a){a=a|0;var b=0,d=0;a=c[a>>2]|0;d=a+4|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(!b)Xa[c[(c[a>>2]|0)+8>>2]&255](a);return}function sn(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(a[l+24>>0]|0)==b<<24>>24;if(!m?(a[l+25>>0]|0)!=b<<24>>24:0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;i=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if(b<<24>>24==h<<24>>24?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){i=c[k>>2]|0;if((i-j|0)>=160){i=0;break}p=c[g>>2]|0;c[k>>2]=i+4;c[i>>2]=p;c[g>>2]=0;i=0;break}m=l+26|0;h=0;while(1){i=l+h|0;if((h|0)==26){i=m;break}if((a[i>>0]|0)==b<<24>>24)break;else h=h+1|0}i=i-l|0;if((i|0)>23)i=-1;else{switch(d|0){case 10:case 8:{if((i|0)>=(d|0)){i=-1;break a}break}case 16:{if((i|0)>=22){if(p){i=-1;break a}if((o-e|0)>=3){i=-1;break a}if((a[o+-1>>0]|0)!=48){i=-1;break a}c[g>>2]=0;i=a[28784+i>>0]|0;c[f>>2]=o+1;a[o>>0]=i;i=0;break a}break}default:{}}i=a[28784+i>>0]|0;c[f>>2]=o+1;a[o>>0]=i;c[g>>2]=(c[g>>2]|0)+1;i=0}}while(0);return i|0}function tn(){if((a[1180032]|0)==0?hJ(1180032)|0:0){c[295749]=bk(2147483647,46181,0)|0;jJ(1180032)}return c[295749]|0}function un(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;c[g>>2]=e;e=fk(b)|0;b=zj(a,d,g)|0;if(e|0)fk(e)|0;Ia=f;return b|0}function vn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=Ia;Ia=Ia+48|0;d=f+32|0;b=f+24|0;e=f;g=f+16|0;c[g>>2]=243;c[g+4>>2]=0;c[d>>2]=c[g>>2];c[d+4>>2]=c[g+4>>2];yn(e,d,a);if((c[a>>2]|0)!=-1){c[d>>2]=e;c[b>>2]=d;Ev(a,b,244)}Ia=f;return (c[a+4>>2]|0)+-1|0}function wn(a,b){a=a|0;b=b|0;return c[(c[a+8>>2]|0)+(b<<2)>>2]|0}function xn(a){a=a|0;var b=0;b=c[295750]|0;c[295750]=b+1;c[a+4>>2]=b+1;return}function yn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b>>2]|0;b=c[b+4>>2]|0;c[a>>2]=d;c[a+4>>2]=e;c[a+8>>2]=b;return}function zn(a){a=a|0;An(c[c[a>>2]>>2]|0);return}function An(a){a=a|0;var b=0,d=0;b=c[a+4>>2]|0;d=c[a+8>>2]|0;a=(c[a>>2]|0)+(1?d>>1:d)|0;if(d&1)b=c[(c[a>>2]|0)+b>>2]|0;Xa[b&255](a);return}function Bn(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=Ia;Ia=Ia+240|0;r=D+160|0;s=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;x=D;y=D+196|0;w=D+192|0;z=D+229|0;t=D+228|0;Cn(C,f,r,s,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}q=B+11|0;p=B+8|0;if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[y>>2]=x;c[w>>2]=0;a[z>>0]=1;a[t>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[q>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){aw(B,f<<1,0);if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}m=n+12|0;f=c[m>>2]|0;l=n+16|0;if((f|0)==(c[l>>2]|0))f=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else f=Sk(a[f>>0]|0)|0;if(Dn(f&255,z,t,b,v,a[s>>0]|0,a[u>>0]|0,C,x,y,w,r)|0)break;f=c[m>>2]|0;if((f|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=f+1;Sk(a[f>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[y>>2]|0,(A-x|0)<160):0){z=c[w>>2]|0;c[y>>2]=A+4;c[A>>2]=z}g[i>>3]=+En(b,c[v>>2]|0,h);Fn(C,x,c[y>>2]|0,h);if(n){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;Wv(B);Wv(C);Ia=D;return E|0}function Cn(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=Ia;Ia=Ia+16|0;i=h;Ql(i,d);d=qn(i,1182988)|0;Pa[c[(c[d>>2]|0)+32>>2]&7](d,28784,28816,e)|0;d=qn(i,1183004)|0;a[f>>0]=La[c[(c[d>>2]|0)+12>>2]&127](d)|0;a[g>>0]=La[c[(c[d>>2]|0)+16>>2]&127](d)|0;Ya[c[(c[d>>2]|0)+20>>2]&127](b,d);rn(i);Ia=h;return}function Dn(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if(b<<24>>24==h<<24>>24)if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;e=a[j+11>>0]|0;if(((e<<24>>24<0?c[j+4>>2]|0:e&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if(b<<24>>24==i<<24>>24?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+32|0;h=0;while(1){o=n+h|0;if((h|0)==32){o=i;break}if((a[o>>0]|0)==b<<24>>24)break;else h=h+1|0}h=o-n|0;if((h|0)>31)o=-1;else{i=a[28784+h>>0]|0;switch(h|0){case 24:case 25:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 23:case 22:{a[e>>0]=80;o=c[g>>2]|0;c[g>>2]=o+1;a[o>>0]=i;o=0;break a}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>21){o=0;break a}c[m>>2]=(c[m>>2]|0)+1;o=0;break a}}}}while(0);return o|0}function En(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{f=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;e=+Si(a,g,tn()|0);a=c[(Nh()|0)>>2]|0;if(!a)c[(Nh()|0)>>2]=f;if((c[g>>2]|0)==(b|0)){if((a|0)==34)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}Ia=i;return +e}function Fn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;j=b+11|0;h=a[j>>0]|0;k=b+4|0;i=c[k>>2]|0;g=h&255;do if((h<<24>>24<0?i:g)|0){if((d|0)!=(e|0)){h=d;g=e;while(1){g=g+-4|0;if(h>>>0>=g>>>0)break;i=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=i;h=h+4|0}g=a[j>>0]|0;h=g;i=c[k>>2]|0;g=g&255}j=h<<24>>24<0;b=j?c[b>>2]|0:b;k=e+-4|0;j=b+(j?i:g)|0;i=b;while(1){g=a[i>>0]|0;h=g<<24>>24>0&g<<24>>24!=127;if(d>>>0>=k>>>0)break;if(h?(c[d>>2]|0)!=(g<<24>>24|0):0){l=11;break}i=(j-i|0)>1?i+1|0:i;d=d+4|0}if((l|0)==11){c[f>>2]=4;break}if(h?((c[k>>2]|0)+-1|0)>>>0>=g<<24>>24>>>0:0)c[f>>2]=4}while(0);return}function Gn(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=Ia;Ia=Ia+240|0;r=D+160|0;s=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;x=D;y=D+196|0;w=D+192|0;z=D+229|0;t=D+228|0;Cn(C,f,r,s,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}q=B+11|0;p=B+8|0;if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[y>>2]=x;c[w>>2]=0;a[z>>0]=1;a[t>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[q>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){aw(B,f<<1,0);if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}m=n+12|0;f=c[m>>2]|0;l=n+16|0;if((f|0)==(c[l>>2]|0))f=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else f=Sk(a[f>>0]|0)|0;if(Dn(f&255,z,t,b,v,a[s>>0]|0,a[u>>0]|0,C,x,y,w,r)|0)break;f=c[m>>2]|0;if((f|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=f+1;Sk(a[f>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[y>>2]|0,(A-x|0)<160):0){z=c[w>>2]|0;c[y>>2]=A+4;c[A>>2]=z}g[i>>3]=+Hn(b,c[v>>2]|0,h);Fn(C,x,c[y>>2]|0,h);if(n){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;Wv(B);Wv(C);Ia=D;return E|0}function Hn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{f=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;e=+Ri(a,g,tn()|0);a=c[(Nh()|0)>>2]|0;if(!a)c[(Nh()|0)>>2]=f;if((c[g>>2]|0)==(b|0)){if((a|0)==34)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}Ia=i;return +e}function In(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=Ia;Ia=Ia+240|0;r=D+160|0;s=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;x=D;y=D+196|0;w=D+192|0;z=D+229|0;t=D+228|0;Cn(C,g,r,s,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}q=B+11|0;p=B+8|0;if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[y>>2]=x;c[w>>2]=0;a[z>>0]=1;a[t>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=Sk(a[g>>0]|0)|0;if(Pl(g,Rk()|0)|0){c[d>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[e>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=Sk(a[g>>0]|0)|0;if(!(Pl(g,Rk()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}g=a[q>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[v>>2]|0)==(b+g|0)){aw(B,g<<1,0);if((a[q>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;aw(B,b,0);b=(a[q>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+g}m=n+12|0;g=c[m>>2]|0;l=n+16|0;if((g|0)==(c[l>>2]|0))g=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else g=Sk(a[g>>0]|0)|0;if(Dn(g&255,z,t,b,v,a[s>>0]|0,a[u>>0]|0,C,x,y,w,r)|0)break;g=c[m>>2]|0;if((g|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=g+1;Sk(a[g>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[y>>2]|0,(A-x|0)<160):0){z=c[w>>2]|0;c[y>>2]=A+4;c[A>>2]=z}f[i>>2]=+Jn(b,c[v>>2]|0,h);Fn(C,x,c[y>>2]|0,h);if(n){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;g=1}else g=0}else g=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(g)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?g:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;Wv(B);Wv(C);Ia=D;return E|0}function Jn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{f=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;e=+Qi(a,g,tn()|0);a=c[(Nh()|0)>>2]|0;if(!a)c[(Nh()|0)>>2]=f;if((c[g>>2]|0)==(b|0)){if((a|0)==34)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}Ia=i;return +e}function Kn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+240|0;r=B+224|0;z=B+212|0;y=B+200|0;t=B+196|0;v=B;w=B+192|0;u=B+188|0;x=Ln(f)|0;q=Mn(b,f,B+160|0)|0;Nn(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=Sk(a[f>>0]|0)|0;if(sn(f&255,x,b,t,u,a[r>>0]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+1;Sk(a[f>>0]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}t=On(b,c[t>>2]|0,g,x)|0;u=E()|0;x=h;c[x>>2]=t;c[x+4>>2]=u;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function Ln(a){a=a|0;switch(c[a+4>>2]&74){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function Mn(a,b,c){a=a|0;b=b|0;c=c|0;return Pn(a,b,c)|0}function Nn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=Ia;Ia=Ia+16|0;g=f;Ql(g,d);d=qn(g,1183004)|0;a[e>>0]=La[c[(c[d>>2]|0)+16>>2]&127](d)|0;Ya[c[(c[d>>2]|0)+20>>2]&127](b,d);rn(g);Ia=f;return}function On(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;f=0;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;f=0;b=0;break}}h=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;b=ik(b,i,f,tn()|0)|0;g=E()|0;f=c[(Nh()|0)>>2]|0;if(!f)c[(Nh()|0)>>2]=h;do if((c[i>>2]|0)==(d|0))if((f|0)==34){c[e>>2]=4;b=-1;f=-1;break}else{i=qJ(0,0,b|0,g|0)|0;f=E()|0;b=j?i:b;f=j?f:g;break}else{c[e>>2]=4;b=0;f=0}while(0)}while(0);D(f|0);Ia=k;return b|0}function Pn(a,b,c){a=a|0;b=b|0;c=c|0;return 28784}function Qn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+240|0;r=B+224|0;z=B+212|0;y=B+200|0;t=B+196|0;v=B;w=B+192|0;u=B+188|0;x=Ln(f)|0;q=Mn(b,f,B+160|0)|0;Nn(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=Sk(a[f>>0]|0)|0;if(sn(f&255,x,b,t,u,a[r>>0]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+1;Sk(a[f>>0]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}c[h>>2]=Rn(b,c[t>>2]|0,g,x)|0;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function Rn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;b=ik(b,i,f,tn()|0)|0;f=E()|0;g=c[(Nh()|0)>>2]|0;if(!g)c[(Nh()|0)>>2]=h;do if((c[i>>2]|0)==(d|0))if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==34){c[e>>2]=4;b=-1;break}else{b=j?0-b|0:b;break}else{c[e>>2]=4;b=0}while(0)}while(0);Ia=k;return b|0}function Sn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+240|0;r=B+224|0;z=B+212|0;y=B+200|0;t=B+196|0;v=B;w=B+192|0;u=B+188|0;x=Ln(f)|0;q=Mn(b,f,B+160|0)|0;Nn(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=Sk(a[f>>0]|0)|0;if(sn(f&255,x,b,t,u,a[r>>0]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+1;Sk(a[f>>0]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}c[h>>2]=Tn(b,c[t>>2]|0,g,x)|0;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function Tn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;b=ik(b,i,f,tn()|0)|0;f=E()|0;g=c[(Nh()|0)>>2]|0;if(!g)c[(Nh()|0)>>2]=h;do if((c[i>>2]|0)==(d|0))if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==34){c[e>>2]=4;b=-1;break}else{b=j?0-b|0:b;break}else{c[e>>2]=4;b=0}while(0)}while(0);Ia=k;return b|0}function Un(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=Ia;Ia=Ia+240|0;s=C+224|0;A=C+212|0;z=C+200|0;u=C+196|0;w=C;x=C+192|0;v=C+188|0;y=Ln(g)|0;r=Mn(d,g,C+160|0)|0;Nn(A,g,s);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[z+(d<<2)>>2]=0;d=d+1|0}q=z+11|0;p=z+8|0;if((a[q>>0]|0)<0)d=(c[p>>2]&2147483647)+-1|0;else d=10;aw(z,d,0);d=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=d;c[x>>2]=w;c[v>>2]=0;o=z+4|0;k=c[e>>2]|0;j=k;a:while(1){if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=Sk(a[g>>0]|0)|0;if(Pl(g,Rk()|0)|0){c[e>>2]=0;n=0;k=0;l=1}else{n=j;l=0}}else{n=0;k=0;l=1}j=c[f>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=Sk(a[g>>0]|0)|0;if(!(Pl(g,Rk()|0)|0))if(l)break;else break a;else{c[f>>2]=0;B=19;break}}else B=19;while(0);if((B|0)==19){B=0;if(l){j=0;break}else j=0}g=a[q>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[u>>2]|0)==(d+g|0)){aw(z,g<<1,0);if((a[q>>0]|0)<0)d=(c[p>>2]&2147483647)+-1|0;else d=10;aw(z,d,0);d=(a[q>>0]|0)<0?c[z>>2]|0:z;c[u>>2]=d+g}m=n+12|0;g=c[m>>2]|0;l=n+16|0;if((g|0)==(c[l>>2]|0))g=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else g=Sk(a[g>>0]|0)|0;if(sn(g&255,y,d,u,v,a[s>>0]|0,A,w,x,r)|0)break;g=c[m>>2]|0;if((g|0)==(c[l>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[m>>2]=g+1;Sk(a[g>>0]|0)|0}j=n}s=a[A+11>>0]|0;if((s<<24>>24<0?c[A+4>>2]|0:s&255)|0?(t=c[x>>2]|0,(t-w|0)<160):0){v=c[v>>2]|0;c[x>>2]=t+4;c[t>>2]=v}b[i>>1]=Vn(d,c[u>>2]|0,h,y)|0;Fn(A,w,c[x>>2]|0,h);if(n){d=c[n+12>>2]|0;if((d|0)==(c[n+16>>2]|0))d=La[c[(c[k>>2]|0)+36>>2]&127](n)|0;else d=Sk(a[d>>0]|0)|0;if(Pl(d,Rk()|0)|0){c[e>>2]=0;g=1}else g=0}else g=1;do if(j){d=c[j+12>>2]|0;if((d|0)==(c[j+16>>2]|0))d=La[c[(c[j>>2]|0)+36>>2]&127](j)|0;else d=Sk(a[d>>0]|0)|0;if(!(Pl(d,Rk()|0)|0))if(g)break;else{B=50;break}else{c[f>>2]=0;B=48;break}}else B=48;while(0);if((B|0)==48?g:0)B=50;if((B|0)==50)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;Wv(z);Wv(A);Ia=C;return B|0}function Vn(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;b=ik(b,i,f,tn()|0)|0;f=E()|0;g=c[(Nh()|0)>>2]|0;if(!g)c[(Nh()|0)>>2]=h;do if((c[i>>2]|0)==(d|0)){if(f>>>0>0|(f|0)==0&b>>>0>65535|(g|0)==34){c[e>>2]=4;b=-1;break}if(j)b=0-b&65535;else b=b&65535}else{c[e>>2]=4;b=0}while(0)}while(0);Ia=k;return b|0}function Wn(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+240|0;r=B+224|0;z=B+212|0;y=B+200|0;t=B+196|0;v=B;w=B+192|0;u=B+188|0;x=Ln(f)|0;q=Mn(b,f,B+160|0)|0;Nn(z,f,r);c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}p=y+11|0;o=y+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b;c[w>>2]=v;c[u>>2]=0;n=y+4|0;j=c[d>>2]|0;i=j;a:while(1){if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(Pl(f,Rk()|0)|0){c[d>>2]=0;m=0;j=0;k=1}else{m=i;k=0}}else{m=0;j=0;k=1}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=Sk(a[f>>0]|0)|0;if(!(Pl(f,Rk()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[t>>2]|0)==(b+f|0)){aw(y,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;aw(y,b,0);b=(a[p>>0]|0)<0?c[y>>2]|0:y;c[t>>2]=b+f}l=m+12|0;f=c[l>>2]|0;k=m+16|0;if((f|0)==(c[k>>2]|0))f=La[c[(c[m>>2]|0)+36>>2]&127](m)|0;else f=Sk(a[f>>0]|0)|0;if(sn(f&255,x,b,t,u,a[r>>0]|0,z,v,w,q)|0)break;f=c[l>>2]|0;if((f|0)==(c[k>>2]|0))La[c[(c[m>>2]|0)+40>>2]&127](m)|0;else{c[l>>2]=f+1;Sk(a[f>>0]|0)|0}i=m}r=a[z+11>>0]|0;if((r<<24>>24<0?c[z+4>>2]|0:r&255)|0?(s=c[w>>2]|0,(s-v|0)<160):0){u=c[u>>2]|0;c[w>>2]=s+4;c[s>>2]=u}t=Xn(b,c[t>>2]|0,g,x)|0;u=E()|0;x=h;c[x>>2]=t;c[x+4>>2]=u;Fn(z,v,c[w>>2]|0,g);if(m){b=c[m+12>>2]|0;if((b|0)==(c[m+16>>2]|0))b=La[c[(c[j>>2]|0)+36>>2]&127](m)|0;else b=Sk(a[b>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=La[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;Wv(y);Wv(z);Ia=B;return A|0}function Xn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;h=i;if((a|0)==(b|0)){c[d>>2]=4;e=0;a=0}else{g=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;a=jk(a,h,e,tn()|0)|0;e=E()|0;f=c[(Nh()|0)>>2]|0;if(!f)c[(Nh()|0)>>2]=g;if((c[h>>2]|0)==(b|0)){if((f|0)==34){c[d>>2]=4;e=(e|0)>0|(e|0)==0&a>>>0>0;a=e?-1:0;e=e?2147483647:-2147483648}}else{c[d>>2]=4;a=0;e=0}}D(e|0);Ia=i;return a|0} +function jr(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function kr(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function lr(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;pw(a,1,45);return}function mr(a){a=a|0;return 0}function nr(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function or(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function pr(a){a=a|0;Wm(a);return}function qr(a){a=a|0;Wm(a);Jv(a);return}function rr(a){a=a|0;return 2147483647}function sr(a){a=a|0;return 2147483647}function tr(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function ur(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function vr(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function wr(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;pw(a,1,45);return}function xr(a){a=a|0;return 0}function yr(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function zr(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function Ar(a){a=a|0;Wm(a);return}function Br(a){a=a|0;Wm(a);Jv(a);return}function Cr(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=Ia;Ia=Ia+256|0;o=u+240|0;p=u+216|0;l=u+112|0;t=u+232|0;n=u+228|0;r=u+224|0;j=u+250|0;v=u+220|0;m=u;c[t>>2]=l;c[t+4>>2]=245;Ql(r,g);b=qn(r,1182988)|0;a[j>>0]=0;c[v>>2]=c[e>>2];g=c[g+4>>2]|0;c[o>>2]=c[v>>2];if(Fr(d,o,f,r,g,h,j,b,t,n,l+100|0)|0){Pa[c[(c[b>>2]|0)+32>>2]&7](b,47444,47454,o)|0;f=c[n>>2]|0;g=c[t>>2]|0;b=f-g|0;if((b|0)>98){b=kk(b+2|0)|0;if(!b)Fv();else{q=b;k=b}}else{q=0;k=m}if(!(a[j>>0]|0))b=k;else{a[k>>0]=45;b=k+1|0}k=o+10|0;l=o;j=b;while(1){if(g>>>0>=f>>>0)break;f=a[g>>0]|0;b=o;while(1){if((b|0)==(k|0)){b=k;break}if((a[b>>0]|0)==f<<24>>24)break;b=b+1|0}a[j>>0]=a[47444+(b-l)>>0]|0;f=c[n>>2]|0;j=j+1|0;g=g+1|0}a[j>>0]=0;c[p>>2]=i;if((Ij(m,47455,p)|0)!=1)Jq(0);if(q|0)lk(q)}b=c[d>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=Sk(a[f>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);b=c[e>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=Sk(a[f>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(g)break;else{s=34;break}else{c[e>>2]=0;s=32;break}}else s=32;while(0);if((s|0)==32?g:0)s=34;if((s|0)==34)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;rn(r);b=c[t>>2]|0;c[t>>2]=0;if(b|0)Xa[c[t+4>>2]&255](b);Ia=u;return f|0}function Dr(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+128|0;k=s+120|0;b=s;r=s+112|0;m=s+108|0;p=s+100|0;j=s+124|0;n=s+104|0;c[r>>2]=b;c[r+4>>2]=245;Ql(p,g);l=qn(p,1182988)|0;a[j>>0]=0;o=c[e>>2]|0;c[n>>2]=o;g=c[g+4>>2]|0;c[k>>2]=c[n>>2];n=o;if(Fr(d,k,f,p,g,h,j,l,r,m,b+100|0)|0){b=i+11|0;if((a[b>>0]|0)<0){f=c[i>>2]|0;a[k>>0]=0;Vm(f,k);c[i+4>>2]=0}else{a[k>>0]=0;Vm(i,k);a[b>>0]=0}if(a[j>>0]|0)fw(i,Na[c[(c[l>>2]|0)+28>>2]&127](l,45)|0);j=Na[c[(c[l>>2]|0)+28>>2]&127](l,48)|0;b=c[m>>2]|0;f=b+-1|0;g=c[r>>2]|0;while(1){if(g>>>0>=f>>>0)break;if((a[g>>0]|0)!=j<<24>>24)break;g=g+1|0}Gr(i,g,b)|0}b=c[d>>2]|0;do if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=Sk(a[g>>0]|0)|0;if(Pl(b,Rk()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);do if(o){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[o>>2]|0)+36>>2]&127](n)|0;else b=Sk(a[b>>0]|0)|0;if(!(Pl(b,Rk()|0)|0))if(g)break;else{q=27;break}else{c[e>>2]=0;q=25;break}}else q=25;while(0);if((q|0)==25?g:0)q=27;if((q|0)==27)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;rn(p);b=c[r>>2]|0;c[r>>2]=0;if(b|0)Xa[c[r+4>>2]&255](b);Ia=s;return g|0}function Er(a){a=a|0;return}function Fr(e,f,g,h,i,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0;Z=Ia;Ia=Ia+512|0;O=Z+488|0;P=Z;Y=Z+480|0;R=Z+472|0;L=Z+468|0;M=Z+496|0;J=Z+493|0;N=Z+492|0;T=Z+456|0;X=Z+444|0;V=Z+432|0;U=Z+420|0;W=Z+408|0;K=Z+404|0;S=Z+400|0;c[O>>2]=o;c[Y>>2]=P;c[Y+4>>2]=245;c[R>>2]=P;c[L>>2]=P+400;c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[T+(o<<2)>>2]=0;o=o+1|0}c[X>>2]=0;c[X+4>>2]=0;c[X+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[X+(o<<2)>>2]=0;o=o+1|0}c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[V+(o<<2)>>2]=0;o=o+1|0}c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[U+(o<<2)>>2]=0;o=o+1|0}c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[W+(o<<2)>>2]=0;o=o+1|0}Jr(g,h,M,J,N,T,X,V,U,K);c[n>>2]=c[m>>2];I=l+8|0;C=V+11|0;F=V+4|0;D=U+11|0;G=U+4|0;E=T+11|0;H=T+4|0;B=(i&512|0)!=0;w=X+11|0;A=M+3|0;y=X+4|0;x=W+11|0;z=W+4|0;v=0;P=0;a:while(1){if(v>>>0>=4){Q=243;break}o=c[e>>2]|0;do if(o){l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if(Pl(o,Rk()|0)|0){c[e>>2]=0;l=1;break}else{l=(c[e>>2]|0)==0;break}}else l=1;while(0);g=c[f>>2]|0;do if(g){o=c[g+12>>2]|0;if((o|0)==(c[g+16>>2]|0))o=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=Sk(a[o>>0]|0)|0;if(!(Pl(o,Rk()|0)|0))if(l){u=g;break}else{Q=243;break a}else{c[f>>2]=0;Q=31;break}}else Q=31;while(0);if((Q|0)==31){Q=0;if(l){Q=243;break}else u=0}b:do switch(a[M+v>>0]|0){case 1:{if((v|0)==3)o=P;else{o=c[e>>2]|0;l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if((o&255)<<24>>24<=-1){Q=45;break a}Q=o<<24;if(!(b[(c[I>>2]|0)+((24?Q>>24:Q)<<1)>>1]&8192)){Q=45;break a}o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;o=Sk(a[l>>0]|0)|0}fw(W,o&255);Q=47}break}case 0:{if((v|0)==3)o=P;else Q=47;break}case 3:{o=a[C>>0]|0;o=o<<24>>24<0?c[F>>2]|0:o&255;h=a[D>>0]|0;h=h<<24>>24<0?c[G>>2]|0:h&255;if((o|0)==(0-h|0))o=P;else{i=(o|0)==0;o=c[e>>2]|0;l=c[o+12>>2]|0;g=(l|0)==(c[o+16>>2]|0);if(i|(h|0)==0){if(g)o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;o=o&255;if(i){if((a[((a[D>>0]|0)<0?c[U>>2]|0:U)>>0]|0)!=o<<24>>24){o=P;break b}o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}a[k>>0]=1;o=a[D>>0]|0;o=(o<<24>>24<0?c[G>>2]|0:o&255)>>>0>1?U:P;break b}if((a[((a[C>>0]|0)<0?c[V>>2]|0:V)>>0]|0)!=o<<24>>24){a[k>>0]=1;o=P;break b}o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}o=a[C>>0]|0;o=(o<<24>>24<0?c[F>>2]|0:o&255)>>>0>1?V:P;break b}if(g)i=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else i=Sk(a[l>>0]|0)|0;o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;h=(l|0)==(c[o+16>>2]|0);if((a[((a[C>>0]|0)<0?c[V>>2]|0:V)>>0]|0)==(i&255)<<24>>24){if(h)La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}o=a[C>>0]|0;o=(o<<24>>24<0?c[F>>2]|0:o&255)>>>0>1?V:P;break b}if(h)o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if((a[((a[D>>0]|0)<0?c[U>>2]|0:U)>>0]|0)!=(o&255)<<24>>24){Q=105;break a}o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}a[k>>0]=1;o=a[D>>0]|0;o=(o<<24>>24<0?c[G>>2]|0:o&255)>>>0>1?U:P}break}case 2:{if(v>>>0<2|(P|0)!=0){l=a[w>>0]|0;o=l<<24>>24<0;h=c[X>>2]|0;i=o?h:X;g=i;if(!v)o=h;else{s=i;Q=110}}else{if(!(B|(v|0)==2&(a[A>>0]|0)!=0)){o=0;break b}l=a[w>>0]|0;o=l<<24>>24<0;h=c[X>>2]|0;s=o?h:X;g=s;Q=110}c:do if((Q|0)==110){Q=0;if((d[M+(v+-1)>>0]|0)<2){p=s+(o?c[y>>2]|0:l&255)|0;t=g;while(1){o=t;if((p|0)==(o|0))break;i=a[o>>0]|0;if(i<<24>>24<=-1)break;if(!(b[(c[I>>2]|0)+(i<<24>>24<<1)>>1]&8192))break;t=o+1|0}q=t-g|0;i=a[x>>0]|0;r=i<<24>>24<0;o=c[z>>2]|0;i=i&255;if(q>>>0<=(r?o:i)>>>0){o=(c[W>>2]|0)+o|0;i=W+i|0;p=r?o:i;i=r?o+(0-q)|0:i+(0-q)|0;o=s;while(1){if((i|0)==(p|0)){o=h;g=t;break c}if((a[i>>0]|0)!=(a[o>>0]|0)){o=h;break c}i=i+1|0;o=o+1|0}}else o=h}else o=h}while(0);h=u;i=g;d:while(1){u=l<<24>>24<0;if((i|0)==((u?o:X)+(u?c[y>>2]|0:l&255)|0))break;o=c[e>>2]|0;do if(o){l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if(Pl(o,Rk()|0)|0){c[e>>2]=0;l=1;break}else{l=(c[e>>2]|0)==0;break}}else l=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=Sk(a[o>>0]|0)|0;if(!(Pl(o,Rk()|0)|0))if(l)break;else break d;else{c[f>>2]=0;Q=136;break}}else Q=136;while(0);if((Q|0)==136){Q=0;if(l)break;else h=0}o=c[e>>2]|0;l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if((a[i>>0]|0)!=(o&255)<<24>>24)break;o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}l=a[w>>0]|0;o=c[X>>2]|0;i=i+1|0}if(B?(u=a[w>>0]|0,t=u<<24>>24<0,(i|0)!=((t?c[X>>2]|0:X)+(t?c[y>>2]|0:u&255)|0)):0){Q=148;break a}else o=P;break}case 4:{h=u;o=u;i=0;e:while(1){l=c[e>>2]|0;do if(l){g=c[l+12>>2]|0;if((g|0)==(c[l+16>>2]|0))l=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else l=Sk(a[g>>0]|0)|0;if(Pl(l,Rk()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(h){l=c[h+12>>2]|0;if((l|0)==(c[h+16>>2]|0))l=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else l=Sk(a[l>>0]|0)|0;if(!(Pl(l,Rk()|0)|0))if(g){p=h;break}else{h=o;break e}else{c[f>>2]=0;o=0;Q=162;break}}else Q=162;while(0);if((Q|0)==162){Q=0;if(g){h=o;break}else p=0}l=c[e>>2]|0;g=c[l+12>>2]|0;if((g|0)==(c[l+16>>2]|0))l=La[c[(c[l>>2]|0)+36>>2]&127](l)|0;else l=Sk(a[g>>0]|0)|0;g=l&255;if(g<<24>>24>-1?(u=l<<24,(b[(c[I>>2]|0)+((24?u>>24:u)<<1)>>1]&2048)!=0):0){l=c[n>>2]|0;if((l|0)==(c[O>>2]|0)){Kr(m,n,O);l=c[n>>2]|0}c[n>>2]=l+1;a[l>>0]=g;i=i+1|0}else{u=a[E>>0]|0;if(!((a[N>>0]|0)==g<<24>>24&(i|0?((u<<24>>24<0?c[H>>2]|0:u&255)|0)!=0:0))){h=o;break}l=c[R>>2]|0;if((l|0)==(c[L>>2]|0)){Lr(Y,R,L);l=c[R>>2]|0}c[R>>2]=l+4;c[l>>2]=i;i=0}l=c[e>>2]|0;h=l+12|0;g=c[h>>2]|0;if((g|0)==(c[l+16>>2]|0))La[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[h>>2]=g+1;Sk(a[g>>0]|0)|0}h=p}o=c[R>>2]|0;if(i|0?(c[Y>>2]|0)!=(o|0):0){if((o|0)==(c[L>>2]|0)){Lr(Y,R,L);o=c[R>>2]|0}c[R>>2]=o+4;c[o>>2]=i}f:do if((c[K>>2]|0)>0){o=c[e>>2]|0;do if(o){l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if(Pl(o,Rk()|0)|0){c[e>>2]=0;l=1;break}else{l=(c[e>>2]|0)==0;break}}else l=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=Sk(a[o>>0]|0)|0;if(!(Pl(o,Rk()|0)|0))if(l)break;else{Q=204;break a}else{c[f>>2]=0;Q=198;break}}else Q=198;while(0);if((Q|0)==198){Q=0;if(l){Q=204;break a}else h=0}o=c[e>>2]|0;l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if((a[J>>0]|0)!=(o&255)<<24>>24){Q=204;break a}o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}g=h;while(1){if((c[K>>2]|0)<=0)break f;o=c[e>>2]|0;do if(o){l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if(Pl(o,Rk()|0)|0){c[e>>2]=0;l=1;break}else{l=(c[e>>2]|0)==0;break}}else l=1;while(0);do if(g){o=c[g+12>>2]|0;if((o|0)==(c[g+16>>2]|0))o=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=Sk(a[o>>0]|0)|0;if(!(Pl(o,Rk()|0)|0))if(l){h=g;break}else{Q=230;break a}else{c[f>>2]=0;Q=223;break}}else Q=223;while(0);if((Q|0)==223){Q=0;if(l){Q=230;break a}else h=0}o=c[e>>2]|0;l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if((o&255)<<24>>24<=-1){Q=230;break a}u=o<<24;if(!(b[(c[I>>2]|0)+((24?u>>24:u)<<1)>>1]&2048)){Q=230;break a}if((c[n>>2]|0)==(c[O>>2]|0))Kr(m,n,O);o=c[e>>2]|0;l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;g=c[n>>2]|0;c[n>>2]=g+1;a[g>>0]=o;c[K>>2]=(c[K>>2]|0)+-1;o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}g=h}}while(0);if((c[n>>2]|0)==(c[m>>2]|0)){Q=241;break a}else o=P;break}default:o=P}while(0);g:do if((Q|0)==47){Q=0;g=u;while(1){o=c[e>>2]|0;do if(o){l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if(Pl(o,Rk()|0)|0){c[e>>2]=0;l=1;break}else{l=(c[e>>2]|0)==0;break}}else l=1;while(0);do if(g){o=c[g+12>>2]|0;if((o|0)==(c[g+16>>2]|0))o=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=Sk(a[o>>0]|0)|0;if(!(Pl(o,Rk()|0)|0))if(l){h=g;break}else{o=P;break g}else{c[f>>2]=0;Q=61;break}}else Q=61;while(0);if((Q|0)==61){Q=0;if(l){o=P;break g}else h=0}o=c[e>>2]|0;l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if((o&255)<<24>>24<=-1){o=P;break g}u=o<<24;if(!(b[(c[I>>2]|0)+((24?u>>24:u)<<1)>>1]&8192)){o=P;break g}o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;o=Sk(a[l>>0]|0)|0}fw(W,o&255);g=h}}while(0);v=v+1|0;P=o}h:do if((Q|0)==45){c[j>>2]=c[j>>2]|4;l=0}else if((Q|0)==105){c[j>>2]=c[j>>2]|4;l=0}else if((Q|0)==148){c[j>>2]=c[j>>2]|4;l=0}else if((Q|0)==204){c[j>>2]=c[j>>2]|4;l=0}else if((Q|0)==230){c[j>>2]=c[j>>2]|4;l=0}else if((Q|0)==241){c[j>>2]=c[j>>2]|4;l=0}else if((Q|0)==243){i:do if(P|0){i=P+11|0;p=P+4|0;h=1;j:while(1){o=a[i>>0]|0;if(o<<24>>24<0)o=c[p>>2]|0;else o=o&255;if(h>>>0>=o>>>0)break i;o=c[e>>2]|0;do if(o){l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if(Pl(o,Rk()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);o=c[f>>2]|0;do if(o){l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))o=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=Sk(a[l>>0]|0)|0;if(!(Pl(o,Rk()|0)|0))if(g)break;else break j;else{c[f>>2]=0;Q=262;break}}else Q=262;while(0);if((Q|0)==262?(Q=0,g):0)break;o=c[e>>2]|0;l=c[o+12>>2]|0;if((l|0)==(c[o+16>>2]|0))l=La[c[(c[o>>2]|0)+36>>2]&127](o)|0;else l=Sk(a[l>>0]|0)|0;if((a[i>>0]|0)<0)o=c[P>>2]|0;else o=P;if((a[o+h>>0]|0)!=(l&255)<<24>>24)break;o=c[e>>2]|0;g=o+12|0;l=c[g>>2]|0;if((l|0)==(c[o+16>>2]|0))La[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=l+1;Sk(a[l>>0]|0)|0}h=h+1|0}c[j>>2]=c[j>>2]|4;l=0;break h}while(0);l=c[Y>>2]|0;o=c[R>>2]|0;if((l|0)!=(o|0)){c[S>>2]=0;Fn(T,l,o,S);if(!(c[S>>2]|0)){l=1;break}else{c[j>>2]=c[j>>2]|4;l=0;break}}else l=1}while(0);Wv(W);Wv(U);Wv(V);Wv(X);Wv(T);o=c[Y>>2]|0;c[Y>>2]=0;if(o|0)Xa[c[Y+4>>2]&255](o);Ia=Z;return l|0}function Gr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+16|0;j=d;k=o;n=b+11|0;g=a[n>>0]|0;f=g<<24>>24<0;if(f){i=(c[b+8>>2]&2147483647)+-1|0;l=c[b+4>>2]|0}else{i=10;l=g&255}m=e-j|0;do if(m|0){if(f){h=c[b>>2]|0;f=c[b+4>>2]|0}else{h=b;f=g&255}if(Hr(d,h,h+f|0)|0){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;Ir(k,d,e);n=a[k+11>>0]|0;m=n<<24>>24<0;dw(b,m?c[k>>2]|0:k,m?c[k+4>>2]|0:n&255)|0;Wv(k);break}if((i-l|0)>>>0>>0)cw(b,i,l+m-i|0,l,l,0,0);if((a[n>>0]|0)<0)h=c[b>>2]|0;else h=b;g=e+(l-j)|0;f=h+l|0;while(1){if((d|0)==(e|0))break;Vm(f,d);d=d+1|0;f=f+1|0}a[k>>0]=0;Vm(h+g|0,k);d=l+m|0;if((a[n>>0]|0)<0){c[b+4>>2]=d;break}else{a[n>>0]=d;break}}while(0);Ia=o;return b|0}function Hr(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0}function Ir(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=Ia;Ia=Ia+16|0;g=d;h=i;f=e-g|0;if(f>>>0>4294967279)Pv(b);if(f>>>0<11)a[b+11>>0]=f;else{k=f+16&-16;j=Gv(k)|0;c[b>>2]=j;c[b+8>>2]=k|-2147483648;c[b+4>>2]=f;b=j}g=e-g|0;f=b;while(1){if((d|0)==(e|0))break;Vm(f,d);d=d+1|0;f=f+1|0}a[h>>0]=0;Vm(b+g|0,h);Ia=i;return}function Jr(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;o=Ia;Ia=Ia+16|0;m=o+12|0;n=o;if(b){d=qn(d,1183220)|0;Ya[c[(c[d>>2]|0)+44>>2]&127](m,d);b=c[m>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ya[c[(c[d>>2]|0)+32>>2]&127](n,d);b=k+11|0;if((a[b>>0]|0)<0){e=c[k>>2]|0;a[m>>0]=0;Vm(e,m);c[k+4>>2]=0;if((a[b>>0]|0)<0){e=k+8|0;Mr(c[k>>2]|0,c[e>>2]&2147483647);c[e>>2]=0}}else{a[m>>0]=0;Vm(k,m);a[b>>0]=0};c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);Ya[c[(c[d>>2]|0)+28>>2]&127](n,d);b=j+11|0;if((a[b>>0]|0)<0){k=c[j>>2]|0;a[m>>0]=0;Vm(k,m);c[j+4>>2]=0;if((a[b>>0]|0)<0){k=j+8|0;Mr(c[j>>2]|0,c[k>>2]&2147483647);c[k>>2]=0}}else{a[m>>0]=0;Vm(j,m);a[b>>0]=0};c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);a[f>>0]=La[c[(c[d>>2]|0)+12>>2]&127](d)|0;a[g>>0]=La[c[(c[d>>2]|0)+16>>2]&127](d)|0;Ya[c[(c[d>>2]|0)+20>>2]&127](n,d);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[m>>0]=0;Vm(g,m);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Mr(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[m>>0]=0;Vm(h,m);a[b>>0]=0};c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);Ya[c[(c[d>>2]|0)+24>>2]&127](n,d);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[m>>0]=0;Vm(h,m);c[i+4>>2]=0;if((a[b>>0]|0)<0){m=i+8|0;Mr(c[i>>2]|0,c[m>>2]&2147483647);c[m>>2]=0}}else{a[m>>0]=0;Vm(i,m);a[b>>0]=0};c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);b=La[c[(c[d>>2]|0)+36>>2]&127](d)|0}else{d=qn(d,1183212)|0;Ya[c[(c[d>>2]|0)+44>>2]&127](m,d);b=c[m>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ya[c[(c[d>>2]|0)+32>>2]&127](n,d);b=k+11|0;if((a[b>>0]|0)<0){e=c[k>>2]|0;a[m>>0]=0;Vm(e,m);c[k+4>>2]=0;if((a[b>>0]|0)<0){e=k+8|0;Mr(c[k>>2]|0,c[e>>2]&2147483647);c[e>>2]=0}}else{a[m>>0]=0;Vm(k,m);a[b>>0]=0};c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);Ya[c[(c[d>>2]|0)+28>>2]&127](n,d);b=j+11|0;if((a[b>>0]|0)<0){k=c[j>>2]|0;a[m>>0]=0;Vm(k,m);c[j+4>>2]=0;if((a[b>>0]|0)<0){k=j+8|0;Mr(c[j>>2]|0,c[k>>2]&2147483647);c[k>>2]=0}}else{a[m>>0]=0;Vm(j,m);a[b>>0]=0};c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);a[f>>0]=La[c[(c[d>>2]|0)+12>>2]&127](d)|0;a[g>>0]=La[c[(c[d>>2]|0)+16>>2]&127](d)|0;Ya[c[(c[d>>2]|0)+20>>2]&127](n,d);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[m>>0]=0;Vm(g,m);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Mr(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[m>>0]=0;Vm(h,m);a[b>>0]=0};c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);Ya[c[(c[d>>2]|0)+24>>2]&127](n,d);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[m>>0]=0;Vm(h,m);c[i+4>>2]=0;if((a[b>>0]|0)<0){m=i+8|0;Mr(c[i>>2]|0,c[m>>2]&2147483647);c[m>>2]=0}}else{a[m>>0]=0;Vm(i,m);a[b>>0]=0};c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}Wv(n);b=La[c[(c[d>>2]|0)+36>>2]&127](d)|0}c[l>>2]=b;Ia=o;return}function Kr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;f=(c[h>>2]|0)!=245;e=c[a>>2]|0;i=e;j=(c[d>>2]|0)-i|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?1:g):-1;i=(c[b>>2]|0)-i|0;e=mk(f?e:0,g)|0;if(!e)Fv();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Xa[c[h>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[h>>2]=246;c[b>>2]=e+i;c[d>>2]=(c[a>>2]|0)+g;return}function Lr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;f=(c[h>>2]|0)!=245;e=c[a>>2]|0;i=e;j=(c[d>>2]|0)-i|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?4:g):-1;i=(c[b>>2]|0)-i|0;i=2?i>>2:i;e=mk(f?e:0,g)|0;if(!e)Fv();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Xa[c[h>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[h>>2]=246;c[b>>2]=e+(i<<2);c[d>>2]=(c[a>>2]|0)+((2?g>>>2:g)<<2);return}function Mr(a,b){a=a|0;b=b|0;Nr(a);return}function Nr(a){a=a|0;Jv(a);return}function Or(a){a=a|0;Wm(a);return}function Pr(a){a=a|0;Wm(a);Jv(a);return}function Qr(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=Ia;Ia=Ia+592|0;o=u+512|0;p=u+552|0;l=u+112|0;t=u+568|0;n=u+564|0;r=u+560|0;j=u+576|0;v=u+556|0;m=u;c[t>>2]=l;c[t+4>>2]=245;Ql(r,g);b=qn(r,1183020)|0;a[j>>0]=0;c[v>>2]=c[e>>2];g=c[g+4>>2]|0;c[o>>2]=c[v>>2];if(Sr(d,o,f,r,g,h,j,b,t,n,l+400|0)|0){Pa[c[(c[b>>2]|0)+48>>2]&7](b,47554,47564,o)|0;f=c[n>>2]|0;g=c[t>>2]|0;b=f-g|0;if((b|0)>392){b=kk((2?b>>>2:b)+2|0)|0;if(!b)Fv();else{q=b;k=b}}else{q=0;k=m}if(!(a[j>>0]|0))b=k;else{a[k>>0]=45;b=k+1|0}k=o+40|0;l=o;j=b;while(1){if(g>>>0>=f>>>0)break;f=c[g>>2]|0;b=o;while(1){if((b|0)==(k|0)){b=k;break}if((c[b>>2]|0)==(f|0))break;b=b+4|0}f=b-l|0;a[j>>0]=a[47554+(2?f>>2:f)>>0]|0;f=c[n>>2]|0;j=j+1|0;g=g+4|0}a[j>>0]=0;c[p>>2]=i;if((Ij(m,47455,p)|0)!=1)Jq(0);if(q|0)lk(q)}b=c[d>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=il(c[f>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);b=c[e>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=il(c[f>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(g)break;else{s=34;break}else{c[e>>2]=0;s=32;break}}else s=32;while(0);if((s|0)==32?g:0)s=34;if((s|0)==34)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;rn(r);b=c[t>>2]|0;c[t>>2]=0;if(b|0)Xa[c[t+4>>2]&255](b);Ia=u;return f|0}function Rr(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+432|0;k=s+424|0;b=s;r=s+416|0;m=s+408|0;p=s+400|0;j=s+428|0;n=s+404|0;c[r>>2]=b;c[r+4>>2]=245;Ql(p,g);l=qn(p,1183020)|0;a[j>>0]=0;o=c[e>>2]|0;c[n>>2]=o;g=c[g+4>>2]|0;c[k>>2]=c[n>>2];n=o;if(Sr(d,k,f,p,g,h,j,l,r,m,b+400|0)|0){b=i+8+3|0;if((a[b>>0]|0)<0){f=c[i>>2]|0;c[k>>2]=0;bn(f,k);c[i+4>>2]=0}else{c[k>>2]=0;bn(i,k);a[b>>0]=0}if(a[j>>0]|0)yw(i,Na[c[(c[l>>2]|0)+44>>2]&127](l,45)|0);j=Na[c[(c[l>>2]|0)+44>>2]&127](l,48)|0;b=c[m>>2]|0;f=b+-4|0;g=c[r>>2]|0;while(1){if(g>>>0>=f>>>0)break;if((c[g>>2]|0)!=(j|0))break;g=g+4|0}Tr(i,g,b)|0}b=c[d>>2]|0;do if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))b=La[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=il(c[g>>2]|0)|0;if(Rl(b,hl()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);do if(o){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=La[c[(c[o>>2]|0)+36>>2]&127](n)|0;else b=il(c[b>>2]|0)|0;if(!(Rl(b,hl()|0)|0))if(g)break;else{q=27;break}else{c[e>>2]=0;q=25;break}}else q=25;while(0);if((q|0)==25?g:0)q=27;if((q|0)==27)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;rn(p);b=c[r>>2]|0;c[r>>2]=0;if(b|0)Xa[c[r+4>>2]&255](b);Ia=s;return g|0}function Sr(b,e,f,g,h,i,j,k,l,m,n){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;X=Ia;Ia=Ia+512|0;M=X+496|0;N=X;W=X+488|0;P=X+480|0;J=X+476|0;K=X+500|0;H=X+472|0;L=X+468|0;R=X+456|0;V=X+444|0;T=X+432|0;S=X+420|0;U=X+408|0;I=X+404|0;Q=X+400|0;c[M>>2]=n;c[W>>2]=N;c[W+4>>2]=245;c[P>>2]=N;c[J>>2]=N+400;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[R+(n<<2)>>2]=0;n=n+1|0}c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[V+(n<<2)>>2]=0;n=n+1|0}c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[T+(n<<2)>>2]=0;n=n+1|0}c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[S+(n<<2)>>2]=0;n=n+1|0}c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[U+(n<<2)>>2]=0;n=n+1|0}Wr(f,g,K,H,L,R,V,T,S,I);c[m>>2]=c[l>>2];B=T+8+3|0;E=T+4|0;C=S+8+3|0;F=S+4|0;D=R+11|0;G=R+4|0;A=(h&512|0)!=0;v=V+8+3|0;z=K+3|0;x=V+4|0;w=U+8+3|0;y=U+4|0;u=0;N=0;a:while(1){if(u>>>0>=4){O=239;break}n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(Rl(n,hl()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);f=c[e>>2]|0;do if(f){n=c[f+12>>2]|0;if((n|0)==(c[f+16>>2]|0))n=La[c[(c[f>>2]|0)+36>>2]&127](f)|0;else n=il(c[n>>2]|0)|0;if(!(Rl(n,hl()|0)|0))if(g){t=f;break}else{O=239;break a}else{c[e>>2]=0;O=31;break}}else O=31;while(0);if((O|0)==31){O=0;if(g){O=239;break}else t=0}b:do switch(a[K+u>>0]|0){case 1:{if((u|0)==3)n=N;else{n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(!(Oa[c[(c[k>>2]|0)+12>>2]&31](k,8192,n)|0)){O=44;break a}n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;n=il(c[f>>2]|0)|0}yw(U,n);O=46}break}case 0:{if((u|0)==3)n=N;else O=46;break}case 3:{n=a[B>>0]|0;n=n<<24>>24<0?c[E>>2]|0:n&255;o=a[C>>0]|0;o=o<<24>>24<0?c[F>>2]|0:o&255;if((n|0)==(0-o|0))n=N;else{h=(n|0)==0;n=c[b>>2]|0;f=c[n+12>>2]|0;g=(f|0)==(c[n+16>>2]|0);if(h|(o|0)==0){if(g)n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(h){if((n|0)!=(c[((a[C>>0]|0)<0?c[S>>2]|0:S)>>2]|0)){n=N;break b}n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}a[j>>0]=1;n=a[C>>0]|0;n=(n<<24>>24<0?c[F>>2]|0:n&255)>>>0>1?S:N;break b}if((n|0)!=(c[((a[B>>0]|0)<0?c[T>>2]|0:T)>>2]|0)){a[j>>0]=1;n=N;break b}n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}n=a[B>>0]|0;n=(n<<24>>24<0?c[E>>2]|0:n&255)>>>0>1?T:N;break b}if(g)o=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else o=il(c[f>>2]|0)|0;n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;h=(f|0)==(c[n+16>>2]|0);if((o|0)==(c[((a[B>>0]|0)<0?c[T>>2]|0:T)>>2]|0)){if(h)La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}n=a[B>>0]|0;n=(n<<24>>24<0?c[E>>2]|0:n&255)>>>0>1?T:N;break b}if(h)n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if((n|0)!=(c[((a[C>>0]|0)<0?c[S>>2]|0:S)>>2]|0)){O=103;break a}n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}a[j>>0]=1;n=a[C>>0]|0;n=(n<<24>>24<0?c[F>>2]|0:n&255)>>>0>1?S:N}break}case 2:{if(u>>>0<2|(N|0)!=0){f=a[v>>0]|0;n=c[V>>2]|0;g=f<<24>>24<0?n:V;if(u)O=108}else{if(!(A|(u|0)==2&(a[z>>0]|0)!=0)){n=0;break b}f=a[v>>0]|0;n=c[V>>2]|0;g=f<<24>>24<0?n:V;O=108}c:do if((O|0)==108){O=0;if((d[K+(u+-1)>>0]|0)<2){h=f;while(1){s=h<<24>>24<0;f=g;if(((s?n:V)+((s?c[x>>2]|0:h&255)<<2)|0)==(f|0)){f=h;break}if(!(Oa[c[(c[k>>2]|0)+12>>2]&31](k,8192,c[f>>2]|0)|0)){O=112;break}h=a[v>>0]|0;n=c[V>>2]|0;g=f+4|0}if((O|0)==112){O=0;f=a[v>>0]|0;n=c[V>>2]|0}h=f<<24>>24<0?n:V;s=h;q=g-s|0;q=2?q>>2:q;p=a[w>>0]|0;r=p<<24>>24<0;o=c[y>>2]|0;p=p&255;if(q>>>0>(r?o:p)>>>0)g=s;else{Y=(c[U>>2]|0)+(o<<2)|0;o=U+(p<<2)|0;p=r?Y:o;o=(r?Y:o)+(0-q<<2)|0;while(1){if((o|0)==(p|0))break c;if((c[o>>2]|0)!=(c[h>>2]|0)){g=s;break c}o=o+4|0;h=h+4|0}}}}while(0);h=t;o=g;d:while(1){Y=f<<24>>24<0;if((o|0)==((Y?n:V)+((Y?c[x>>2]|0:f&255)<<2)|0))break;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(Rl(n,hl()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){n=c[h+12>>2]|0;if((n|0)==(c[h+16>>2]|0))n=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else n=il(c[n>>2]|0)|0;if(!(Rl(n,hl()|0)|0))if(f)break;else break d;else{c[e>>2]=0;O=134;break}}else O=134;while(0);if((O|0)==134){O=0;if(f)break;else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if((n|0)!=(c[o>>2]|0))break;n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}f=a[v>>0]|0;n=c[V>>2]|0;o=o+4|0}if(A?(Y=a[v>>0]|0,t=Y<<24>>24<0,(o|0)!=((t?c[V>>2]|0:V)+((t?c[x>>2]|0:Y&255)<<2)|0)):0){O=146;break a}else n=N;break}case 4:{h=t;n=t;o=0;e:while(1){f=c[b>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=La[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=il(c[g>>2]|0)|0;if(Rl(f,hl()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0))f=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else f=il(c[f>>2]|0)|0;if(!(Rl(f,hl()|0)|0))if(g){p=h;break}else{h=n;break e}else{c[e>>2]=0;n=0;O=160;break}}else O=160;while(0);if((O|0)==160){O=0;if(g){h=n;break}else p=0}f=c[b>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))g=La[c[(c[f>>2]|0)+36>>2]&127](f)|0;else g=il(c[g>>2]|0)|0;if(Oa[c[(c[k>>2]|0)+12>>2]&31](k,2048,g)|0){f=c[m>>2]|0;if((f|0)==(c[M>>2]|0)){Xr(l,m,M);f=c[m>>2]|0}c[m>>2]=f+4;c[f>>2]=g;o=o+1|0}else{Y=a[D>>0]|0;if(!((g|0)==(c[L>>2]|0)&(o|0?((Y<<24>>24<0?c[G>>2]|0:Y&255)|0)!=0:0))){h=n;break}f=c[P>>2]|0;if((f|0)==(c[J>>2]|0)){Lr(W,P,J);f=c[P>>2]|0}c[P>>2]=f+4;c[f>>2]=o;o=0}f=c[b>>2]|0;h=f+12|0;g=c[h>>2]|0;if((g|0)==(c[f+16>>2]|0))La[c[(c[f>>2]|0)+40>>2]&127](f)|0;else{c[h>>2]=g+4;il(c[g>>2]|0)|0}h=p}n=c[P>>2]|0;if(o|0?(c[W>>2]|0)!=(n|0):0){if((n|0)==(c[J>>2]|0)){Lr(W,P,J);n=c[P>>2]|0}c[P>>2]=n+4;c[n>>2]=o}f:do if((c[I>>2]|0)>0){n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(Rl(n,hl()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){n=c[h+12>>2]|0;if((n|0)==(c[h+16>>2]|0))n=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;else n=il(c[n>>2]|0)|0;if(!(Rl(n,hl()|0)|0))if(f)break;else{O=201;break a}else{c[e>>2]=0;O=195;break}}else O=195;while(0);if((O|0)==195){O=0;if(f){O=201;break a}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if((n|0)!=(c[H>>2]|0)){O=201;break a}n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}g=h;while(1){if((c[I>>2]|0)<=0)break f;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(Rl(n,hl()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(g){n=c[g+12>>2]|0;if((n|0)==(c[g+16>>2]|0))n=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else n=il(c[n>>2]|0)|0;if(!(Rl(n,hl()|0)|0))if(f){h=g;break}else{O=226;break a}else{c[e>>2]=0;O=220;break}}else O=220;while(0);if((O|0)==220){O=0;if(f){O=226;break a}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(!(Oa[c[(c[k>>2]|0)+12>>2]&31](k,2048,n)|0)){O=226;break a}if((c[m>>2]|0)==(c[M>>2]|0))Xr(l,m,M);n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;g=c[m>>2]|0;c[m>>2]=g+4;c[g>>2]=n;c[I>>2]=(c[I>>2]|0)+-1;n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}g=h}}while(0);if((c[m>>2]|0)==(c[l>>2]|0)){O=237;break a}else n=N;break}default:n=N}while(0);g:do if((O|0)==46){O=0;g=t;while(1){n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(Rl(n,hl()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(g){n=c[g+12>>2]|0;if((n|0)==(c[g+16>>2]|0))n=La[c[(c[g>>2]|0)+36>>2]&127](g)|0;else n=il(c[n>>2]|0)|0;if(!(Rl(n,hl()|0)|0))if(f){h=g;break}else{n=N;break g}else{c[e>>2]=0;O=60;break}}else O=60;while(0);if((O|0)==60){O=0;if(f){n=N;break g}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(!(Oa[c[(c[k>>2]|0)+12>>2]&31](k,8192,n)|0)){n=N;break g}n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;n=il(c[f>>2]|0)|0}yw(U,n);g=h}}while(0);u=u+1|0;N=n}h:do if((O|0)==44){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==103){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==146){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==201){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==226){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==237){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==239){i:do if(N|0){o=N+8+3|0;p=N+4|0;h=1;j:while(1){n=a[o>>0]|0;if(n<<24>>24<0)n=c[p>>2]|0;else n=n&255;if(h>>>0>=n>>>0)break i;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(Rl(n,hl()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);n=c[e>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=il(c[f>>2]|0)|0;if(!(Rl(n,hl()|0)|0))if(g)break;else break j;else{c[e>>2]=0;O=258;break}}else O=258;while(0);if((O|0)==258?(O=0,g):0)break;n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))f=La[c[(c[n>>2]|0)+36>>2]&127](n)|0;else f=il(c[f>>2]|0)|0;if((a[o>>0]|0)<0)n=c[N>>2]|0;else n=N;if((f|0)!=(c[n+(h<<2)>>2]|0))break;n=c[b>>2]|0;g=n+12|0;f=c[g>>2]|0;if((f|0)==(c[n+16>>2]|0))La[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[g>>2]=f+4;il(c[f>>2]|0)|0}h=h+1|0}c[i>>2]=c[i>>2]|4;f=0;break h}while(0);f=c[W>>2]|0;n=c[P>>2]|0;if((f|0)!=(n|0)){c[Q>>2]=0;Fn(R,f,n,Q);if(!(c[Q>>2]|0)){f=1;break}else{c[i>>2]=c[i>>2]|4;f=0;break}}else f=1}while(0);rw(U);rw(S);rw(T);rw(V);Wv(R);n=c[W>>2]|0;c[W>>2]=0;if(n|0)Xa[c[W+4>>2]&255](n);Ia=X;return f|0}function Tr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+16|0;l=n;f=b+8|0;m=f+3|0;h=a[m>>0]|0;g=h<<24>>24<0;if(g){i=(c[f>>2]&2147483647)+-1|0;j=c[b+4>>2]|0}else{i=1;j=h&255}f=e-d|0;k=2?f>>2:f;do if(f|0){if(g){g=c[b>>2]|0;f=c[b+4>>2]|0}else{g=b;f=h&255}if(Ur(d,g,g+(f<<2)|0)|0){c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;Vr(l,d,e);m=a[l+8+3>>0]|0;e=m<<24>>24<0;xw(b,e?c[l>>2]|0:l,e?c[l+4>>2]|0:m&255)|0;rw(l);break}if((i-j|0)>>>0>>0)ww(b,i,j+k-i|0,j,j,0,0);if((a[m>>0]|0)<0)f=c[b>>2]|0;else f=b;f=f+(j<<2)|0;while(1){if((d|0)==(e|0))break;bn(f,d);d=d+4|0;f=f+4|0}c[l>>2]=0;bn(f,l);f=j+k|0;if((a[m>>0]|0)<0){c[b+4>>2]=f;break}else{a[m>>0]=f;break}}while(0);Ia=n;return b|0}function Ur(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0}function Vr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;i=j;h=e-d|0;h=2?h>>2:h;if(h>>>0>1073741807)Pv(b);do if(h>>>0>=2){g=h+4&-4;if(g>>>0>1073741823)ea();else{f=Gv(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=h;break}}else{a[b+8+3>>0]=h;f=b}while(0);while(1){if((d|0)==(e|0))break;bn(f,d);d=d+4|0;f=f+4|0}c[i>>2]=0;bn(f,i);Ia=j;return}function Wr(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+16|0;n=p+12|0;o=p;if(b){m=qn(d,1183236)|0;Ya[c[(c[m>>2]|0)+44>>2]&127](n,m);b=c[n>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+32>>2]&127](o,m);b=k+8|0;d=b+3|0;if((a[d>>0]|0)<0){e=c[k>>2]|0;c[n>>2]=0;bn(e,n);c[k+4>>2]=0;if((a[d>>0]|0)<0){Mr(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(k,n);a[d>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);Ya[c[(c[m>>2]|0)+28>>2]&127](o,m);b=j+8|0;d=b+3|0;if((a[d>>0]|0)<0){k=c[j>>2]|0;c[n>>2]=0;bn(k,n);c[j+4>>2]=0;if((a[d>>0]|0)<0){Mr(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(j,n);a[d>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);c[f>>2]=La[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[g>>2]=La[c[(c[m>>2]|0)+16>>2]&127](m)|0;Ya[c[(c[m>>2]|0)+20>>2]&127](o,m);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[n>>0]=0;Vm(g,n);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Mr(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[n>>0]=0;Vm(h,n);a[b>>0]=0};c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);Ya[c[(c[m>>2]|0)+24>>2]&127](o,m);b=i+8|0;d=b+3|0;if((a[d>>0]|0)<0){h=c[i>>2]|0;c[n>>2]=0;bn(h,n);c[i+4>>2]=0;if((a[d>>0]|0)<0){Mr(c[i>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(i,n);a[d>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);b=La[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=qn(d,1183228)|0;Ya[c[(c[m>>2]|0)+44>>2]&127](n,m);b=c[n>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+32>>2]&127](o,m);b=k+8|0;d=b+3|0;if((a[d>>0]|0)<0){e=c[k>>2]|0;c[n>>2]=0;bn(e,n);c[k+4>>2]=0;if((a[d>>0]|0)<0){Mr(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(k,n);a[d>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);Ya[c[(c[m>>2]|0)+28>>2]&127](o,m);b=j+8|0;d=b+3|0;if((a[d>>0]|0)<0){k=c[j>>2]|0;c[n>>2]=0;bn(k,n);c[j+4>>2]=0;if((a[d>>0]|0)<0){Mr(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(j,n);a[d>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);c[f>>2]=La[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[g>>2]=La[c[(c[m>>2]|0)+16>>2]&127](m)|0;Ya[c[(c[m>>2]|0)+20>>2]&127](o,m);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[n>>0]=0;Vm(g,n);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Mr(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[n>>0]=0;Vm(h,n);a[b>>0]=0};c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);Ya[c[(c[m>>2]|0)+24>>2]&127](o,m);b=i+8|0;d=b+3|0;if((a[d>>0]|0)<0){h=c[i>>2]|0;c[n>>2]=0;bn(h,n);c[i+4>>2]=0;if((a[d>>0]|0)<0){Mr(c[i>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(i,n);a[d>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);b=La[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;Ia=p;return}function Xr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=a+4|0;f=(c[h>>2]|0)!=245;e=c[a>>2]|0;i=e;j=(c[d>>2]|0)-i|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?4:g):-1;i=(c[b>>2]|0)-i|0;i=2?i>>2:i;e=mk(f?e:0,g)|0;if(!e)Fv();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Xa[c[h>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[h>>2]=246;c[b>>2]=e+(i<<2);c[d>>2]=(c[a>>2]|0)+((2?g>>>2:g)<<2);return}function Yr(a){a=a|0;Wm(a);return}function Zr(a){a=a|0;Wm(a);Jv(a);return}function _r(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;E=Ia;Ia=Ia+416|0;w=E+336|0;k=E+328|0;j=E+224|0;l=E+400|0;b=E+112|0;z=E+396|0;t=E+408|0;q=E+405|0;u=E+404|0;y=E+384|0;D=E+372|0;C=E+360|0;o=E+356|0;p=E;s=E+352|0;r=E+344|0;v=E+348|0;c[l>>2]=j;g[w>>3]=i;j=rj(j,100,47660,w)|0;if(j>>>0>99){j=tn()|0;g[k>>3]=i;j=Qo(l,j,47660,k)|0;b=c[l>>2]|0;if(!b)Fv();k=kk(j)|0;if(!k)Fv();else{x=k;F=k;G=b;B=j}}else{x=b;F=0;G=0;B=j}Ql(z,f);n=qn(z,1182988)|0;m=c[l>>2]|0;Pa[c[(c[n>>2]|0)+32>>2]&7](n,m,m+B|0,x)|0;if(!B)m=0;else m=(a[c[l>>2]>>0]|0)==45;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[D+(b<<2)>>2]=0;b=b+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[C+(b<<2)>>2]=0;b=b+1|0}as(e,m,z,t,q,u,y,D,C,o);l=c[o>>2]|0;if((B|0)>(l|0)){j=a[C+11>>0]|0;k=a[D+11>>0]|0;b=l+1+(B-l<<1)|0;j=j<<24>>24<0?c[C+4>>2]|0:j&255;k=k<<24>>24<0?c[D+4>>2]|0:k&255}else{j=a[C+11>>0]|0;k=a[D+11>>0]|0;b=l+2|0;j=j<<24>>24<0?c[C+4>>2]|0:j&255;k=k<<24>>24<0?c[D+4>>2]|0:k&255}b=b+j+k|0;if(b>>>0>100){b=kk(b)|0;if(!b)Fv();else{H=b;A=b}}else{H=0;A=p}bs(A,s,r,c[f+4>>2]|0,x,x+B|0,n,m,t,a[q>>0]|0,a[u>>0]|0,y,D,C,l);c[v>>2]=c[d>>2];d=c[s>>2]|0;b=c[r>>2]|0;c[w>>2]=c[v>>2];b=Ub(w,A,d,b,f,h)|0;if(H|0)lk(H);Wv(C);Wv(D);Wv(y);rn(z);if(F|0)lk(F);if(G|0)lk(G);Ia=E;return b|0}function $r(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=Ia;Ia=Ia+176|0;v=C+156|0;y=C+152|0;s=C+164|0;p=C+161|0;t=C+160|0;x=C+140|0;B=C+128|0;A=C+116|0;l=C+112|0;o=C;r=C+108|0;q=C+104|0;u=C+100|0;Ql(y,f);w=qn(y,1182988)|0;i=h+11|0;n=a[i>>0]|0;b=n<<24>>24<0;j=h+4|0;if(!((b?c[j>>2]|0:n&255)|0))n=0;else{n=a[(b?c[h>>2]|0:h)>>0]|0;n=n<<24>>24==(Na[c[(c[w>>2]|0)+28>>2]&127](w,45)|0)<<24>>24};c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}as(e,n,y,s,p,t,x,B,A,l);k=a[i>>0]|0;m=k<<24>>24<0;k=m?c[j>>2]|0:k&255;j=c[l>>2]|0;if((k|0)>(j|0)){e=a[A+11>>0]|0;i=a[B+11>>0]|0;b=j+1+(k-j<<1)|0;i=i<<24>>24<0?c[B+4>>2]|0:i&255;e=e<<24>>24<0?c[A+4>>2]|0:e&255}else{e=a[A+11>>0]|0;i=a[B+11>>0]|0;b=j+2|0;i=i<<24>>24<0?c[B+4>>2]|0:i&255;e=e<<24>>24<0?c[A+4>>2]|0:e&255}b=b+e+i|0;if(b>>>0>100){b=kk(b)|0;if(!b)Fv();else{D=b;z=b}}else{D=0;z=o}b=m?c[h>>2]|0:h;bs(z,r,q,c[f+4>>2]|0,b,b+k|0,w,n,s,a[p>>0]|0,a[t>>0]|0,x,B,A,j);c[u>>2]=c[d>>2];d=c[r>>2]|0;b=c[q>>2]|0;c[v>>2]=c[u>>2];b=Ub(v,z,d,b,f,g)|0;if(D|0)lk(D);Wv(A);Wv(B);Wv(x);rn(y);Ia=C;return b|0}function as(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+16|0;n=p+12|0;o=p;if(b){m=qn(e,1183220)|0;if(d){Ya[c[(c[m>>2]|0)+44>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+32>>2]&127](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;Vm(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Mr(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;Vm(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);e=m}else{Ya[c[(c[m>>2]|0)+40>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+28>>2]&127](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;Vm(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Mr(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;Vm(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);e=m}a[g>>0]=La[c[(c[m>>2]|0)+12>>2]&127](m)|0;a[h>>0]=La[c[(c[m>>2]|0)+16>>2]&127](m)|0;Ya[c[(c[e>>2]|0)+20>>2]&127](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;Vm(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Mr(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;Vm(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);Ya[c[(c[e>>2]|0)+24>>2]&127](o,m);b=j+11|0;if((a[b>>0]|0)<0){i=c[j>>2]|0;a[n>>0]=0;Vm(i,n);c[j+4>>2]=0;if((a[b>>0]|0)<0){n=j+8|0;Mr(c[j>>2]|0,c[n>>2]&2147483647);c[n>>2]=0}}else{a[n>>0]=0;Vm(j,n);a[b>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);b=La[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=qn(e,1183212)|0;if(d){Ya[c[(c[m>>2]|0)+44>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+32>>2]&127](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;Vm(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Mr(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;Vm(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);e=m}else{Ya[c[(c[m>>2]|0)+40>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+28>>2]&127](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;Vm(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Mr(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;Vm(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);e=m}a[g>>0]=La[c[(c[m>>2]|0)+12>>2]&127](m)|0;a[h>>0]=La[c[(c[m>>2]|0)+16>>2]&127](m)|0;Ya[c[(c[e>>2]|0)+20>>2]&127](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;Vm(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Mr(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;Vm(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);Ya[c[(c[e>>2]|0)+24>>2]&127](o,m);b=j+11|0;if((a[b>>0]|0)<0){i=c[j>>2]|0;a[n>>0]=0;Vm(i,n);c[j+4>>2]=0;if((a[b>>0]|0)<0){n=j+8|0;Mr(c[j>>2]|0,c[n>>2]&2147483647);c[n>>2]=0}}else{a[n>>0]=0;Vm(j,n);a[b>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);b=La[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;Ia=p;return}function bs(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;c[f>>2]=d;z=q+11|0;G=q+4|0;A=p+11|0;C=p+4|0;F=(g&512|0)==0;D=j+8|0;E=(r|0)>0;y=o+11|0;B=o+4|0;x=0;while(1){if((x|0)==4)break;a:do switch(a[l+x>>0]|0){case 0:{c[e>>2]=c[f>>2];break}case 1:{c[e>>2]=c[f>>2];v=Na[c[(c[j>>2]|0)+28>>2]&127](j,32)|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v;break}case 3:{w=a[z>>0]|0;s=w<<24>>24<0;if((s?c[G>>2]|0:w&255)|0){v=a[(s?c[q>>2]|0:q)>>0]|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v}break}case 2:{s=a[A>>0]|0;t=s<<24>>24<0;s=t?c[C>>2]|0:s&255;if(!(F|(s|0)==0)){u=t?c[p>>2]|0:p;t=u+s|0;s=c[f>>2]|0;while(1){if((u|0)==(t|0))break;a[s>>0]=a[u>>0]|0;s=s+1|0;u=u+1|0}c[f>>2]=s}break}case 4:{w=c[f>>2]|0;h=k?h+1|0:h;t=h;while(1){if(t>>>0>=i>>>0)break;s=a[t>>0]|0;if(s<<24>>24<=-1)break;if(!(b[(c[D>>2]|0)+(s<<24>>24<<1)>>1]&2048))break;t=t+1|0}if(E){u=r;while(1){s=(u|0)>0;if(!(t>>>0>h>>>0&s))break;v=t+-1|0;H=a[v>>0]|0;s=c[f>>2]|0;c[f>>2]=s+1;a[s>>0]=H;t=v;u=u+-1|0}if(s)v=Na[c[(c[j>>2]|0)+28>>2]&127](j,48)|0;else v=0;while(1){s=c[f>>2]|0;c[f>>2]=s+1;if((u|0)<=0)break;a[s>>0]=v;u=u+-1|0}a[s>>0]=m}b:do if((t|0)==(h|0)){v=Na[c[(c[j>>2]|0)+28>>2]&127](j,48)|0;H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=v}else{H=a[y>>0]|0;s=H<<24>>24<0;if(!((s?c[B>>2]|0:H&255)|0))s=-1;else s=a[(s?c[o>>2]|0:o)>>0]|0;u=0;v=0;while(1){if((t|0)==(h|0))break b;if((v|0)==(s|0)){H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=n;u=u+1|0;H=a[y>>0]|0;s=H<<24>>24<0;if(u>>>0<(s?c[B>>2]|0:H&255)>>>0){s=a[(s?c[o>>2]|0:o)+u>>0]|0;s=s<<24>>24==127?-1:s<<24>>24;v=0}else{s=v;v=0}}H=t+-1|0;J=a[H>>0]|0;I=c[f>>2]|0;c[f>>2]=I+1;a[I>>0]=J;t=H;v=v+1|0}}while(0);s=c[f>>2]|0;if((w|0)!=(s|0)){t=w;while(1){s=s+-1|0;if(t>>>0>=s>>>0)break a;J=a[t>>0]|0;a[t>>0]=a[s>>0]|0;a[s>>0]=J;t=t+1|0}}break}default:{}}while(0);x=x+1|0}h=a[z>>0]|0;s=h<<24>>24<0;h=s?c[G>>2]|0:h&255;if(h>>>0>1){s=s?c[q>>2]|0:q;t=s+h|0;h=s;s=c[f>>2]|0;while(1){h=h+1|0;if((h|0)==(t|0))break;a[s>>0]=a[h>>0]|0;s=s+1|0}c[f>>2]=s}switch((g&176)<<24>>24){case 32:{c[e>>2]=c[f>>2];break}case 16:break;default:c[e>>2]=d}return}function cs(a){a=a|0;Wm(a);return}function ds(a){a=a|0;Wm(a);Jv(a);return}function es(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;E=Ia;Ia=Ia+992|0;w=E+912|0;k=E+904|0;j=E+800|0;l=E+984|0;b=E+400|0;z=E+980|0;t=E+988|0;q=E+976|0;u=E+972|0;y=E+960|0;D=E+948|0;C=E+936|0;o=E+932|0;p=E;s=E+928|0;r=E+920|0;v=E+924|0;c[l>>2]=j;g[w>>3]=i;j=rj(j,100,47660,w)|0;if(j>>>0>99){j=tn()|0;g[k>>3]=i;j=Qo(l,j,47660,k)|0;b=c[l>>2]|0;if(!b)Fv();k=kk(j<<2)|0;if(!k)Fv();else{x=k;F=k;G=b;B=j}}else{x=b;F=0;G=0;B=j}Ql(z,f);n=qn(z,1183020)|0;m=c[l>>2]|0;Pa[c[(c[n>>2]|0)+48>>2]&7](n,m,m+B|0,x)|0;if(!B)m=0;else m=(a[c[l>>2]>>0]|0)==45;c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[D+(b<<2)>>2]=0;b=b+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[C+(b<<2)>>2]=0;b=b+1|0}gs(e,m,z,t,q,u,y,D,C,o);l=c[o>>2]|0;if((B|0)>(l|0)){j=a[C+8+3>>0]|0;k=a[D+8+3>>0]|0;b=l+1+(B-l<<1)|0;j=j<<24>>24<0?c[C+4>>2]|0:j&255;k=k<<24>>24<0?c[D+4>>2]|0:k&255}else{j=a[C+8+3>>0]|0;k=a[D+8+3>>0]|0;b=l+2|0;j=j<<24>>24<0?c[C+4>>2]|0:j&255;k=k<<24>>24<0?c[D+4>>2]|0:k&255}b=b+j+k|0;if(b>>>0>100){b=kk(b<<2)|0;if(!b)Fv();else{H=b;A=b}}else{H=0;A=p}hs(A,s,r,c[f+4>>2]|0,x,x+(B<<2)|0,n,m,t,c[q>>2]|0,c[u>>2]|0,y,D,C,l);c[v>>2]=c[d>>2];d=c[s>>2]|0;b=c[r>>2]|0;c[w>>2]=c[v>>2];b=cp(w,A,d,b,f,h)|0;if(H|0)lk(H);rw(C);rw(D);Wv(y);rn(z);if(F|0)lk(F);if(G|0)lk(G);Ia=E;return b|0}function fs(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=Ia;Ia=Ia+480|0;v=C+464|0;y=C+460|0;s=C+468|0;p=C+456|0;t=C+452|0;x=C+440|0;B=C+428|0;A=C+416|0;l=C+412|0;o=C;r=C+408|0;q=C+404|0;u=C+400|0;Ql(y,f);w=qn(y,1183020)|0;i=h+8+3|0;n=a[i>>0]|0;b=n<<24>>24<0;j=h+4|0;if(!((b?c[j>>2]|0:n&255)|0))n=0;else{n=c[(b?c[h>>2]|0:h)>>2]|0;n=(n|0)==(Na[c[(c[w>>2]|0)+44>>2]&127](w,45)|0)};c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}gs(e,n,y,s,p,t,x,B,A,l);k=a[i>>0]|0;m=k<<24>>24<0;k=m?c[j>>2]|0:k&255;j=c[l>>2]|0;if((k|0)>(j|0)){e=a[A+8+3>>0]|0;i=a[B+8+3>>0]|0;b=j+1+(k-j<<1)|0;i=i<<24>>24<0?c[B+4>>2]|0:i&255;e=e<<24>>24<0?c[A+4>>2]|0:e&255}else{e=a[A+8+3>>0]|0;i=a[B+8+3>>0]|0;b=j+2|0;i=i<<24>>24<0?c[B+4>>2]|0:i&255;e=e<<24>>24<0?c[A+4>>2]|0:e&255}b=b+e+i|0;if(b>>>0>100){b=kk(b<<2)|0;if(!b)Fv();else{D=b;z=b}}else{D=0;z=o}b=m?c[h>>2]|0:h;hs(z,r,q,c[f+4>>2]|0,b,b+(k<<2)|0,w,n,s,c[p>>2]|0,c[t>>2]|0,x,B,A,j);c[u>>2]=c[d>>2];d=c[r>>2]|0;b=c[q>>2]|0;c[v>>2]=c[u>>2];b=cp(v,z,d,b,f,g)|0;if(D|0)lk(D);rw(A);rw(B);Wv(x);rn(y);Ia=C;return b|0}function gs(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+16|0;n=p+12|0;o=p;if(b){m=qn(e,1183236)|0;if(d){Ya[c[(c[m>>2]|0)+44>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+32>>2]&127](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;bn(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Mr(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o)}else{Ya[c[(c[m>>2]|0)+40>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+28>>2]&127](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;bn(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Mr(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o)}c[g>>2]=La[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[h>>2]=La[c[(c[m>>2]|0)+16>>2]&127](m)|0;Ya[c[(c[m>>2]|0)+20>>2]&127](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;Vm(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Mr(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;Vm(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);Ya[c[(c[m>>2]|0)+24>>2]&127](o,m);b=j+8|0;e=b+3|0;if((a[e>>0]|0)<0){i=c[j>>2]|0;c[n>>2]=0;bn(i,n);c[j+4>>2]=0;if((a[e>>0]|0)<0){Mr(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(j,n);a[e>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);b=La[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=qn(e,1183228)|0;if(d){Ya[c[(c[m>>2]|0)+44>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+32>>2]&127](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;bn(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Mr(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o)}else{Ya[c[(c[m>>2]|0)+40>>2]&127](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ya[c[(c[m>>2]|0)+28>>2]&127](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;bn(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Mr(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o)}c[g>>2]=La[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[h>>2]=La[c[(c[m>>2]|0)+16>>2]&127](m)|0;Ya[c[(c[m>>2]|0)+20>>2]&127](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;Vm(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Mr(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;Vm(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}Wv(o);Ya[c[(c[m>>2]|0)+24>>2]&127](o,m);b=j+8|0;e=b+3|0;if((a[e>>0]|0)<0){i=c[j>>2]|0;c[n>>2]=0;bn(i,n);c[j+4>>2]=0;if((a[e>>0]|0)<0){Mr(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;bn(j,n);a[e>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}rw(o);b=La[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;Ia=p;return}function hs(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;c[e>>2]=b;A=p+8+3|0;G=p+4|0;B=o+8+3|0;C=o+4|0;F=(f&512|0)==0;E=(q|0)>0;z=n+11|0;D=n+4|0;y=0;while(1){if((y|0)==4)break;a:do switch(a[k+y>>0]|0){case 0:{c[d>>2]=c[e>>2];break}case 1:{c[d>>2]=c[e>>2];w=Na[c[(c[i>>2]|0)+44>>2]&127](i,32)|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w;break}case 3:{x=a[A>>0]|0;r=x<<24>>24<0;if((r?c[G>>2]|0:x&255)|0){w=c[(r?c[p>>2]|0:p)>>2]|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w}break}case 2:{v=a[B>>0]|0;r=v<<24>>24<0;v=r?c[C>>2]|0:v&255;if(!(F|(v|0)==0)){s=r?c[o>>2]|0:o;u=s+(v<<2)|0;r=c[e>>2]|0;t=r;while(1){if((s|0)==(u|0))break;c[t>>2]=c[s>>2];s=s+4|0;t=t+4|0}c[e>>2]=r+(v<<2)}break}case 4:{x=c[e>>2]|0;g=j?g+4|0:g;r=g;while(1){if(r>>>0>=h>>>0)break;if(!(Oa[c[(c[i>>2]|0)+12>>2]&31](i,2048,c[r>>2]|0)|0))break;r=r+4|0}if(E){t=q;while(1){s=(t|0)>0;if(!(r>>>0>g>>>0&s))break;w=r+-4|0;u=c[w>>2]|0;v=c[e>>2]|0;c[e>>2]=v+4;c[v>>2]=u;r=w;t=t+-1|0}if(s)v=Na[c[(c[i>>2]|0)+44>>2]&127](i,48)|0;else v=0;u=c[e>>2]|0;while(1){s=u+4|0;if((t|0)<=0)break;c[u>>2]=v;t=t+-1|0;u=s}c[e>>2]=s;c[u>>2]=l}if((r|0)==(g|0)){v=Na[c[(c[i>>2]|0)+44>>2]&127](i,48)|0;w=c[e>>2]|0;r=w+4|0;c[e>>2]=r;c[w>>2]=v}else{w=a[z>>0]|0;s=w<<24>>24<0;if(!((s?c[D>>2]|0:w&255)|0))s=-1;else s=a[(s?c[n>>2]|0:n)>>0]|0;u=0;v=0;while(1){if((r|0)==(g|0))break;t=c[e>>2]|0;if((v|0)==(s|0)){w=t+4|0;c[e>>2]=w;c[t>>2]=m;u=u+1|0;t=a[z>>0]|0;s=t<<24>>24<0;if(u>>>0<(s?c[D>>2]|0:t&255)>>>0){s=a[(s?c[n>>2]|0:n)+u>>0]|0;t=w;s=s<<24>>24==127?-1:s<<24>>24;v=0}else{t=w;s=v;v=0}}w=r+-4|0;H=c[w>>2]|0;c[e>>2]=t+4;c[t>>2]=H;r=w;v=v+1|0}r=c[e>>2]|0}if((x|0)!=(r|0)){s=x;while(1){r=r+-4|0;if(s>>>0>=r>>>0)break a;H=c[s>>2]|0;c[s>>2]=c[r>>2];c[r>>2]=H;s=s+4|0}}break}default:{}}while(0);y=y+1|0}g=a[A>>0]|0;r=g<<24>>24<0;g=r?c[G>>2]|0:g&255;if(g>>>0>1){u=c[p>>2]|0;s=r?u+4|0:G;u=(r?u:p)+(g<<2)|0;g=c[e>>2]|0;r=u-s|0;t=g;while(1){if((s|0)==(u|0))break;c[t>>2]=c[s>>2];s=s+4|0;t=t+4|0}c[e>>2]=g+((2?r>>>2:r)<<2)}switch((f&176)<<24>>24){case 32:{c[d>>2]=c[e>>2];break}case 16:break;default:c[d>>2]=b}return}function is(a){a=a|0;Wm(a);return}function js(a){a=a|0;Wm(a);Jv(a);return}function ks(b,d,e){b=b|0;d=d|0;e=e|0;d=dk((a[d+11>>0]|0)<0?c[d>>2]|0:d,1)|0;b=d;d=(d|0)!=(-1|0)&1;return (d?b>>>d:b)|0}function ls(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;j=Ia;Ia=Ia+16|0;i=j;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0}k=a[h+11>>0]|0;l=k<<24>>24<0;d=l?c[h>>2]|0:h;h=d+(l?c[h+4>>2]|0:k&255)|0;while(1){if(d>>>0>=h>>>0)break;fw(i,a[d>>0]|0);d=d+1|0}d=(a[i+11>>0]|0)<0?c[i>>2]|0:i;e=Zj((e|0)==-1?-1:e<<1,f,g,d)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[b+(h<<2)>>2]=0;h=h+1|0}h=d+(li(e)|0)|0;while(1){if(d>>>0>=h>>>0)break;fw(b,a[d>>0]|0);d=d+1|0}Wv(i);Ia=j;return}function ms(a,b){a=a|0;b=b|0;return}function ns(a){a=a|0;Wm(a);return}function os(a){a=a|0;Wm(a);Jv(a);return}function ps(b,d,e){b=b|0;d=d|0;e=e|0;d=dk((a[d+11>>0]|0)<0?c[d>>2]|0:d,1)|0;b=d;d=(d|0)!=(-1|0)&1;return (d?b>>>d:b)|0}function qs(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=Ia;Ia=Ia+176|0;p=t+168|0;o=t;n=t+164|0;r=t+160|0;q=t+128|0;l=t+152|0;s=t+144|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[q+(d<<2)>>2]=0;d=d+1|0}c[l+4>>2]=0;c[l>>2]=37364;j=a[h+8+3>>0]|0;k=j<<24>>24<0;i=k?c[h>>2]|0:h;j=i+((k?c[h+4>>2]|0:j&255)<<2)|0;k=o+32|0;d=0;h=i;while(1){if(!((d|0)!=2&h>>>0>>0))break;c[r>>2]=h;i=Va[c[(c[l>>2]|0)+12>>2]&15](l,p,h,j,r,o,k,n)|0;if((i|0)==2?1:(c[r>>2]|0)==(h|0)){m=8;break}d=o;while(1){if(d>>>0>=(c[n>>2]|0)>>>0)break;fw(q,a[d>>0]|0);d=d+1|0}d=i;h=c[r>>2]|0}if((m|0)==8)Jq(0);Wm(l);i=(a[q+11>>0]|0)<0?c[q>>2]|0:q;h=Zj((e|0)==-1?-1:e<<1,f,g,i)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}c[s+4>>2]=0;c[s>>2]=37412;j=i+(li(h)|0)|0;l=j;k=o+128|0;h=i;d=0;while(1){if(!((d|0)!=2&h>>>0>>0)){m=23;break}c[r>>2]=h;i=Va[c[(c[s>>2]|0)+16>>2]&15](s,p,h,(l-h|0)>32?h+32|0:j,r,o,k,n)|0;if((i|0)==2?1:(c[r>>2]|0)==(h|0)){m=19;break}d=o;while(1){if(d>>>0>=(c[n>>2]|0)>>>0)break;yw(b,c[d>>2]|0);d=d+4|0}h=c[r>>2]|0;d=i}if((m|0)==19)Jq(0);else if((m|0)==23){Wm(s);Wv(q);Ia=t;return}}function rs(a,b){a=a|0;b=b|0;return}function ss(a){a=a|0;Wm(a);Jv(a);return}function ts(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;a=Ia;Ia=Ia+16|0;j=a+4|0;b=a;c[j>>2]=d;c[b>>2]=g;h=Cs(d,e,j,g,h,b,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[b>>2];Ia=a;return h|0}function us(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;a=Ia;Ia=Ia+16|0;j=a+4|0;b=a;c[j>>2]=d;c[b>>2]=g;h=Bs(d,e,j,g,h,b,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[b>>2];Ia=a;return h|0}function vs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function ws(a){a=a|0;return 0}function xs(a){a=a|0;return 0}function ys(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return As(c,d,e,1114111,0)|0}function zs(a){a=a|0;return 4}function As(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c;if((((g&4|0)!=0?(o-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;n=0;a:while(1){if(!(n>>>0>>0&g>>>0>>0))break;l=a[g>>0]|0;m=l&255;do if(l<<24>>24<=-1){if((l&255)<194)break a;if((l&255)<224){if((o-g|0)<2)break a;h=d[g+1>>0]|0;if((h&192|0)!=128)break a;if((h&63|m<<6&1984)>>>0>f>>>0)break a;g=g+2|0;break}if((l&255)<240){if((o-g|0)<3)break a;i=a[g+1>>0]|0;h=a[g+2>>0]|0;switch(l<<24>>24){case -32:{if((i&-32)<<24>>24!=-96)break a;break}case -19:{if((i&-32)<<24>>24!=-128)break a;break}default:if((i&-64)<<24>>24!=-128)break a}h=h&255;if((h&192|0)!=128)break a;if(((i&63)<<6|m<<12&61440|h&63)>>>0>f>>>0)break a;else{g=g+3|0;break}}if((l&255)>=245)break a;if((o-g|0)<4)break a;k=a[g+1>>0]|0;h=a[g+2>>0]|0;j=a[g+3>>0]|0;switch(l<<24>>24){case -16:{if((k+112&255)>=48)break a;break}case -12:{if((k&-16)<<24>>24!=-128)break a;break}default:if((k&-64)<<24>>24!=-128)break a}i=h&255;if((i&192|0)!=128)break a;h=j&255;if((h&192|0)!=128)break a;if(((k&63)<<12|m<<18&1835008|i<<6&4032|h&63)>>>0>f>>>0)break a;else g=g+4|0}else{if(m>>>0>f>>>0)break a;g=g+1|0}while(0);n=n+1|0}return g-b|0}function Bs(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;c[f>>2]=b;c[i>>2]=g;if(k&4){b=c[f>>2]|0;k=e;if((((k-b|0)>2?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)?(a[b+2>>0]|0)==-65:0)c[f>>2]=b+3}else k=e;a:while(1){p=c[f>>2]|0;if(p>>>0>=e>>>0){b=0;break}q=c[i>>2]|0;if(q>>>0>=h>>>0){b=1;break}n=a[p>>0]|0;o=n&255;do if(n<<24>>24>-1)if(o>>>0>j>>>0){b=2;break a}else{g=1;b=o}else{if((n&255)<194){b=2;break a}if((n&255)<224){if((k-p|0)<2){b=1;break a}b=d[p+1>>0]|0;if((b&192|0)!=128){b=2;break a}b=b&63|o<<6&1984;if(b>>>0>j>>>0){b=2;break a}else{g=2;break}}if((n&255)<240){if((k-p|0)<3){b=1;break a}g=a[p+1>>0]|0;b=a[p+2>>0]|0;switch(n<<24>>24){case -32:{if((g&-32)<<24>>24!=-96){b=2;break a}break}case -19:{if((g&-32)<<24>>24!=-128){b=2;break a}break}default:if((g&-64)<<24>>24!=-128){b=2;break a}}b=b&255;if((b&192|0)!=128){b=2;break a}b=(g&63)<<6|o<<12&61440|b&63;if(b>>>0>j>>>0){b=2;break a}else{g=3;break}}if((n&255)>=245){b=2;break a}if((k-p|0)<4){b=1;break a}m=a[p+1>>0]|0;b=a[p+2>>0]|0;l=a[p+3>>0]|0;switch(n<<24>>24){case -16:{if((m+112&255)>=48){b=2;break a}break}case -12:{if((m&-16)<<24>>24!=-128){b=2;break a}break}default:if((m&-64)<<24>>24!=-128){b=2;break a}}g=b&255;if((g&192|0)!=128){b=2;break a}b=l&255;if((b&192|0)!=128){b=2;break a}b=(m&63)<<12|o<<18&1835008|g<<6&4032|b&63;if(b>>>0>j>>>0){b=2;break a}else g=4}while(0);c[q>>2]=b;c[f>>2]=p+g;c[i>>2]=(c[i>>2]|0)+4}return b|0}function Cs(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;c[e>>2]=b;c[h>>2]=f;l=g;if(j&2)if((l-f|0)<3)b=1;else{c[h>>2]=f+1;a[f>>0]=-17;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-69;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-65;k=4}else k=4;a:do if((k|0)==4){b=c[e>>2]|0;while(1){if(b>>>0>=d>>>0){b=0;break a}j=c[b>>2]|0;if(j>>>0>i>>>0|(j&-2048|0)==55296){b=2;break a}do if(j>>>0>=128){if(j>>>0<2048){b=c[h>>2]|0;if((l-b|0)<2){b=1;break a}c[h>>2]=b+1;a[b>>0]=(6?j>>>6:j)|192;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j&63|128;break}b=c[h>>2]|0;g=l-b|0;if(j>>>0<65536){if((g|0)<3){b=1;break a}c[h>>2]=b+1;a[b>>0]=(12?j>>>12:j)|224;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=(6?j>>>6:j)&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j&63|128;break}else{if((g|0)<4){b=1;break a}c[h>>2]=b+1;a[b>>0]=(18?j>>>18:j)|240;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=(12?j>>>12:j)&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=(6?j>>>6:j)&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=j&63|128;break}}else{b=c[h>>2]|0;if((l-b|0)<1){b=1;break a}c[h>>2]=b+1;a[b>>0]=j}while(0);b=(c[e>>2]|0)+4|0;c[e>>2]=b}}while(0);return b|0}function Ds(a){a=a|0;Wm(a);Jv(a);return}function Es(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function Fs(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function Gs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function Hs(a){a=a|0;return 1}function Is(a){a=a|0;return 1}function Js(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;a=d-c|0;return (a>>>0>>0?a:e)|0}function Ks(a){a=a|0;return 1}function Ls(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=Ia;Ia=Ia+16|0;p=q;n=q+8|0;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(c[k>>2]|0))break;k=k+4|0}c[j>>2]=h;c[g>>2]=e;m=i;o=b+8|0;a:while(1){if((h|0)==(i|0)|(e|0)==(f|0)){k=36;break}r=d;l=c[r+4>>2]|0;b=p;c[b>>2]=c[r>>2];c[b+4>>2]=l;b=k-e|0;l=fk(c[o>>2]|0)|0;b=Yi(h,g,2?b>>2:b,m-h|0,d)|0;if(l|0)fk(l)|0;switch(b|0){case -1:{k=10;break a}case 0:{e=1;k=33;break a}default:{}}h=(c[j>>2]|0)+b|0;c[j>>2]=h;if((h|0)==(i|0)){k=34;break}if((k|0)==(f|0)){e=c[g>>2]|0;k=f}else{e=fk(c[o>>2]|0)|0;h=Di(n,0,d)|0;if(e|0)fk(e)|0;if((h|0)==-1){e=2;k=32;break}if(h>>>0>(m-(c[j>>2]|0)|0)>>>0){e=1;k=32;break}e=n;while(1){if(!h)break;l=a[e>>0]|0;r=c[j>>2]|0;c[j>>2]=r+1;a[r>>0]=l;h=h+-1|0;e=e+1|0}e=(c[g>>2]|0)+4|0;c[g>>2]=e;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(c[k>>2]|0))break;k=k+4|0}h=c[j>>2]|0}}if((k|0)==10){c[j>>2]=h;while(1){if((e|0)==(c[g>>2]|0))break;r=c[e>>2]|0;k=fk(c[o>>2]|0)|0;h=Di(h,r,p)|0;if(k|0)fk(k)|0;if((h|0)==-1)break;h=(c[j>>2]|0)+h|0;c[j>>2]=h;e=e+4|0}c[g>>2]=e;e=2;k=33}else if((k|0)==32)k=33;else if((k|0)==34){e=c[g>>2]|0;k=36}if((k|0)!=33)if((k|0)==36)e=(e|0)!=(f|0)&1;Ia=q;return e|0}function Ms(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=Ia;Ia=Ia+16|0;o=p;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}c[j>>2]=h;c[g>>2]=e;m=i;n=b+8|0;while(1){if((h|0)==(i|0)|(e|0)==(f|0)){b=33;break}q=d;l=c[q+4>>2]|0;b=o;c[b>>2]=c[q>>2];c[b+4>>2]=l;b=m-h|0;l=fk(c[n>>2]|0)|0;b=dj(h,g,k-e|0,2?b>>2:b,d)|0;if(l|0)fk(l)|0;if((b|0)==-1){b=10;break}h=(c[j>>2]|0)+(b<<2)|0;c[j>>2]=h;if((h|0)==(i|0)){b=30;break}e=c[g>>2]|0;if((k|0)==(f|0))k=f;else{k=fk(c[n>>2]|0)|0;e=aj(h,e,1,d)|0;if(k|0)fk(k)|0;if(e|0){e=2;b=29;break}c[j>>2]=(c[j>>2]|0)+4;e=(c[g>>2]|0)+1|0;c[g>>2]=e;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}h=c[j>>2]|0}}do if((b|0)==10){b=k;a:while(1){c[j>>2]=h;if((e|0)==(c[g>>2]|0)){b=19;break}k=fk(c[n>>2]|0)|0;h=aj(h,e,b-e|0,o)|0;if(k|0)fk(k)|0;switch(h|0){case -1:{b=15;break a}case -2:{b=16;break a}case 0:{h=1;break}default:{}}e=e+h|0;h=(c[j>>2]|0)+4|0}if((b|0)==15){c[g>>2]=e;e=2;b=29;break}else if((b|0)==16){c[g>>2]=e;e=1;b=29;break}else if((b|0)==19){c[g>>2]=e;e=(e|0)!=(f|0)&1;b=29;break}}else if((b|0)==30){e=c[g>>2]|0;b=33}while(0);if((b|0)!=29)if((b|0)==33)e=(e|0)!=(f|0)&1;Ia=p;return e|0}function Ns(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=Ia;Ia=Ia+16|0;h=i;c[g>>2]=e;e=fk(c[b+8>>2]|0)|0;b=Di(h,0,d)|0;if(e|0)fk(e)|0;a:do if((b+1|0)>>>0>=2){b=b+-1|0;if(b>>>0>(f-(c[g>>2]|0)|0)>>>0)h=1;else while(1){if(!b){h=0;break a}d=a[h>>0]|0;f=c[g>>2]|0;c[g>>2]=f+1;a[f>>0]=d;b=b+-1|0;h=h+1|0}}else h=2;while(0);Ia=i;return h|0}function Os(a){a=a|0;var b=0,d=0;a=a+8|0;d=fk(c[a>>2]|0)|0;b=Wi(0,0,4)|0;if(d|0)fk(d)|0;if(!b){a=c[a>>2]|0;if(!a)a=1;else{a=fk(a)|0;b=Nj()|0;if(a|0)fk(a)|0;return (b|0)==1|0}}else a=-1;return a|0}function Ps(a){a=a|0;return 0}function Qs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;k=e;j=a+8|0;h=0;i=0;a:while(1){if((d|0)==(e|0)|i>>>0>=f>>>0)break;g=fk(c[j>>2]|0)|0;a=cj(d,k-d|0,b)|0;if(g|0)fk(g)|0;switch(a|0){case -2:case -1:break a;case 0:{a=1;break}default:{}}d=d+a|0;h=a+h|0;i=i+1|0}return h|0}function Rs(a){a=a|0;var b=0;a=c[a+8>>2]|0;if(a){b=fk(a)|0;a=Nj()|0;if(b)fk(b)|0}else a=1;return a|0}function Ss(a){a=a|0;var b=0,d=0;c[a>>2]=37460;b=a+8|0;d=c[b>>2]|0;if((d|0)!=(tn()|0))$j(c[b>>2]|0);Wm(a);return}function Ts(a){a=a|0;Ss(a);Jv(a);return}function Us(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;a=Ia;Ia=Ia+16|0;j=a+4|0;b=a;c[j>>2]=d;c[b>>2]=g;h=bt(d,e,j,g,h,b,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[b>>2];Ia=a;return h|0}function Vs(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;a=Ia;Ia=Ia+16|0;j=a+4|0;b=a;c[j>>2]=d;c[b>>2]=g;h=at(d,e,j,g,h,b,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[b>>2];Ia=a;return h|0}function Ws(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function Xs(a){a=a|0;return 0}function Ys(a){a=a|0;return 0}function Zs(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return $s(c,d,e,1114111,0)|0}function _s(a){a=a|0;return 4}function $s(b,c,e,f,g){b=b|0;c=c|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c;if((((g&4|0)!=0?(o-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;h=0;a:while(1){if(!(h>>>0>>0&g>>>0>>0))break;m=a[g>>0]|0;n=m&255;if(n>>>0>f>>>0)break;do if(m<<24>>24<=-1){if((m&255)<194)break a;if((m&255)<224){if((o-g|0)<2)break a;i=d[g+1>>0]|0;if((i&192|0)!=128)break a;if((i&63|n<<6&1984)>>>0>f>>>0)break a;else{g=g+2|0;break}}if((m&255)<240){if((o-g|0)<3)break a;j=a[g+1>>0]|0;i=a[g+2>>0]|0;switch(m<<24>>24){case -32:{if((j&-32)<<24>>24!=-96)break a;break}case -19:{if((j&-32)<<24>>24!=-128)break a;break}default:if((j&-64)<<24>>24!=-128)break a}i=i&255;if((i&192|0)!=128)break a;if(((j&63)<<6|n<<12&61440|i&63)>>>0>f>>>0)break a;else{g=g+3|0;break}}if((m&255)>=245)break a;if((e-h|0)>>>0<2|(o-g|0)<4)break a;l=a[g+1>>0]|0;i=a[g+2>>0]|0;k=a[g+3>>0]|0;switch(m<<24>>24){case -16:{if((l+112&255)>=48)break a;break}case -12:{if((l&-16)<<24>>24!=-128)break a;break}default:if((l&-64)<<24>>24!=-128)break a}j=i&255;if((j&192|0)!=128)break a;i=k&255;if((i&192|0)!=128)break a;if(((l&63)<<12|n<<18&1835008|j<<6&4032|i&63)>>>0>f>>>0)break a;else{g=g+4|0;h=h+1|0}}else g=g+1|0;while(0);h=h+1|0}return g-b|0}function at(e,f,g,h,i,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0;c[g>>2]=e;c[j>>2]=h;if(l&4){e=c[g>>2]|0;l=f;if((((l-e|0)>2?(a[e>>0]|0)==-17:0)?(a[e+1>>0]|0)==-69:0)?(a[e+2>>0]|0)==-65:0)c[g>>2]=e+3}else l=f;s=i;a:while(1){n=c[g>>2]|0;if(n>>>0>=f>>>0){e=0;break}r=c[j>>2]|0;if(r>>>0>=i>>>0){e=1;break}m=a[n>>0]|0;q=m&255;if(q>>>0>k>>>0){e=2;break}do if(m<<24>>24>-1){b[r>>1]=m&255;e=n+1|0}else{if((m&255)<194){e=2;break a}if((m&255)<224){if((l-n|0)<2){e=1;break a}e=d[n+1>>0]|0;if((e&192|0)!=128){e=2;break a}e=e&63|q<<6&1984;if(e>>>0>k>>>0){e=2;break a}b[r>>1]=e;e=n+2|0;break}if((m&255)<240){if((l-n|0)<3){e=1;break a}h=a[n+1>>0]|0;e=a[n+2>>0]|0;switch(m<<24>>24){case -32:{if((h&-32)<<24>>24!=-96){e=2;break a}break}case -19:{if((h&-32)<<24>>24!=-128){e=2;break a}break}default:if((h&-64)<<24>>24!=-128){e=2;break a}}e=e&255;if((e&192|0)!=128){e=2;break a}e=(h&63)<<6|q<<12|e&63;if((e&65535)>>>0>k>>>0){e=2;break a}b[r>>1]=e;e=n+3|0;break}if((m&255)>=245){e=2;break a}if((l-n|0)<4){e=1;break a}o=a[n+1>>0]|0;e=a[n+2>>0]|0;h=a[n+3>>0]|0;switch(m<<24>>24){case -16:{if((o+112&255)>=48){e=2;break a}break}case -12:{if((o&-16)<<24>>24!=-128){e=2;break a}break}default:if((o&-64)<<24>>24!=-128){e=2;break a}}p=e&255;if((p&192|0)!=128){e=2;break a}e=h&255;if((e&192|0)!=128){e=2;break a}if((s-r|0)<4){e=1;break a}n=q&7;m=o&255;h=p<<6;e=e&63;if((m<<12&258048|n<<18|h&4032|e)>>>0>k>>>0){e=2;break a}b[r>>1]=m<<2&60|(4?p>>>4:p)&3|(((4?m>>>4:m)&3|n<<2)<<6)+16320|55296;r=r+2|0;c[j>>2]=r;b[r>>1]=e|h&960|56320;e=(c[g>>2]|0)+4|0}while(0);c[g>>2]=e;c[j>>2]=(c[j>>2]|0)+2}return e|0}function bt(d,f,g,h,i,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;c[g>>2]=d;c[j>>2]=h;if(l&2)if((i-h|0)<3)d=1;else{c[j>>2]=h+1;a[h>>0]=-17;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-69;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-65;m=4}else m=4;a:do if((m|0)==4){n=f;d=c[g>>2]|0;while(1){if(d>>>0>=f>>>0){d=0;break a}l=b[d>>1]|0;m=l&65535;if(m>>>0>k>>>0){d=2;break a}do if((l&65535)<128){d=c[j>>2]|0;if((i-d|0)<1){d=1;break a}c[j>>2]=d+1;a[d>>0]=l}else{if((l&65535)<2048){d=c[j>>2]|0;if((i-d|0)<2){d=1;break a}c[j>>2]=d+1;a[d>>0]=(6?m>>>6:m)|192;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m&63|128;break}if((l&65535)<55296){d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=(12?m>>>12:m)|224;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=(6?m>>>6:m)&63|128;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m&63|128;break}if((l&65535)>=56320){if((l&65535)<57344){d=2;break a}d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=(12?m>>>12:m)|224;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=(6?m>>>6:m)&63|128;h=c[j>>2]|0;c[j>>2]=h+1;a[h>>0]=m&63|128;break}if((n-d|0)<4){d=1;break a}l=d+2|0;h=e[l>>1]|0;if((h&64512|0)!=56320){d=2;break a}if((i-(c[j>>2]|0)|0)<4){d=1;break a}d=m&960;if(((d<<10)+65536|m<<10&64512|h&1023)>>>0>k>>>0){d=2;break a}c[g>>2]=l;d=(6?d>>>6:d)+1|0;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=(2?d>>>2:d)|240;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=(2?m>>>2:m)&15|d<<4&48|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m<<4&48|(6?h>>>6:h)&15|128;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=h&63|128}while(0);d=(c[g>>2]|0)+2|0;c[g>>2]=d}}while(0);return d|0}function ct(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;c[a>>2]=37508;e=a+8|0;d=a+12|0;f=0;while(1){b=c[e>>2]|0;g=(c[d>>2]|0)-b|0;if(f>>>0>=(2?g>>2:g)>>>0)break;b=c[b+(f<<2)>>2]|0;if(b|0?(h=b+4|0,g=c[h>>2]|0,c[h>>2]=g+-1,(g|0)==0):0)Xa[c[(c[b>>2]|0)+8>>2]&255](b);f=f+1|0}Wv(a+144|0);et(e);Wm(a);return}function dt(a){a=a|0;ct(a);Jv(a);return}function et(b){b=b|0;var d=0,e=0;d=c[b>>2]|0;e=d;do if(d|0){c[b+4>>2]=e;if((d|0)==(b+16|0)){a[b+128>>0]=0;break}else{Mr(d,(c[b+8>>2]|0)-e|0);break}}while(0);return}function ft(b){b=b|0;var d=0;c[b>>2]=37528;d=c[b+8>>2]|0;if(d|0?a[b+12>>0]|0:0)Kv(d);Wm(b);return}function gt(a){a=a|0;ft(a);Jv(a);return}function ht(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[(qt()|0)+((b&255)<<2)>>2]&255;return b|0}function it(b,d,e){b=b|0;d=d|0;e=e|0;b=d;while(1){if((b|0)==(e|0))break;d=a[b>>0]|0;if(d<<24>>24>-1){d=qt()|0;d=c[d+(a[b>>0]<<2)>>2]&255}a[b>>0]=d;b=b+1|0}return e|0}function jt(a,b){a=a|0;b=b|0;if(b<<24>>24>-1)b=c[(pt()|0)+(b<<24>>24<<2)>>2]&255;return b|0}function kt(b,d,e){b=b|0;d=d|0;e=e|0;b=d;while(1){if((b|0)==(e|0))break;d=a[b>>0]|0;if(d<<24>>24>-1){d=pt()|0;d=c[d+(a[b>>0]<<2)>>2]&255}a[b>>0]=d;b=b+1|0}return e|0}function lt(a,b){a=a|0;b=b|0;return b|0}function mt(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;while(1){if((c|0)==(d|0))break;a[e>>0]=a[c>>0]|0;e=e+1|0;c=c+1|0}return d|0}function nt(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function ot(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;while(1){if((c|0)==(d|0))break;b=a[c>>0]|0;a[f>>0]=b<<24>>24>-1?b:e;f=f+1|0;c=c+1|0}return d|0}function pt(){return c[(Lj()|0)>>2]|0}function qt(){return c[(Pj()|0)>>2]|0}function rt(){return c[(Mj()|0)>>2]|0}function st(a){a=a|0;c[a>>2]=37580;Wv(a+12|0);Wm(a);return}function tt(a){a=a|0;st(a);Jv(a);return}function ut(b){b=b|0;return a[b+8>>0]|0}function vt(b){b=b|0;return a[b+9>>0]|0}function wt(a,b){a=a|0;b=b|0;Rv(a,b+12|0);return}function xt(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Sv(a,49942,Ml(49942)|0);return}function yt(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;Sv(a,49947,Ml(49947)|0);return}function zt(a){a=a|0;c[a>>2]=37620;Wv(a+16|0);Wm(a);return}function At(a){a=a|0;zt(a);Jv(a);return}function Bt(a){a=a|0;return c[a+8>>2]|0}function Ct(a){a=a|0;return c[a+12>>2]|0}function Dt(a,b){a=a|0;b=b|0;Rv(a,b+16|0);return}function Et(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;ow(a,37676,dq(37676)|0);return}function Ft(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;ow(a,37652,dq(37652)|0);return}function Gt(a){a=a|0;Wm(a);Jv(a);return}function Ht(a){a=a|0;Wm(a);Jv(a);return}function It(a,c,d){a=a|0;c=c|0;d=d|0;if(d>>>0<128)d=(b[(rt()|0)+(d<<1)>>1]&c)<<16>>16!=0;else d=0;return d|0}function Jt(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0;h=d;a=g;while(1){if((h|0)==(f|0))break;if((c[h>>2]|0)>>>0<128){d=rt()|0;d=e[d+(c[h>>2]<<1)>>1]|0}else d=0;b[a>>1]=d;h=h+4|0;a=a+2|0}return f|0}function Kt(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0))break;if((c[e>>2]|0)>>>0<128?(a=rt()|0,(b[a+(c[e>>2]<<1)>>1]&d)<<16>>16):0){f=e;break}e=e+4|0}return f|0}function Lt(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0))break;if((c[e>>2]|0)>>>0>=128){f=e;break}a=rt()|0;if(!((b[a+(c[e>>2]<<1)>>1]&d)<<16>>16)){f=e;break}e=e+4|0}return f|0}function Mt(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[(qt()|0)+(b<<2)>>2]|0;return b|0}function Nt(a,b,d){a=a|0;b=b|0;d=d|0;a=b;while(1){if((a|0)==(d|0))break;b=c[a>>2]|0;if(b>>>0<128){b=qt()|0;b=c[b+(c[a>>2]<<2)>>2]|0}c[a>>2]=b;a=a+4|0}return d|0}function Ot(a,b){a=a|0;b=b|0;if(b>>>0<128)b=c[(pt()|0)+(b<<2)>>2]|0;return b|0}function Pt(a,b,d){a=a|0;b=b|0;d=d|0;a=b;while(1){if((a|0)==(d|0))break;b=c[a>>2]|0;if(b>>>0<128){b=pt()|0;b=c[b+(c[a>>2]<<2)>>2]|0}c[a>>2]=b;a=a+4|0}return d|0}function Qt(a,b){a=a|0;b=b|0;return b<<24>>24|0}function Rt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;while(1){if((d|0)==(e|0))break;c[f>>2]=a[d>>0];f=f+4|0;d=d+1|0}return e|0}function St(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function Tt(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=e-d|0;h=2?h>>>2:h;b=d;while(1){if((b|0)==(e|0))break;i=c[b>>2]|0;a[g>>0]=i>>>0<128?i&255:f;g=g+1|0;b=b+4|0}return d+(h<<2)|0}function Ut(a){a=a|0;Wm(a);Jv(a);return}function Vt(a){a=a|0;Wm(a);Jv(a);return}function Wt(a){a=a|0;Wm(a);Jv(a);return}function Xt(a){a=a|0;c[a>>2]=37936;return}function Yt(a){a=a|0;c[a>>2]=37972;return}function Zt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b+4>>2]=f+-1;c[b>>2]=37528;f=b+8|0;c[f>>2]=d;a[b+12>>0]=e&1;if(!d)c[f>>2]=rt()|0;return}function _t(a,b){a=a|0;b=b|0;var d=0;c[a+4>>2]=b+-1;c[a>>2]=37508;b=a+8|0;$t(b,28);d=a+144|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;Sv(d,46181,Ml(46181)|0);c[a+12>>2]=c[b>>2];au();bu(a,1180200);cu();du(a,1180208);eu();fu(a,1180216);gu();hu(a,1180232);iu();ju(a,1180240);ku();lu(a,1180248);mu();nu(a,1180264);ou();pu(a,1180272);qu();ru(a,1180280);su();tu(a,1180304);uu();vu(a,1180336);wu();xu(a,1180344);yu();zu(a,1180352);Au();Bu(a,1180360);Cu();Du(a,1180368);Eu();Fu(a,1180376);Gu();Hu(a,1180384);Iu();Ju(a,1180392);Ku();Lu(a,1180400);Mu();Nu(a,1180408);Ou();Pu(a,1180416);Qu();Ru(a,1180424);Su();Tu(a,1180432);Uu();Vu(a,1180448);Wu();Xu(a,1180464);Yu();Zu(a,1180480);_u();$u(a,1180496);av();bv(a,1180504);return}function $t(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+128>>0]=0;if(d|0){ov(b,d);fv(b,d)}return}function au(){c[295051]=0;c[295050]=35364;return}function bu(a,b){a=a|0;b=b|0;cv(a,b,vn(1182972)|0);return}function cu(){c[295053]=0;c[295052]=35396;return}function du(a,b){a=a|0;b=b|0;cv(a,b,vn(1182980)|0);return}function eu(){Zt(1180216,0,0,1);return}function fu(a,b){a=a|0;b=b|0;cv(a,b,vn(1182988)|0);return}function gu(){c[295059]=0;c[295058]=37724;return}function hu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183020)|0);return}function iu(){c[295061]=0;c[295060]=37792;return}function ju(a,b){a=a|0;b=b|0;cv(a,b,vn(1183292)|0);return}function ku(){nv(1180248,1);return}function lu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183300)|0);return}function mu(){c[295067]=0;c[295066]=37840;return}function nu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183308)|0);return}function ou(){c[295069]=0;c[295068]=37888;return}function pu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183316)|0);return}function qu(){mv(1180280,1);return}function ru(a,b){a=a|0;b=b|0;cv(a,b,vn(1183004)|0);return}function su(){lv(1180304,1);return}function tu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183028)|0);return}function uu(){c[295085]=0;c[295084]=35428;return}function vu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183012)|0);return}function wu(){c[295087]=0;c[295086]=35492;return}function xu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183036)|0);return}function yu(){c[295089]=0;c[295088]=35556;return}function zu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183044)|0);return}function Au(){c[295091]=0;c[295090]=35608;return}function Bu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183052)|0);return}function Cu(){c[295093]=0;c[295092]=36964;return}function Du(a,b){a=a|0;b=b|0;cv(a,b,vn(1183212)|0);return}function Eu(){c[295095]=0;c[295094]=37020;return}function Fu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183220)|0);return}function Gu(){c[295097]=0;c[295096]=37076;return}function Hu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183228)|0);return}function Iu(){c[295099]=0;c[295098]=37132;return}function Ju(a,b){a=a|0;b=b|0;cv(a,b,vn(1183236)|0);return}function Ku(){c[295101]=0;c[295100]=37188;return}function Lu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183244)|0);return}function Mu(){c[295103]=0;c[295102]=37216;return}function Nu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183252)|0);return}function Ou(){c[295105]=0;c[295104]=37244;return}function Pu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183260)|0);return}function Qu(){c[295107]=0;c[295106]=37272;return}function Ru(a,b){a=a|0;b=b|0;cv(a,b,vn(1183268)|0);return}function Su(){c[295109]=0;c[295108]=37704;Xt(1180440);c[295108]=35660;c[295110]=35708;return}function Tu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183120)|0);return}function Uu(){c[295113]=0;c[295112]=37704;Yt(1180456);c[295112]=35744;c[295114]=35792;return}function Vu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183188)|0);return}function Wu(){c[295117]=0;c[295116]=37704;c[295118]=tn()|0;c[295116]=36916;return}function Xu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183196)|0);return}function Yu(){c[295121]=0;c[295120]=37704;c[295122]=tn()|0;c[295120]=36940;return}function Zu(a,b){a=a|0;b=b|0;cv(a,b,vn(1183204)|0);return}function _u(){c[295125]=0;c[295124]=37300;return}function $u(a,b){a=a|0;b=b|0;cv(a,b,vn(1183276)|0);return}function av(){c[295127]=0;c[295126]=37332;return}function bv(a,b){a=a|0;b=b|0;cv(a,b,vn(1183284)|0);return}function cv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=b+4|0;c[f>>2]=(c[f>>2]|0)+1;f=a+8|0;e=c[f>>2]|0;a=(c[a+12>>2]|0)-e|0;if((2?a>>2:a)>>>0<=d>>>0){dv(f,d+1|0);e=c[f>>2]|0}e=c[e+(d<<2)>>2]|0;if(e|0?(g=e+4|0,a=c[g>>2]|0,c[g>>2]=a+-1,(a|0)==0):0)Xa[c[(c[e>>2]|0)+8>>2]&255](e);c[(c[f>>2]|0)+(d<<2)>>2]=b;return}function dv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+4|0;d=c[a>>2]|0;f=(c[e>>2]|0)-d|0;f=2?f>>2:f;if(f>>>0>=b>>>0){if(f>>>0>b>>>0)c[e>>2]=d+(b<<2)}else ev(a,b-f|0);return}function ev(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=Ia;Ia=Ia+32|0;g=i;h=a+8|0;f=a+4|0;d=c[f>>2]|0;e=(c[h>>2]|0)-d|0;do if((2?e>>2:e)>>>0>>0){d=d-(c[a>>2]|0)|0;d=(2?d>>2:d)+b|0;e=gv(a)|0;if(e>>>0>>0)Lw(a);else{l=c[a>>2]|0;k=(c[h>>2]|0)-l|0;j=1?k>>1:k;h=(c[f>>2]|0)-l|0;hv(g,(2?k>>2:k)>>>0<(1?e>>>1:e)>>>0?(j>>>0>>0?d:j):e,2?h>>2:h,a+16|0);iv(g,b);jv(a,g);kv(g);break}}else fv(a,b);while(0);Ia=i;return}function fv(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;a=b;do{c[d>>2]=0;d=(c[e>>2]|0)+4|0;c[e>>2]=d;a=a+-1|0}while((a|0)!=0);return}function gv(a){a=a|0;return 1073741823}function hv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=b+12|0;c[h>>2]=0;c[b+16>>2]=f;do if(d){g=f+112|0;if(d>>>0<29&(a[g>>0]|0)==0){a[g>>0]=1;break}else{f=Gv(d<<2)|0;break}}else f=0;while(0);c[b>>2]=f;e=f+(e<<2)|0;c[b+8>>2]=e;c[b+4>>2]=e;c[h>>2]=f+(d<<2);return}function iv(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+8|0;d=c[e>>2]|0;a=b;do{c[d>>2]=0;d=(c[e>>2]|0)+4|0;c[e>>2]=d;a=a+-1|0}while((a|0)!=0);return}function jv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(2?f>>2:f)<<2)|0;c[g>>2]=d;if((f|0)>0){BJ(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;a=b+12|0;h=c[g>>2]|0;c[g>>2]=c[a>>2];c[a>>2]=h;c[b>>2]=c[e>>2];return}function kv(b){b=b|0;var d=0,e=0,f=0,g=0;d=c[b+4>>2]|0;f=b+8|0;e=c[f>>2]|0;while(1){if((e|0)==(d|0))break;g=e+-4|0;c[f>>2]=g;e=g}d=c[b>>2]|0;e=d;do if(d|0){f=c[b+16>>2]|0;if((d|0)==(f|0)){a[f+112>>0]=0;break}else{Mr(d,(c[b+12>>2]|0)-e|0);break}}while(0);return}function lv(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=37620;c[a+8>>2]=46;c[a+12>>2]=44;b=a+16|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function mv(b,d){b=b|0;d=d|0;c[b+4>>2]=d+-1;c[b>>2]=37580;a[b+8>>0]=46;a[b+9>>0]=44;d=b+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function nv(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=37460;c[a+8>>2]=tn()|0;return}function ov(b,d){b=b|0;d=d|0;var e=0;if((gv(b)|0)>>>0>>0)Lw(b);e=b+128|0;if(d>>>0<29&(a[e>>0]|0)==0){a[e>>0]=1;e=b+16|0}else e=Gv(d<<2)|0;c[b+4>>2]=e;c[b>>2]=e;c[b+8>>2]=e+(d<<2);return}function pv(){if((a[1180512]|0)==0?hJ(1180512)|0:0){qv()|0;c[295832]=1183324;jJ(1180512)}return c[295832]|0}function qv(){rv();c[295831]=1180520;return 1183324}function rv(){_t(1180520,1);return}function sv(){tv(1183332,pv()|0);return 1183332}function tv(a,b){a=a|0;b=b|0;b=c[b>>2]|0;c[a>>2]=b;a=b+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function uv(){if((a[1180680]|0)==0?hJ(1180680)|0:0){sv()|0;c[295834]=1183332;jJ(1180680)}return c[295834]|0}function vv(a){a=a|0;var b=0;b=c[(uv()|0)>>2]|0;c[a>>2]=b;a=b+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function wv(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return xv(a,vn(b)|0)|0}function xv(a,b){a=a|0;b=b|0;var d=0;d=c[a+8>>2]|0;a=(c[a+12>>2]|0)-d|0;if((2?a>>2:a)>>>0>b>>>0)d=(c[d+(b<<2)>>2]|0)!=0;else d=0;return d|0}function yv(a,b,c){a=a|0;b=b|0;c=c|0;if(!c)c=0;else c=Vj(a,b,c)|0;return c|0}function zv(a){a=a|0;return}function Av(a,b){a=a|0;b=b|0;return 0}function Bv(a){a=a|0;rk(a)|0;return}function Cv(a){a=a|0;a=pk(a)|0;if(!a)return;else Kw(a,48328)}function Dv(a){a=a|0;qk(a)|0;return}function Ev(a,b,d){a=a|0;b=b|0;d=d|0;pk(1183340)|0;while(1){if((c[a>>2]|0)!=1)break;ya(1183368,1183340)|0}if(!(c[a>>2]|0)){c[a>>2]=1;qk(1183340)|0;Xa[d&255](b);pk(1183340)|0;c[a>>2]=-1;qk(1183340)|0;EJ(1183368)|0}else qk(1183340)|0;return}function Fv(){ea()}function Gv(a){a=a|0;var b=0;b=(a|0)==0?1:a;while(1){a=kk(b)|0;if(a|0)break;a=mJ()|0;if(!a){a=0;break}Wa[a&3]()}return a|0}function Hv(a,b){a=a|0;b=b|0;return Gv(a)|0}function Iv(a){a=a|0;return Gv(a)|0}function Jv(a){a=a|0;lk(a);return}function Kv(a){a=a|0;Jv(a);return}function Lv(a,b){a=a|0;b=b|0;var d=0,e=0;e=li(b)|0;d=Gv(e+13|0)|0;c[d>>2]=e;c[d+4>>2]=e;c[d+8>>2]=0;d=Mv(d)|0;BJ(d|0,b|0,e+1|0)|0;c[a>>2]=d;return}function Mv(a){a=a|0;return a+12|0}function Nv(a,b){a=a|0;b=b|0;c[a>>2]=41080;Lv(a+4|0,b);return}function Ov(a){a=a|0;return 1}function Pv(a){a=a|0;ea()}function Qv(a){a=a|0;ea()}function Rv(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)Sv(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}return}function Sv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=Ia;Ia=Ia+16|0;f=g;if(e>>>0>4294967279)Pv(b);if(e>>>0<11)a[b+11>>0]=e;else{i=e+16&-16;h=Gv(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;b=h}Tk(b,d,e)|0;a[f>>0]=0;Vm(b+e|0,f);Ia=g;return}function Tv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=Ia;Ia=Ia+16|0;f=g;if(d>>>0>4294967279)Pv(b);if(d>>>0<11)a[b+11>>0]=d;else{i=d+16&-16;h=Gv(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=d;b=h}Uv(b,d,e)|0;a[f>>0]=0;Vm(b+d|0,f);Ia=g;return}function Uv(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)DJ(a|0,(Sk(c)|0)&255|0,b|0)|0;return a|0}function Vv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=a[d+11>>0]|0;h=g<<24>>24<0;g=h?c[d+4>>2]|0:g&255;if(g>>>0>>0)Qv(b);else{g=g-e|0;Sv(b,(h?c[d>>2]|0:d)+e|0,g>>>0>>0?g:f);return}}function Wv(b){b=b|0;if((a[b+11>>0]|0)<0)Mr(c[b>>2]|0,c[b+8>>2]&2147483647);return}function Xv(b,d){b=b|0;d=d|0;var e=0,f=0;if((b|0)!=(d|0)){e=a[d+11>>0]|0;f=e<<24>>24<0;Yv(b,f?c[d>>2]|0:d,f?c[d+4>>2]|0:e&255)|0}return b|0}function Yv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;j=k;h=b+11|0;f=a[h>>0]|0;g=f<<24>>24<0;if(g)i=(c[b+8>>2]&2147483647)+-1|0;else i=10;do if(i>>>0>=e>>>0){if(g)f=c[b>>2]|0;else f=b;Zv(f,d,e)|0;a[j>>0]=0;Vm(f+e|0,j);if((a[h>>0]|0)<0){c[b+4>>2]=e;break}else{a[h>>0]=e;break}}else{if(g)f=c[b+4>>2]|0;else f=f&255;_v(b,i,e-i|0,f,0,f,e,d)}while(0);Ia=k;return b|0}function Zv(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)CJ(a|0,b|0,c|0)|0;return a|0}function _v(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+16|0;n=o;if((-18-d|0)>>>0>>0)Pv(b);if((a[b+11>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<2147483623){l=e+d|0;k=d<<1;l=l>>>0>>0?k:l;l=l>>>0<11?11:l+16&-16}else l=-17;k=Gv(l)|0;if(g|0)Tk(k,m,g)|0;if(i|0)Tk(k+g|0,j,i)|0;f=f-h|0;e=f-g|0;if(e|0)Tk(k+g+i|0,m+g+h|0,e)|0;e=d+1|0;if((e|0)!=11)Mr(m,e);c[b>>2]=k;c[b+8>>2]=l|-2147483648;m=f+i|0;c[b+4>>2]=m;a[n>>0]=0;Vm(k+m|0,n);Ia=o;return}function $v(a,b){a=a|0;b=b|0;return Yv(a,b,Ml(b)|0)|0}function aw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;h=j;g=b+11|0;f=a[g>>0]|0;i=f<<24>>24<0;if(i)f=c[b+4>>2]|0;else f=f&255;do if(f>>>0>=d>>>0)if(i){i=(c[b>>2]|0)+d|0;a[h>>0]=0;Vm(i,h);c[b+4>>2]=d;break}else{a[h>>0]=0;Vm(b+d|0,h);a[g>>0]=d;break}else bw(b,d-f|0,e)|0;while(0);Ia=j;return}function bw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;j=k;if(d|0){i=b+11|0;f=a[i>>0]|0;if(f<<24>>24<0){h=c[b+4>>2]|0;g=(c[b+8>>2]&2147483647)+-1|0}else{h=f&255;g=10}if((g-h|0)>>>0>>0){cw(b,g,h+d-g|0,h,h,0,0);f=a[i>>0]|0}if(f<<24>>24<0)g=c[b>>2]|0;else g=b;Uv(g+h|0,d,e)|0;f=h+d|0;if((a[i>>0]|0)<0)c[b+4>>2]=f;else a[i>>0]=f;a[j>>0]=0;Vm(g+f|0,j)}Ia=k;return b|0}function cw(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;if((-17-d|0)>>>0>>0)Pv(b);if((a[b+11>>0]|0)<0)l=c[b>>2]|0;else l=b;if(d>>>0<2147483623){k=e+d|0;j=d<<1;k=k>>>0>>0?j:k;k=k>>>0<11?11:k+16&-16}else k=-17;j=Gv(k)|0;if(g|0)Tk(j,l,g)|0;e=f-h-g|0;if(e|0)Tk(j+g+i|0,l+g+h|0,e)|0;e=d+1|0;if((e|0)!=11)Mr(l,e);c[b>>2]=j;c[b+8>>2]=k|-2147483648;return}function dw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;j=k;i=b+11|0;f=a[i>>0]|0;g=f<<24>>24<0;if(g){h=c[b+4>>2]|0;f=(c[b+8>>2]&2147483647)+-1|0}else{h=f&255;f=10}if((f-h|0)>>>0>=e>>>0){if(e|0){if(g)g=c[b>>2]|0;else g=b;Tk(g+h|0,d,e)|0;f=h+e|0;if((a[i>>0]|0)<0)c[b+4>>2]=f;else a[i>>0]=f;a[j>>0]=0;Vm(g+f|0,j)}}else _v(b,f,h+e-f|0,h,h,0,e,d);Ia=k;return b|0}function ew(a,b){a=a|0;b=b|0;return dw(a,b,Ml(b)|0)|0}function fw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;i=k;j=k+1|0;a[i>>0]=d;g=b+11|0;d=a[g>>0]|0;f=d<<24>>24<0;if(f){e=(c[b+8>>2]&2147483647)+-1|0;h=c[b+4>>2]|0}else{e=10;h=d&255}if((h|0)==(e|0)){cw(b,e,1,e,e,0,0);if((a[g>>0]|0)<0)e=8;else e=7}else if(f)e=8;else e=7;if((e|0)==7){a[g>>0]=h+1;d=b}else if((e|0)==8){d=c[b>>2]|0;c[b+4>>2]=h+1}b=d+h|0;Vm(b,i);a[j>>0]=0;Vm(b+1|0,j);Ia=k;return}function gw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+16|0;l=m;k=b+11|0;g=a[k>>0]|0;h=g<<24>>24<0;if(h)j=c[b+4>>2]|0;else j=g&255;if(j>>>0>>0)Qv(b);if(h)g=(c[b+8>>2]&2147483647)+-1|0;else g=10;if((g-j|0)>>>0>=f>>>0){if(f|0){if(h)i=c[b>>2]|0;else i=b;g=j-d|0;h=i+d|0;if(!g)g=e;else{Zv(h+f|0,h,g)|0;g=h>>>0<=e>>>0&(i+j|0)>>>0>e>>>0?e+f|0:e}Zv(h,g,f)|0;g=j+f|0;if((a[k>>0]|0)<0)c[b+4>>2]=g;else a[k>>0]=g;a[l>>0]=0;Vm(i+g|0,l)}}else _v(b,g,j+f-g|0,j,d,0,f,e);Ia=m;return b|0}function hw(a,b,c){a=a|0;b=b|0;c=c|0;return gw(a,b,c,Ml(c)|0)|0}function iw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=Ia;Ia=Ia+16|0;p=q;o=b+11|0;h=a[o>>0]|0;j=h<<24>>24<0;if(j)n=c[b+4>>2]|0;else n=h&255;if(n>>>0>>0)Qv(b);i=n-d|0;h=i>>>0>>0?i:e;if(j)e=(c[b+8>>2]&2147483647)+-1|0;else e=10;if((h-n+e|0)>>>0>>0)_v(b,e,n+g-h-e|0,n,d,h,g,f);else{if(j)m=c[b>>2]|0;else m=b;do if((h|0)!=(g|0)){l=i-h|0;if(!l){e=d;k=21}else{j=m+d|0;if(h>>>0>g>>>0){Zv(j,f,g)|0;Zv(j+g|0,j+h|0,l)|0;break}do if(j>>>0>>0&(m+n|0)>>>0>f>>>0)if((j+h|0)>>>0>f>>>0){Zv(j,f,h)|0;d=h+d|0;i=0;k=g-h|0;e=d;f=f+g|0;g=m+d|0;break}else{i=h;k=g;e=d;f=f+(g-h)|0;g=j;break}else{i=h;k=g;e=d;g=j}while(0);Zv(g+k|0,g+i|0,l)|0;h=i;g=k;k=21}}else{h=g;e=d;k=21}while(0);if((k|0)==21)Zv(m+e|0,f,g)|0;g=g-h+n|0;if((a[o>>0]|0)<0)c[b+4>>2]=g;else a[o>>0]=g;a[p>>0]=0;Vm(m+g|0,p)}Ia=q;return b|0}function jw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return iw(a,b,c,d,Ml(d)|0)|0}function kw(b,c,d){b=b|0;c=c|0;d=d|0;if(!c)d=0;else d=Ai(b,Sk(a[d>>0]|0)|0,c)|0;return d|0}function lw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;h=i;f=a[b+11>>0]|0;if(f<<24>>24<0){g=c[b+4>>2]|0;f=c[b>>2]|0}else{g=f&255;f=b}a[h>>0]=d;if(g>>>0>e>>>0){e=kw(f+e|0,g-e|0,h)|0;f=(e|0)==0?-1:e-f|0}else f=-1;Ia=i;return f|0}function mw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=a[b+11>>0]|0;i=h<<24>>24<0;if(i)h=c[b+4>>2]|0;else h=h&255;if((g|0)==-1|h>>>0>>0)Qv(b);h=h-d|0;e=h>>>0>>0?h:e;if(i)b=c[b>>2]|0;h=e>>>0>g>>>0;b=yv(b+d|0,f,h?g:e)|0;if(!b)return (e>>>0>>0?-1:h&1)|0;else return b|0;return 0}function nw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;h=Ia;Ia=Ia+16|0;g=h;if(f>>>0>4294967279)Pv(b);if(f>>>0<11)a[b+11>>0]=e;else{i=f+16&-16;f=Gv(i)|0;c[b>>2]=f;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;b=f}Tk(b,d,e)|0;a[g>>0]=0;Vm(b+e|0,g);Ia=h;return}function ow(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;h=i;if(e>>>0>1073741807)Pv(b);do if(e>>>0>=2){g=e+4&-4;if(g>>>0>1073741823)ea();else{f=Gv(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;break}}else{a[b+8+3>>0]=e;f=b}while(0);jl(f,d,e)|0;c[h>>2]=0;bn(f+(e<<2)|0,h);Ia=i;return} +function Ze(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=Ia;Ia=Ia+64|0;u=v+36|0;t=v+24|0;j=v+48|0;l=v+12|0;k=v;a[1181210]=1;a[1181208]=1;d=c[295299]|0;f=c[295300]|0;if((d|0)!=(f|0))do{e=c[d>>2]|0;if((e|0)!=(b|0))Fg(e);d=d+4|0}while((d|0)!=(f|0));s=1174512;if(!((c[s>>2]|0)==0&(c[s+4>>2]|0)==0)){i=1174496+(c[295287]<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;f=c[295299]|0;g=c[295300]|0;if((f|0)==(g|0)){e=0;d=0}else{e=0;d=0;do{s=G((c[f>>2]|0)+160|0,0)|0;e=pJ(s|0,E()|0,e|0,d|0)|0;d=E()|0;f=f+4|0}while((f|0)!=(g|0))}s=qJ(h|0,i|0,e|0,d|0)|0;r=E()|0;q=1174616;q=pJ(s|0,r|0,c[q>>2]|0,c[q+4>>2]|0)|0;r=E()|0;s=1174616;c[s>>2]=q;c[s+4>>2]=r}c[l+8>>2]=0;h=l+11|0;a[h>>0]=7;a[l>>0]=a[45136]|0;a[l+1>>0]=a[45137]|0;a[l+2>>0]=a[45138]|0;a[l+3>>0]=a[45139]|0;a[l+4>>0]=a[45140]|0;a[l+5>>0]=a[45141]|0;a[l+6>>0]=a[45142]|0;a[l+7>>0]=0;c[t>>2]=l;rc(u,1181292,l,1183426,t,j);s=+sh((c[u>>2]|0)+28|0)!=1.0;if(s|(c[293635]|0)!=0)d=0;else{c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;d=Gv(16)|0;c[k>>2]=d;c[k+8>>2]=-2147483632;c[k+4>>2]=11;e=d;f=45144;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[d+11>>0]=0;c[t>>2]=k;rc(u,1181292,k,1183426,t,j);if((~~+sh((c[u>>2]|0)+28|0)|0)<20)d=0;else d=(c[c[(c[b+5544>>2]|0)+20>>2]>>2]|0)!=0;if((a[k+11>>0]|0)<0)Jv(c[k>>2]|0)}if((a[h>>0]|0)<0)Jv(c[l>>2]|0);if(d){q=u+4|0;c[q>>2]=0;r=u+8|0;c[r>>2]=0;s=u+4|0;c[u>>2]=s;n=b+5544|0;e=c[c[n>>2]>>2]|0;c[t>>2]=e;d=c[295299]|0;j=c[295300]|0;if((d|0)!=(j|0)){f=0;i=d;d=e;while(1){h=c[(c[i>>2]|0)+5544>>2]|0;o=c[h>>2]|0;c[t>>2]=(o|0)<(d|0)?o:d;h=c[h+20>>2]|0;do if(f){g=c[h>>2]|0;e=q;while(1){d=c[f+16>>2]|0;if((g|0)<(d|0)){d=c[f>>2]|0;if(!d){p=29;break}else e=f}else{if((d|0)>=(g|0)){p=33;break}e=f+4|0;d=c[e>>2]|0;if(!d){p=32;break}}f=d}if((p|0)==29){p=0;g=f;break}else if((p|0)==32){p=0;g=f;f=e;break}else if((p|0)==33){p=0;g=f;f=e;break}}else{g=s;f=s}while(0);d=c[f>>2]|0;if(!d){d=Gv(24)|0;c[d+16>>2]=c[h>>2];c[d+20>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=g;c[f>>2]=d;e=c[c[u>>2]>>2]|0;if(!e)e=d;else{c[u>>2]=e;e=c[f>>2]|0}sc(c[q>>2]|0,e);c[r>>2]=(c[r>>2]|0)+1}c[d+20>>2]=0;d=i+4|0;if((d|0)==(j|0))break;f=c[s>>2]|0;i=d;d=c[t>>2]|0}d=c[295299]|0;m=c[295300]|0;if((d|0)!=(m|0)){do{k=c[d>>2]|0;j=c[k+5544>>2]|0;l=(c[j>>2]|0)-(c[t>>2]|0)|0;k=c[k+5560>>2]|0;j=c[j+20>>2]|0;e=c[s>>2]|0;do if(e){g=c[j>>2]|0;i=e;f=q;while(1){e=c[i+16>>2]|0;if((g|0)<(e|0)){e=c[i>>2]|0;if(!e){p=60;break}else f=i}else{if((e|0)>=(g|0)){p=64;break}f=i+4|0;e=c[f>>2]|0;if(!e){p=63;break}}i=e}if((p|0)==60){p=0;h=i;g=i;break}else if((p|0)==63){p=0;h=i;g=f;break}else if((p|0)==64){p=0;h=i;g=f;break}}else{h=s;g=s}while(0);e=c[g>>2]|0;if(!e){e=Gv(24)|0;c[e+16>>2]=c[j>>2];c[e+20>>2]=0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=h;c[g>>2]=e;f=c[c[u>>2]>>2]|0;if(!f)f=e;else{c[u>>2]=f;f=c[g>>2]|0}sc(c[q>>2]|0,f);c[r>>2]=(c[r>>2]|0)+1}o=e+20|0;c[o>>2]=l+k+(c[o>>2]|0);d=d+4|0}while((d|0)!=(m|0));o=s}else p=23}else p=23;if((p|0)==23)o=s;h=c[(c[n>>2]|0)+20>>2]|0;d=c[o>>2]|0;do if(d){g=c[h>>2]|0;f=q;while(1){e=c[d+16>>2]|0;if((g|0)<(e|0)){e=c[d>>2]|0;if(!e){p=45;break}else f=d}else{if((e|0)>=(g|0)){p=49;break}f=d+4|0;e=c[f>>2]|0;if(!e){p=48;break}}d=e}if((p|0)==45){g=d;f=d;break}else if((p|0)==48){g=d;break}else if((p|0)==49){g=d;break}}else{g=s;f=s}while(0);d=c[f>>2]|0;if(!d){e=Gv(24)|0;c[e+16>>2]=c[h>>2];c[e+20>>2]=0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=g;c[f>>2]=e;d=c[c[u>>2]>>2]|0;if(!d)d=e;else{c[u>>2]=d;d=c[f>>2]|0}sc(c[q>>2]|0,d);c[r>>2]=(c[r>>2]|0)+1}else e=d;d=c[295299]|0;n=c[295300]|0;if((d|0)==(n|0))d=b;else{m=d;l=b;e=c[e+20>>2]|0;while(1){d=c[m>>2]|0;k=d+5544|0;j=c[(c[k>>2]|0)+20>>2]|0;f=c[o>>2]|0;do if(f){i=c[j>>2]|0;h=q;while(1){g=c[f+16>>2]|0;if((i|0)<(g|0)){g=c[f>>2]|0;if(!g){p=78;break}else h=f}else{if((g|0)>=(i|0)){p=82;break}h=f+4|0;g=c[h>>2]|0;if(!g){p=81;break}}f=g}if((p|0)==78){g=f;h=f;break}else if((p|0)==81){g=f;break}else if((p|0)==82){g=f;break}}else{g=s;h=s}while(0);f=c[h>>2]|0;if(!f){f=Gv(24)|0;c[f+16>>2]=c[j>>2];c[f+20>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=g;c[h>>2]=f;g=c[c[u>>2]>>2]|0;if(!g)g=f;else{c[u>>2]=g;g=c[h>>2]|0}sc(c[q>>2]|0,g);c[r>>2]=(c[r>>2]|0)+1}if((c[f+20>>2]|0)>(e|0)){i=c[(c[k>>2]|0)+20>>2]|0;e=c[o>>2]|0;do if(e){h=c[i>>2]|0;g=q;while(1){f=c[e+16>>2]|0;if((h|0)<(f|0)){f=c[e>>2]|0;if(!f){p=93;break}else g=e}else{if((f|0)>=(h|0)){p=97;break}g=e+4|0;f=c[g>>2]|0;if(!f){p=96;break}}e=f}if((p|0)==93){h=e;g=e;break}else if((p|0)==96){h=e;break}else if((p|0)==97){h=e;break}}else{h=s;g=s}while(0);e=c[g>>2]|0;if(!e){f=Gv(24)|0;c[f+16>>2]=c[i>>2];c[f+20>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=h;c[g>>2]=f;e=c[c[u>>2]>>2]|0;if(!e)e=f;else{c[u>>2]=e;e=c[g>>2]|0}sc(c[q>>2]|0,e);c[r>>2]=(c[r>>2]|0)+1;e=f}e=c[e+20>>2]|0}else d=l;m=m+4|0;if((m|0)==(n|0))break;else l=d}}_e(u,c[o>>2]|0)}else d=b;f=d+5544|0;c[b+2139856>>2]=c[c[f>>2]>>2];if((d|0)!=(b|0)?(p=Ic(1182116,0)|0,We(t,d+176|0,c[d+5560>>2]|0,-32001,32001),s=t+11|0,r=a[s>>0]|0,q=r<<24>>24<0,r=Tb(p,q?c[t>>2]|0:t,q?c[t+4>>2]|0:r&255)|0,Ql(u,r+(c[(c[r>>2]|0)+-12>>2]|0)|0),q=qn(u,1182988)|0,q=Na[c[(c[q>>2]|0)+28>>2]&127](q,10)|0,rn(u),gm(r,q)|0,Wl(r)|0,Ic(r,1)|0,(a[s>>0]|0)<0):0)Jv(c[t>>2]|0);q=Tb(Ic(1182116,0)|0,42720,9)|0;e=b+5532|0;ih(u,c[c[(c[f>>2]|0)+20>>2]>>2]|0,(a[e>>0]|0)!=0);t=u+11|0;s=a[t>>0]|0;r=s<<24>>24<0;Tb(q,r?c[u>>2]|0:u,r?c[u+4>>2]|0:s&255)|0;if((a[t>>0]|0)<0)Jv(c[u>>2]|0);d=c[f>>2]|0;t=(c[d+24>>2]|0)-(c[d+20>>2]|0)|0;if((2?t>>2:t)>>>0<=1?!($e(d,b+176|0)|0):0){b=c[295529]|0;b=b+-12|0;b=c[b>>2]|0;b=1182116+b|0;Ql(u,b);b=qn(u,1182988)|0;t=c[b>>2]|0;t=t+28|0;t=c[t>>2]|0;b=Na[t&127](b,10)|0;rn(u);gm(1182116,b)|0;Wl(1182116)|0;Ic(1182116,1)|0;Ia=v;return}r=Tb(1182116,42730,8)|0;ih(u,c[(c[(c[f>>2]|0)+20>>2]|0)+4>>2]|0,(a[e>>0]|0)!=0);b=u+11|0;t=a[b>>0]|0;s=t<<24>>24<0;Tb(r,s?c[u>>2]|0:u,s?c[u+4>>2]|0:t&255)|0;if((a[b>>0]|0)<0)Jv(c[u>>2]|0);b=c[295529]|0;b=b+-12|0;b=c[b>>2]|0;b=1182116+b|0;Ql(u,b);b=qn(u,1182988)|0;t=c[b>>2]|0;t=t+28|0;t=c[t>>2]|0;b=Na[t&127](b,10)|0;rn(u);gm(1182116,b)|0;Wl(1182116)|0;Ic(1182116,1)|0;Ia=v;return}function _e(a,b){a=a|0;b=b|0;if(!b)return;else{_e(a,c[b>>2]|0);_e(a,c[b+4>>2]|0);Jv(b);return}}function $e(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+4544|0;g=n+4536|0;l=n+4532|0;i=n+432|0;m=b+20|0;f=c[c[m>>2]>>2]|0;if(!f){b=0;Ia=n;return b|0}ye(d,f,n,we(d,f)|0);f=(c[d+5352>>2]|0)+48|0;f=Ug(1181240,c[f>>2]|0,c[f+4>>2]|0,g)|0;if(a[g>>0]|0){h=e[f+2>>1]|0;c[l>>2]=h;g=Nd(d,i)|0;c[i+4096>>2]=g;a:do if((i|0)==(g|0)){j=i;k=8}else{f=i;do{if((c[f>>2]|0)==(h|0)){j=f;k=8;break a}f=f+8|0}while((f|0)!=(g|0))}while(0);do if((k|0)==8?(j|0)!=(g|0):0){g=b+24|0;f=c[g>>2]|0;if((f|0)==(c[b+28>>2]|0)){af(m,l);break}else{c[f>>2]=h;c[g>>2]=f+4;break}}while(0)}Ae(d,c[c[m>>2]>>2]|0);b=(c[b+24>>2]|0)-(c[m>>2]|0)|0;b=(2?b>>2:b)>>>0>1;Ia=n;return b|0}function af(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+4|0;i=c[a>>2]|0;l=(c[j>>2]|0)-i|0;h=2?l>>2:l;d=h+1|0;if(d>>>0>1073741823)Lw(a);k=a+8|0;f=(c[k>>2]|0)-i|0;g=1?f>>1:f;g=(2?f>>2:f)>>>0<536870911?(g>>>0>>0?d:g):1073741823;do if(g)if(g>>>0>1073741823){a=I(8)|0;Nv(a,44817);c[a>>2]=41100;L(a|0,33144,231)}else{f=Gv(g<<2)|0;e=f;break}else{e=0;f=0}while(0);d=f+(h<<2)|0;c[d>>2]=c[b>>2];if((l|0)>0)BJ(e|0,i|0,l|0)|0;c[a>>2]=f;c[j>>2]=d+4;c[k>>2]=f+(g<<2);if(!i)return;Jv(i);return}function bf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=Ia;Ia=Ia+16|0;p=q;d=c[a>>2]|0;e=c[b>>2]|0;if((d|0)==(e|0)){Ia=q;return}f=d+32|0;if((f|0)==(e|0)){Ia=q;return}while(1){k=c[f>>2]|0;l=c[d+36>>2]|0;j=d+40|0;c[p>>2]=c[j>>2];c[p+4>>2]=c[j+4>>2];c[p+8>>2]=c[j+8>>2];j=d+52|0;n=c[j>>2]|0;i=d+56|0;o=c[i>>2]|0;h=d+60|0;m=c[h>>2]|0;c[h>>2]=0;c[i>>2]=0;c[j>>2]=0;if((f|0)==(c[a>>2]|0)){h=f;d=f}else{d=f;while(1){j=d+-32|0;e=c[j>>2]|0;if((e|0)==(k|0)){if((c[d+-28>>2]|0)>=(l|0))break}else if((e|0)>=(k|0))break;c[d>>2]=c[j>>2];c[d+4>>2]=c[j+4>>2];c[d+8>>2]=c[j+8>>2];c[d+12>>2]=c[j+12>>2];c[d+16>>2]=c[j+16>>2];h=d+20|0;i=d+-12|0;e=c[h>>2]|0;if(!e){e=d+24|0;g=d+28|0}else{r=d+24|0;c[r>>2]=e;Jv(e);g=d+28|0;c[g>>2]=0;c[r>>2]=0;c[h>>2]=0;e=r}c[h>>2]=c[i>>2];r=d+-8|0;c[e>>2]=c[r>>2];h=d+-4|0;c[g>>2]=c[h>>2];c[h>>2]=0;c[r>>2]=0;c[i>>2]=0;if((j|0)==(c[a>>2]|0)){d=j;break}else d=j}h=d}c[d>>2]=k;c[h+4>>2]=l;g=h+8|0;c[g>>2]=c[p>>2];c[g+4>>2]=c[p+4>>2];c[g+8>>2]=c[p+8>>2];g=h+20|0;d=c[g>>2]|0;if(!d){e=h+24|0;d=h+28|0}else{e=h+24|0;c[e>>2]=d;Jv(d);d=h+28|0;c[d>>2]=0;c[e>>2]=0;c[g>>2]=0}c[g>>2]=n;c[e>>2]=o;c[d>>2]=m;d=f+32|0;if((d|0)==(c[b>>2]|0))break;else{r=f;f=d;d=r}}Ia=q;return}function cf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=Ia;Ia=Ia+64|0;t=u+52|0;r=u+48|0;p=u+44|0;n=u+40|0;g=u+36|0;h=u+32|0;i=u+28|0;j=u+24|0;k=u+20|0;l=u+16|0;m=u+12|0;o=u+8|0;q=u+4|0;s=u;switch(e|0){case 1:{a=c[a>>2]|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];c[f+16>>2]=c[a+16>>2];r=f+20|0;b=a+20|0;c[r>>2]=0;s=f+24|0;c[s>>2]=0;t=f+28|0;c[t>>2]=0;c[r>>2]=c[b>>2];f=a+24|0;c[s>>2]=c[f>>2];a=a+28|0;c[t>>2]=c[a>>2];c[a>>2]=0;c[f>>2]=0;c[b>>2]=0;Ia=u;return}case 2:{h=c[b>>2]|0;i=h+-32|0;c[b>>2]=i;g=c[a>>2]|0;d=c[g>>2]|0;e=c[i>>2]|0;if((d|0)==(e|0))if((c[g+4>>2]|0)<(c[h+-28>>2]|0))d=6;else d=7;else if((d|0)<(e|0))d=6;else d=7;if((d|0)==6){c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];c[f+8>>2]=c[i+8>>2];c[f+12>>2]=c[i+12>>2];c[f+16>>2]=c[i+16>>2];b=f+20|0;s=h+-12|0;c[b>>2]=0;a=f+24|0;c[a>>2]=0;t=f+28|0;c[t>>2]=0;c[b>>2]=c[s>>2];b=h+-8|0;c[a>>2]=c[b>>2];a=h+-4|0;c[t>>2]=c[a>>2];c[a>>2]=0;c[b>>2]=0;c[s>>2]=0;s=f+32|0;c[s>>2]=c[g>>2];c[s+4>>2]=c[g+4>>2];c[s+8>>2]=c[g+8>>2];c[s+12>>2]=c[g+12>>2];c[s+16>>2]=c[g+16>>2];s=f+52|0;b=g+20|0;c[s>>2]=0;a=f+56|0;c[a>>2]=0;t=f+60|0;c[t>>2]=0;c[s>>2]=c[b>>2];f=g+24|0;c[a>>2]=c[f>>2];a=g+28|0;c[t>>2]=c[a>>2];c[a>>2]=0;c[f>>2]=0;c[b>>2]=0;Ia=u;return}else if((d|0)==7){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];b=f+20|0;s=g+20|0;c[b>>2]=0;a=f+24|0;c[a>>2]=0;t=f+28|0;c[t>>2]=0;c[b>>2]=c[s>>2];b=g+24|0;c[a>>2]=c[b>>2];a=g+28|0;c[t>>2]=c[a>>2];c[a>>2]=0;c[b>>2]=0;c[s>>2]=0;s=f+32|0;c[s>>2]=c[i>>2];c[s+4>>2]=c[i+4>>2];c[s+8>>2]=c[i+8>>2];c[s+12>>2]=c[i+12>>2];c[s+16>>2]=c[i+16>>2];s=f+52|0;b=h+-12|0;c[s>>2]=0;a=f+56|0;c[a>>2]=0;t=f+60|0;c[t>>2]=0;c[s>>2]=c[b>>2];f=h+-8|0;c[a>>2]=c[f>>2];a=h+-4|0;c[t>>2]=c[a>>2];c[a>>2]=0;c[f>>2]=0;c[b>>2]=0;Ia=u;return}break}case 0:{Ia=u;return}default:if((e|0)<9){c[g>>2]=c[a>>2];c[h>>2]=c[b>>2];c[r>>2]=c[g>>2];c[t>>2]=c[h>>2];jf(r,t,f,d);Ia=u;return}else{g=1?e>>>1:e;h=c[a>>2]|0;a=h+(g<<5)|0;c[i>>2]=h;c[j>>2]=a;c[r>>2]=c[i>>2];c[t>>2]=c[j>>2];Ve(r,t,d,g,f,g);c[k>>2]=a;b=c[b>>2]|0;c[l>>2]=b;j=e-g|0;c[r>>2]=c[k>>2];c[t>>2]=c[l>>2];Ve(r,t,d,j,f+(g<<5)|0,j);c[m>>2]=h;c[o>>2]=a;c[q>>2]=a;c[s>>2]=b;c[n>>2]=c[m>>2];c[p>>2]=c[o>>2];c[r>>2]=c[q>>2];c[t>>2]=c[s>>2];kf(n,p,r,t,f,d);Ia=u;return}}}function df(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;a:do if((a|0)!=(b|0)){while(1){if((d|0)==(e|0))break;g=c[a>>2]|0;h=c[d>>2]|0;if((g|0)==(h|0))if((c[a+4>>2]|0)<(c[d+4>>2]|0))g=13;else g=17;else if((g|0)<(h|0))g=13;else g=17;if((g|0)==13){i=c[f>>2]|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];j=i+20|0;k=d+20|0;g=c[j>>2]|0;if(!g){h=i+24|0;g=i+28|0}else{h=i+24|0;c[h>>2]=g;Jv(g);g=i+28|0;c[g>>2]=0;c[h>>2]=0;c[j>>2]=0}c[j>>2]=c[k>>2];j=d+24|0;c[h>>2]=c[j>>2];i=d+28|0;c[g>>2]=c[i>>2];c[i>>2]=0;c[j>>2]=0;c[k>>2]=0;d=d+32|0}else if((g|0)==17){i=c[f>>2]|0;c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];j=i+20|0;k=a+20|0;g=c[j>>2]|0;if(!g){h=i+24|0;g=i+28|0}else{h=i+24|0;c[h>>2]=g;Jv(g);g=i+28|0;c[g>>2]=0;c[h>>2]=0;c[j>>2]=0}c[j>>2]=c[k>>2];j=a+24|0;c[h>>2]=c[j>>2];i=a+28|0;c[g>>2]=c[i>>2];c[i>>2]=0;c[j>>2]=0;c[k>>2]=0;a=a+32|0}c[f>>2]=(c[f>>2]|0)+32;if((a|0)==(b|0))break a}if((a|0)==(b|0))return;h=c[f>>2]|0;do{c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];c[h+16>>2]=c[a+16>>2];i=h+20|0;j=a+20|0;d=c[i>>2]|0;if(!d){g=h+24|0;d=h+28|0}else{g=h+24|0;c[g>>2]=d;Jv(d);d=h+28|0;c[d>>2]=0;c[g>>2]=0;c[i>>2]=0}c[i>>2]=c[j>>2];h=a+24|0;c[g>>2]=c[h>>2];e=a+28|0;c[d>>2]=c[e>>2];c[e>>2]=0;c[h>>2]=0;c[j>>2]=0;a=a+32|0;h=(c[f>>2]|0)+32|0;c[f>>2]=h}while((a|0)!=(b|0));return}while(0);if((d|0)==(e|0))return;h=c[f>>2]|0;do{c[h>>2]=c[d>>2];c[h+4>>2]=c[d+4>>2];c[h+8>>2]=c[d+8>>2];c[h+12>>2]=c[d+12>>2];c[h+16>>2]=c[d+16>>2];i=h+20|0;j=d+20|0;g=c[i>>2]|0;if(!g){a=h+24|0;g=h+28|0}else{a=h+24|0;c[a>>2]=g;Jv(g);g=h+28|0;c[g>>2]=0;c[a>>2]=0;c[i>>2]=0}c[i>>2]=c[j>>2];h=d+24|0;c[a>>2]=c[h>>2];b=d+28|0;c[g>>2]=c[b>>2];c[b>>2]=0;c[h>>2]=0;c[j>>2]=0;d=d+32|0;h=(c[f>>2]|0)+32|0;c[f>>2]=h}while((d|0)!=(e|0));return}function ef(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;K=Ia;Ia=Ia+64|0;I=K;G=K+60|0;E=K+56|0;x=K+52|0;y=K+48|0;z=K+44|0;A=K+40|0;B=K+36|0;C=K+32|0;D=K+28|0;F=K+24|0;H=K+20|0;if(!g){Ia=K;return}a:while(1){if(!((g|0)>(i|0)&(f|0)>(i|0))){J=4;break}if(!f){J=46;break}w=c[b>>2]|0;k=c[w>>2]|0;l=w+4|0;q=w;m=c[a>>2]|0;while(1){j=c[m>>2]|0;if((j|0)==(k|0)){if((c[m+4>>2]|0)<(c[l>>2]|0))break}else if((j|0)<(k|0))break;j=m+32|0;c[a>>2]=j;f=f+-1|0;if(!f){J=46;break a}else m=j}s=m;if((f|0)<(g|0)){u=(g|0)/2|0;j=w+(u<<5)|0;v=j;k=q-s|0;if(!k)j=m;else{p=c[j>>2]|0;r=c[w+(u<<5)+4>>2]|0;o=m;k=5?k>>5:k;j=m;while(1){n=1?k>>>1:k;m=o+(n<<5)|0;l=c[m>>2]|0;if((l|0)==(p|0))if((c[o+(n<<5)+4>>2]|0)<(r|0)){l=o;k=n}else J=17;else if((l|0)<(p|0)){l=o;k=n}else J=17;if((J|0)==17){J=0;j=m+32|0;l=j;k=k+-1-n|0}if(!k)break;else o=l}}t=j-s|0;t=5?t>>5:t}else{if((f|0)==1){J=44;break}t=(f|0)/2|0;k=m+(t<<5)|0;j=k;l=(c[d>>2]|0)-q|0;if(!l)k=q;else{s=c[k>>2]|0;r=c[m+(t<<5)+4>>2]|0;p=w;l=5?l>>5:l;k=w;while(1){o=1?l>>>1:l;n=p+(o<<5)|0;m=c[n>>2]|0;if((s|0)==(m|0))if((r|0)<(c[p+(o<<5)+4>>2]|0))J=26;else{m=p;l=o}else if((s|0)<(m|0))J=26;else{m=p;l=o}if((J|0)==26){J=0;k=n+32|0;m=k;l=l+-1-o|0}if(!l)break;else p=m}}u=k-q|0;u=5?u>>5:u;v=k}f=f-t|0;g=g-u|0;k=j;r=v;b:do if((w|0)!=(k|0)){if((w|0)!=(r|0)){p=r+-32-q|0;l=k;n=w;while(1){c[I>>2]=c[l>>2];c[I+4>>2]=c[l+4>>2];c[I+8>>2]=c[l+8>>2];c[I+12>>2]=c[l+12>>2];c[I+16>>2]=c[l+16>>2];w=l+20|0;M=c[w>>2]|0;m=l+24|0;s=c[m>>2]|0;N=l+28|0;o=c[N>>2]|0;c[N>>2]=0;c[m>>2]=0;c[w>>2]=0;c[l>>2]=c[n>>2];c[l+4>>2]=c[n+4>>2];c[l+8>>2]=c[n+8>>2];c[l+12>>2]=c[n+12>>2];c[l+16>>2]=c[n+16>>2];L=n+20|0;c[w>>2]=c[L>>2];w=n+24|0;c[m>>2]=c[w>>2];m=n+28|0;c[N>>2]=c[m>>2];c[n>>2]=c[I>>2];c[n+4>>2]=c[I+4>>2];c[n+8>>2]=c[I+8>>2];c[n+12>>2]=c[I+12>>2];c[n+16>>2]=c[I+16>>2];c[L>>2]=M;c[w>>2]=s;c[m>>2]=o;l=l+32|0;m=n+32|0;o=(l|0)==(q|0);if((m|0)==(r|0))break;n=m;q=o?m:q}k=k+((5?p>>>5:p)+1<<5)|0;if(!o){l=q;p=q;m=k;while(1){o=p;while(1){n=l;c[I>>2]=c[m>>2];c[I+4>>2]=c[m+4>>2];c[I+8>>2]=c[m+8>>2];c[I+12>>2]=c[m+12>>2];c[I+16>>2]=c[m+16>>2];M=m+20|0;s=c[M>>2]|0;P=m+24|0;L=c[P>>2]|0;O=m+28|0;N=c[O>>2]|0;c[O>>2]=0;c[P>>2]=0;c[M>>2]=0;q=l;c[m>>2]=c[q>>2];c[m+4>>2]=c[q+4>>2];c[m+8>>2]=c[q+8>>2];c[m+12>>2]=c[q+12>>2];c[m+16>>2]=c[q+16>>2];w=n+20|0;c[M>>2]=c[w>>2];M=n+24|0;c[P>>2]=c[M>>2];l=n+28|0;c[O>>2]=c[l>>2];c[q>>2]=c[I>>2];c[q+4>>2]=c[I+4>>2];c[q+8>>2]=c[I+8>>2];c[q+12>>2]=c[I+12>>2];c[q+16>>2]=c[I+16>>2];c[w>>2]=s;c[M>>2]=L;c[l>>2]=N;m=m+32|0;l=n+32|0;n=(m|0)==(o|0);if((l|0)!=(r|0))break;if(n)break b;else l=p}P=l;l=P;p=n?P:p}}}}else k=r;while(0);c[b>>2]=k;if((t+u|0)<(f+g|0)){c[A>>2]=c[a>>2];c[B>>2]=j;c[C>>2]=k;c[E>>2]=c[A>>2];c[G>>2]=c[B>>2];c[I>>2]=c[C>>2];ef(E,G,I,e,t,u,h,i);l=a;j=v}else{c[D>>2]=k;c[F>>2]=v;c[H>>2]=c[d>>2];c[E>>2]=c[D>>2];c[G>>2]=c[F>>2];c[I>>2]=c[H>>2];ef(E,G,I,e,f,g,h,i);l=d;f=t;g=u}c[l>>2]=k;c[b>>2]=j;if(!g){J=46;break}}if((J|0)==4){c[x>>2]=c[a>>2];c[y>>2]=c[b>>2];c[z>>2]=c[d>>2];c[E>>2]=c[x>>2];c[G>>2]=c[y>>2];c[I>>2]=c[z>>2];ff(E,G,I,e,f,g,h);Ia=K;return}else if((J|0)==44){c[I>>2]=c[m>>2];c[I+4>>2]=c[m+4>>2];c[I+8>>2]=c[m+8>>2];c[I+12>>2]=c[m+12>>2];c[I+16>>2]=c[m+16>>2];N=m+20|0;J=c[N>>2]|0;P=m+24|0;M=c[P>>2]|0;H=m+28|0;O=c[H>>2]|0;c[H>>2]=0;c[P>>2]=0;c[N>>2]=0;c[m>>2]=c[w>>2];c[m+4>>2]=c[w+4>>2];c[m+8>>2]=c[w+8>>2];c[m+12>>2]=c[w+12>>2];c[m+16>>2]=c[w+16>>2];L=w+20|0;c[N>>2]=c[L>>2];N=w+24|0;c[P>>2]=c[N>>2];P=w+28|0;c[H>>2]=c[P>>2];c[w>>2]=c[I>>2];c[w+4>>2]=c[I+4>>2];c[w+8>>2]=c[I+8>>2];c[w+12>>2]=c[I+12>>2];c[w+16>>2]=c[I+16>>2];c[L>>2]=J;c[N>>2]=M;c[P>>2]=O;Ia=K;return}else if((J|0)==46){Ia=K;return}}function ff(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+112|0;A=B+104|0;z=B+96|0;y=B+88|0;x=B+80|0;p=B+72|0;n=B+64|0;l=B+56|0;u=B+52|0;v=B+48|0;w=B+108|0;m=B+40|0;o=B+32|0;q=B+24|0;r=B+16|0;s=B+8|0;t=B;if((g|0)>(h|0)){h=c[d>>2]|0;g=c[e>>2]|0;if((h|0)==(g|0)){k=h;j=0;h=i}else{j=0;k=h;h=i;do{c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];c[h+12>>2]=c[k+12>>2];c[h+16>>2]=c[k+16>>2];w=h+20|0;g=k+20|0;c[w>>2]=0;v=h+24|0;c[v>>2]=0;u=h+28|0;c[u>>2]=0;c[w>>2]=c[g>>2];w=k+24|0;c[v>>2]=c[w>>2];v=k+28|0;c[u>>2]=c[v>>2];c[v>>2]=0;c[w>>2]=0;c[g>>2]=0;j=j+1|0;k=k+32|0;h=h+32|0;g=c[e>>2]|0}while((k|0)!=(g|0));k=c[d>>2]|0}e=g;c[m>>2]=h;c[m+4>>2]=h;c[o>>2]=i;c[o+4>>2]=i;c[q>>2]=k;c[q+4>>2]=k;b=c[b>>2]|0;c[r>>2]=b;c[r+4>>2]=b;c[s>>2]=e;c[s+4>>2]=e;c[t>>2]=f;c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];c[p>>2]=c[o>>2];c[p+4>>2]=c[o+4>>2];c[x>>2]=c[q>>2];c[x+4>>2]=c[q+4>>2];c[y>>2]=c[r>>2];c[y+4>>2]=c[r+4>>2];c[z>>2]=c[s>>2];c[z+4>>2]=c[s+4>>2];c[A>>2]=c[t>>2];hf(n,p,x,y,z,A)}else{h=c[b>>2]|0;g=c[d>>2]|0;if((h|0)==(g|0)){k=h;j=0;h=i}else{j=0;k=h;h=i;do{c[h>>2]=c[k>>2];c[h+4>>2]=c[k+4>>2];c[h+8>>2]=c[k+8>>2];c[h+12>>2]=c[k+12>>2];c[h+16>>2]=c[k+16>>2];t=h+20|0;g=k+20|0;c[t>>2]=0;s=h+24|0;c[s>>2]=0;r=h+28|0;c[r>>2]=0;c[t>>2]=c[g>>2];t=k+24|0;c[s>>2]=c[t>>2];s=k+28|0;c[r>>2]=c[s>>2];c[s>>2]=0;c[t>>2]=0;c[g>>2]=0;j=j+1|0;k=k+32|0;h=h+32|0;g=c[d>>2]|0}while((k|0)!=(g|0));k=c[b>>2]|0}c[l>>2]=g;c[u>>2]=c[e>>2];c[v>>2]=k;c[x>>2]=c[l>>2];c[y>>2]=c[u>>2];c[z>>2]=c[v>>2];a[A>>0]=a[w>>0]|0;gf(i,h,x,y,z,A)}if((i|0)==0|(j|0)==0){Ia=B;return}g=j;k=0;while(1){h=c[i+20>>2]|0;if(h){c[i+24>>2]=h;Jv(h);g=j}k=k+1|0;if(k>>>0>=g>>>0)break;else i=i+32|0}Ia=B;return}function gf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((a|0)==(b|0))return;while(1){l=c[d>>2]|0;if((l|0)==(c[e>>2]|0))break;g=c[a>>2]|0;h=c[l>>2]|0;if((g|0)==(h|0))if((c[a+4>>2]|0)<(c[l+4>>2]|0))m=12;else m=16;else if((g|0)<(h|0))m=12;else m=16;if((m|0)==12){m=0;g=c[f>>2]|0;c[g>>2]=c[l>>2];c[g+4>>2]=c[l+4>>2];c[g+8>>2]=c[l+8>>2];c[g+12>>2]=c[l+12>>2];c[g+16>>2]=c[l+16>>2];j=g+20|0;k=l+20|0;h=c[j>>2]|0;if(!h){h=g+24|0;i=g+28|0}else{n=g+24|0;c[n>>2]=h;Jv(h);i=g+28|0;c[i>>2]=0;c[n>>2]=0;c[j>>2]=0;h=n}c[j>>2]=c[k>>2];n=l+24|0;c[h>>2]=c[n>>2];j=l+28|0;c[i>>2]=c[j>>2];c[j>>2]=0;c[n>>2]=0;c[k>>2]=0;c[d>>2]=l+32}else if((m|0)==16){m=0;i=c[f>>2]|0;c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];j=i+20|0;k=a+20|0;g=c[j>>2]|0;if(!g){h=i+24|0;g=i+28|0}else{h=i+24|0;c[h>>2]=g;Jv(g);g=i+28|0;c[g>>2]=0;c[h>>2]=0;c[j>>2]=0}c[j>>2]=c[k>>2];n=a+24|0;c[h>>2]=c[n>>2];l=a+28|0;c[g>>2]=c[l>>2];c[l>>2]=0;c[n>>2]=0;c[k>>2]=0;g=c[f>>2]|0;a=a+32|0}c[f>>2]=g+32;if((a|0)==(b|0)){m=21;break}}if((m|0)==21)return;i=c[f>>2]|0;while(1){c[i>>2]=c[a>>2];c[i+4>>2]=c[a+4>>2];c[i+8>>2]=c[a+8>>2];c[i+12>>2]=c[a+12>>2];c[i+16>>2]=c[a+16>>2];j=i+20|0;k=a+20|0;g=c[j>>2]|0;if(!g){g=i+24|0;h=i+28|0}else{n=i+24|0;c[n>>2]=g;Jv(g);h=i+28|0;c[h>>2]=0;c[n>>2]=0;c[j>>2]=0;g=n}c[j>>2]=c[k>>2];n=a+24|0;c[g>>2]=c[n>>2];f=a+28|0;c[h>>2]=c[f>>2];c[f>>2]=0;c[n>>2]=0;c[k>>2]=0;a=a+32|0;if((a|0)==(b|0))break;else i=i+32|0}return}function hf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=a+4|0;g=c[s>>2]|0;r=c[b+4>>2]|0;if((g|0)==(r|0))return;p=d+4|0;o=c[e+4>>2]|0;n=f+4|0;m=c[p>>2]|0;while(1){if((m|0)==(o|0))break;d=m+-32|0;l=g+-32|0;e=c[d>>2]|0;h=c[l>>2]|0;if((e|0)==(h|0))if((c[m+-28>>2]|0)<(c[g+-28>>2]|0))q=13;else q=17;else if((e|0)<(h|0))q=13;else q=17;if((q|0)==13){q=0;h=c[n>>2]|0;i=h+-32|0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];i=h+-12|0;j=m+-12|0;g=c[i>>2]|0;if(!g){e=h+-8|0;g=h+-4|0}else{e=h+-8|0;c[e>>2]=g;Jv(g);g=h+-4|0;c[g>>2]=0;c[e>>2]=0;c[i>>2]=0}c[i>>2]=c[j>>2];l=m+-8|0;c[e>>2]=c[l>>2];e=m+-4|0;c[g>>2]=c[e>>2];c[e>>2]=0;c[l>>2]=0;c[j>>2]=0;c[p>>2]=d;g=c[s>>2]|0;e=(c[n>>2]|0)+-32|0}else if((q|0)==17){q=0;i=c[n>>2]|0;e=i+-32|0;c[e>>2]=c[l>>2];c[e+4>>2]=c[l+4>>2];c[e+8>>2]=c[l+8>>2];c[e+12>>2]=c[l+12>>2];c[e+16>>2]=c[l+16>>2];j=i+-12|0;k=g+-12|0;d=c[j>>2]|0;if(!d){h=i+-8|0;d=i+-4|0}else{h=i+-8|0;c[h>>2]=d;Jv(d);d=i+-4|0;c[d>>2]=0;c[h>>2]=0;c[j>>2]=0}c[j>>2]=c[k>>2];j=g+-8|0;c[h>>2]=c[j>>2];g=g+-4|0;c[d>>2]=c[g>>2];c[g>>2]=0;c[j>>2]=0;c[k>>2]=0;c[s>>2]=l;g=l;d=m}c[n>>2]=e;if((g|0)==(r|0)){q=22;break}else m=d}if((q|0)==22)return;g=c[a+4>>2]|0;m=c[b+4>>2]|0;if((g|0)==(m|0))return;j=c[f+4>>2]|0;do{i=g;g=g+-32|0;h=j;j=j+-32|0;c[j>>2]=c[g>>2];c[j+4>>2]=c[g+4>>2];c[j+8>>2]=c[g+8>>2];c[j+12>>2]=c[g+12>>2];c[j+16>>2]=c[g+16>>2];k=h+-12|0;l=i+-12|0;d=c[k>>2]|0;if(!d){e=h+-8|0;d=h+-4|0}else{e=h+-8|0;c[e>>2]=d;Jv(d);d=h+-4|0;c[d>>2]=0;c[e>>2]=0;c[k>>2]=0}c[k>>2]=c[l>>2];f=i+-8|0;c[e>>2]=c[f>>2];b=i+-4|0;c[d>>2]=c[b>>2];c[b>>2]=0;c[f>>2]=0;c[l>>2]=0}while((g|0)!=(m|0));return}function jf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=c[a>>2]|0;f=c[b>>2]|0;if((e|0)==(f|0))return;c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];c[d+8>>2]=c[e+8>>2];c[d+12>>2]=c[e+12>>2];c[d+16>>2]=c[e+16>>2];l=d+20|0;g=e+20|0;c[l>>2]=0;j=d+24|0;c[j>>2]=0;i=d+28|0;c[i>>2]=0;c[l>>2]=c[g>>2];k=e+24|0;c[j>>2]=c[k>>2];j=e+28|0;c[i>>2]=c[j>>2];c[j>>2]=0;c[k>>2]=0;c[g>>2]=0;g=e+32|0;c[a>>2]=g;if((g|0)==(f|0))return;k=d;do{i=k;k=k+32|0;f=c[i>>2]|0;h=c[g>>2]|0;if((f|0)==(h|0))if((c[i+4>>2]|0)<(c[e+36>>2]|0))j=7;else j=21;else if((f|0)<(h|0))j=7;else j=21;if((j|0)==7){c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[k+12>>2]=c[i+12>>2];c[k+16>>2]=c[i+16>>2];j=i+20|0;c[i+52>>2]=c[j>>2];h=i+24|0;c[i+56>>2]=c[h>>2];g=i+28|0;c[i+60>>2]=c[g>>2];c[g>>2]=0;c[h>>2]=0;c[j>>2]=0;if((i|0)==(d|0)){f=d;g=l;h=d;i=l}else{while(1){f=c[a>>2]|0;e=i;i=i+-32|0;g=c[i>>2]|0;h=c[f>>2]|0;if((g|0)==(h|0)){if((c[e+-28>>2]|0)>=(c[f+4>>2]|0))break}else if((g|0)>=(h|0))break;c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];c[e+8>>2]=c[i+8>>2];c[e+12>>2]=c[i+12>>2];c[e+16>>2]=c[i+16>>2];h=e+20|0;j=e+-12|0;f=c[h>>2]|0;if(!f){f=e+24|0;g=e+28|0}else{m=e+24|0;c[m>>2]=f;Jv(f);g=e+28|0;c[g>>2]=0;c[m>>2]=0;c[h>>2]=0;f=m}c[h>>2]=c[j>>2];m=e+-8|0;c[f>>2]=c[m>>2];h=e+-4|0;c[g>>2]=c[h>>2];c[h>>2]=0;c[m>>2]=0;c[j>>2]=0;if((i|0)==(d|0)){e=d;break}}i=e+20|0;f=e;g=i;h=e}j=c[a>>2]|0;c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];c[f+16>>2]=c[j+16>>2];e=j+20|0;f=c[g>>2]|0;if(!f){f=h+24|0;g=h+28|0}else{n=h+24|0;c[n>>2]=f;Jv(f);m=h+28|0;c[m>>2]=0;c[n>>2]=0;c[g>>2]=0;f=n;g=m}c[i>>2]=c[e>>2];i=j+24|0;c[f>>2]=c[i>>2];h=j+28|0;f=g}else if((j|0)==21){c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];c[k+8>>2]=c[g+8>>2];c[k+12>>2]=c[g+12>>2];c[k+16>>2]=c[g+16>>2];m=i+52|0;n=e+52|0;c[m>>2]=0;h=i+56|0;c[h>>2]=0;f=i+60|0;c[f>>2]=0;c[m>>2]=c[n>>2];i=e+56|0;c[h>>2]=c[i>>2];h=e+60|0;e=n}c[f>>2]=c[h>>2];c[h>>2]=0;c[i>>2]=0;c[e>>2]=0;e=c[a>>2]|0;g=e+32|0;c[a>>2]=g}while((g|0)!=(c[b>>2]|0));return}function kf(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0;g=c[a>>2]|0;h=c[b>>2]|0;a:do if((g|0)!=(h|0)){while(1){j=c[d>>2]|0;if((j|0)==(c[e>>2]|0))break;h=c[g>>2]|0;i=c[j>>2]|0;if((h|0)==(i|0))if((c[g+4>>2]|0)<(c[j+4>>2]|0))h=13;else h=14;else if((h|0)<(i|0))h=13;else h=14;if((h|0)==13){c[f>>2]=c[j>>2];c[f+4>>2]=c[j+4>>2];c[f+8>>2]=c[j+8>>2];c[f+12>>2]=c[j+12>>2];c[f+16>>2]=c[j+16>>2];i=f+20|0;g=j+20|0;c[i>>2]=0;k=f+24|0;c[k>>2]=0;h=f+28|0;c[h>>2]=0;c[i>>2]=c[g>>2];i=j+24|0;c[k>>2]=c[i>>2];j=j+28|0;c[h>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[g>>2]=0;c[d>>2]=(c[d>>2]|0)+32;g=c[a>>2]|0}else if((h|0)==14){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];j=f+20|0;k=g+20|0;c[j>>2]=0;h=f+24|0;c[h>>2]=0;i=f+28|0;c[i>>2]=0;c[j>>2]=c[k>>2];j=g+24|0;c[h>>2]=c[j>>2];g=g+28|0;c[i>>2]=c[g>>2];c[g>>2]=0;c[j>>2]=0;c[k>>2]=0;g=(c[a>>2]|0)+32|0;c[a>>2]=g}f=f+32|0;h=c[b>>2]|0;if((g|0)==(h|0))break a}if((g|0)==(h|0))return;while(1){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];e=f+20|0;k=g+20|0;c[e>>2]=0;d=f+24|0;c[d>>2]=0;j=f+28|0;c[j>>2]=0;c[e>>2]=c[k>>2];e=g+24|0;c[d>>2]=c[e>>2];d=g+28|0;c[j>>2]=c[d>>2];c[d>>2]=0;c[e>>2]=0;c[k>>2]=0;g=(c[a>>2]|0)+32|0;c[a>>2]=g;if((g|0)==(c[b>>2]|0))break;else f=f+32|0}return}while(0);g=c[d>>2]|0;if((g|0)==(c[e>>2]|0))return;while(1){c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];c[f+8>>2]=c[g+8>>2];c[f+12>>2]=c[g+12>>2];c[f+16>>2]=c[g+16>>2];b=f+20|0;k=g+20|0;c[b>>2]=0;a=f+24|0;c[a>>2]=0;j=f+28|0;c[j>>2]=0;c[b>>2]=c[k>>2];b=g+24|0;c[a>>2]=c[b>>2];a=g+28|0;c[j>>2]=c[a>>2];c[a>>2]=0;c[b>>2]=0;c[k>>2]=0;g=(c[d>>2]|0)+32|0;c[d>>2]=g;if((g|0)==(c[e>>2]|0))break;else f=f+32|0}return}function lf(d,f,g,h,i){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0;_=Ia;Ia=Ia+5152|0;R=_+536|0;o=_+5140|0;p=_;Q=_+968|0;N=f+40|0;c[N>>2]=_+16;c[c[f>>2]>>2]=0;G=c[d+5348>>2]|0;V=f+8|0;c[f+48>>2]=(c[V>>2]|0)+1;P=f+12|0;c[P>>2]=0;O=f+4|0;c[O>>2]=G+42684;S=d+5352|0;L=(c[S>>2]|0)+56|0;J=c[L>>2]|0;L=c[L+4>>2]|0;W=(J|0)!=0|(L|0)!=0;Z=Zb(d)|0;j=c[V>>2]|0;if(Z){f=_b(d,j,0)|0;Ia=_;return f|0}Z=He(d,j)|0;j=c[V>>2]|0;if(Z|(j|0)>127){if(W|(j|0)<128){f=0;Ia=_;return f|0}f=Xb(d)|0;Ia=_;return f|0}U=(((i|0)>-1|W)^1)<<31>>31;Y=(c[S>>2]|0)+48|0;X=c[Y>>2]|0;Y=c[Y+4>>2]|0;Z=Ug(1181240,X,Y,o)|0;m=(a[o>>0]|0)==0;if(m){j=32002;n=0}else{j=b[Z+4>>1]|0;l=j<<16>>16;k=c[V>>2]|0;do if(j<<16>>16!=32002)if(j<<16>>16>31743){j=l-k|0;break}else{j=(j<<16>>16<-31743?k:0)+l|0;break}else j=32002;while(0);n=e[Z+2>>1]|0}do if(W){c[f+28>>2]=32002;l=g;j=-32001;F=-32001}else{if(!m){F=b[Z+6>>1]|0;k=F<<16>>16;l=f+28|0;c[l>>2]=k;if(F<<16>>16==32002){k=Xb(d)|0;c[l>>2]=k}if((j|0)==32002)l=k;else{l=k;k=(((j|0)>(k|0)?2:1)&(a[Z+8>>0]&3)|0)==0?k:j}}else{if((c[f+-28>>2]|0)==65)j=(c[23568+(c[d+5360>>2]<<2)>>2]<<1)-(c[f+-12>>2]|0)|0;else j=Xb(d)|0;c[f+28>>2]=j;l=j;k=j}if((k|0)<(h|0)){l=(k|0)>(g|0)?k:g;j=k;F=k+128|0;break}if(a[o>>0]|0){f=k;Ia=_;return f|0}j=c[V>>2]|0;if((k|0)>31743)j=j+k|0;else j=k-((k|0)<-31743?j:0)|0;Rg(Z,X,Y,j,2,-6,0,l);f=k;Ia=_;return f|0}while(0);c[p>>2]=c[f+-36>>2];c[p+4>>2]=c[f+-76>>2];c[p+8>>2]=0;c[p+12>>2]=c[f+-156>>2];Qd(Q,d,n,i,G+9660|0,G+26300|0,p,c[f+-28>>2]&63);k=Sd(Q,0)|0;a:do if(!k)l=0;else{A=d+5340|0;D=d+5360|0;y=(F|0)>-1e4;z=(i|0)!=0;C=W^1;B=0-h|0;x=i+-1|0;n=l;l=0;m=0;do{v=(F|0)>(n|0);b:while(1){u=(j|0)>-31744;c:while(1){t=u&(z|(m|0)>1);w=k;while(1){k=c[A>>2]|0;q=w&49152;if((q|0)==0?(I=c[S>>2]|0,s=I+336+((k^1)<<3)|0,r=d+320+(k<<3)|0,!((c[r>>2]&c[s>>2]|0?1:(c[r+4>>2]&c[s+4>>2]|0)!=0)|(c[D>>2]|0)==2)):0){k=6?w>>>6:w;if((w&61440|0)==36864)k=k&15;else k=c[d+((k&63)<<2)>>2]|0;s=I+368+((k&7)<<3)|0;i=161184+((w&63)<<3)|0;r=c[i>>2]&c[s>>2];s=c[i+4>>2]&c[s+4>>2]}else{r=(we(d,w)|0)&1;s=0}do if((r|J|0)==0&(s|L|0)==0){i=c[D>>2]|0;if((i|0)==6?(K=w&61440,M=6?w>>>6:w,(c[d+(((K|0)==36864?64:M&63)<<2)>>2]&7|0)==6):0)if(y&(w&56|0)!=56){p=M;k=K}else break;else{if(!y)break;p=6?w>>>6:w;k=w&61440}k=(k|0)==36864;if(k)o=p&15;else o=c[d+((p&63)<<2)>>2]|0;if((o&7|0)==1?((c[A>>2]|0)*7^(k?8:(9?w>>>9:w)&7)|0)>3:0)break;switch(i|0){case 2:{if(k)k=p&15;else k=c[d+((p&63)<<2)>>2]|0;k=Fe(d,w,k&7,w&63)|0;break}case 3:{k=c[14640+(c[d+((w&63)<<2)>>2]<<2)>>2]<<1;break}default:k=c[14192+(i<<7)+64+(c[d+((w&63)<<2)>>2]<<2)>>2]|0}k=k+F|0;if((k|0)<=(n|0))break c;if(!v?!(Ge(d,w,1)|0):0){k=F;break c}}while(0);if(W){if(t){d:do if((q|0)==49152?1:(c[d+((w&63)<<2)>>2]|0)==0){k=(q|0)==32768;e:do if(k){o=w&12288;if(o<<16>>16<8192)switch(o<<16>>16){case 4096:{k=0;break d}default:break e}else switch(o<<16>>16){case 8192:{k=0;break d}default:break e}}while(0)}else k=1;while(0);k=k^1}else k=0;if(k|C)T=73}else T=73;if((T|0)==73?(T=0,!(Ge(d,w,0)|0)):0)break;Ee(d,w)|0;E()|0;if(ve(d,w)|0)break b;k=Sd(Q,0)|0;if(!k)break a;else w=k}k=Sd(Q,0)|0;if(!k)break a;else m=m+1|0}j=(j|0)<(k|0)?k:j;k=Sd(Q,0)|0;if(!k)break a;else m=m+1|0}m=m+1|0;c[P>>2]=w;k=6?w>>>6:w;if((w&61440|0)==36864)k=k&15;else k=c[d+((k&63)<<2)>>2]|0;c[O>>2]=G+42684+(k<<17)+((w&63)<<11);ye(d,w,R,(r|0)!=0|(s|0)!=0);o=0-(lf(d,N,B,0-n|0,x)|0)|0;Ae(d,w);if((j|0)<(o|0))if((n|0)<(o|0)){j=c[f>>2]|0;k=c[N>>2]|0;c[j>>2]=w;j=j+4|0;if((k|0)!=0?(H=c[k>>2]|0,(H|0)!=0):0){l=H;do{k=k+4|0;c[j>>2]=l;j=j+4|0;l=c[k>>2]|0}while((l|0)!=0)}c[j>>2]=0;if((o|0)<(h|0)){n=o;l=w;j=o}else{l=w;j=o;break a}}else j=o;k=Sd(Q,0)|0}while((k|0)!=0)}while(0);k=c[V>>2]|0;if(W&(j|0)==-32001)j=k+-32e3|0;else{if((j|0)>31743)k=k+j|0;else k=j-((j|0)<-31743?k:0)|0;Rg(Z,X,Y,k,(j|0)<(h|0)?((j|0)>(g|0)?3:1):2,U,l,c[f+28>>2]|0)}f=j;Ia=_;return f|0}function mf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=b+2139860|0;h=c[e>>2]|0;c[e>>2]=h+-1;if((h|0)>1)return;d=1174560;b=c[d>>2]|0;d=c[d+4>>2]|0;if((b|0)==0&(d|0)==0)b=1024;else{b=tJ(b|0,d|0,1024,0)|0;E()|0;b=(b|0)<1024?b:1024}c[e>>2]=b;if((a[1174600]|0)==0?hJ(1174600)|0:0){f=sk()|0;f=tJ(f|0,E()|0,1e3,0)|0;g=E()|0;h=1174608;c[h>>2]=f;c[h+4>>2]=g;jJ(1174600)}h=1174512;if(!((c[h>>2]|0)==0&(c[h+4>>2]|0)==0)){b=c[295299]|0;f=c[295300]|0;if((b|0)==(f|0)){d=0;g=0}else{d=0;e=0;do{h=G((c[b>>2]|0)+160|0,0)|0;d=pJ(h|0,E()|0,d|0,e|0)|0;e=E()|0;b=b+4|0}while((b|0)!=(f|0));g=e}}else{h=sk()|0;h=tJ(h|0,E()|0,1e3,0)|0;g=E()|0;d=1174624;d=qJ(h|0,g|0,c[d>>2]|0,c[d+4>>2]|0)|0;g=E()|0}b=1174528;b=pJ(c[b>>2]|0,c[b+4>>2]|0,d|0,g|0)|0;e=E()|0;h=1174608;h=qJ(b|0,e|0,c[h>>2]|0,c[h+4>>2]|0)|0;f=E()|0;if((f|0)>0|(f|0)==0&h>>>0>999){h=1174608;c[h>>2]=b;c[h+4>>2]=e;Hc()}if(a[1181209]&1)return;m=c[293636]|0;f=1174520;e=c[f>>2]|0;f=c[f+4>>2]|0;l=c[293635]|0;h=1174560;b=c[h>>2]|0;h=c[h+4>>2]|0;k=c[293637]|0;j=c[293638]|0;if(!(((e|m|l|b|k|j|0)==0?(f|((m|0)<0)<<31>>31|((l|0)<0)<<31>>31|h|((k|0)<0)<<31>>31|((j|0)<0)<<31>>31|0)==0:0)?(m=1174640,m=pJ(c[m>>2]|0,c[m+4>>2]|0,-10,-1)|0,l=E()|0,(g|0)>(l|0)|(g|0)==(l|0)&d>>>0>m>>>0):0))i=17;if((i|0)==17?(e|0)==0&(f|0)==0|((g|0)<(f|0)|(g|0)==(f|0)&d>>>0>>0):0){if((b|0)==0&(h|0)==0)return;f=c[295299]|0;g=c[295300]|0;if((f|0)==(g|0)){d=0;f=h;e=0}else{e=0;d=0;b=f;do{m=G((c[b>>2]|0)+160|0,0)|0;e=pJ(m|0,E()|0,e|0,d|0)|0;d=E()|0;b=b+4|0}while((b|0)!=(g|0));b=1174560;f=c[b+4>>2]|0;b=c[b>>2]|0}if(d>>>0>>0|(d|0)==(f|0)&e>>>0>>0)return}a[1181208]=1;return}function nf(d,f,g,h,i,j){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0;Ga=Ia;Ia=Ia+9168|0;xa=Ga+4432|0;wa=Ga+4176|0;ra=Ga+4560|0;x=Ga+9164|0;pa=Ga;qa=Ga+4992|0;Aa=d+5352|0;if(((g|0)<0?(c[(c[Aa>>2]|0)+28>>2]|0)>2:0)?Ie(d,c[f+8>>2]|0)|0:0){if((i|0)<4)g=0;else{g=G((c[d+5348>>2]|0)+160|0,0)|0;E()|0;g=(g<<1&2)+-1|0}if((g|0)>=(h|0)){i=g;Ia=Ga;return i|0}}if((i|0)<1){i=sf(d,f,g,h,0)|0;Ia=Ga;return i|0}k=d+5348|0;ua=c[k>>2]|0;sa=(c[Aa>>2]|0)+56|0;sa=(c[sa>>2]|0)!=0|(c[sa+4>>2]|0)!=0;oa=d+5340|0;ta=c[oa>>2]|0;na=f+36|0;c[na>>2]=0;if((ua|0)==(c[c[295299]>>2]|0))mf(ua);a:do if(!(Zb(d)|0)){za=f+8|0;if(((a[1181208]&1)==0?!(He(d,c[za>>2]|0)|0):0)?(l=c[za>>2]|0,(l|0)<=127):0){Ea=l+-32e3|0;g=(Ea|0)<(g|0)?g:Ea;Ea=31999-l|0;Ea=(Ea|0)>(h|0)?h:Ea;if((g|0)>=(Ea|0))break;ma=f+40|0;c[f+48>>2]=l+1;c[f+56>>2]=0;ka=f+12|0;c[ka>>2]=0;r=ua+42684|0;ja=f+4|0;c[ja>>2]=r;c[f+104>>2]=0;c[f+100>>2]=0;va=f+-28|0;Ba=c[va>>2]&63;c[f+112>>2]=0;la=f+16|0;ya=c[la>>2]|0;w=(c[Aa>>2]|0)+48|0;Da=ya<<16;Ca=c[w>>2]^Da;Da=c[w+4>>2]^((Da|0)<0)<<31>>31;w=Ug(1181240,Ca,Da,x)|0;m=(a[x>>0]|0)==0;if(!m){k=b[w+4>>1]|0;l=k<<16>>16;h=c[za>>2]|0;do if(k<<16>>16!=32002)if(k<<16>>16>31743){n=l-h|0;break}else{n=(k<<16>>16<-31743?h:0)+l|0;break}else n=32002;while(0);k=b[w+2>>1]|0;o=k&65535;if(((n|0)!=32002?(a[w+9>>0]|0)>=(i|0):0)?(p=(n|0)<(Ea|0),((p?1:2)&(a[w+8>>0]&3)|0)!=0):0){if(!(k<<16>>16)){g=n;break}b:do if((c[d+5360>>2]|0)==6){Fa=(o&61440|0)==36864?64:(6?o>>>6:o)&63;g=o&63;if((c[d+(Fa<<2)>>2]&7|0)==6?(3?g>>>3:g)>>>0>(3?Fa>>>3:Fa)>>>0:0){g=1;break}g=(c[d+(g<<2)>>2]|0)!=0}else{k=o&49152;g=k&65535;c:do if(g<<16>>16<0){switch(g<<16>>16){case -32768:break;default:break c}g=o&12288;if((g|0)==4096){g=0;break b}g=g&16383;if(g<<16>>16<8192)switch(g<<16>>16){case 4096:{g=1;break b}default:break c}else switch(g<<16>>16){case 8192:{g=1;break b}default:break c}}else{switch(g<<16>>16){case 0:break;default:break c}g=(c[d+((o&63)<<2)>>2]|0)!=0;break b}while(0);g=(k|0)!=49152}while(0);if(p){if(g){g=n;break}l=(z((i*29|0)+138|0,i)|0)+-134|0;l=(i|0)>17?0:l;i=(o&61440|0)==36864;h=o&63;g=ua+9660+(ta*8320|0)+((i?h|4096:o&4095)<<1)|0;Fa=b[g>>1]|0;k=(l|0)<1?0-l|0:l;b[g>>1]=Fa-l+((z(k,Fa)|0)/-10692|0);g=6?o>>>6:o;if(i)g=g&15;else g=c[d+((g&63)<<2)>>2]|0;i=c[va>>2]|0;if((((i&61440|0)==36864?64:(6?i>>>6:i)&63)|0)!=(i&63|0)){i=(c[f+-36>>2]|0)+(g<<7)+(h<<1)|0;Fa=b[i>>1]|0;b[i>>1]=Fa-l+((z(k,Fa)|0)/-29952|0)}i=c[f+-68>>2]|0;if((((i&61440|0)==36864?64:(6?i>>>6:i)&63)|0)!=(i&63|0)){i=(c[f+-76>>2]|0)+(g<<7)+(h<<1)|0;Fa=b[i>>1]|0;b[i>>1]=Fa-l+((z(k,Fa)|0)/-29952|0)}i=c[f+-148>>2]|0;if((((i&61440|0)==36864?64:(6?i>>>6:i)&63)|0)==(i&63|0)){g=n;break}g=(c[f+-156>>2]|0)+(g<<7)+(h<<1)|0;i=b[g>>1]|0;b[g>>1]=i-l+((z(k,i)|0)/-29952|0);g=n;break}else{if(!g){Fa=(z((i*29|0)+138|0,i)|0)+-134|0;qf(d,f,o,0,0,(i|0)>17?0:Fa)}if((c[f+-4>>2]|0)!=1){g=n;break}if(c[(c[Aa>>2]|0)+64>>2]|0){g=n;break}h=c[d+(Ba<<2)>>2]|0;k=i+1|0;k=(z((k*29|0)+138|0,k)|0)+-134|0;k=(i|0)>16?0:k;g=(k|0)<1?0-k|0:k;i=c[f+-68>>2]|0;if((((i&61440|0)==36864?64:(6?i>>>6:i)&63)|0)!=(i&63|0)){i=(c[f+-76>>2]|0)+(h<<7)+(Ba<<1)|0;Fa=b[i>>1]|0;b[i>>1]=Fa-k+((z(g,Fa)|0)/-29952|0)}i=c[f+-108>>2]|0;if((((i&61440|0)==36864?64:(6?i>>>6:i)&63)|0)!=(i&63|0)){i=(c[f+-116>>2]|0)+(h<<7)+(Ba<<1)|0;Fa=b[i>>1]|0;b[i>>1]=Fa-k+((z(g,Fa)|0)/-29952|0)}i=c[f+-188>>2]|0;if((((i&61440|0)==36864?64:(6?i>>>6:i)&63)|0)==(i&63|0)){g=n;break}i=(c[f+-196>>2]|0)+(h<<7)+(Ba<<1)|0;f=b[i>>1]|0;b[i>>1]=f-k+((z(g,f)|0)/-29952|0);g=n;break}}else v=o}else{n=32002;v=0}d:do if(sa){c[f+28>>2]=32002;o=0;u=32002;k=n}else{if(!m){ia=b[w+6>>1]|0;k=ia<<16>>16;h=f+28|0;c[h>>2]=k;if(ia<<16>>16==32002){l=Xb(d)|0;c[h>>2]=l}else l=k;if((n|0)==32002){k=32002;h=l;u=l}else{k=n;h=(((n|0)>(l|0)?2:1)&(a[w+8>>0]&3)|0)==0?l:n;u=l}}else{if((c[va>>2]|0)==65){l=(c[23568+(c[d+5360>>2]<<2)>>2]<<1)-(c[f+-12>>2]|0)|0;h=l}else{k=c[f+-8>>2]|0;if((k|0)<=0)if((k|0)<0)k=(2500-k|0)/512|0;else k=0;else k=(-2500-k|0)/512|0;l=Xb(d)|0;h=l+k|0}c[f+28>>2]=h;Rg(w,Ca,Da,32002,0,-6,0,l);k=n;u=l}s=d+5360|0;l=c[s>>2]|0;do if((l|0)==1)if(id(d)|0){o=c[f+-52>>2]|0;o=(o|0)==32002?1:(c[f+28>>2]|0)>=(o|0);break d}else{l=c[s>>2]|0;break}while(0);if((l|0)==6?(ia=d+304|0,ha=c[ia+4>>2]|0,ha>>>0>65535|(ha|0)==65535&(c[ia>>2]|0)>>>0>4294967295):0){o=c[f+-52>>2]|0;o=(o|0)==32002?1:(c[f+28>>2]|0)>=(o|0);break}if((i|0)<2?(h|0)<=(g-(c[23600+(l<<2)>>2]|0)|0):0){g=sf(d,f,g,Ea,0)|0;break a}q=f+28|0;t=c[f+-52>>2]|0;t=(t|0)==32002?1:(c[q>>2]|0)>=(t|0);if((i|0)<7?((h|0)<1e4?(h-(z((c[23632+(l<<2)>>2]|0)-(t?50:0)|0,i)|0)|0)>=(Ea|0):0):0){g=h;break a}do if((l|0)!=4){if((c[va>>2]|0)==65)break;if((h|0)<(Ea|0)?1:(c[f+-8>>2]|0)>23199)break;if(ya|0?1:(u|0)<((z(i,-36)|0)+225+Ea|0))break;if(!(c[(c[Aa>>2]|0)+16+(ta<<2)>>2]|0))break;p=ua+152|0;if((c[za>>2]|0)<(c[p>>2]|0)?(ta|0)==(c[ua+156>>2]|0):0)break;o=(i*67|0)+823|0;m=h-Ea|0;h=(m|0)/200|0;switch(l|0){case 1:{h=(m|0)/400|0;h=(h|0)<3?h:3;break}case 2:{h=(m|0)/400|0;h=(h|0)<3?h:3;break}default:h=(h|0)<3?h:3}c[ka>>2]=65;c[ja>>2]=r;Ce(d,ra);n=0-Ea|0;m=((o|0)/-256|0)+i-h|0;h=nf(d,ma,n,1-Ea|0,m,j^1)|0;l=0-h|0;De(d);if((Ea|0)>(l|0))break;h=(h|0)<-31743?Ea:l;if(c[p>>2]|0){g=h;break a}if((i|0)<12&(((Ea|0)>-1?Ea:n)|0)<1e4){g=h;break a}c[p>>2]=(c[za>>2]|0)+((m*3|0)/4|0);c[ua+156>>2]=ta;ia=nf(d,f,Ea+-1|0,Ea,m,0)|0;c[p>>2]=0;if((ia|0)>=(Ea|0)){g=h;break a}}while(0);do if((i|0)>=5){if((((Ea|0)>-1?Ea:0-Ea|0)|0)>=31744)break;r=(t?-48:0)+Ea+(c[23728+(c[s>>2]<<2)>>2]|0)|0;r=(r|0)<32001?r:32001;Rd(pa,d,v,r-(c[q>>2]|0)|0,ua+26300|0);h=Sd(pa,0)|0;e:do if(h|0){q=0-r|0;n=1-r|0;o=j^1;p=i+-4|0;l=0;f:while(1){do if((h|0)!=(ya|0)){if(!(ve(d,h)|0))break;c[ka>>2]=h;m=6?h>>>6:h;if((h&61440|0)==36864)m=m&15;else m=c[d+((m&63)<<2)>>2]|0;c[ja>>2]=ua+42684+(m<<17)+((h&63)<<11);ye(d,h,ra,we(d,h)|0);m=0-(sf(d,ma,q,n,0)|0)|0;if((r|0)<=(m|0))m=0-(nf(d,ma,q,n,p,o)|0)|0;Ae(d,h);if((m|0)<(r|0))l=l+1|0;else break f}while(0);h=Sd(pa,0)|0;if(!((l|0)<3&(h|0)!=0))break e}g=m;break a}while(0)}while(0);if(v|0?1:(((c[s>>2]|0)==3?6:8)|0)>(i|0)){o=t;break}nf(d,f,g,Ea,i+-7|0,j)|0;m=Ug(1181240,Ca,Da,x)|0;if(!(a[x>>0]|0)){o=t;v=0;k=32002;w=m;break}k=b[m+4>>1]|0;l=k<<16>>16;h=c[za>>2]|0;do if(k<<16>>16!=32002)if(k<<16>>16>31743){k=l-h|0;break}else{k=(k<<16>>16<-31743?h:0)+l|0;break}else k=32002;while(0);o=t;v=e[m+2>>1]|0;w=m}while(0);c[pa>>2]=c[f+-36>>2];fa=pa+4|0;ia=f+-76|0;c[fa>>2]=c[ia>>2];c[pa+8>>2]=0;ga=pa+12|0;c[ga>>2]=c[f+-156>>2];ha=d+(Ba<<2)|0;Pd(qa,d,v,i,ua+9660|0,ua+26300|0,pa,c[ua+5564+(c[ha>>2]<<8)+(Ba<<2)>>2]|0,f+20|0);g:do if(!v)l=0;else{if((c[d+5360>>2]|0)==6){ea=(v&61440|0)==36864?64:(6?v>>>6:v)&63;h=v&63;if((c[d+(ea<<2)>>2]&7|0)==6?(3?h>>>3:h)>>>0>(3?ea>>>3:ea)>>>0:0){l=1;break}l=(c[d+(h<<2)>>2]|0)!=0;break}l=v&49152;h=l&65535;h:do if(h<<16>>16<0){switch(h<<16>>16){case -32768:break;default:break h}h=v&12288;if((h|0)==4096){l=0;break g}h=h&16383;if(h<<16>>16<8192)switch(h<<16>>16){case 4096:{l=1;break g}default:break h}else switch(h<<16>>16){case 8192:{l=1;break g}default:break h}}else{switch(h<<16>>16){case 0:break;default:break h}l=(c[d+((v&63)<<2)>>2]|0)!=0;break g}while(0);l=(l|0)!=49152}while(0);h=Sd(qa,0)|0;i:do if(h){ea=d+5360|0;da=(i|0)<16;W=o&1;R=(i|0)<8;aa=i+-1|0;ca=(ya|0)==0;S=(k|0)!=32002;V=w+8|0;T=(i|0)>2;U=w+9|0;ba=i+-3|0;Z=z(i,-208)|0;Q=d+256|0;P=(i|0)<63?i:63;$=~g;_=0-g|0;X=j^1;Y=f+-4|0;L=k-(i<<1)|0;L=(L|0)>-32e3?L:-32e3;O=L+-1|0;M=1?i>>>1:i;N=f+-8|0;I=l&1;J=f+32|0;K=f+28|0;k=-32001;n=0;D=0;m=0;H=0;j:while(1){k:do if((h|0)==(ya|0)){l=D;o=H}else{l=D+1|0;c[na>>2]=l;q=c[ea>>2]|0;l:do if((q|0)==6){F=(h&61440|0)==36864?64:(6?h>>>6:h)&63;o=h&63;if((c[d+(F<<2)>>2]&7|0)==6?(3?o>>>3:o)>>>0>(3?F>>>3:F)>>>0:0){F=1;break}F=(c[d+(o<<2)>>2]|0)!=0}else{p=h&49152;o=p&65535;m:do if(o<<16>>16<0){switch(o<<16>>16){case -32768:break;default:break m}o=h&12288;if((o|0)==4096){F=0;break l}o=o&16383;if(o<<16>>16<8192)switch(o<<16>>16){case 4096:{F=1;break l}default:break m}else switch(o<<16>>16){case 8192:{F=1;break l}default:break m}}else{switch(o<<16>>16){case 0:break;default:break m}F=(c[d+((h&63)<<2)>>2]|0)!=0;break l}while(0);F=(p|0)!=49152}while(0);B=(h&61440|0)==36864;x=6?h>>>6:h;if(B)C=x&15;else C=c[d+((x&63)<<2)>>2]|0;o=c[oa>>2]|0;r=h&49152;A=(r|0)==0;do if(A){p=c[Aa>>2]|0;y=p+336+((o^1)<<3)|0;t=d+320+(o<<3)|0;if((q|0)==2|(c[t>>2]&c[y>>2]|0?1:(c[t+4>>2]&c[y+4>>2]|0)!=0)){Fa=153;break}if(B)o=x&15;else o=c[d+((x&63)<<2)>>2]|0;p=p+368+((o&7)<<3)|0;y=161184+((h&63)<<3)|0;o=c[y>>2]&c[p>>2];p=c[y+4>>2]&c[p+4>>2]}else Fa=153;while(0);if((Fa|0)==153){Fa=0;o=(we(d,h)|0)&1;p=0}s=(o|0)!=0|(p|0)!=0;if(da)t=(l|0)>=(c[1104704+(c[ea>>2]<<7)+(W<<6)+(i<<2)>>2]|0);else t=0;do if(R)Fa=162;else{if(!(S&(ca&(h|0)==(v|0)))){Fa=162;break}if(!(a[V>>0]&2)){Fa=162;break}if((ba|0)>(a[U>>0]|0)){Fa=162;break}if(!(ve(d,v)|0)){Fa=162;break}c[la>>2]=v;q=nf(d,f,O,L,M,j)|0;c[la>>2]=0;q=(q|0)<(L|0)}while(0);do if((Fa|0)==162){Fa=0;if(s?Ge(d,h,0)|0:0){q=1;break}if(!(t|(c[ea>>2]|0)!=1)?(of(d,h)|0)==1:0){q=1;break}q=(r|0)==49152}while(0);y=aa+(q&1)|0;o=c[ea>>2]|0;if((o|0)==4){if((k|0)>-31744)Fa=170}else if((k|0)>-31744?(c[(c[Aa>>2]|0)+16+(ta<<2)>>2]|0)!=0:0)Fa=170;n:do if((Fa|0)==170){Fa=0;o:do if(!(F|s)){if((o|0)==1){o=Q;o=ue(d,h&63,c[o>>2]|0,c[o+4>>2]|0)|0;r=E()|0;p=d+320+((c[oa>>2]^1)<<3)|0;if(!((c[p>>2]&o|0)==0?(c[p+4>>2]&r|0)==0:0))break;o=c[ea>>2]|0}do if((o|0)!=4){if(B)p=x&15;else p=c[d+((x&63)<<2)>>2]|0;if((p&7|0)!=1)break;if(((c[oa>>2]|0)*7^(B?8:(9?h>>>9:h)&7)|0)<=3)break;r=c[Aa>>2]|0;if(((c[r+20>>2]|0)+(c[r+16>>2]|0)|0)<=4999)break o}while(0);if(t){o=1;break k}p=y-(c[1138496+(W<<14)+(P<<8)+(((l|0)<63?l:63)<<2)>>2]|0)|0;p=(p|0)>0?p:0;do if((p|0)<(((c[N>>2]|0)>0?4:3)|0)){q=h&63;if((b[(c[pa>>2]|0)+(C<<7)+(q<<1)>>1]|0)>=0)break;if((b[(c[fa>>2]|0)+(C<<7)+(q<<1)>>1]|0)<0){o=H;break k}}while(0);if(!(sa|((o|0)==6|(p|0)>6))?((c[23664+(o<<3)>>2]|0)+(c[K>>2]|0)+(z(c[23664+(o<<3)+4>>2]|0,p)|0)|0)<=(g|0):0){o=H;break k}if((o|0)==1)break n;if(Ge(d,h,z(z(p,-29)|0,p)|0)|0)break n;else{o=H;break k}}while(0);if(q)break;if(!(Ge(d,h,Z)|0)){o=H;break k}}while(0);Ee(d,h)|0;E()|0;if(!(ve(d,h)|0)){c[na>>2]=D;l=D;o=H;break}c[ka>>2]=h;p=h&63;c[ja>>2]=ua+42684+(C<<17)+(p<<11);ye(d,h,ra,s);s=F^1;if(T&(D|0)>0&(t|s)){o=c[1138496+(W<<14)+(P<<8)+(((l|0)<63?l:63)<<2)>>2]|0;do if((c[ea>>2]|0)==1){if(!(id(d)|0)){Fa=197;break}o=o-((o|0)!=0&1)|0}else Fa=197;while(0);if((Fa|0)==197){Fa=0;o=o+(((c[Y>>2]|0)>15)<<31>>31)|0}if(!F){o=o+I|0;do if(j)o=o+2|0;else{if(!A)break;D=Ge(d,(B?64:x&63)+(p<<6)|0,0)|0;o=D?o:o+-2|0}while(0);q=(b[(c[pa>>2]|0)+(C<<7)+(p<<1)>>1]|0)+(b[ua+9660+(ta*8320|0)+((B?p|4096:h&4095)<<1)>>1]|0)+(b[(c[fa>>2]|0)+(C<<7)+(p<<1)>>1]|0)+(b[(c[ga>>2]|0)+(C<<7)+(p<<1)>>1]|0)|0;r=q+-4e3|0;c[J>>2]=r;p=c[N>>2]|0;do if((q|0)<=3999){if((p|0)>-1)Fa=207}else{if((p|0)>=0){Fa=207;break}o=o+-1|0}while(0);if((Fa|0)==207){Fa=0;o=o+((q|0)<4e3&1)|0}o=o-((r|0)/2e4|0)|0}D=y-((o|0)>0?o:0)|0;D=(D|0)>1?D:1;o=0-(nf(d,ma,$,_,D,1)|0)|0;if((g|0)<(o|0)&(D|0)!=(y|0))Fa=210}else Fa=210;if((Fa|0)==210){Fa=0;o=0-(nf(d,ma,$,_,y,X)|0)|0}Ae(d,h);if(a[1181208]&1){g=0;break i}if((o|0)>(k|0))if((o|0)>(g|0)){Fa=214;break j}else k=o;if((n|0)<32&F){c[xa+(n<<2)>>2]=h;n=n+1|0;o=H;break}if(!((m|0)<64&s)){o=H;break}c[wa+(m<<2)>>2]=h;m=m+1|0;o=H}while(0);h=Sd(qa,o)|0;if(!h){h=0;break}else{D=l;H=o}}if((Fa|0)==214){c[J>>2]=0;k=o}if(l){do if(!h)if((i|0)>=3?(c[(c[Aa>>2]|0)+64>>2]|0)==0:0){d=c[va>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)==(d&63|0)){g=0;break}g=c[ha>>2]|0;l=(z((i*29|0)+138|0,i)|0)+-134|0;l=(i|0)>17?0:l;h=(l|0)>-1?l:0-l|0;d=c[f+-68>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[ia>>2]|0)+(g<<7)+(Ba<<1)|0;Aa=b[d>>1]|0;b[d>>1]=l+Aa+((z(h,Aa)|0)/-29952|0)}d=c[f+-108>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[f+-116>>2]|0)+(g<<7)+(Ba<<1)|0;Aa=b[d>>1]|0;b[d>>1]=l+Aa+((z(h,Aa)|0)/-29952|0)}d=c[f+-188>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)==(d&63|0)){g=0;break}g=(c[f+-196>>2]|0)+(g<<7)+(Ba<<1)|0;f=b[g>>1]|0;b[g>>1]=l+f+((z(h,f)|0)/-29952|0);g=0}else g=0;else{p:do if((c[d+5360>>2]|0)==6){va=(h&61440|0)==36864?64:(6?h>>>6:h)&63;g=h&63;if((c[d+(va<<2)>>2]&7|0)==6?(3?g>>>3:g)>>>0>(3?va>>>3:va)>>>0:0)break;if(!(c[d+(g<<2)>>2]|0))Fa=234}else{l=h&49152;g=l&65535;q:do if(g<<16>>16<0){switch(g<<16>>16){case -32768:break;default:break q}g=h&12288;if((g|0)==4096){Fa=234;break p}g=g&16383;if(g<<16>>16<8192)switch(g<<16>>16){case 4096:break p;default:break q}else switch(g<<16>>16){case 8192:break p;default:break q}}else{switch(g<<16>>16){case 0:break;default:break q}if(!(c[d+((h&63)<<2)>>2]|0)){Fa=234;break p}else break p}while(0);if((l|0)==49152)Fa=234}while(0);if((Fa|0)==234){ua=((k|0)>(Ea+136|0)&1)+i|0;va=(z((ua*29|0)+138|0,ua)|0)+-134|0;qf(d,f,h,wa,m,(ua|0)>17?0:va)}m=i+1|0;m=(z((m*29|0)+138|0,m)|0)+-134|0;m=(i|0)>16?0:m;g=0-m|0;rf(d,h,xa,n,m);if((c[f+-4>>2]|0)==1){if(c[(c[Aa>>2]|0)+64>>2]|0){g=h;break}l=c[ha>>2]|0;g=(m|0)<1?g:m;d=c[f+-68>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[ia>>2]|0)+(l<<7)+(Ba<<1)|0;Aa=b[d>>1]|0;b[d>>1]=Aa-m+((z(g,Aa)|0)/-29952|0)}d=c[f+-108>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[f+-116>>2]|0)+(l<<7)+(Ba<<1)|0;Aa=b[d>>1]|0;b[d>>1]=Aa-m+((z(g,Aa)|0)/-29952|0)}d=c[f+-188>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)==(d&63|0)){g=h;break}f=(c[f+-196>>2]|0)+(l<<7)+(Ba<<1)|0;d=b[f>>1]|0;b[f>>1]=d-m+((z(g,d)|0)/-29952|0);g=h}else g=h}while(0);if(!ya){l=c[za>>2]|0;Fa=254}else g=k}else Fa=220}else{h=0;Fa=220}while(0);do if((Fa|0)==220)if(!ya){k=c[za>>2]|0;if(!sa)if((c[d+5360>>2]|0)==1){l=k;g=h;k=32e3-k|0;Fa=254;break}else{l=0;g=h;k=0;Fa=257;break}else{l=k;g=h;k=k+-32e3|0;Fa=254;break}}while(0);do if((Fa|0)==254)if((k|0)>31743){h=g;g=k;k=l+k|0;Fa=258;break}else{l=(k|0)<-31743?l:0;Fa=257;break}while(0);if((Fa|0)==257){h=g;g=k;k=k-l|0;Fa=258}if((Fa|0)==258)Rg(w,Ca,Da,k,(g|0)<(Ea|0)?1:2,i,h,u);break}if(!(sa|(c[za>>2]|0)<128)){g=Xb(d)|0;break}if((i|0)<4)g=0;else{g=G((c[k>>2]|0)+160|0,0)|0;E()|0;g=(g<<1&2)+-1|0}}else g=_b(d,c[f+8>>2]|0,0)|0;while(0);i=g;Ia=Ga;return i|0}function of(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=c[a+5340>>2]|0;m=a+320+(g<<3)|0;f=161184+(((b&61440|0)==36864?64:(6?b>>>6:b)&63)<<3)|0;l=161184+((b&63)<<3)|0;e=c[l>>2]^c[f>>2];f=c[l+4>>2]^c[f+4>>2];l=e^c[m>>2];m=f^c[m+4>>2];do if((b&49152|0)==32768){b=b&12288;if(b<<16>>16<8192)switch(b<<16>>16){case 4096:{b=3;break}default:b=5}else switch(b<<16>>16){case 8192:{b=3;break}default:b=5}if((b|0)==3){j=a+256|0;k=e^c[j>>2];j=f^c[j+4>>2];break}else if((b|0)==5){i=a+256|0;j=161184+((c[(c[a+5352>>2]|0)+44>>2]|0)-((g|0)==0?8:-8)<<3)|0;k=e^c[i>>2]^c[j>>2];j=f^c[i+4>>2]^c[j+4>>2];break}}else{j=a+256|0;k=e^c[j>>2];j=f^c[j+4>>2]}while(0);i=a+320+((g^1)<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;e=a+264|0;b=h&k&c[e>>2];e=i&j&c[e+4>>2];h=(b^h)&k;i=(e^i)&j;if(!g){g=xJ(b|0,e|0,9)|0;f=(E()|0)&8355711;e=xJ(b|0,e|0,7)|0;b=g&2139062143;e=e&-16843010;g=(E()|0)&16711422}else{g=yJ(b|0,e|0,7)|0;f=(E()|0)&2139062143;e=yJ(b|0,e|0,9)|0;b=g&2139062016;e=e&-16843264;g=(E()|0)&-16843010}e=(b|e)&l;g=(f|g)&m;f=xJ(e|0,g|0,16)|0;E()|0;b=xJ(e|0,g|0,48)|0;E()|0;b=(d[79264+(f&65535)>>0]|0)+(d[79264+(e&65535)>>0]|0)+(d[79264+(g&65535)>>0]|0)+(d[79264+b>>0]|0)|0;if((h|0)==0&(i|0)==0){a=b;return a|0}g=i;do{e=qa(h|0,g|0,0)|0;E()|0;f=pJ(h|0,g|0,-1,-1)|0;h=f&h;g=(E()|0)&g;f=c[a+(e<<2)>>2]|0;switch(f&7){case 3:{i=c[241376+(e*24|0)+16>>2]|0;n=241376+(e*24|0)|0;f=241376+(e*24|0)+8|0;f=xJ(vJ(c[n>>2]&k|0,c[n+4>>2]&j|0,c[f>>2]|0,c[f+4>>2]|0)|0,E()|0,55)|0;E()|0;f=i+(f<<3)|0;e=c[f>>2]|0;f=c[f+4>>2]|0;break}case 4:{n=c[239840+(e*24|0)+16>>2]|0;i=239840+(e*24|0)|0;f=239840+(e*24|0)+8|0;f=xJ(vJ(c[i>>2]&k|0,c[i+4>>2]&j|0,c[f>>2]|0,c[f+4>>2]|0)|0,E()|0,52)|0;E()|0;f=n+(f<<3)|0;e=c[f>>2]|0;f=c[f+4>>2]|0;break}case 5:{i=c[241376+(e*24|0)+16>>2]|0;o=241376+(e*24|0)|0;f=241376+(e*24|0)+8|0;f=xJ(vJ(c[o>>2]&k|0,c[o+4>>2]&j|0,c[f>>2]|0,c[f+4>>2]|0)|0,E()|0,55)|0;E()|0;f=i+(f<<3)|0;i=c[f>>2]|0;f=c[f+4>>2]|0;o=c[239840+(e*24|0)+16>>2]|0;p=239840+(e*24|0)|0;n=239840+(e*24|0)+8|0;n=xJ(vJ(c[p>>2]&k|0,c[p+4>>2]&j|0,c[n>>2]|0,c[n+4>>2]|0)|0,E()|0,52)|0;E()|0;n=o+(n<<3)|0;e=c[n>>2]|i;f=c[n+4>>2]|f;break}default:{f=234720+((f&7)<<9)+(e<<3)|0;e=c[f>>2]|0;f=c[f+4>>2]|0}}i=e&l;o=f&m;n=xJ(i|0,o|0,16)|0;E()|0;p=xJ(i|0,o|0,48)|0;E()|0;b=b+(d[79264+(i&65535)>>0]|0)+(d[79264+(n&65535)>>0]|0)+(d[79264+(o&65535)>>0]|0)+(d[79264+p>>0]|0)|0}while(!((h|0)==0&(g|0)==0));return b|0}function pf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=a+8|0;e=c[l>>2]|0;k=a+4|0;d=c[k>>2]|0;j=e-d|0;if((2?j>>2:j)>>>0>=b>>>0){DJ(d|0,0,b<<2|0)|0;c[k>>2]=d+(b<<2);return}j=c[a>>2]|0;i=d-j|0;h=2?i>>2:i;d=h+b|0;if(d>>>0>1073741823)Lw(a);f=e-j|0;g=1?f>>1:f;g=(2?f>>2:f)>>>0<536870911?(g>>>0>>0?d:g):1073741823;do if(g)if(g>>>0>1073741823){a=I(8)|0;Nv(a,44817);c[a>>2]=41100;L(a|0,33144,231)}else{f=Gv(g<<2)|0;e=f;break}else{e=0;f=0}while(0);d=f+(h<<2)|0;DJ(d|0,0,b<<2|0)|0;if((i|0)>0)BJ(e|0,j|0,i|0)|0;c[a>>2]=f;c[k>>2]=d+(b<<2);c[l>>2]=f+(g<<2);if(!j)return;Jv(j);return}function qf(a,d,e,f,g,h){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;n=0-h|0;j=d+20|0;i=c[j>>2]|0;if((i|0)!=(e|0)){c[d+24>>2]=i;c[j>>2]=e}r=c[a+5340>>2]|0;s=c[a+5348>>2]|0;q=(e&61440|0)==36864;l=e&63;i=s+9660+(r*8320|0)+((q?l|4096:e&4095)<<1)|0;p=b[i>>1]|0;k=(h|0)>-1?h:n;b[i>>1]=p+h+((z(k,p)|0)/-10692|0);i=6?e>>>6:e;if(q)j=i&15;else j=c[a+((i&63)<<2)>>2]|0;m=c[d+-28>>2]|0;i=m&63;m=(((m&61440|0)==36864?64:(6?m>>>6:m)&63)|0)==(i|0);if(!m){q=(c[d+-36>>2]|0)+(j<<7)+(l<<1)|0;p=b[q>>1]|0;b[q>>1]=p+h+((z(k,p)|0)/-29952|0)}p=c[d+-68>>2]|0;p=(((p&61440|0)==36864?64:(6?p>>>6:p)&63)|0)==(p&63|0);if(!p){q=(c[d+-76>>2]|0)+(j<<7)+(l<<1)|0;o=b[q>>1]|0;b[q>>1]=o+h+((z(k,o)|0)/-29952|0)}q=c[d+-148>>2]|0;q=(((q&61440|0)==36864?64:(6?q>>>6:q)&63)|0)==(q&63|0);if(!q){o=(c[d+-156>>2]|0)+(j<<7)+(l<<1)|0;l=b[o>>1]|0;b[o>>1]=l+h+((z(k,l)|0)/-29952|0)}if(!m)c[s+5564+(c[a+(i<<2)>>2]<<8)+(i<<2)>>2]=e;if((g|0)<=0)return;e=(n|0)>-1?n:h;n=d+-76|0;o=d+-156|0;if(m){k=0;do{i=c[f+(k<<2)>>2]|0;d=(i&61440|0)==36864;j=i&63;m=s+9660+(r*8320|0)+((d?j|4096:i&4095)<<1)|0;l=b[m>>1]|0;b[m>>1]=l-h+((z(e,l)|0)/-10692|0);i=6?i>>>6:i;if(d)i=i&15;else i=c[a+((i&63)<<2)>>2]|0;if(!p){d=(c[n>>2]|0)+(i<<7)+(j<<1)|0;m=b[d>>1]|0;b[d>>1]=m-h+((z(e,m)|0)/-29952|0)}if(!q){d=(c[o>>2]|0)+(i<<7)+(j<<1)|0;m=b[d>>1]|0;b[d>>1]=m-h+((z(e,m)|0)/-29952|0)}k=k+1|0}while((k|0)!=(g|0));return}else{j=c[d+-36>>2]|0;l=0;do{i=c[f+(l<<2)>>2]|0;d=(i&61440|0)==36864;k=i&63;m=s+9660+(r*8320|0)+((d?k|4096:i&4095)<<1)|0;t=b[m>>1]|0;b[m>>1]=t-h+((z(e,t)|0)/-10692|0);i=6?i>>>6:i;if(d)i=i&15;else i=c[a+((i&63)<<2)>>2]|0;t=j+(i<<7)+(k<<1)|0;d=b[t>>1]|0;b[t>>1]=d-h+((z(e,d)|0)/-29952|0);if(!p){t=(c[n>>2]|0)+(i<<7)+(k<<1)|0;d=b[t>>1]|0;b[t>>1]=d-h+((z(e,d)|0)/-29952|0)}if(!q){t=(c[o>>2]|0)+(i<<7)+(k<<1)|0;d=b[t>>1]|0;b[t>>1]=d-h+((z(e,d)|0)/-29952|0)}l=l+1|0}while((l|0)!=(g|0));return}}function rf(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=0-g|0;p=c[a+5348>>2]|0;h=(d&61440|0)==36864;i=6?d>>>6:d;if(h)n=i&15;else n=c[a+((i&63)<<2)>>2]|0;l=d&63;j=c[a+(l<<2)>>2]|0;k=j&7;a:do if((c[a+5360>>2]|0)==6){h=h?64:i&63;if((c[a+(h<<2)>>2]&7|0)==6)if(j|0?1:(3?l>>>3:l)>>>0>(3?h>>>3:h)>>>0){o=13;break}else break;else if(!j)break;else{o=13;break}}else{i=d&49152;h=i&65535;b:do if(h<<16>>16<0){switch(h<<16>>16){case -32768:break;default:break b}h=d&12288;if((h|0)==4096)break a;h=h&16383;if(h<<16>>16<8192)switch(h<<16>>16){case 4096:{o=13;break a}default:break b}else switch(h<<16>>16){case 8192:{o=13;break a}default:break b}}else{switch(h<<16>>16){case 0:break;default:break b}if(!j)break a;else{o=13;break a}}while(0);if((i|0)!=49152)o=13}while(0);if((o|0)==13){o=p+26300+(n<<10)+(l<<4)+(k<<1)|0;n=b[o>>1]|0;b[o>>1]=n+g+((z((g|0)>-1?g:m,n)|0)/-10692|0)}if((f|0)<=0)return;i=(g|0)<1?m:g;j=0;do{d=c[e+(j<<2)>>2]|0;h=6?d>>>6:d;if((d&61440|0)==36864)h=h&15;else h=c[a+((h&63)<<2)>>2]|0;o=d&63;o=p+26300+(h<<10)+(o<<4)+((c[a+(o<<2)>>2]&7)<<1)|0;n=b[o>>1]|0;b[o>>1]=n-g+((z(i,n)|0)/-10692|0);j=j+1|0}while((j|0)!=(f|0));return}function sf(d,f,g,h,i){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;Y=Ia;Ia=Ia+4624|0;P=Y+16|0;o=Y+4620|0;p=Y;O=Y+448|0;F=c[d+5348>>2]|0;T=f+8|0;L=f+40|0;c[f+48>>2]=(c[T>>2]|0)+1;N=f+12|0;c[N>>2]=0;M=f+4|0;c[M>>2]=F+42684;Q=d+5352|0;I=(c[Q>>2]|0)+56|0;H=c[I>>2]|0;I=c[I+4>>2]|0;U=(H|0)!=0|(I|0)!=0;X=Zb(d)|0;j=c[T>>2]|0;if(X){f=_b(d,j,0)|0;Ia=Y;return f|0}X=He(d,j)|0;j=c[T>>2]|0;if(X|(j|0)>127){if(U|(j|0)<128){f=0;Ia=Y;return f|0}f=Xb(d)|0;Ia=Y;return f|0}S=(((i|0)>-1|U)^1)<<31>>31;W=(c[Q>>2]|0)+48|0;V=c[W>>2]|0;W=c[W+4>>2]|0;X=Ug(1181240,V,W,o)|0;m=(a[o>>0]|0)==0;if(!m){j=b[X+4>>1]|0;l=j<<16>>16;k=c[T>>2]|0;do if(j<<16>>16!=32002)if(j<<16>>16>31743){j=l-k|0;break}else{j=(j<<16>>16<-31743?k:0)+l|0;break}else j=32002;while(0);k=e[X+2>>1]|0;if(((j|0)!=32002?(a[X+9>>0]|0)>=(S|0):0)?(((j|0)<(h|0)?1:2)&(a[X+8>>0]&3)|0)!=0:0){f=j;Ia=Y;return f|0}else n=k}else{j=32002;n=0}do if(U){c[f+28>>2]=32002;j=-32001;D=-32001}else{if(!m){D=b[X+6>>1]|0;k=D<<16>>16;l=f+28|0;c[l>>2]=k;if(D<<16>>16==32002){k=Xb(d)|0;c[l>>2]=k}if((j|0)==32002)l=k;else{l=k;k=(((j|0)>(k|0)?2:1)&(a[X+8>>0]&3)|0)==0?k:j}}else{if((c[f+-28>>2]|0)==65)j=(c[23568+(c[d+5360>>2]<<2)>>2]<<1)-(c[f+-12>>2]|0)|0;else j=Xb(d)|0;c[f+28>>2]=j;l=j;k=j}if((k|0)<(h|0)){j=k;D=k+128|0;break}if(a[o>>0]|0){f=k;Ia=Y;return f|0}j=c[T>>2]|0;if((k|0)>31743)j=j+k|0;else j=k-((k|0)<-31743?j:0)|0;Rg(X,V,W,j,2,-6,0,l);f=k;Ia=Y;return f|0}while(0);c[p>>2]=c[f+-36>>2];c[p+4>>2]=c[f+-76>>2];c[p+8>>2]=0;c[p+12>>2]=c[f+-156>>2];Qd(O,d,n,i,F+9660|0,F+26300|0,p,c[f+-28>>2]&63);l=Sd(O,0)|0;a:do if(!l)l=0;else{y=d+5340|0;C=d+5360|0;v=(D|0)>-1e4;x=(i|0)!=0;B=U^1;w=(D|0)>(g|0);A=0-h|0;z=0-g|0;u=i+-1|0;k=0;while(1){t=(j|0)>-31744;b:while(1){s=t&(x|(k|0)>1);while(1){m=c[y>>2]|0;i=l&49152;if((i|0)==0?(G=c[Q>>2]|0,r=G+336+((m^1)<<3)|0,q=d+320+(m<<3)|0,!((c[q>>2]&c[r>>2]|0?1:(c[q+4>>2]&c[r+4>>2]|0)!=0)|(c[C>>2]|0)==2)):0){m=6?l>>>6:l;if((l&61440|0)==36864)m=m&15;else m=c[d+((m&63)<<2)>>2]|0;r=G+368+((m&7)<<3)|0;p=161184+((l&63)<<3)|0;q=c[p>>2]&c[r>>2];r=c[p+4>>2]&c[r+4>>2]}else{q=(we(d,l)|0)&1;r=0}do if((q|H|0)==0&(r|I|0)==0){p=c[C>>2]|0;if((p|0)==6?(J=l&61440,K=6?l>>>6:l,(c[d+(((J|0)==36864?64:K&63)<<2)>>2]&7|0)==6):0)if(v&(l&56|0)!=56){o=K;m=J}else break;else{if(!v)break;o=6?l>>>6:l;m=l&61440}m=(m|0)==36864;if(m)n=o&15;else n=c[d+((o&63)<<2)>>2]|0;if((n&7|0)==1?((c[y>>2]|0)*7^(m?8:(9?l>>>9:l)&7)|0)>3:0)break;switch(p|0){case 2:{if(m)m=o&15;else m=c[d+((o&63)<<2)>>2]|0;m=Fe(d,l,m&7,l&63)|0;break}case 3:{m=c[14640+(c[d+((l&63)<<2)>>2]<<2)>>2]<<1;break}default:m=c[14192+(p<<7)+64+(c[d+((l&63)<<2)>>2]<<2)>>2]|0}m=m+D|0;if((m|0)<=(g|0)){R=62;break b}if(!w?!(Ge(d,l,1)|0):0){R=65;break b}}while(0);if(U){if(s){c:do if((i|0)==49152?1:(c[d+((l&63)<<2)>>2]|0)==0){m=(i|0)==32768;d:do if(m){n=l&12288;if(n<<16>>16<8192)switch(n<<16>>16){case 4096:{m=0;break c}default:break d}else switch(n<<16>>16){case 8192:{m=0;break c}default:break d}}while(0)}else m=1;while(0);m=m^1}else m=0;if(m|B)R=74}else R=74;if((R|0)==74?(R=0,!(Ge(d,l,0)|0)):0)break;Ee(d,l)|0;E()|0;if(ve(d,l)|0){R=77;break b}l=Sd(O,0)|0;if(!l){l=0;break a}}l=Sd(O,0)|0;if(!l){l=0;break a}else k=k+1|0}if((R|0)==62){R=0;j=(j|0)<(m|0)?m:j;k=k+1|0}else if((R|0)==65){R=0;j=(j|0)<(D|0)?D:j;k=k+1|0}else if((R|0)==77){R=0;k=k+1|0;c[N>>2]=l;m=6?l>>>6:l;if((l&61440|0)==36864)m=m&15;else m=c[d+((m&63)<<2)>>2]|0;c[M>>2]=F+42684+(m<<17)+((l&63)<<11);ye(d,l,P,(q|0)!=0|(r|0)!=0);m=0-(sf(d,L,A,z,u)|0)|0;Ae(d,l);if((j|0)<(m|0))if((m|0)>(g|0)){j=m;break a}else j=m}l=Sd(O,0)|0;if(!l){l=0;break}}}while(0);k=c[T>>2]|0;if(U&(j|0)==-32001)j=k+-32e3|0;else{if((j|0)>31743)k=k+j|0;else k=j-((j|0)<-31743?k:0)|0;Rg(X,V,W,k,(j|0)<(h|0)?1:2,S,l,c[f+28>>2]|0)}f=j;Ia=Y;return f|0}function tf(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=Ia;Ia=Ia+128|0;r=v+16|0;t=v+12|0;u=v+112|0;s=v;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;e=r+11|0;a[e>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;j=r+12|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;f=j+11|0;a[f>>0]=8;k=j;c[k>>2]=1702259047;c[k+4>>2]=2036430689;a[r+20>>0]=0;k=r+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;g=k+11|0;a[g>>0]=6;a[k>>0]=a[44992]|0;a[k+1>>0]=a[44993]|0;a[k+2>>0]=a[44994]|0;a[k+3>>0]=a[44995]|0;a[k+4>>0]=a[44996]|0;a[k+5>>0]=a[44997]|0;a[k+6>>0]=0;l=r+36|0;h=l+11|0;a[h>>0]=10;o=l;p=44999;q=o+10|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(q|0));a[l+10>>0]=0;m=r+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=5;a[m>>0]=a[45010]|0;a[m+1>>0]=a[45011]|0;a[m+2>>0]=a[45012]|0;a[m+3>>0]=a[45013]|0;a[m+4>>0]=a[45014]|0;a[m+5>>0]=0;n=r+60|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;b=Gv(16)|0;c[n>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;o=b;p=45016;q=o+13|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(q|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;o=b;p=45030;q=o+11|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(q|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;q=b+11|0;a[q>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295296]=0;c[295297]=0;c[295298]=0;p=Gv(96)|0;c[295297]=p;c[295296]=p;c[295298]=p+96;Rv(p,r);p=(c[295297]|0)+12|0;c[295297]=p;Rv(p,j);p=(c[295297]|0)+12|0;c[295297]=p;Rv(p,k);p=(c[295297]|0)+12|0;c[295297]=p;Rv(p,l);p=(c[295297]|0)+12|0;c[295297]=p;Rv(p,m);p=(c[295297]|0)+12|0;c[295297]=p;Rv(p,n);p=(c[295297]|0)+12|0;c[295297]=p;Rv(p,d);p=(c[295297]|0)+12|0;c[295297]=p;Rv(p,b);c[295297]=(c[295297]|0)+12;if((a[q>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)<0)Jv(c[l>>2]|0);if((a[g>>0]|0)<0)Jv(c[k>>2]|0);if((a[f>>0]|0)<0)Jv(c[j>>2]|0);if((a[e>>0]|0)<0)Jv(c[r>>2]|0);c[293616]=0;c[293617]=0;c[293618]=0;o=1174560;c[o>>2]=0;c[o+4>>2]=0;o=1174480;q=o+48|0;do{c[o>>2]=0;o=o+4|0}while((o|0)<(q|0));c[293634]=0;c[293635]=0;c[293636]=0;c[293637]=0;c[293638]=0;b=Gv(16)|0;c[s>>2]=b;c[s+8>>2]=-2147483632;c[s+4>>2]=11;o=b;p=45144;q=o+11|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(q|0));a[b+11>>0]=0;c[t>>2]=s;rc(r,1181292,s,1183426,t,u);c[293644]=~~+sh((c[r>>2]|0)+28|0);c[293645]=0;if((a[s+11>>0]|0)>=0){Ia=v;return}Jv(c[s>>2]|0);Ia=v;return}function uf(){var a=0.0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0;e=1;do{a=+x(+(+(e|0)));f=1;do{L=a*+x(+(+(f|0)))/1.95;d=~~+AJ(+L);b=1138496+(e<<8)+(f<<2)|0;c[b>>2]=d;J=d+-1|0;c[1105728+(e<<8)+(f<<2)>>2]=(J|0)>0?J:0;if(L>1.0)c[b>>2]=d+1;f=f+1|0}while((f|0)!=64);e=e+1|0}while((e|0)!=64);b=1;do{a=+x(+(+(b|0)));d=1;do{J=~~+AJ(+(a*+x(+(+(d|0)))/1.95));c[1154880+(b<<8)+(d<<2)>>2]=J;J=J+-1|0;c[1122112+(b<<8)+(d<<2)>>2]=(J|0)>0?J:0;d=d+1|0}while((d|0)!=64);b=b+1|0}while((b|0)!=64);J=0;do{switch(J&2147483647|0){case 6:{b=161;d=27;e=122;f=24;g=104;h=22;i=88;j=19;k=74;l=17;m=60;n=15;o=48;p=12;q=38;r=10;s=29;t=8;u=21;v=7;w=15;y=5;z=10;A=4;B=6;C=2;D=4;E=2;F=4;G=1;H=30;I=141;K=12;break}case 3:{c[1104704+(J<<7)+64>>2]=5;c[1104704+(J<<7)>>2]=2;c[1104704+(J<<7)+68>>2]=6;c[1104704+(J<<7)+4>>2]=3;c[1104704+(J<<7)+72>>2]=9;c[1104704+(J<<7)+8>>2]=4;c[1104704+(J<<7)+76>>2]=14;c[1104704+(J<<7)+12>>2]=7;c[1104704+(J<<7)+80>>2]=21;c[1104704+(J<<7)+16>>2]=11;c[1104704+(J<<7)+84>>2]=30;c[1104704+(J<<7)+20>>2]=15;c[1104704+(J<<7)+88>>2]=41;c[1104704+(J<<7)+24>>2]=20;c[1104704+(J<<7)+92>>2]=54;c[1104704+(J<<7)+28>>2]=26;c[1104704+(J<<7)+96>>2]=2147483647;c[1104704+(J<<7)+32>>2]=2147483647;c[1104704+(J<<7)+100>>2]=2147483647;c[1104704+(J<<7)+36>>2]=2147483647;c[1104704+(J<<7)+104>>2]=2147483647;c[1104704+(J<<7)+40>>2]=2147483647;c[1104704+(J<<7)+108>>2]=2147483647;c[1104704+(J<<7)+44>>2]=2147483647;c[1104704+(J<<7)+112>>2]=2147483647;c[1104704+(J<<7)+48>>2]=2147483647;c[1104704+(J<<7)+116>>2]=2147483647;c[1104704+(J<<7)+52>>2]=2147483647;c[1104704+(J<<7)+120>>2]=2147483647;c[1104704+(J<<7)+56>>2]=2147483647;c[1104704+(J<<7)+124>>2]=2147483647;c[1104704+(J<<7)+60>>2]=2147483647;break}default:{b=230;d=83;e=174;f=73;g=149;h=64;i=126;j=55;k=105;l=46;m=86;n=39;o=69;p=32;q=54;r=26;s=41;t=20;u=30;v=15;w=21;y=11;z=14;A=7;B=9;C=4;D=6;E=3;F=5;G=2;H=94;I=201;K=12}}if((K|0)==12){K=0;c[1104704+(J<<7)>>2]=G;c[1104704+(J<<7)+64>>2]=F;c[1104704+(J<<7)+4>>2]=E;c[1104704+(J<<7)+68>>2]=D;c[1104704+(J<<7)+8>>2]=C;c[1104704+(J<<7)+72>>2]=B;c[1104704+(J<<7)+12>>2]=A;c[1104704+(J<<7)+76>>2]=z;c[1104704+(J<<7)+16>>2]=y;c[1104704+(J<<7)+80>>2]=w;c[1104704+(J<<7)+20>>2]=v;c[1104704+(J<<7)+84>>2]=u;c[1104704+(J<<7)+24>>2]=t;c[1104704+(J<<7)+88>>2]=s;c[1104704+(J<<7)+28>>2]=r;c[1104704+(J<<7)+92>>2]=q;c[1104704+(J<<7)+32>>2]=p;c[1104704+(J<<7)+96>>2]=o;c[1104704+(J<<7)+36>>2]=n;c[1104704+(J<<7)+100>>2]=m;c[1104704+(J<<7)+40>>2]=l;c[1104704+(J<<7)+104>>2]=k;c[1104704+(J<<7)+44>>2]=j;c[1104704+(J<<7)+108>>2]=i;c[1104704+(J<<7)+48>>2]=h;c[1104704+(J<<7)+112>>2]=g;c[1104704+(J<<7)+52>>2]=f;c[1104704+(J<<7)+116>>2]=e;c[1104704+(J<<7)+56>>2]=d;c[1104704+(J<<7)+120>>2]=I;c[1104704+(J<<7)+60>>2]=H;c[1104704+(J<<7)+124>>2]=b}J=J+1|0}while((J|0)!=8);return}function vf(){var a=0;a=1174616;c[a>>2]=0;c[a+4>>2]=0;Tg(1181240);Ig(1181196);return}function wf(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[b>>2]=33844;a[b+84>>0]=1;i=b+4|0;Cv(i);a[b+85>>0]=1;Xa[c[(c[b>>2]|0)+8>>2]&255](b);Dv(i);Aa(c[b+88>>2]|0,0)|0;f=b+5544|0;g=c[f>>2]|0;if(g|0){h=b+5548|0;d=c[h>>2]|0;if((d|0)==(g|0))d=g;else{do{e=c[d+-12>>2]|0;if(e|0){c[d+-8>>2]=e;Jv(e)}d=d+-32|0}while((d|0)!=(g|0));d=c[f>>2]|0}c[h>>2]=g;Jv(d)}yf(b+128|0,c[b+132>>2]|0);zf(b+116|0,c[b+120>>2]|0);d=c[b+104>>2]|0;if(d|0){c[b+108>>2]=d;Jv(d)}d=c[b+92>>2]|0;if(!d){b=b+32|0;tk(b);Bv(i);return}c[b+96>>2]=d;Jv(d);b=b+32|0;tk(b);Bv(i);return}function xf(a){a=a|0;wf(a);Jv(a);return}function yf(a,b){a=a|0;b=b|0;var d=0;if(!b)return;yf(a,c[b>>2]|0);yf(a,c[b+4>>2]|0);d=b+24|0;a=c[d>>2]|0;c[d>>2]=0;if(a|0)Xa[c[(c[a>>2]|0)+4>>2]&255](a);Jv(b);return}function zf(a,b){a=a|0;b=b|0;var d=0;if(!b)return;zf(a,c[b>>2]|0);zf(a,c[b+4>>2]|0);d=b+24|0;a=c[d>>2]|0;c[d>>2]=0;if(a|0)Xa[c[(c[a>>2]|0)+4>>2]&255](a);Jv(b);return}function Af(a){a=a|0;yf(a+12|0,c[a+16>>2]|0);zf(a,c[a+4>>2]|0);return}function Bf(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)return;c[a+4>>2]=b;Jv(b);return}function Cf(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)return;c[a+4>>2]=b;Jv(b);return}function Df(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295304]=0;c[295305]=0;c[295306]=0;f=Gv(96)|0;c[295305]=f;c[295304]=f;c[295306]=f+96;Rv(f,r);f=(c[295305]|0)+12|0;c[295305]=f;Rv(f,m);f=(c[295305]|0)+12|0;c[295305]=f;Rv(f,n);f=(c[295305]|0)+12|0;c[295305]=f;Rv(f,o);f=(c[295305]|0)+12|0;c[295305]=f;Rv(f,p);f=(c[295305]|0)+12|0;c[295305]=f;Rv(f,q);f=(c[295305]|0)+12|0;c[295305]=f;Rv(f,d);f=(c[295305]|0)+12|0;c[295305]=f;Rv(f,b);c[295305]=(c[295305]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){c[295299]=0;c[295300]=0;c[295301]=0;c[295303]=0;Ia=s;return}Jv(c[r>>2]|0);c[295299]=0;c[295300]=0;c[295301]=0;c[295303]=0;Ia=s;return}function Ef(a){a=a|0;Ff(a);return 0}function Ff(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+32|0;j=l+16|0;d=l+12|0;e=l;c[e+8>>2]=0;i=e+11|0;a[i>>0]=7;a[e>>0]=a[45110]|0;a[e+1>>0]=a[45111]|0;a[e+2>>0]=a[45112]|0;a[e+3>>0]=a[45113]|0;a[e+4>>0]=a[45114]|0;a[e+5>>0]=a[45115]|0;a[e+6>>0]=a[45116]|0;a[e+7>>0]=0;c[d>>2]=e;rc(j,1181292,e,1183427,d,l+24|0);d=+sh((c[j>>2]|0)+28|0)>8.0;if((a[i>>0]|0)<0)Jv(c[e>>2]|0);g=b+4|0;d=j+4|0;h=b+85|0;e=b+32|0;f=b+84|0;while(1){c[j>>2]=g;a[d>>0]=1;Cv(g);a[h>>0]=0;uk(e);if(!(a[h>>0]|0))do vk(e,j);while(!(a[h>>0]|0));i=(a[d>>0]|0)==0;if(a[f>>0]|0)break;if(i){k=11;break}Dv(c[j>>2]|0);a[d>>0]=0;Xa[c[(c[b>>2]|0)+8>>2]&255](b);if(a[d>>0]|0)Dv(c[j>>2]|0)}if((k|0)==11)Kw(1,42871);if(i){Ia=l;return}Dv(c[j>>2]|0);Ia=l;return}function Gf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+48|0;h=i;c[b>>2]=33844;f=b+80|0;e=b+4|0;g=e+76|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));c[f>>2]=d;a[b+84>>0]=0;a[b+85>>0]=1;g=b+92|0;c[g>>2]=0;f=b+96|0;c[f>>2]=0;d=b+100|0;c[d>>2]=0;e=Gv(2097152)|0;c[f>>2]=e;c[g>>2]=e;c[d>>2]=e+2097152;d=16384;do{g=e+128|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(g|0));e=(c[f>>2]|0)+128|0;c[f>>2]=e;d=d+-1|0}while((d|0)!=0);g=b+104|0;c[g>>2]=0;f=b+108|0;c[f>>2]=0;d=b+112|0;c[d>>2]=0;e=Gv(262144)|0;c[f>>2]=e;c[g>>2]=e;c[d>>2]=e+262144;d=8192;do{c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;e=(c[f>>2]|0)+32|0;c[f>>2]=e;d=d+-1|0}while((d|0)!=0);Hf(b+116|0);c[b+5544>>2]=0;c[b+5548>>2]=0;c[b+5552>>2]=0;ua(h|0)|0;va(h|0,2097152)|0;za(b+88|0,h|0,68,b|0)|0;DJ(b+5564|0,0,2134272)|0;DJ(b+42684|0,-1,2048)|0;Ia=i;return}function Hf(b){b=b|0;var d=0,e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;d=e;c[b+4>>2]=0;c[b+8>>2]=0;c[b>>2]=b+4;c[b+16>>2]=0;c[b+20>>2]=0;c[b+12>>2]=b+16;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=4;c[d>>2]=1266045003;a[d+4>>0]=0;If(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42903]|0;a[d+1>>0]=a[42904]|0;a[d+2>>0]=a[42905]|0;a[d+3>>0]=a[42906]|0;a[d+4>>0]=a[42907]|0;a[d+5>>0]=0;Jf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42909]|0;a[d+1>>0]=a[42910]|0;a[d+2>>0]=a[42911]|0;a[d+3>>0]=a[42912]|0;a[d+4>>0]=a[42913]|0;a[d+5>>0]=0;Kf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42915]|0;a[d+1>>0]=a[42916]|0;a[d+2>>0]=a[42917]|0;a[d+3>>0]=a[42918]|0;a[d+4>>0]=a[42919]|0;a[d+5>>0]=0;Lf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42921]|0;a[d+1>>0]=a[42922]|0;a[d+2>>0]=a[42923]|0;a[d+3>>0]=a[42924]|0;a[d+4>>0]=a[42925]|0;a[d+5>>0]=0;Mf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42927]|0;a[d+1>>0]=a[42928]|0;a[d+2>>0]=a[42929]|0;a[d+3>>0]=a[42930]|0;a[d+4>>0]=a[42931]|0;a[d+5>>0]=0;Nf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42933]|0;a[d+1>>0]=a[42934]|0;a[d+2>>0]=a[42935]|0;a[d+3>>0]=a[42936]|0;a[d+4>>0]=a[42937]|0;a[d+5>>0]=0;Of(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42939]|0;a[d+1>>0]=a[42940]|0;a[d+2>>0]=a[42941]|0;a[d+3>>0]=a[42942]|0;a[d+4>>0]=a[42943]|0;a[d+5>>0]=0;Pf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=5;a[d>>0]=a[42945]|0;a[d+1>>0]=a[42946]|0;a[d+2>>0]=a[42947]|0;a[d+3>>0]=a[42948]|0;a[d+4>>0]=a[42949]|0;a[d+5>>0]=0;Qf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=6;a[d>>0]=a[42951]|0;a[d+1>>0]=a[42952]|0;a[d+2>>0]=a[42953]|0;a[d+3>>0]=a[42954]|0;a[d+4>>0]=a[42955]|0;a[d+5>>0]=a[42956]|0;a[d+6>>0]=0;Rf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=6;a[d>>0]=a[42958]|0;a[d+1>>0]=a[42959]|0;a[d+2>>0]=a[42960]|0;a[d+3>>0]=a[42961]|0;a[d+4>>0]=a[42962]|0;a[d+5>>0]=a[42963]|0;a[d+6>>0]=0;Sf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=6;a[d>>0]=a[42965]|0;a[d+1>>0]=a[42966]|0;a[d+2>>0]=a[42967]|0;a[d+3>>0]=a[42968]|0;a[d+4>>0]=a[42969]|0;a[d+5>>0]=a[42970]|0;a[d+6>>0]=0;Tf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=6;a[d>>0]=a[42972]|0;a[d+1>>0]=a[42973]|0;a[d+2>>0]=a[42974]|0;a[d+3>>0]=a[42975]|0;a[d+4>>0]=a[42976]|0;a[d+5>>0]=a[42977]|0;a[d+6>>0]=0;Uf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=6;a[d>>0]=a[42979]|0;a[d+1>>0]=a[42980]|0;a[d+2>>0]=a[42981]|0;a[d+3>>0]=a[42982]|0;a[d+4>>0]=a[42983]|0;a[d+5>>0]=a[42984]|0;a[d+6>>0]=0;Vf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d+8>>2]=0;f=d+11|0;a[f>>0]=7;a[d>>0]=a[42986]|0;a[d+1>>0]=a[42987]|0;a[d+2>>0]=a[42988]|0;a[d+3>>0]=a[42989]|0;a[d+4>>0]=a[42990]|0;a[d+5>>0]=a[42991]|0;a[d+6>>0]=a[42992]|0;a[d+7>>0]=0;Wf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;f=d+11|0;a[f>>0]=8;g=d;c[g>>2]=1347441227;c[g+4>>2]=1347570550;a[d+8>>0]=0;Xf(b,d);if((a[f>>0]|0)<0)Jv(c[d>>2]|0);g=d+4|0;c[g>>2]=0;c[g+4>>2]=0;g=d+11|0;a[g>>0]=3;a[d>>0]=a[42994]|0;a[d+1>>0]=a[42995]|0;a[d+2>>0]=a[42996]|0;a[d+3>>0]=0;Yf(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);g=d+4|0;c[g>>2]=0;c[g+4>>2]=0;g=d+11|0;a[g>>0]=3;a[d>>0]=a[42998]|0;a[d+1>>0]=a[42999]|0;a[d+2>>0]=a[43e3]|0;a[d+3>>0]=0;Zf(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);g=d+4|0;c[g>>2]=0;c[g+4>>2]=0;g=d+11|0;a[g>>0]=3;a[d>>0]=a[43002]|0;a[d+1>>0]=a[43003]|0;a[d+2>>0]=a[43004]|0;a[d+3>>0]=0;_f(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=d+11|0;a[g>>0]=4;c[d>>2]=1266045003;a[d+4>>0]=0;$f(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=d+11|0;a[g>>0]=4;c[d>>2]=1266044491;a[d+4>>0]=0;ag(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=d+11|0;a[g>>0]=4;c[d>>2]=1266041419;a[d+4>>0]=0;bg(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=d+11|0;a[g>>0]=4;c[d>>2]=1266045515;a[d+4>>0]=0;cg(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=d+11|0;a[g>>0]=4;c[d>>2]=1266045259;a[d+4>>0]=0;dg(b,d);if((a[g>>0]|0)<0)Jv(c[d>>2]|0);c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;g=d+11|0;a[g>>0]=5;a[d>>0]=a[42903]|0;a[d+1>>0]=a[42904]|0;a[d+2>>0]=a[42905]|0;a[d+3>>0]=a[42906]|0;a[d+4>>0]=a[42907]|0;a[d+5>>0]=0;eg(b,d);if((a[g>>0]|0)>=0){Ia=e;return}Jv(c[d>>2]|0);Ia=e;return}function If(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34344;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34344;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Jf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34324;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34324;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Kf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34304;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34304;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34284;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34284;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Mf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34264;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34264;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Nf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34244;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34244;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Of(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34224;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34224;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Pf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34204;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34204;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Qf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34184;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34184;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return}function Rf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34164;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34164;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return} +function Sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34144;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34144;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return}function Tf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34124;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34124;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return}function Uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34104;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34104;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return}function Vf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34084;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34084;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return}function Wf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34064;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34064;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return}function Xf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+5808|0;l=o+5368|0;k=o;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34044;n=a+12|0;DJ(k|0,0,5368)|0;te(k,b,0,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+16|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);i=a+20|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34044;DJ(k|0,0,5368)|0;te(k,b,1,0,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+16|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[n>>2]>>2]|0;if(!e)e=d;else{c[n>>2]=e;e=c[f>>2]|0}sc(c[a+16>>2]|0,e);a=a+20|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=o;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=o;return}function Yf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34024;DJ(k|0,0,5368)|0;te(k,b,0,1,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34024;DJ(k|0,0,5368)|0;te(k,b,1,1,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function Zf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=34004;DJ(k|0,0,5368)|0;te(k,b,0,1,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=34004;DJ(k|0,0,5368)|0;te(k,b,1,1,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function _f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=33984;DJ(k|0,0,5368)|0;te(k,b,0,1,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=33984;DJ(k|0,0,5368)|0;te(k,b,1,1,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function $f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=33964;DJ(k|0,0,5368)|0;te(k,b,0,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=33964;DJ(k|0,0,5368)|0;te(k,b,1,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=33944;DJ(k|0,0,5368)|0;te(k,b,0,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=33944;DJ(k|0,0,5368)|0;te(k,b,1,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function bg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=33924;DJ(k|0,0,5368)|0;te(k,b,0,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=33924;DJ(k|0,0,5368)|0;te(k,b,1,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=33904;DJ(k|0,0,5368)|0;te(k,b,0,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=33904;DJ(k|0,0,5368)|0;te(k,b,1,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function dg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=33884;DJ(k|0,0,5368)|0;te(k,b,0,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=33884;DJ(k|0,0,5368)|0;te(k,b,1,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function eg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+5808|0;l=n+5368|0;k=n;j=Gv(12)|0;c[j+4>>2]=0;c[j+8>>2]=1;c[j>>2]=33864;DJ(k|0,0,5368)|0;te(k,b,0,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;m=a+4|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=5;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=9;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=8;break}}d=e}if((g|0)==5){e=d;f=d;break}else if((g|0)==8){e=d;break}else if((g|0)==9){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;g=d+16|0;c[g>>2]=h;c[g+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);i=a+8|0;c[i>>2]=(c[i>>2]|0)+1}i=d+24|0;d=c[i>>2]|0;c[i>>2]=j;if(d|0)Xa[c[(c[d>>2]|0)+4>>2]&255](d);j=Gv(12)|0;c[j+4>>2]=1;c[j+8>>2]=0;c[j>>2]=33864;DJ(k|0,0,5368)|0;te(k,b,1,2,l)|0;i=(c[k+5352>>2]|0)+8|0;h=c[i>>2]|0;i=c[i+4>>2]|0;d=c[m>>2]|0;do if(d){f=a+4|0;while(1){g=d+16|0;e=c[g>>2]|0;g=c[g+4>>2]|0;if(i>>>0>>0|(i|0)==(g|0)&h>>>0>>0){e=c[d>>2]|0;if(!e){g=22;break}else f=d}else{if(!(g>>>0>>0|(g|0)==(i|0)&e>>>0>>0)){g=26;break}f=d+4|0;e=c[f>>2]|0;if(!e){g=25;break}}d=e}if((g|0)==22){e=d;f=d;break}else if((g|0)==25){e=d;break}else if((g|0)==26){e=d;break}}else{e=m;f=m}while(0);d=c[f>>2]|0;if(!d){d=Gv(32)|0;m=d+16|0;c[m>>2]=h;c[m+4>>2]=i;c[d+24>>2]=0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[f>>2]=d;e=c[c[a>>2]>>2]|0;if(!e)e=d;else{c[a>>2]=e;e=c[f>>2]|0}sc(c[a+4>>2]|0,e);a=a+8|0;c[a>>2]=(c[a>>2]|0)+1}a=d+24|0;d=c[a>>2]|0;c[a>>2]=j;if(!d){Ia=n;return}Xa[c[(c[d>>2]|0)+4>>2]&255](d);Ia=n;return}function fg(a){a=a|0;Jv(a);return}function gg(a){a=a|0;Jv(a);return}function hg(a){a=a|0;Jv(a);return}function ig(a){a=a|0;Jv(a);return}function jg(a){a=a|0;Jv(a);return}function kg(a){a=a|0;Jv(a);return}function lg(a){a=a|0;Jv(a);return}function mg(a){a=a|0;Jv(a);return}function ng(a){a=a|0;Jv(a);return}function og(a){a=a|0;Jv(a);return}function pg(a){a=a|0;Jv(a);return}function qg(a){a=a|0;Jv(a);return}function rg(a){a=a|0;Jv(a);return}function sg(a){a=a|0;Jv(a);return}function tg(a){a=a|0;Jv(a);return}function ug(a){a=a|0;Jv(a);return}function vg(a){a=a|0;Jv(a);return}function wg(a){a=a|0;Jv(a);return}function xg(a){a=a|0;Jv(a);return}function yg(a){a=a|0;Jv(a);return}function zg(a){a=a|0;Jv(a);return}function Ag(a){a=a|0;Jv(a);return}function Bg(a){a=a|0;Jv(a);return}function Cg(a){a=a|0;Jv(a);return}function Dg(a){a=a|0;Jv(a);return}function Eg(b){b=b|0;var d=0;d=b+4|0;Cv(d);a[b+85>>0]=1;Xa[c[(c[b>>2]|0)+8>>2]&255](b);Dv(d);return}function Fg(b){b=b|0;var d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;e=b+4|0;c[f>>2]=e;d=f+4|0;a[d>>0]=1;Cv(e);e=b+32|0;b=b+85|0;if(a[b>>0]|0){do vk(e,f);while((a[b>>0]|0)!=0);if(!(a[d>>0]|0)){Ia=g;return}}Dv(c[f>>2]|0);Ia=g;return}function Gg(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+32|0;l=p+16|0;m=p+12|0;o=p+24|0;n=p;k=b+4|0;e=c[b>>2]|0;if((c[k>>2]|0)!=(e|0)){h=c[e>>2]|0;e=h+4|0;c[l>>2]=e;f=l+4|0;a[f>>0]=1;Cv(e);i=h+32|0;h=h+85|0;if(a[h>>0]|0){do vk(i,l);while((a[h>>0]|0)!=0);if(a[f>>0]|0){e=c[l>>2]|0;j=7}}else j=7;if((j|0)==7)Dv(e);f=c[k>>2]|0;e=c[b>>2]|0;if((f|0)!=(e|0))do{h=c[f+-4>>2]|0;if(h){Xa[c[(c[h>>2]|0)+4>>2]&255](h);f=c[k>>2]|0;e=c[b>>2]|0}f=f+-4|0;c[k>>2]=f}while((e|0)!=(f|0))}if(d|0){f=Gv(2139864)|0;Gf(f,0);c[f>>2]=33824;c[l>>2]=f;e=c[k>>2]|0;i=b+8|0;if(e>>>0<(c[i>>2]|0)>>>0){c[e>>2]=f;e=(c[k>>2]|0)+4|0;c[k>>2]=e;h=e}else{Hg(b,l);e=c[k>>2]|0;h=e}f=c[b>>2]|0;h=h-f|0;h=2?h>>2:h;if(h>>>0>>0)do{f=Gv(2139840)|0;Gf(f,h);c[l>>2]=f;e=c[k>>2]|0;if(e>>>0<(c[i>>2]|0)>>>0){c[e>>2]=f;e=(c[k>>2]|0)+4|0;c[k>>2]=e;h=e}else{Hg(b,l);e=c[k>>2]|0;h=e}f=c[b>>2]|0;h=h-f|0;h=2?h>>2:h}while(h>>>0>>0);if((e|0)!=(f|0)){do{d=c[f>>2]|0;DJ(d+5564|0,0,2134272)|0;DJ(d+42684|0,-1,2048)|0;f=f+4|0}while((f|0)!=(e|0));e=c[b>>2]|0}b=c[e>>2]|0;c[b+2139860>>2]=0;c[b+2139856>>2]=32001;g[b+2139848>>3]=1.0};c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;b=n+11|0;a[b>>0]=4;c[n>>2]=1752392008;a[n+4>>0]=0;c[m>>2]=n;rc(l,1181292,n,1183427,m,o);Sg(1181240,~~+sh((c[l>>2]|0)+28|0)>>>0);if((a[b>>0]|0)>=0){Ia=p;return}Jv(c[n>>2]|0);Ia=p;return}function Hg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+4|0;i=c[a>>2]|0;l=(c[j>>2]|0)-i|0;h=2?l>>2:l;d=h+1|0;if(d>>>0>1073741823)Lw(a);k=a+8|0;f=(c[k>>2]|0)-i|0;g=1?f>>1:f;g=(2?f>>2:f)>>>0<536870911?(g>>>0>>0?d:g):1073741823;do if(g)if(g>>>0>1073741823){a=I(8)|0;Nv(a,44817);c[a>>2]=41100;L(a|0,33144,231)}else{f=Gv(g<<2)|0;e=f;break}else{e=0;f=0}while(0);d=f+(h<<2)|0;c[d>>2]=c[b>>2];if((l|0)>0)BJ(e|0,i|0,l|0)|0;c[a>>2]=f;c[j>>2]=d+4;c[k>>2]=f+(g<<2);if(!i)return;Jv(i);return}function Ig(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;d=c[a+4>>2]|0;if((b|0)!=(d|0)){do{e=c[b>>2]|0;DJ(e+5564|0,0,2134272)|0;DJ(e+42684|0,-1,2048)|0;b=b+4|0}while((b|0)!=(d|0));b=c[a>>2]|0}e=c[b>>2]|0;c[e+2139860>>2]=0;c[e+2139856>>2]=32001;g[e+2139848>>3]=1.0;return}function Jg(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=Ia;Ia=Ia+4128|0;v=w+4112|0;t=w;s=w+4100|0;a[b+12>>0]=0;a[b+14>>0]=0;a[b+13>>0]=g&1;if((f|0)!=1174464)Kg(1174464,c[f>>2]|0,c[f+4>>2]|0);g=1174480;h=f+16|0;i=g+88|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));c[v>>2]=0;u=v+4|0;c[u>>2]=0;m=v+8|0;c[m>>2]=0;n=Nd(d,t)|0;c[t+4096>>2]=n;if((t|0)!=(n|0)){l=f+4|0;k=t;do{g=c[f>>2]|0;i=c[l>>2]|0;if((g|0)!=(i|0)){j=c[k>>2]|0;h=0;do{h=h+((c[g>>2]|0)==(j|0)&1)|0;g=g+4|0}while((g|0)!=(i|0));if(h|0)q=10}else q=10;do if((q|0)==10){q=0;g=c[u>>2]|0;if(g>>>0<(c[m>>2]|0)>>>0){i=c[k>>2]|0;c[g>>2]=-32001;c[g+4>>2]=-32001;c[g+8>>2]=0;c[g+12>>2]=0;o=g+20|0;c[o>>2]=0;p=g+24|0;c[p>>2]=0;h=g+28|0;c[h>>2]=0;j=Gv(4)|0;c[o>>2]=j;o=j+4|0;c[h>>2]=o;c[j>>2]=i;c[p>>2]=o;c[u>>2]=g+32;break}else{Lg(v,k);break}}while(0);k=k+8|0}while((k|0)!=(n|0))}g=c[e>>2]|0;if(g|0?(p=b+16|0,c[e>>2]=0,r=c[p>>2]|0,c[p>>2]=g,r|0):0){o=r+4|0;g=c[o>>2]|0;e=r+16|0;j=c[e>>2]|0;k=g+((4?j>>>4:j)<<2)|0;p=r+8|0;i=c[p>>2]|0;n=i;f=g;if((i|0)!=(g|0)){l=(c[k>>2]|0)+((j&15)*432|0)|0;h=r+20|0;m=(c[h>>2]|0)+j|0;m=(c[g+((4?m>>>4:m)<<2)>>2]|0)+((m&15)*432|0)|0;if((m|0)!=(l|0)){j=l;do{j=j+432|0;if((j-(c[k>>2]|0)|0)==6912){j=k+4|0;k=j;j=c[j>>2]|0}}while((m|0)!=(j|0))}}else h=r+20|0;c[h>>2]=0;h=n-f|0;h=2?h>>2:h;if(h>>>0>2)do{Jv(c[g>>2]|0);g=(c[o>>2]|0)+4|0;c[o>>2]=g;i=c[p>>2]|0;h=i-g|0;h=2?h>>2:h}while(h>>>0>2);switch(h|0){case 1:{h=8;q=28;break}case 2:{h=16;q=28;break}default:{}}if((q|0)==28)c[e>>2]=h;if((g|0)!=(i|0)){do{Jv(c[g>>2]|0);g=g+4|0}while((g|0)!=(i|0));g=c[o>>2]|0;h=c[p>>2]|0;if((h|0)!=(g|0)){q=h+-4-g|0;c[p>>2]=h+(~(2?q>>>2:q)<<2)}}g=c[r>>2]|0;if(g|0)Jv(g);Jv(r)}n=b+16|0;h=c[n>>2]|0;g=(c[h+20>>2]|0)+-1+(c[h+16>>2]|0)|0;h=(c[h+4>>2]|0)+((4?g>>>4:g)<<2)|0;g=g&15;BJ(t|0,(c[h>>2]|0)+(g*432|0)|0,432)|0;i=c[b>>2]|0;m=c[b+4>>2]|0;if((i|0)!=(m|0)){k=d+5356|0;l=d+5364|0;j=s+11|0;do{g=c[i>>2]|0;c[g+152>>2]=0;H(g+168|0,0,0,5);H(g+160|0,0,0,5);c[g+5560>>2]=0;c[g+5556>>2]=0;h=g+5544|0;if((h|0)!=(v|0))Mg(h,c[v>>2]|0,c[u>>2]|0);de(s,d);q=c[n>>2]|0;r=(c[q+20>>2]|0)+-1+(c[q+16>>2]|0)|0;je(g+176|0,s,(a[k>>0]|0)!=0,c[l>>2]|0,(c[(c[q+4>>2]|0)+((4?r>>>4:r)<<2)>>2]|0)+((r&15)*432|0)|0,g)|0;if((a[j>>0]|0)<0)Jv(c[s>>2]|0);i=i+4|0}while((i|0)!=(m|0));h=c[n>>2]|0;g=(c[h+20>>2]|0)+-1+(c[h+16>>2]|0)|0;h=(c[h+4>>2]|0)+((4?g>>>4:g)<<2)|0;g=g&15}BJ((c[h>>2]|0)+(g*432|0)|0,t|0,432)|0;b=c[c[b>>2]>>2]|0;i=b+4|0;Cv(i);a[b+85>>0]=1;Xa[c[(c[b>>2]|0)+8>>2]&255](b);Dv(i);i=c[v>>2]|0;if(!i){Ia=w;return}g=c[u>>2]|0;if((g|0)==(i|0))g=i;else{do{h=c[g+-12>>2]|0;if(h|0){c[g+-8>>2]=h;Jv(h)}g=g+-32|0}while((g|0)!=(i|0));g=c[v>>2]|0}c[u>>2]=i;Jv(g);Ia=w;return}function Kg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=d;i=b;h=l-i|0;f=2?h>>2:h;g=a+8|0;e=c[g>>2]|0;j=c[a>>2]|0;m=e-j|0;k=j;if(f>>>0<=(2?m>>2:m)>>>0){h=a+4|0;g=(c[h>>2]|0)-j|0;g=2?g>>2:g;f=f>>>0>g>>>0;g=f?b+(g<<2)|0:d;d=g;e=d-i|0;if(e|0)CJ(j|0,b|0,e|0)|0;if(!f){c[h>>2]=k+((2?e>>2:e)<<2);return}e=l-d|0;if((e|0)<=0)return;BJ(c[h>>2]|0,g|0,e|0)|0;c[h>>2]=(c[h>>2]|0)+((2?e>>>2:e)<<2);return}if(j){e=a+4|0;c[e>>2]=j;Jv(j);c[g>>2]=0;c[e>>2]=0;c[a>>2]=0;e=0}if(f>>>0>1073741823)Lw(a);m=1?e>>1:e;f=(2?e>>2:e)>>>0<536870911?(m>>>0>>0?f:m):1073741823;if(f>>>0>1073741823)Lw(a);d=Gv(f<<2)|0;e=a+4|0;c[e>>2]=d;c[a>>2]=d;c[g>>2]=d+(f<<2);if((h|0)<=0)return;BJ(d|0,b|0,h|0)|0;c[e>>2]=d+((2?h>>>2:h)<<2);return}function Lg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=a+4|0;h=c[m>>2]|0;d=c[a>>2]|0;g=h-d|0;g=5?g>>5:g;e=g+1|0;i=d;if(e>>>0>134217727)Lw(a);n=a+8|0;l=(c[n>>2]|0)-d|0;f=4?l>>4:l;f=(5?l>>5:l)>>>0<67108863?(f>>>0>>0?e:f):134217727;do if(f)if(f>>>0>134217727){a=I(8)|0;Nv(a,44817);c[a>>2]=41100;L(a|0,33144,231)}else{l=Gv(f<<5)|0;break}else l=0;while(0);e=l+(g<<5)|0;k=l+(f<<5)|0;o=c[b>>2]|0;c[e>>2]=-32001;c[l+(g<<5)+4>>2]=-32001;c[l+(g<<5)+8>>2]=0;c[l+(g<<5)+12>>2]=0;b=l+(g<<5)+20|0;c[b>>2]=0;j=l+(g<<5)+24|0;c[j>>2]=0;p=l+(g<<5)+28|0;c[p>>2]=0;f=Gv(4)|0;c[b>>2]=f;b=f+4|0;c[p>>2]=b;c[f>>2]=o;c[j>>2]=b;j=e+32|0;if((h|0)!=(i|0)){f=h+-32+(0-d)|0;f=g+-1-(5?f>>>5:f)|0;d=h;do{g=e;e=e+-32|0;h=d;d=d+-32|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];o=g+-12|0;p=h+-12|0;c[o>>2]=0;b=g+-8|0;c[b>>2]=0;g=g+-4|0;c[g>>2]=0;c[o>>2]=c[p>>2];o=h+-8|0;c[b>>2]=c[o>>2];h=h+-4|0;c[g>>2]=c[h>>2];c[h>>2]=0;c[o>>2]=0;c[p>>2]=0}while((d|0)!=(i|0));d=c[a>>2]|0;e=c[m>>2]|0;b=d;c[a>>2]=l+(f<<5);c[m>>2]=j;c[n>>2]=k;if((e|0)!=(b|0))do{f=c[e+-12>>2]|0;if(f|0){c[e+-8>>2]=f;Jv(f)}e=e+-32|0}while((e|0)!=(b|0))}else{c[a>>2]=e;c[m>>2]=j;c[n>>2]=k}if(!d)return;Jv(d);return}function Mg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=d-b|0;k=5?k>>5:k;i=a+8|0;e=c[i>>2]|0;f=c[a>>2]|0;j=e-f|0;g=f;if(k>>>0>(5?j>>5:j)>>>0){if(f){h=a+4|0;e=c[h>>2]|0;if((e|0)==(g|0))e=f;else{do{f=c[e+-12>>2]|0;if(f|0){c[e+-8>>2]=f;Jv(f)}e=e+-32|0}while((e|0)!=(g|0));e=c[a>>2]|0}c[h>>2]=g;Jv(e);c[i>>2]=0;c[h>>2]=0;c[a>>2]=0;e=0}if(k>>>0>134217727)Lw(a);j=4?e>>4:e;e=(5?e>>5:e)>>>0<67108863?(j>>>0>>0?k:j):134217727;if(e>>>0>134217727)Lw(a);j=Gv(e<<5)|0;c[a+4>>2]=j;c[a>>2]=j;c[i>>2]=j+(e<<5);Ng(a,b,d,k);return}j=a+4|0;i=(c[j>>2]|0)-f|0;i=5?i>>5:i;h=k>>>0>i>>>0;i=h?b+(i<<5)|0:d;if((i|0)!=(b|0)){f=b;e=g;do{c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[e+12>>2]=c[f+12>>2];c[e+16>>2]=c[f+16>>2];if((e|0)!=(f|0))Kg(e+20|0,c[f+20>>2]|0,c[f+24>>2]|0);f=f+32|0;e=e+32|0}while((f|0)!=(i|0));g=e}if(h){b=(c[j>>2]|0)-(c[a>>2]|0)|0;Ng(a,i,d,k-(5?b>>5:b)|0);return}e=c[j>>2]|0;if((e|0)!=(g|0))do{f=c[e+-12>>2]|0;if(f|0){c[e+-8>>2]=f;Jv(f)}e=e+-32|0}while((e|0)!=(g|0));c[j>>2]=g;return}function Ng(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=a+4|0;if((b|0)==(d|0))return;e=c[l>>2]|0;while(1){c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];j=e+20|0;i=b+20|0;c[j>>2]=0;k=e+24|0;c[k>>2]=0;a=e+28|0;c[a>>2]=0;g=b+24|0;e=(c[g>>2]|0)-(c[i>>2]|0)|0;f=2?e>>2:e;if(e|0){if(f>>>0>1073741823){e=5;break}h=Gv(e)|0;c[k>>2]=h;c[j>>2]=h;c[a>>2]=h+(f<<2);a=c[i>>2]|0;e=(c[g>>2]|0)-a|0;if((e|0)>0){BJ(h|0,a|0,e|0)|0;c[k>>2]=h+((2?e>>>2:e)<<2)}}b=b+32|0;e=(c[l>>2]|0)+32|0;c[l>>2]=e;if((b|0)==(d|0)){e=9;break}}if((e|0)==5)Lw(j);else if((e|0)==9)return}function Og(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295307]=0;c[295308]=0;c[295309]=0;f=Gv(96)|0;c[295308]=f;c[295307]=f;c[295309]=f+96;Rv(f,r);f=(c[295308]|0)+12|0;c[295308]=f;Rv(f,m);f=(c[295308]|0)+12|0;c[295308]=f;Rv(f,n);f=(c[295308]|0)+12|0;c[295308]=f;Rv(f,o);f=(c[295308]|0)+12|0;c[295308]=f;Rv(f,p);f=(c[295308]|0)+12|0;c[295308]=f;Rv(f,q);f=(c[295308]|0)+12|0;c[295308]=f;Rv(f,d);f=(c[295308]|0)+12|0;c[295308]=f;Rv(f,b);c[295308]=(c[295308]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function Pg(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0.0,s=0.0,x=0,z=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0;L=Ia;Ia=Ia+32|0;H=L+16|0;I=L+12|0;J=L+24|0;K=L;h=Gv(32)|0;c[K>>2]=h;c[K+8>>2]=-2147483616;c[K+4>>2]=21;i=h;j=45170;k=i+21|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[h+21>>0]=0;c[I>>2]=K;rc(H,1181292,K,1183428,I,J);s=+sh((c[H>>2]|0)+28|0);F=~~s>>>0;G=+u(s)>=1.0?(s>0.0?~~+A(+t(s/4294967296.0),4294967295.0)>>>0:~~+y((s-+(~~s>>>0))/4294967296.0)>>>0):0;if((a[K+11>>0]|0)<0)Jv(c[K>>2]|0);h=Gv(16)|0;c[K>>2]=h;c[K+8>>2]=-2147483632;c[K+4>>2]=13;i=h;j=45156;k=i+13|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[h+13>>0]=0;c[I>>2]=K;rc(H,1181292,K,1183428,I,J);s=+sh((c[H>>2]|0)+28|0);C=~~s>>>0;D=+u(s)>=1.0?(s>0.0?~~+A(+t(s/4294967296.0),4294967295.0)>>>0:~~+y((s-+(~~s>>>0))/4294967296.0)>>>0):0;if((a[K+11>>0]|0)<0)Jv(c[K>>2]|0);h=K+11|0;a[h>>0]=10;i=K;j=45192;k=i+10|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[K+10>>0]=0;c[I>>2]=K;rc(H,1181292,K,1183428,I,J);s=+sh((c[H>>2]|0)+28|0);p=~~s>>>0;q=+u(s)>=1.0?(s>0.0?~~+A(+t(s/4294967296.0),4294967295.0)>>>0:~~+y((s-+(~~s>>>0))/4294967296.0)>>>0):0;if((a[h>>0]|0)<0)Jv(c[K>>2]|0);c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;h=K+11|0;a[h>>0]=9;i=K;j=45203;k=i+9|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[K+9>>0]=0;c[I>>2]=K;rc(H,1181292,K,1183428,I,J);s=+sh((c[H>>2]|0)+28|0);k=~~s>>>0;l=+u(s)>=1.0?(s>0.0?~~+A(+t(s/4294967296.0),4294967295.0)>>>0:~~+y((s-+(~~s>>>0))/4294967296.0)>>>0):0;if((a[h>>0]|0)<0)Jv(c[K>>2]|0);if((k|0)==0&(l|0)==0)j=e+16+(f<<3)|0;else{i=b;h=c[i>>2]|0;i=c[i+4>>2]|0;j=e+16+(f<<3)|0;if((h|0)==0&(i|0)==0){h=j;h=vJ(c[h>>2]|0,c[h+4>>2]|0,k|0,l|0)|0;i=E()|0;B=b;c[B>>2]=h;c[B+4>>2]=i}B=j;c[B>>2]=h;c[B+4>>2]=i;B=e+32+(f<<3)|0;x=B;x=vJ(c[x>>2]|0,c[x+4>>2]|0,k|0,l|0)|0;z=E()|0;c[B>>2]=x;c[B+4>>2]=z;B=e+48|0;c[B>>2]=k;c[B+4>>2]=l}z=e+64|0;o=c[z+4>>2]|0;l=b+8|0;c[l>>2]=c[z>>2];c[l+4>>2]=o;l=j;o=c[l>>2]|0;l=c[l+4>>2]|0;z=(l|0)<(G|0)|(l|0)==(G|0)&o>>>0>>0;o=z?F:o;l=z?G:l;z=b+24|0;B=z;c[B>>2]=o;c[B+4>>2]=l;B=b+16|0;k=B;c[k>>2]=o;c[k+4>>2]=l;k=e+72|0;i=c[k>>2]|0;h=23760+(d<<2)|0;if(i)h=(c[h>>2]|0)<(i|0)?h:k;x=c[h>>2]|0;if((x|0)>=1){e=e+32+(f<<3)|0;r=(+v(+(+w(+((+(g|0)+-64.5)/6.85))+1.0),-.171)+2.2250738585072014e-308)*(+(p>>>0)+4294967296.0*+(q|0))/100.0;s=r*7.3;p=l;q=o;d=l;b=1;while(1){f=j;h=c[f>>2]|0;f=c[f+4>>2]|0;i=e;k=b+-1|0;k=vJ(c[i>>2]|0,c[i+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;i=E()|0;l=vJ((b>>>0<40?b:40)+2|0,0,C|0,D|0)|0;l=qJ(h|0,f|0,l|0,E()|0)|0;i=pJ(l|0,E()|0,k|0,i|0)|0;k=E()|0;l=(k|0)>0|(k|0)==0&i>>>0>0;i=l?i:0;k=l?k:0;l=b>>>0>1;if(l){h=1;m=0.0;do{m=m+(+v(+(+w(+((+((h<<1)+g|0)+-64.5)/6.85))+1.0),-.171)+2.2250738585072014e-308);h=h+1|0}while((h|0)!=(b|0))}else m=0.0;n=r+m;M=r/n;m=(r+m*0.0)/n;n=+(i>>>0)+4294967296.0*+(k|0);m=(m>>0|0,(+u(m)>=1.0?(m>0.0?~~+A(+t(m/4294967296.0),4294967295.0)>>>0:~~+y((m-+(~~m>>>0))/4294967296.0)>>>0):0)|0,F|0,G|0)|0;k=E()|0;if(l){h=1;m=0.0;do{m=m+(+v(+(+w(+((+((h<<1)+g|0)+-64.5)/6.85))+1.0),-.171)+2.2250738585072014e-308);h=h+1|0}while((h|0)!=(b|0))}else m=0.0;M=s/(s+m);m=(r+m*.34)/(r+m);M=(m>>0|0,(+u(M)>=1.0?(M>0.0?~~+A(+t(M/4294967296.0),4294967295.0)>>>0:~~+y((M-+(~~M>>>0))/4294967296.0)>>>0):0)|0,F|0,G|0)|0;f=E()|0;l=(p|0)<(k|0)|(p|0)==(k|0)&q>>>0>>0;q=l?q:i;p=l?p:k;l=B;c[l>>2]=q;c[l+4>>2]=p;l=(d|0)<(f|0)|(d|0)==(f|0)&o>>>0>>0;o=l?o:h;d=l?d:f;f=z;c[f>>2]=o;c[f+4>>2]=d;if((b|0)==(x|0))break;else b=b+1|0}};c[K>>2]=0;c[K+4>>2]=0;c[K+8>>2]=0;g=K+11|0;a[g>>0]=6;a[K>>0]=a[45129]|0;a[K+1>>0]=a[45130]|0;a[K+2>>0]=a[45131]|0;a[K+3>>0]=a[45132]|0;a[K+4>>0]=a[45133]|0;a[K+5>>0]=a[45134]|0;a[K+6>>0]=0;c[I>>2]=K;rc(H,1181292,K,1183428,I,J);h=+sh((c[H>>2]|0)+28|0)!=0.0;if((a[g>>0]|0)<0)Jv(c[K>>2]|0);if(!h){Ia=L;return}I=B;J=c[I>>2]|0;I=c[I+4>>2]|0;K=tJ(J|0,I|0,4,0)|0;I=pJ(K|0,E()|0,J|0,I|0)|0;J=E()|0;K=B;c[K>>2]=I;c[K+4>>2]=J;Ia=L;return}function Qg(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295314]=0;c[295315]=0;c[295316]=0;f=Gv(96)|0;c[295315]=f;c[295314]=f;c[295316]=f+96;Rv(f,r);f=(c[295315]|0)+12|0;c[295315]=f;Rv(f,m);f=(c[295315]|0)+12|0;c[295315]=f;Rv(f,n);f=(c[295315]|0)+12|0;c[295315]=f;Rv(f,o);f=(c[295315]|0)+12|0;c[295315]=f;Rv(f,p);f=(c[295315]|0)+12|0;c[295315]=f;Rv(f,q);f=(c[295315]|0)+12|0;c[295315]=f;Rv(f,d);f=(c[295315]|0)+12|0;c[295315]=f;Rv(f,b);c[295315]=(c[295315]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function Rg(c,f,g,h,i,j,k,l){c=c|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;if(!k){g=xJ(f|0,g|0,48)|0;o=E()|0;f=e[c>>1]|0;if((g|0)==(f|0)&(o|0)==0){k=g;n=0;m=c}else{n=0;m=c;p=4}}else{n=b[c>>1]|0;g=xJ(f|0,g|0,48)|0;f=n&65535;n=0;o=E()|0;m=c;p=4}if((p|0)==4){b[c+2>>1]=k;k=g}g=c+9|0;if((k|0)==(f|0)&(o|0)==(n|0)?!((i|0)==3?1:((a[g>>0]|0)+-4|0)<(j|0)):0)return;b[m>>1]=k;b[c+4>>1]=h;b[c+6>>1]=l;a[c+8>>0]=d[1181252]|i;a[g>>0]=j;return}function Sg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+16|0;f=g;c[a>>2]=b<<15&134184960;h=a+8|0;lk(c[h>>2]|0);e=c[a>>2]<<5;d=kk(e+63|0)|0;c[h>>2]=d;if(!d){h=Tb(cm(Tb(1182284,44178,19)|0,b)|0,44198,27)|0;Ql(f,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);g=qn(f,1182988)|0;g=Na[c[(c[g>>2]|0)+28>>2]&127](g,10)|0;rn(f);gm(h,g)|0;Wl(h)|0;oa(1)}else{h=d+63&-64;c[a+4>>2]=h;DJ(h|0,0,e|0)|0;Ia=g;return}}function Tg(a){a=a|0;DJ(c[a+4>>2]|0,0,c[a>>2]<<5|0)|0;return}function Ug(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;l=c[e+4>>2]|0;vJ(f|0,0,c[e>>2]|0,0)|0;m=E()|0;k=l+(m<<5)|0;j=xJ(f|0,g|0,48)|0;E()|0;f=b[k>>1]|0;if(!(f<<16>>16==0|(f&65535|0)==(j|0))){g=l+(m<<5)+10|0;f=b[g>>1]|0;if(!(f<<16>>16==0|(f&65535|0)==(j|0))){i=l+(m<<5)+20|0;f=b[i>>1]|0;if(f<<16>>16==0|(f&65535|0)==(j|0)){g=i;i=2}else{j=(d[e+12>>0]|0)+259|0;e=((a[l+(m<<5)+9>>0]|0)-(j-(d[l+(m<<5)+8>>0]|0)<<1&504)|0)>((a[l+(m<<5)+19>>0]|0)-(j-(d[l+(m<<5)+18>>0]|0)<<1&504)|0)?g:k;e=((a[e+9>>0]|0)-(j-(d[e+8>>0]|0)<<1&504)|0)>((a[l+(m<<5)+29>>0]|0)-(j-(d[l+(m<<5)+28>>0]|0)<<1&504)|0)?i:e;m=0;a[h>>0]=m;return e|0}}else i=1}else{g=k;i=0}m=l+(m<<5)+(i*10|0)+8|0;a[m>>0]=a[m>>0]&3|a[e+12>>0];e=g;m=f<<16>>16!=0&1;a[h>>0]=m;return e|0}function Vg(b){b=b|0;var d=0,e=0,f=0;f=c[b+4>>2]|0;b=a[b+12>>0]|0;d=0;e=0;do{d=d+((a[f+(e<<5)+8>>0]&-4)<<24>>24==b<<24>>24&1)+((a[f+(e<<5)+18>>0]&-4)<<24>>24==b<<24>>24&1)+((a[f+(e<<5)+28>>0]&-4)<<24>>24==b<<24>>24&1)|0;e=e+1|0}while((e|0)!=333);return d|0}function Wg(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;o=s;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;e=o+11|0;a[e>>0]=5;a[o>>0]=a[44986]|0;a[o+1>>0]=a[44987]|0;a[o+2>>0]=a[44988]|0;a[o+3>>0]=a[44989]|0;a[o+4>>0]=a[44990]|0;a[o+5>>0]=0;j=o+12|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;f=j+11|0;a[f>>0]=8;k=j;c[k>>2]=1702259047;c[k+4>>2]=2036430689;a[o+20>>0]=0;k=o+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;g=k+11|0;a[g>>0]=6;a[k>>0]=a[44992]|0;a[k+1>>0]=a[44993]|0;a[k+2>>0]=a[44994]|0;a[k+3>>0]=a[44995]|0;a[k+4>>0]=a[44996]|0;a[k+5>>0]=a[44997]|0;a[k+6>>0]=0;l=o+36|0;h=l+11|0;a[h>>0]=10;p=l;q=44999;r=p+10|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[l+10>>0]=0;m=o+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=5;a[m>>0]=a[45010]|0;a[m+1>>0]=a[45011]|0;a[m+2>>0]=a[45012]|0;a[m+3>>0]=a[45013]|0;a[m+4>>0]=a[45014]|0;a[m+5>>0]=0;n=o+60|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;b=Gv(16)|0;c[n>>2]=b;c[o+68>>2]=-2147483632;c[o+64>>2]=13;p=b;q=45016;r=p+13|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+13>>0]=0;d=o+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[o+80>>2]=-2147483632;c[o+76>>2]=11;p=b;q=45030;r=p+11|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+11>>0]=0;b=o+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;r=b+11|0;a[r>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295317]=0;c[295318]=0;c[295319]=0;q=Gv(96)|0;c[295318]=q;c[295317]=q;c[295319]=q+96;Rv(q,o);q=(c[295318]|0)+12|0;c[295318]=q;Rv(q,j);q=(c[295318]|0)+12|0;c[295318]=q;Rv(q,k);q=(c[295318]|0)+12|0;c[295318]=q;Rv(q,l);q=(c[295318]|0)+12|0;c[295318]=q;Rv(q,m);q=(c[295318]|0)+12|0;c[295318]=q;Rv(q,n);q=(c[295318]|0)+12|0;c[295318]=q;Rv(q,d);q=(c[295318]|0)+12|0;c[295318]=q;Rv(q,b);c[295318]=(c[295318]|0)+12;if((a[r>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)<0)Jv(c[l>>2]|0);if((a[g>>0]|0)<0)Jv(c[k>>2]|0);if((a[f>>0]|0)<0)Jv(c[j>>2]|0);if((a[e>>0]|0)<0)Jv(c[o>>2]|0);c[292816]=0;c[292817]=0;c[292818]=0;b=Gv(64)|0;c[292816]=b;c[292818]=-2147483584;c[292817]=56;p=b;q=44226;r=p+56|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+56>>0]=0;c[292819]=0;c[292820]=0;c[292821]=0;b=Gv(64)|0;c[292819]=b;c[292821]=-2147483584;c[292820]=56;p=b;q=44226;r=p+56|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+56>>0]=0;c[292822]=0;c[292823]=0;c[292824]=0;b=Gv(64)|0;c[292822]=b;c[292824]=-2147483584;c[292823]=56;p=b;q=44226;r=p+56|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+56>>0]=0;c[292825]=0;c[292826]=0;c[292827]=0;b=Gv(64)|0;c[292825]=b;c[292827]=-2147483584;c[292826]=58;p=b;q=44283;r=p+58|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+58>>0]=0;c[292828]=0;c[292829]=0;c[292830]=0;b=Gv(80)|0;c[292828]=b;c[292830]=-2147483568;c[292829]=74;p=b;q=44342;r=p+74|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+74>>0]=0;c[292831]=0;c[292832]=0;c[292833]=0;b=Gv(64)|0;c[292831]=b;c[292833]=-2147483584;c[292832]=56;p=b;q=44226;r=p+56|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+56>>0]=0;c[292834]=0;c[292835]=0;c[292836]=0;b=Gv(48)|0;c[292834]=b;c[292836]=-2147483600;c[292835]=39;p=b;q=44417;r=p+39|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+39>>0]=0;c[292837]=0;c[292838]=0;c[292839]=0;b=Gv(64)|0;c[292837]=b;c[292839]=-2147483584;c[292838]=60;p=b;q=44457;r=p+60|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+60>>0]=0;Ia=s;return}function Xg(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0.0;H=Ia;Ia=Ia+352|0;i=H+104|0;w=H;x=H+340|0;v=H+336|0;p=H+324|0;o=H+312|0;n=H+300|0;m=H+288|0;l=H+276|0;G=H+264|0;D=H+252|0;F=H+112|0;if((a[1174648]|0)==0?hJ(1174648)|0:0){h=Gv(24)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;g=h+20|0;Yg(h,1);f=c[g>>2]|0;d=c[h+4>>2]|0;e=(c[h+16>>2]|0)+f|0;if((c[h+8>>2]|0)==(d|0))d=0;else d=(c[d+((4?e>>>4:e)<<2)>>2]|0)+((e&15)*432|0)|0;DJ(d|0,0,432)|0;c[g>>2]=f+1;c[295320]=h;jJ(1174648)}if((a[1174656]|0)==0?hJ(1174656)|0:0){A=Gv(2139856)|0;c[A+4>>2]=0;c[A+8>>2]=0;c[A>>2]=34364;B=A+16|0;Gf(B,0);c[295321]=B;c[295322]=A;c[i>>2]=B;c[i+4>>2]=B;Zg(1181284,i);jJ(1174656)}if(!(a[1183429]|0)){A=c[295320]|0;B=(c[A+20>>2]|0)+-1+(c[A+16>>2]|0)|0;je(1174664,1171264,0,0,(c[(c[A+4>>2]|0)+((4?B>>>4:B)<<2)>>2]|0)+((B&15)*432|0)|0,c[295321]|0)|0;a[1183429]=1};c[G>>2]=0;c[G+4>>2]=0;c[G+8>>2]=0;c[D>>2]=0;c[D+4>>2]=0;c[D+8>>2]=0;e=li(b)|0;if(e>>>0>4294967279)Pv(D);if(e>>>0<11){a[D+11>>0]=e;if(!e)d=D;else{d=D;C=16}}else{C=e+16&-16;d=Gv(C)|0;c[D>>2]=d;c[D+8>>2]=C|-2147483648;c[D+4>>2]=e;C=16}if((C|0)==16)BJ(d|0,b|0,e|0)|0;a[d+e>>0]=0;y=F+60|0;z=F+8|0;c[F>>2]=29484;c[y>>2]=29504;c[F+4>>2]=0;Ol(F+60|0,z);c[F+132>>2]=0;c[F+136>>2]=-1;c[F>>2]=33772;c[y>>2]=33792;Tl(z);c[z>>2]=33340;B=F+40|0;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[F+56>>2]=8;Fc(z,D);A=G+11|0;if((a[A>>0]|0)<0){a[c[G>>2]>>0]=0;c[G+4>>2]=0}else{a[G>>0]=0;a[A>>0]=0}d=F+(c[(c[F>>2]|0)+-12>>2]|0)+4|0;c[d>>2]=c[d>>2]|4096;Gc(F,G)|0;d=a[A>>0]|0;g=G+4|0;e=c[g>>2]|0;f=d&255;if(((d<<24>>24<0?e:f)|0)==4)if(!(mw(G,0,-1,44518,4)|0))C=29;else{f=a[A>>0]|0;d=f;e=c[g>>2]|0;f=f&255;C=23}else C=23;a:do if((C|0)==23){if(((d<<24>>24<0?e:f)|0)==4){if(!(mw(G,0,-1,44523,4)|0)){C=29;break}f=a[A>>0]|0;d=f;e=c[g>>2]|0;f=f&255}if((((d<<24>>24<0?e:f)|0)==9?(mw(G,0,-1,44528,9)|0)==0:0)?a[1181210]&1:0){C=29;break}f=a[A>>0]|0;e=c[g>>2]|0;d=f&255;do if(((f<<24>>24<0?e:d)|0)==9)if(!(mw(G,0,-1,44528,9)|0)){a[1181209]=0;break a}else{d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break}while(0);do if(((f<<24>>24<0?e:d)|0)==3){if(mw(G,0,-1,44538,3)|0){d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break}s=Tb(Ic(1182116,0)|0,44542,8)|0;Ec(x,1);v=x+11|0;u=a[v>>0]|0;t=u<<24>>24<0;u=Tb(Fh(Tb(Tb(s,t?c[x>>2]|0:x,t?c[x+4>>2]|0:u&255)|0,44551,1)|0,1181292)|0,44553,6)|0;Ql(w,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);t=qn(w,1182988)|0;t=Na[c[(c[t>>2]|0)+28>>2]&127](t,10)|0;rn(w);gm(u,t)|0;Wl(u)|0;Ic(u,1)|0;if((a[v>>0]|0)<0)Jv(c[x>>2]|0);break a}while(0);do if(((f<<24>>24<0?e:d)|0)==9){if(mw(G,0,-1,44560,9)|0){d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break};c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;Gc(F,p)|0;j=p+11|0;e=p+4|0;k=o+11|0;i=o+4|0;d=w+11|0;f=w+4|0;while(1){u=Gc(F,p)|0;if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0)break;u=a[j>>0]|0;if(((u<<24>>24<0?c[e>>2]|0:u&255)|0)==5?(mw(p,0,-1,44570,5)|0)==0:0)break;u=a[k>>0]|0;zw(w,((u<<24>>24<0?c[i>>2]|0:u&255)|0)==0?1183440:49392,p);u=a[d>>0]|0;t=u<<24>>24<0;dw(o,t?c[w>>2]|0:w,t?c[f>>2]|0:u&255)|0;if((a[d>>0]|0)<0)Jv(c[w>>2]|0)}b=n+11|0;f=n+4|0;d=w+11|0;e=w+4|0;while(1){u=Gc(F,p)|0;if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0)break;u=a[b>>0]|0;zw(w,((u<<24>>24<0?c[f>>2]|0:u&255)|0)==0?1183440:49392,p);u=a[d>>0]|0;t=u<<24>>24<0;dw(n,t?c[w>>2]|0:w,t?c[e>>2]|0:u&255)|0;if((a[d>>0]|0)<0)Jv(c[w>>2]|0)}d=c[295324]|0;b:do if(d){while(1){e=d+16|0;if(!(wh(1181300,o,e)|0)){if(!(wh(1181300,e,o)|0))break;d=d+4|0}d=c[d>>2]|0;if(!d){C=73;break b}}c[x>>2]=o;$g(w,1181292,o,1183430,x,v);Ih((c[w>>2]|0)+28|0,n)|0;f=a[k>>0]|0;u=f<<24>>24<0;d=c[o>>2]|0;e=c[i>>2]|0;h=f&255;g=u?d+e|0:o+h|0;d=u?d:o;if((d|0)==(g|0))d=h;else{do{a[d>>0]=Uj(a[d>>0]|0)|0;d=d+1|0}while((d|0)!=(g|0));d=a[k>>0]|0;f=d;e=c[i>>2]|0;d=d&255}if(((f<<24>>24<0?e:d)|0)==11?(mw(o,0,-1,44576,11)|0)==0:0){f=ah(n)|0;e=Tb(Ic(1182116,0)|0,44588,20)|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;d=Gv(16)|0;c[l>>2]=d;c[l+8>>2]=-2147483632;c[l+4>>2]=11;h=d;g=45226;i=h+11|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(i|0));a[d+11>>0]=0;c[x>>2]=l;rc(w,1181292,l,1183430,x,v);uh(m,(c[w>>2]|0)+28|0);x=m+11|0;s=a[x>>0]|0;t=s<<24>>24<0;s=Tb(Tb(e,t?c[m>>2]|0:m,t?c[m+4>>2]|0:s&255)|0,44609,10)|0;t=1171264+(f*12|0)|0;v=a[t+11>>0]|0;u=v<<24>>24<0;v=Tb(s,u?c[t>>2]|0:t,u?c[1171264+(f*12|0)+4>>2]|0:v&255)|0;Ql(w,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=qn(w,1182988)|0;u=Na[c[(c[u>>2]|0)+28>>2]&127](u,10)|0;rn(w);gm(v,u)|0;Wl(v)|0;Ic(v,1)|0;if((a[x>>0]|0)<0)Jv(c[m>>2]|0);if((a[l+11>>0]|0)<0)Jv(c[l>>2]|0)}}else C=73;while(0);if((C|0)==73){u=Tb(Ic(1182116,0)|0,44620,16)|0;x=a[k>>0]|0;v=x<<24>>24<0;x=Tb(u,v?c[o>>2]|0:o,v?c[i>>2]|0:x&255)|0;Ql(w,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);v=qn(w,1182988)|0;v=Na[c[(c[v>>2]|0)+28>>2]&127](v,10)|0;rn(w);gm(x,v)|0;Wl(x)|0;Ic(x,1)|0}if((a[b>>0]|0)<0)Jv(c[n>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[p>>2]|0);break a}while(0);do if(((f<<24>>24<0?e:d)|0)==2){if(mw(G,0,-1,44637,2)|0){d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break}c[w>>2]=0;u=w+4|0;c[u>>2]=0;q=w+8|0;c[q>>2]=0;r=w+16|0;s=w+72|0;t=w+96|0;h=t;c[h>>2]=0;c[h+4>>2]=0;h=r;i=h+48|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=sk()|0;b=tJ(b|0,E()|0,1e3,0)|0;i=E()|0;h=w+64|0;c[h>>2]=b;c[h+4>>2]=i;h=x+11|0;i=x+4|0;b=w+24|0;j=w+32|0;k=w+40|0;l=w+76|0;o=w+56|0;n=w+80|0;p=w+84|0;m=w+88|0;d=0;while(1){g=Gc(F,x)|0;if(c[g+(c[(c[g>>2]|0)+-12>>2]|0)+16>>2]&5|0)break;e=a[h>>0]|0;g=c[i>>2]|0;f=e&255;c:do if(((e<<24>>24<0?g:f)|0)==11){if(mw(x,0,-1,44640,11)|0){f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;C=95;break}while(1){g=Gc(F,x)|0;if(c[g+(c[(c[g>>2]|0)+-12>>2]|0)+16>>2]&5|0)break c;f=bh(1174664,x)|0;c[v>>2]=f;e=c[u>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[e>>2]=f;c[u>>2]=e+4}else ch(w,v)}}else C=95;while(0);d:do if((C|0)==95){C=0;do if(((e<<24>>24<0?g:f)|0)==5)if(!(mw(x,0,-1,44652,5)|0)){_l(F,r)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==5)if(!(mw(x,0,-1,44658,5)|0)){_l(F,b)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==4)if(!(mw(x,0,-1,44664,4)|0)){_l(F,j)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==4)if(!(mw(x,0,-1,44669,4)|0)){_l(F,k)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==9)if(!(mw(x,0,-1,44674,9)|0)){Zl(F,s)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==5)if(!(mw(x,0,-1,44684,5)|0)){Zl(F,l)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==5)if(!(mw(x,0,-1,44690,5)|0)){_l(F,t)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==8)if(!(mw(x,0,-1,44696,8)|0)){_l(F,o)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==4)if(!(mw(x,0,-1,44705,4)|0)){Zl(F,n)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==5)if(!(mw(x,0,-1,44710,5)|0)){Zl(F,p)|0;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);do if(((e<<24>>24<0?g:f)|0)==8)if(!(mw(x,0,-1,44716,8)|0)){c[m>>2]=1;break d}else{f=a[h>>0]|0;e=f;g=c[i>>2]|0;f=f&255;break}while(0);if(((e<<24>>24<0?g:f)|0)!=6)break;d=d|(mw(x,0,-1,44725,6)|0)==0}while(0)}Jg(1181196,1174664,1181280,w,d);if((a[h>>0]|0)<0)Jv(c[x>>2]|0);d=c[w>>2]|0;if(d|0){c[u>>2]=d;Jv(d)}break a}while(0);do if(((f<<24>>24<0?e:d)|0)==8){if(mw(G,0,-1,44732,8)|0){d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break};c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;d=Gv(16)|0;c[m>>2]=d;c[m+8>>2]=-2147483632;c[m+4>>2]=11;h=d;g=45226;i=h+11|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(i|0));a[d+11>>0]=0;c[x>>2]=m;rc(w,1181292,m,1183430,x,v);uh(n,(c[w>>2]|0)+28|0);j=ah(n)|0;if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[m+11>>0]|0)<0)Jv(c[m>>2]|0);Gc(F,p)|0;l=p+11|0;d=a[l>>0]|0;b=p+4|0;e=c[b>>2]|0;f=d&255;do if(((d<<24>>24<0?e:f)|0)==8)if(!(mw(p,0,-1,44741,8)|0)){Xv(o,1171264+(j*12|0)|0)|0;Gc(F,p)|0;C=174;break}else{f=a[l>>0]|0;d=f;e=c[b>>2]|0;f=f&255;C=158;break}else C=158;while(0);e:do if((C|0)==158){if(((d<<24>>24<0?e:f)|0)!=3)break;if(mw(p,0,-1,44750,3)|0)break;i=w+11|0;g=w+8|0;h=w+4|0;while(1){u=Gc(F,p)|0;if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0){C=174;break e}d=a[l>>0]|0;f=c[b>>2]|0;e=d&255;if(((d<<24>>24<0?f:e)|0)==5){if(!(mw(p,0,-1,44754,5)|0)){C=174;break e}e=a[l>>0]|0;d=e;f=c[b>>2]|0;e=e&255};c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;d=d<<24>>24<0;f=d?f:e;e=d?c[p>>2]|0:p;d=f+1|0;if(d>>>0>4294967279)break;if(d>>>0<11){a[i>>0]=f;if(!f)d=w;else{d=w;C=170}}else{C=f+17&-16;d=Gv(C)|0;c[w>>2]=d;c[g>>2]=C|-2147483648;c[h>>2]=f;C=170}if((C|0)==170){C=0;BJ(d|0,e|0,f|0)|0}a[d+f>>0]=0;dw(w,49392,1)|0;u=a[i>>0]|0;t=u<<24>>24<0;dw(o,t?c[w>>2]|0:w,t?c[h>>2]|0:u&255)|0;if((a[i>>0]|0)<0)Jv(c[w>>2]|0)}Pv(w)}while(0);f:do if((C|0)==174){h=Gv(24)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;g=h+20|0;Yg(h,1);f=c[g>>2]|0;d=c[h+4>>2]|0;e=(c[h+16>>2]|0)+f|0;if((c[h+8>>2]|0)==(d|0))d=0;else d=(c[d+((4?e>>>4:e)<<2)>>2]|0)+((e&15)*432|0)|0;DJ(d|0,0,432)|0;c[g>>2]=f+1;d=c[295320]|0;c[295320]=h;if(d|0){_g(d);Jv(d)};c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;d=Gv(16)|0;c[n>>2]=d;c[n+8>>2]=-2147483632;c[n+4>>2]=12;h=d;g=45213;i=h+12|0;do{a[h>>0]=a[g>>0]|0;h=h+1|0;g=g+1|0}while((h|0)<(i|0));a[d+12>>0]=0;c[x>>2]=n;rc(w,1181292,n,1183430,x,v);I=+sh((c[w>>2]|0)+28|0);w=c[295320]|0;x=(c[w+20>>2]|0)+-1+(c[w+16>>2]|0)|0;je(1174664,o,I!=0.0,j,(c[(c[w+4>>2]|0)+((4?x>>>4:x)<<2)>>2]|0)+((x&15)*432|0)|0,c[c[295299]>>2]|0)|0;if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);while(1){x=Gc(F,p)|0;if(c[x+(c[(c[x>>2]|0)+-12>>2]|0)+16>>2]&5|0)break f;k=bh(1174664,p)|0;if(!k)break f;f=c[295320]|0;h=f+8|0;g=c[h>>2]|0;i=f+4|0;e=c[i>>2]|0;x=g-e|0;b=f+16|0;j=f+20|0;d=(c[j>>2]|0)+(c[b>>2]|0)|0;if((((x|0)==0?0:(x<<2)+-1|0)|0)==(d|0)){dh(f);g=c[h>>2]|0;e=c[i>>2]|0;d=(c[b>>2]|0)+(c[j>>2]|0)|0}if((g|0)==(e|0))d=0;else d=(c[e+((4?d>>>4:d)<<2)>>2]|0)+((d&15)*432|0)|0;DJ(d|0,0,432)|0;c[j>>2]=(c[j>>2]|0)+1;w=c[295320]|0;x=(c[w+20>>2]|0)+-1+(c[w+16>>2]|0)|0;w=c[(c[w+4>>2]|0)+((4?x>>>4:x)<<2)>>2]|0;ye(1174664,k,w+((x&15)*432|0)|0,we(1174664,k)|0)}}while(0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);break a}while(0);do if(((f<<24>>24<0?e:d)|0)==10)if(!(mw(G,0,-1,44760,10)|0)){vf();break a}else{d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break}while(0);do if(((f<<24>>24<0?e:d)|0)==7)if(!(mw(G,0,-1,44771,7)|0)){x=Tb(Ic(1182116,0)|0,44779,7)|0;Ql(w,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);v=qn(w,1182988)|0;v=Na[c[(c[v>>2]|0)+28>>2]&127](v,10)|0;rn(w);gm(x,v)|0;Wl(x)|0;Ic(x,1)|0;break a}else{d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break}while(0);do if(((f<<24>>24<0?e:d)|0)==4)if(!(mw(G,0,-1,44787,4)|0)){Je(1174664);break a}else{d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break}while(0);do if(((f<<24>>24<0?e:d)|0)==1)if(!(mw(G,0,-1,44792,1)|0)){x=ce(Ic(1182116,0)|0,1174664)|0;Ql(w,1182116+(c[(c[295529]|0)+-12>>2]|0)|0);v=qn(w,1182988)|0;v=Na[c[(c[v>>2]|0)+28>>2]&127](v,10)|0;rn(w);gm(x,v)|0;Wl(x)|0;Ic(x,1)|0;break a}else{d=a[A>>0]|0;f=d;e=c[g>>2]|0;d=d&255;break}while(0);do if(((f<<24>>24<0?e:d)|0)==4){if(mw(G,0,-1,44794,4)|0)break;s=Ic(1182116,0)|0;$b(x,1174664);v=x+11|0;u=a[v>>0]|0;t=u<<24>>24<0;u=Tb(s,t?c[x>>2]|0:x,t?c[x+4>>2]|0:u&255)|0;Ql(w,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);t=qn(w,1182988)|0;t=Na[c[(c[t>>2]|0)+28>>2]&127](t,10)|0;rn(w);gm(u,t)|0;Wl(u)|0;Ic(u,1)|0;if((a[v>>0]|0)<0)Jv(c[x>>2]|0);break a}while(0);u=Tb(Ic(1182116,0)|0,44799,17)|0;x=a[D+11>>0]|0;v=x<<24>>24<0;x=Tb(u,v?c[D>>2]|0:D,v?c[D+4>>2]|0:x&255)|0;Ql(w,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);v=qn(w,1182988)|0;v=Na[c[(c[v>>2]|0)+28>>2]&127](v,10)|0;rn(w);gm(x,v)|0;Wl(x)|0;Ic(x,1)|0}while(0);if((C|0)==29)a[1181208]=1;c[F>>2]=33772;c[y>>2]=33792;c[z>>2]=33340;if((a[B+11>>0]|0)<0)Jv(c[B>>2]|0);Dk(z);pl(F,33804);yk(y);if((a[D+11>>0]|0)<0)Jv(c[D>>2]|0);if((a[A>>0]|0)>=0){Ia=H;return}Jv(c[G>>2]|0);Ia=H;return}function Yg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=Ia;Ia=Ia+32|0;F=G+4|0;A=G;E=a+8|0;f=c[E>>2]|0;D=a+4|0;u=c[D>>2]|0;w=((f|0)==(u|0)&1)+b|0;w=(4?w>>>4:w)+((w&15|0)!=0&1)|0;C=a+16|0;d=c[C>>2]|0;x=4?d>>>4:d;q=w>>>0>>0?w:x;b=w-q|0;v=f;if(!b){c[C>>2]=d-(q<<4);if(!q){Ia=G;return}t=a+12|0;g=u;d=f;f=q;a:while(1){s=c[g>>2]|0;r=g+4|0;c[D>>2]=r;B=c[t>>2]|0;i=B;do if((d|0)==(B|0)){n=r;j=c[a>>2]|0;g=j;if(r>>>0>j>>>0){d=n-g|0;d=((2?d>>2:d)+1|0)/-2|0;h=r+(d<<2)|0;g=i-n|0;if(!g)d=h;else{CJ(h|0,r|0,g|0)|0;d=(c[D>>2]|0)+(d<<2)|0}B=h+((2?g>>2:g)<<2)|0;c[E>>2]=B;c[D>>2]=d;d=B;break}h=i-g|0;h=(h|0)==0?1:1?h>>1:h;m=2?h>>>2:h;if(!h)l=0;else{if(h>>>0>1073741823){g=11;break a}l=Gv(h<<2)|0}o=l;g=l+(m<<2)|0;p=g;k=l+(h<<2)|0;if((r|0)==(d|0)){g=j;d=p}else{i=d+-4-n|0;i=(2?i>>>2:i)+1|0;h=r;while(1){c[g>>2]=c[h>>2];h=h+4|0;if((h|0)==(d|0))break;else g=g+4|0}g=c[a>>2]|0;d=l+(i+m<<2)|0}c[a>>2]=o;c[D>>2]=p;c[E>>2]=d;c[t>>2]=k;if(g){Jv(g);d=c[E>>2]|0}}while(0);c[d>>2]=s;d=(c[E>>2]|0)+4|0;c[E>>2]=d;f=f+-1|0;if(!f){g=82;break}g=c[D>>2]|0}if((g|0)==11){G=I(8)|0;Nv(G,44817);c[G>>2]=41100;L(G|0,33144,231)}else if((g|0)==82){Ia=G;return}}B=a+12|0;d=c[B>>2]|0;t=d-(c[a>>2]|0)|0;s=v-u|0;s=2?s>>2:s;if(b>>>0<=((2?t>>2:t)-s|0)>>>0){b:do if((d|0)==(v|0)){z=b;g=27}else{d=b;while(1){c[F>>2]=Gv(6912)|0;eh(a,F);d=d+-1|0;if(!d)break;if((c[B>>2]|0)==(c[E>>2]|0)){z=d;g=27;break b}}e=c[C>>2]|0;y=q}while(0);if((g|0)==27){f=~(w>>>0>x>>>0?x:w);d=z;do{c[F>>2]=Gv(6912)|0;fh(a,F);d=d+-1|0;e=(((c[E>>2]|0)-(c[D>>2]|0)|0)==4?15:16)+(c[C>>2]|0)|0;c[C>>2]=e}while((d|0)!=0);y=z+-1-f|0}c[C>>2]=e-(y<<4);if(!y){Ia=G;return}d=c[E>>2]|0;r=y;c:while(1){o=c[D>>2]|0;p=c[o>>2]|0;o=o+4|0;c[D>>2]=o;z=c[B>>2]|0;g=z;do if((d|0)==(z|0)){l=o;h=c[a>>2]|0;e=h;if(o>>>0>h>>>0){d=l-e|0;d=((2?d>>2:d)+1|0)/-2|0;f=o+(d<<2)|0;e=g-l|0;if(!e)d=f;else{CJ(f|0,o|0,e|0)|0;d=(c[D>>2]|0)+(d<<2)|0}z=f+((2?e>>2:e)<<2)|0;c[E>>2]=z;c[D>>2]=d;d=z;break}f=g-e|0;f=(f|0)==0?1:1?f>>1:f;k=2?f>>>2:f;if(!f)j=0;else{if(f>>>0>1073741823){g=39;break c}j=Gv(f<<2)|0}m=j;e=j+(k<<2)|0;n=e;i=j+(f<<2)|0;if((o|0)==(d|0)){e=h;d=n}else{g=d+-4-l|0;g=(2?g>>>2:g)+1|0;f=o;while(1){c[e>>2]=c[f>>2];f=f+4|0;if((f|0)==(d|0))break;else e=e+4|0}e=c[a>>2]|0;d=j+(g+k<<2)|0}c[a>>2]=m;c[D>>2]=n;c[E>>2]=d;c[B>>2]=i;if(e){Jv(e);d=c[E>>2]|0}}while(0);c[d>>2]=p;d=(c[E>>2]|0)+4|0;c[E>>2]=d;r=r+-1|0;if(!r){g=82;break}}if((g|0)==39){G=I(8)|0;Nv(G,44817);c[G>>2]=41100;L(G|0,33144,231)}else if((g|0)==82){Ia=G;return}}u=q<<4;f=1?t>>1:t;d=s+b|0;f=f>>>0>>0?d:f;d=s-q|0;t=F+12|0;c[t>>2]=0;c[F+16>>2]=a+12;do if(f)if(f>>>0>1073741823){G=I(8)|0;Nv(G,44817);c[G>>2]=41100;L(G|0,33144,231)}else{e=Gv(f<<2)|0;break}else e=0;while(0);c[F>>2]=e;z=e+(d<<2)|0;s=F+8|0;c[s>>2]=z;r=F+4|0;c[r>>2]=z;c[t>>2]=e+(f<<2);do{c[A>>2]=Gv(6912)|0;gh(F,A);b=b+-1|0}while((b|0)!=0);d:do if(!q)d=c[D>>2]|0;else{b=c[s>>2]|0;d=c[D>>2]|0;e:while(1){A=c[t>>2]|0;g=A;do if((b|0)==(A|0)){o=c[r>>2]|0;n=o;p=c[F>>2]|0;e=p;if(o>>>0>p>>>0){b=n-e|0;b=((2?b>>2:b)+1|0)/-2|0;f=o+(b<<2)|0;e=g-n|0;if(!e)b=f;else{CJ(f|0,o|0,e|0)|0;b=(c[r>>2]|0)+(b<<2)|0}A=f+((2?e>>2:e)<<2)|0;c[s>>2]=A;c[r>>2]=b;b=A;break}e=g-e|0;e=(e|0)==0?1:1?e>>1:e;k=2?e>>>2:e;if(!e)j=0;else{if(e>>>0>1073741823)break e;j=Gv(e<<2)|0}l=j;h=j+(k<<2)|0;m=h;i=j+(e<<2)|0;if((o|0)==(b|0))b=m;else{g=b+-4-n|0;g=(2?g>>>2:g)+1|0;f=o;e=h;while(1){c[e>>2]=c[f>>2];f=f+4|0;if((f|0)==(b|0))break;else e=e+4|0}b=j+(g+k<<2)|0}c[F>>2]=l;c[r>>2]=m;c[s>>2]=b;c[t>>2]=i;if(p){Jv(p);b=c[s>>2]|0}}while(0);c[b>>2]=c[d>>2];b=(c[s>>2]|0)+4|0;c[s>>2]=b;d=(c[D>>2]|0)+4|0;c[D>>2]=d;q=q+-1|0;if(!q)break d}G=I(8)|0;Nv(G,44817);c[G>>2]=41100;L(G|0,33144,231)}while(0);b=c[E>>2]|0;if((b|0)!=(d|0)){do{b=b+-4|0;hh(F,b);d=c[D>>2]|0}while((b|0)!=(d|0));b=c[E>>2]|0}e=d;f=c[a>>2]|0;c[a>>2]=c[F>>2];c[F>>2]=f;c[D>>2]=c[r>>2];c[r>>2]=e;c[E>>2]=c[s>>2];c[s>>2]=b;a=c[B>>2]|0;c[B>>2]=c[t>>2];c[t>>2]=a;c[C>>2]=(c[C>>2]|0)-u;if((d|0)!=(b|0)){a=b+-4-e|0;c[s>>2]=b+(~(2?a>>>2:a)<<2)}if(f|0)Jv(f);Ia=G;return}function Zg(a,b){a=a|0;b=b|0;return}function _g(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=a+4|0;b=c[n>>2]|0;l=a+16|0;f=c[l>>2]|0;g=b+((4?f>>>4:f)<<2)|0;o=a+8|0;e=c[o>>2]|0;j=e;k=b;if((e|0)!=(b|0)){h=(c[g>>2]|0)+((f&15)*432|0)|0;d=a+20|0;i=(c[d>>2]|0)+f|0;i=(c[b+((4?i>>>4:i)<<2)>>2]|0)+((i&15)*432|0)|0;if((i|0)!=(h|0)){f=h;do{f=f+432|0;if((f-(c[g>>2]|0)|0)==6912){f=g+4|0;g=f;f=c[f>>2]|0}}while((i|0)!=(f|0))}}else d=a+20|0;c[d>>2]=0;d=j-k|0;d=2?d>>2:d;if(d>>>0>2)do{Jv(c[b>>2]|0);b=(c[n>>2]|0)+4|0;c[n>>2]=b;e=c[o>>2]|0;d=e-b|0;d=2?d>>2:d}while(d>>>0>2);switch(d|0){case 1:{d=8;m=14;break}case 2:{d=16;m=14;break}default:{}}if((m|0)==14)c[l>>2]=d;if((b|0)==(e|0)){d=e;b=e}else{do{Jv(c[b>>2]|0);b=b+4|0}while((b|0)!=(e|0));d=c[o>>2]|0;b=c[n>>2]|0}if((d|0)!=(b|0)){n=d+-4-b|0;c[o>>2]=d+(~(2?n>>>2:n)<<2)}b=c[a>>2]|0;if(!b)return;Jv(b);return}function $g(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;h=d+4|0;f=c[h>>2]|0;do if(f){j=d+8|0;i=d+4|0;while(1){h=f+16|0;if(wh(j,e,h)|0){h=c[f>>2]|0;if(!h){h=5;break}else i=f}else{if(!(wh(j,h,e)|0)){h=9;break}i=f+4|0;h=c[i>>2]|0;if(!h){h=8;break}}f=h}if((h|0)==5){j=f;i=f;break}else if((h|0)==8){j=f;break}else if((h|0)==9){j=f;break}}else{j=h;i=h}while(0);f=c[i>>2]|0;if(f|0){g=0;d=f;c[b>>2]=d;d=b+4|0;a[d>>0]=g;return}h=Gv(92)|0;Rv(h+16|0,c[g>>2]|0);Gh(h+28|0,0);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=j;c[i>>2]=h;f=c[c[d>>2]>>2]|0;if(!f)f=h;else{c[d>>2]=f;f=c[i>>2]|0}sc(c[d+4>>2]|0,f);g=d+8|0;c[g>>2]=(c[g>>2]|0)+1;g=1;d=h;c[b>>2]=d;d=b+4|0;a[d>>0]=g;return}function ah(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=c[295317]|0;k=a[b+11>>0]|0;d=k<<24>>24<0;k=d?c[b+4>>2]|0:k&255;b=d?c[b>>2]|0:b;d=a[j+11>>0]|0;h=d<<24>>24<0;d=d&255;a:do if(((h?c[j+4>>2]|0:d)|0)==(k|0)){e=c[j>>2]|0;g=h?e:j;f=(k|0)==0;e=e&255;if(h){if(f){k=0;return k|0}if(!(Vj(g,b,k)|0))b=0;else break;return b|0}if(f){k=0;return k|0}if((a[b>>0]|0)==e<<24>>24){e=j;f=b;while(1){d=d+-1|0;e=e+1|0;if(!d){b=0;break}f=f+1|0;if((a[e>>0]|0)!=(a[f>>0]|0))break a}return b|0}}while(0);d=j+12|0;f=a[d+11>>0]|0;i=f<<24>>24<0;f=f&255;b:do if(((i?c[j+16>>2]|0:f)|0)==(k|0)){e=c[d>>2]|0;h=i?e:d;g=(k|0)==0;e=e&255;if(i){if(g){k=1;return k|0}if(!(Vj(h,b,k)|0))b=1;else break;return b|0}if(g){k=1;return k|0}if((a[b>>0]|0)==e<<24>>24){e=b;while(1){f=f+-1|0;d=d+1|0;if(!f){b=1;break}e=e+1|0;if((a[d>>0]|0)!=(a[e>>0]|0))break b}return b|0}}while(0);d=j+24|0;f=a[d+11>>0]|0;i=f<<24>>24<0;f=f&255;c:do if(((i?c[j+28>>2]|0:f)|0)==(k|0)){e=c[d>>2]|0;h=i?e:d;g=(k|0)==0;e=e&255;if(i){if(g){k=2;return k|0}if(!(Vj(h,b,k)|0))b=2;else break;return b|0}if(g){k=2;return k|0}if((a[b>>0]|0)==e<<24>>24){e=b;while(1){f=f+-1|0;d=d+1|0;if(!f){b=2;break}e=e+1|0;if((a[d>>0]|0)!=(a[e>>0]|0))break c}return b|0}}while(0);d=j+36|0;f=a[d+11>>0]|0;i=f<<24>>24<0;f=f&255;d:do if(((i?c[j+40>>2]|0:f)|0)==(k|0)){e=c[d>>2]|0;h=i?e:d;g=(k|0)==0;e=e&255;if(i){if(g){k=3;return k|0}if(!(Vj(h,b,k)|0))b=3;else break;return b|0}if(g){k=3;return k|0}if((a[b>>0]|0)==e<<24>>24){e=b;while(1){f=f+-1|0;d=d+1|0;if(!f){b=3;break}e=e+1|0;if((a[d>>0]|0)!=(a[e>>0]|0))break d}return b|0}}while(0);d=j+48|0;f=a[d+11>>0]|0;i=f<<24>>24<0;f=f&255;e:do if(((i?c[j+52>>2]|0:f)|0)==(k|0)){e=c[d>>2]|0;h=i?e:d;g=(k|0)==0;e=e&255;if(i){if(g){k=4;return k|0}if(!(Vj(h,b,k)|0))b=4;else break;return b|0}if(g){k=4;return k|0}if((a[b>>0]|0)==e<<24>>24){e=b;while(1){f=f+-1|0;d=d+1|0;if(!f){b=4;break}e=e+1|0;if((a[d>>0]|0)!=(a[e>>0]|0))break e}return b|0}}while(0);d=j+60|0;f=a[d+11>>0]|0;i=f<<24>>24<0;f=f&255;f:do if(((i?c[j+64>>2]|0:f)|0)==(k|0)){e=c[d>>2]|0;h=i?e:d;g=(k|0)==0;e=e&255;if(i){if(g){k=5;return k|0}if(!(Vj(h,b,k)|0))b=5;else break;return b|0}if(g){k=5;return k|0}if((a[b>>0]|0)==e<<24>>24){e=b;while(1){f=f+-1|0;d=d+1|0;if(!f){b=5;break}e=e+1|0;if((a[d>>0]|0)!=(a[e>>0]|0))break f}return b|0}}while(0);d=j+72|0;f=a[d+11>>0]|0;i=f<<24>>24<0;f=f&255;g:do if(((i?c[j+76>>2]|0:f)|0)==(k|0)){e=c[d>>2]|0;h=i?e:d;g=(k|0)==0;e=e&255;if(i){if(g){k=6;return k|0}if(!(Vj(h,b,k)|0))b=6;else break;return b|0}if(g){k=6;return k|0}if((a[b>>0]|0)==e<<24>>24){e=b;while(1){f=f+-1|0;d=d+1|0;if(!f){b=6;break}e=e+1|0;if((a[d>>0]|0)!=(a[e>>0]|0))break g}return b|0}}while(0);d=j+84|0;e=a[d+11>>0]|0;i=e<<24>>24<0;e=e&255;h:do if(((i?c[j+88>>2]|0:e)|0)==(k|0)){f=c[d>>2]|0;h=i?f:d;g=(k|0)==0;f=f&255;if(i){if(g){k=7;return k|0}if(!(Vj(h,b,k)|0))b=7;else break;return b|0}if(g){k=7;return k|0}if((a[b>>0]|0)==f<<24>>24){while(1){e=e+-1|0;d=d+1|0;if(!e){b=7;break}b=b+1|0;if((a[d>>0]|0)!=(a[b>>0]|0))break h}return b|0}}while(0);k=0;return k|0}function bh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=Ia;Ia=Ia+4112|0;f=t+12|0;s=t;q=d+11|0;p=a[q>>0]|0;e=p<<24>>24<0;r=d+4|0;if(((e?c[r>>2]|0:p&255)|0)==5){p=(e?c[d>>2]|0:d)+4|0;a[p>>0]=Uj(a[p>>0]|0)|0}p=Nd(b,f)|0;c[f+4096>>2]=p;a:do if((f|0)!=(p|0)){o=b+5356|0;m=s+11|0;n=s+4|0;while(1){ih(s,c[f>>2]|0,(a[o>>0]|0)!=0);b=a[q>>0]|0;k=b<<24>>24<0;b=b&255;i=k?c[r>>2]|0:b;j=a[m>>0]|0;l=j<<24>>24<0;b:do if((i|0)==((l?c[n>>2]|0:j&255)|0)){g=c[d>>2]|0;j=k?g:d;e=l?c[s>>2]|0:s;h=(i|0)==0;g=g&255;if(k){if(h){b=1;break}b=(Vj(j,e,i)|0)==0;break}if(!h)if((a[e>>0]|0)==g<<24>>24){g=d;while(1){b=b+-1|0;g=g+1|0;if(!b){b=1;break b}e=e+1|0;if((a[g>>0]|0)!=(a[e>>0]|0)){b=0;break}}}else b=0;else b=1}else b=0;while(0);if(l)Jv(c[s>>2]|0);e=f+8|0;if(b)break;if((e|0)==(p|0))break a;else f=e}d=c[f>>2]|0;Ia=t;return d|0}while(0);d=0;Ia=t;return d|0}function ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=a+4|0;i=c[a>>2]|0;l=(c[j>>2]|0)-i|0;h=2?l>>2:l;d=h+1|0;if(d>>>0>1073741823)Lw(a);k=a+8|0;f=(c[k>>2]|0)-i|0;g=1?f>>1:f;g=(2?f>>2:f)>>>0<536870911?(g>>>0>>0?d:g):1073741823;do if(g)if(g>>>0>1073741823){a=I(8)|0;Nv(a,44817);c[a>>2]=41100;L(a|0,33144,231)}else{f=Gv(g<<2)|0;e=f;break}else{e=0;f=0}while(0);d=f+(h<<2)|0;c[d>>2]=c[b>>2];if((l|0)>0)BJ(e|0,i|0,l|0)|0;c[a>>2]=f;c[j>>2]=d+4;c[k>>2]=f+(g<<2);if(!i)return;Jv(i);return}function dh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=Ia;Ia=Ia+32|0;k=r+4|0;g=r;d=a+16|0;b=c[d>>2]|0;if(b>>>0>15){c[d>>2]=b+-16;o=a+4|0;m=c[o>>2]|0;p=c[m>>2]|0;m=m+4|0;c[o>>2]=m;q=a+8|0;b=c[q>>2]|0;n=a+12|0;l=c[n>>2]|0;d=l;do if((b|0)==(l|0)){j=m;f=c[a>>2]|0;e=f;if(m>>>0>f>>>0){e=j-e|0;e=((2?e>>2:e)+1|0)/-2|0;f=m+(e<<2)|0;d=b-j|0;if(!d)b=f;else{CJ(f|0,m|0,d|0)|0;b=(c[o>>2]|0)+(e<<2)|0}a=f+((2?d>>2:d)<<2)|0;c[q>>2]=a;c[o>>2]=b;b=a;break}e=d-e|0;e=(e|0)==0?1:1?e>>1:e;i=2?e>>>2:e;do if(e)if(e>>>0>1073741823){r=I(8)|0;Nv(r,44817);c[r>>2]=41100;L(r|0,33144,231)}else{h=Gv(e<<2)|0;break}else h=0;while(0);k=h;d=h+(i<<2)|0;l=d;g=h+(e<<2)|0;if((m|0)==(b|0)){d=f;b=l}else{f=b+-4-j|0;f=(2?f>>>2:f)+1|0;e=m;while(1){c[d>>2]=c[e>>2];e=e+4|0;if((e|0)==(b|0))break;else d=d+4|0}d=c[a>>2]|0;b=h+(f+i<<2)|0}c[a>>2]=k;c[o>>2]=l;c[q>>2]=b;c[n>>2]=g;if(d){Jv(d);b=c[q>>2]|0}}while(0);c[b>>2]=p;c[q>>2]=(c[q>>2]|0)+4;Ia=r;return}q=a+8|0;b=c[q>>2]|0;p=a+4|0;f=b-(c[p>>2]|0)|0;f=2?f>>2:f;o=a+12|0;d=c[o>>2]|0;e=d-(c[a>>2]|0)|0;if(f>>>0>=(2?e>>2:e)>>>0){b=(e|0)==0?1:1?e>>1:e;j=k+12|0;c[j>>2]=0;c[k+16>>2]=a+12;do if(b)if(b>>>0>1073741823){r=I(8)|0;Nv(r,44817);c[r>>2]=41100;L(r|0,33144,231)}else{d=Gv(b<<2)|0;break}else d=0;while(0);c[k>>2]=d;n=d+(f<<2)|0;i=k+8|0;c[i>>2]=n;h=k+4|0;c[h>>2]=n;c[j>>2]=d+(b<<2);c[g>>2]=Gv(6912)|0;gh(k,g);b=c[q>>2]|0;d=c[p>>2]|0;if((b|0)!=(d|0)){do{b=b+-4|0;hh(k,b);d=c[p>>2]|0}while((b|0)!=(d|0));b=c[q>>2]|0}e=d;f=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=f;c[p>>2]=c[h>>2];c[h>>2]=e;c[q>>2]=c[i>>2];c[i>>2]=b;a=c[o>>2]|0;c[o>>2]=c[j>>2];c[j>>2]=a;if((d|0)!=(b|0)){a=b+-4-e|0;c[i>>2]=b+(~(2?a>>>2:a)<<2)}if(f|0)Jv(f);Ia=r;return}if((d|0)!=(b|0)){c[k>>2]=Gv(6912)|0;eh(a,k);Ia=r;return}c[k>>2]=Gv(6912)|0;fh(a,k);m=c[p>>2]|0;n=c[m>>2]|0;m=m+4|0;c[p>>2]=m;b=c[q>>2]|0;l=c[o>>2]|0;d=l;do if((b|0)==(l|0)){j=m;f=c[a>>2]|0;e=f;if(m>>>0>f>>>0){e=j-e|0;e=((2?e>>2:e)+1|0)/-2|0;f=m+(e<<2)|0;d=b-j|0;if(!d)b=f;else{CJ(f|0,m|0,d|0)|0;b=(c[p>>2]|0)+(e<<2)|0}a=f+((2?d>>2:d)<<2)|0;c[q>>2]=a;c[p>>2]=b;b=a;break}e=d-e|0;e=(e|0)==0?1:1?e>>1:e;i=2?e>>>2:e;do if(e)if(e>>>0>1073741823){r=I(8)|0;Nv(r,44817);c[r>>2]=41100;L(r|0,33144,231)}else{h=Gv(e<<2)|0;break}else h=0;while(0);k=h;d=h+(i<<2)|0;l=d;g=h+(e<<2)|0;if((m|0)==(b|0)){d=f;b=l}else{f=b+-4-j|0;f=(2?f>>>2:f)+1|0;e=m;while(1){c[d>>2]=c[e>>2];e=e+4|0;if((e|0)==(b|0))break;else d=d+4|0}d=c[a>>2]|0;b=h+(f+i<<2)|0}c[a>>2]=k;c[p>>2]=l;c[q>>2]=b;c[o>>2]=g;if(d){Jv(d);b=c[q>>2]|0}}while(0);c[b>>2]=n;c[q>>2]=(c[q>>2]|0)+4;Ia=r;return}function eh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=a+8|0;n=c[q>>2]|0;o=a+12|0;p=c[o>>2]|0;d=p;if((n|0)!=(p|0)){p=n;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}p=a+4|0;m=c[p>>2]|0;j=m;g=c[a>>2]|0;e=g;if(m>>>0>g>>>0){d=j-e|0;d=((2?d>>2:d)+1|0)/-2|0;f=m+(d<<2)|0;e=n-j|0;if(!e)d=f;else{CJ(f|0,m|0,e|0)|0;d=(c[p>>2]|0)+(d<<2)|0}a=f+((2?e>>2:e)<<2)|0;c[q>>2]=a;c[p>>2]=d;p=a;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}e=d-e|0;e=(e|0)==0?1:1?e>>1:e;f=2?e>>>2:e;do if(e)if(e>>>0>1073741823){b=I(8)|0;Nv(b,44817);c[b>>2]=41100;L(b|0,33144,231)}else{i=Gv(e<<2)|0;break}else i=0;while(0);k=i;d=i+(f<<2)|0;l=d;h=i+(e<<2)|0;if((m|0)==(n|0)){e=g;d=l}else{e=n+-4-j|0;f=f+(2?e>>>2:e)+1|0;e=m;while(1){c[d>>2]=c[e>>2];e=e+4|0;if((e|0)==(n|0))break;else d=d+4|0}e=c[a>>2]|0;d=i+(f<<2)|0}c[a>>2]=k;c[p>>2]=l;c[q>>2]=d;c[o>>2]=h;if(!e){p=d;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}Jv(e);p=c[q>>2]|0;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}function fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=a+4|0;d=c[p>>2]|0;i=d;o=c[a>>2]|0;f=o;do if((d|0)==(o|0)){o=a+8|0;m=c[o>>2]|0;n=a+12|0;l=c[n>>2]|0;e=l;if(m>>>0>>0){f=m;h=e-f|0;h=((2?h>>2:h)+1|0)/2|0;g=m+(h<<2)|0;f=f-i|0;e=g+(0-(2?f>>2:f)<<2)|0;if(!f){d=g;e=g}else{CJ(e|0,d|0,f|0)|0;d=e;e=(c[o>>2]|0)+(h<<2)|0}c[p>>2]=d;c[o>>2]=e;break}e=e-f|0;e=(e|0)==0?1:1?e>>1:e;f=e+3|0;f=2?f>>>2:f;do if(e)if(e>>>0>1073741823){b=I(8)|0;Nv(b,44817);c[b>>2]=41100;L(b|0,33144,231)}else{h=Gv(e<<2)|0;break}else h=0;while(0);j=h;l=h+(f<<2)|0;k=l;g=h+(e<<2)|0;if((d|0)==(m|0))e=k;else{e=m+-4-i|0;f=(2?e>>>2:e)+f+1|0;e=l;while(1){c[e>>2]=c[d>>2];d=d+4|0;if((d|0)==(m|0))break;else e=e+4|0}d=c[a>>2]|0;e=h+(f<<2)|0}c[a>>2]=j;c[p>>2]=k;c[o>>2]=e;c[n>>2]=g;if(!d)d=l;else{Jv(d);d=c[p>>2]|0}}while(0);c[d+-4>>2]=c[b>>2];c[p>>2]=(c[p>>2]|0)+-4;return}function gh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=a+8|0;n=c[q>>2]|0;o=a+12|0;p=c[o>>2]|0;d=p;if((n|0)!=(p|0)){p=n;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}p=a+4|0;m=c[p>>2]|0;j=m;g=c[a>>2]|0;e=g;if(m>>>0>g>>>0){d=j-e|0;d=((2?d>>2:d)+1|0)/-2|0;f=m+(d<<2)|0;e=n-j|0;if(!e)d=f;else{CJ(f|0,m|0,e|0)|0;d=(c[p>>2]|0)+(d<<2)|0}a=f+((2?e>>2:e)<<2)|0;c[q>>2]=a;c[p>>2]=d;p=a;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}e=d-e|0;e=(e|0)==0?1:1?e>>1:e;f=2?e>>>2:e;do if(e)if(e>>>0>1073741823){b=I(8)|0;Nv(b,44817);c[b>>2]=41100;L(b|0,33144,231)}else{i=Gv(e<<2)|0;break}else i=0;while(0);k=i;d=i+(f<<2)|0;l=d;h=i+(e<<2)|0;if((m|0)==(n|0)){e=g;d=l}else{e=n+-4-j|0;f=f+(2?e>>>2:e)+1|0;e=m;while(1){c[d>>2]=c[e>>2];e=e+4|0;if((e|0)==(n|0))break;else d=d+4|0}e=c[a>>2]|0;d=i+(f<<2)|0}c[a>>2]=k;c[p>>2]=l;c[q>>2]=d;c[o>>2]=h;if(!e){p=d;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}Jv(e);p=c[q>>2]|0;b=c[b>>2]|0;c[p>>2]=b;b=c[q>>2]|0;b=b+4|0;c[q>>2]=b;return}function hh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=a+4|0;d=c[p>>2]|0;i=d;o=c[a>>2]|0;f=o;do if((d|0)==(o|0)){o=a+8|0;m=c[o>>2]|0;n=a+12|0;l=c[n>>2]|0;e=l;if(m>>>0>>0){f=m;h=e-f|0;h=((2?h>>2:h)+1|0)/2|0;g=m+(h<<2)|0;f=f-i|0;e=g+(0-(2?f>>2:f)<<2)|0;if(!f){d=g;e=g}else{CJ(e|0,d|0,f|0)|0;d=e;e=(c[o>>2]|0)+(h<<2)|0}c[p>>2]=d;c[o>>2]=e;break}e=e-f|0;e=(e|0)==0?1:1?e>>1:e;f=e+3|0;f=2?f>>>2:f;do if(e)if(e>>>0>1073741823){b=I(8)|0;Nv(b,44817);c[b>>2]=41100;L(b|0,33144,231)}else{h=Gv(e<<2)|0;break}else h=0;while(0);j=h;l=h+(f<<2)|0;k=l;g=h+(e<<2)|0;if((d|0)==(m|0))e=k;else{e=m+-4-i|0;f=(2?e>>>2:e)+f+1|0;e=l;while(1){c[e>>2]=c[d>>2];d=d+4|0;if((d|0)==(m|0))break;else e=e+4|0}d=c[a>>2]|0;e=h+(f<<2)|0}c[a>>2]=j;c[p>>2]=k;c[o>>2]=e;c[n>>2]=g;if(!d)d=l;else{Jv(d);d=c[p>>2]|0}}while(0);c[d+-4>>2]=c[b>>2];c[p>>2]=(c[p>>2]|0)+-4;return}function ih(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=Ia;Ia=Ia+48|0;n=r+24|0;o=r+12|0;p=r;k=d&61440;h=(k|0)==36864;i=6?d>>>6:d;j=h?64:i&63;g=d&63;switch(d|0){case 0:{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=6;a[b>>0]=a[44885]|0;a[b+1>>0]=a[44886]|0;a[b+2>>0]=a[44887]|0;a[b+3>>0]=a[44888]|0;a[b+4>>0]=a[44889]|0;a[b+5>>0]=a[44890]|0;a[b+6>>0]=0;Ia=r;return}case 65:{c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=4;c[b>>2]=808464432;a[b+4>>0]=0;Ia=r;return}default:{l=d&49152;m=(l|0)==32768;a:do if(m){f=d&12288;if(f<<16>>16<8192)switch(f<<16>>16){case 4096:{f=1;break a}default:{q=6;break a}}else switch(f<<16>>16){case 8192:{f=1;break a}default:{q=6;break a}}}else q=6;while(0);if((q|0)==6)f=(l|0)!=49152;e=f|e?g:(g>>>0>j>>>0?6:2)|j&120;if(h){f=a[44892+(i&15)>>0]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;g=64}else{c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;g=(3?j>>>3:j)+49&255;f=(j&7)+97&255}a[o+11>>0]=2;a[o>>0]=f;a[o+1>>0]=g;a[o+2>>0]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;j=p+11|0;a[j>>0]=2;a[p>>0]=(e&7)+97;a[p+1>>0]=(3?e>>>3:e)+49;a[p+2>>0]=0;i=dw(o,p,2)|0;c[n>>2]=c[i>>2];c[n+4>>2]=c[i+4>>2];c[n+8>>2]=c[i+8>>2];c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;if((a[j>>0]|0)<0)Jv(c[p>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);if(m){if((d&12288|0)==8192)q=17}else if((l|0)==16384)q=17;if((q|0)==17)fw(n,a[44909+((k|0)==40960?6:((12?d>>>12:d)&3)+2|0)>>0]|0);c[b>>2]=c[n>>2];c[b+4>>2]=c[n+4>>2];c[b+8>>2]=c[n+8>>2];Ia=r;return}}}function jh(a){a=a|0;c[a>>2]=34364;wf(a+16|0);zv(a);return}function kh(a){a=a|0;c[a>>2]=34364;wf(a+16|0);zv(a);Jv(a);return}function lh(a){a=a|0;a=a+16|0;Xa[c[c[a>>2]>>2]&255](a);return}function mh(a){a=a|0;Jv(a);return}function nh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=Ia;Ia=Ia+144|0;i=j;e=i+64|0;g=i+8|0;c[g>>2]=33264;f=i+12|0;c[i>>2]=29052;c[e>>2]=29072;c[i+4>>2]=0;Ol(i+64|0,f);c[i+136>>2]=0;c[i+140>>2]=-1;c[i>>2]=33244;c[e>>2]=33284;c[g>>2]=33264;Tl(f);c[f>>2]=33340;g=i+44|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[i+60>>2]=24;h=i+8|0;if((((d|0)>-1?d:0-d|0)|0)<31872)bm(Tb(h,44976,3)|0,(d*100|0)/208|0)|0;else{k=Tb(h,44980,5)|0;bm(k,(((d|0)>0?32001:-32001)-d|0)/2|0)|0}bc(b,f);c[i>>2]=33244;c[e>>2]=33284;c[h>>2]=33264;c[f>>2]=33340;if((a[g+11>>0]|0)>=0){Dk(f);Ll(i,33296);yk(e);Ia=j;return}Jv(c[g>>2]|0);Dk(f);Ll(i,33296);yk(e);Ia=j;return}function oh(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+11>>0]=2;a[b>>0]=(d&7)+97;a[b+1>>0]=(3?d>>>3:d)+49;a[b+2>>0]=0;return}function ph(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295326]=0;c[295327]=0;c[295328]=0;f=Gv(96)|0;c[295327]=f;c[295326]=f;c[295328]=f+96;Rv(f,r);f=(c[295327]|0)+12|0;c[295327]=f;Rv(f,m);f=(c[295327]|0)+12|0;c[295327]=f;Rv(f,n);f=(c[295327]|0)+12|0;c[295327]=f;Rv(f,o);f=(c[295327]|0)+12|0;c[295327]=f;Rv(f,p);f=(c[295327]|0)+12|0;c[295327]=f;Rv(f,q);f=(c[295327]|0)+12|0;c[295327]=f;Rv(f,d);f=(c[295327]|0)+12|0;c[295327]=f;Rv(f,b);c[295327]=(c[295327]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){c[295324]=0;c[295325]=0;c[295323]=1181296;Ia=s;return}Jv(c[r>>2]|0);c[295324]=0;c[295325]=0;c[295323]=1181296;Ia=s;return}function qh(a){a=a|0;vf();return}function rh(a){a=a|0;Sg(1181240,~~+sh(a)>>>0);return}function sh(b){b=b|0;var d=0,e=0,f=0.0;e=b+24|0;d=a[e+11>>0]|0;if(((d<<24>>24<0?c[b+28>>2]|0:d&255)|0)==4){d=b+12|0;if(!(mw(e,0,-1,45049,4)|0)){f=+Ew(d,0);return +f}}else d=b+12|0;e=a[d+11>>0]|0;if(((e<<24>>24<0?c[b+16>>2]|0:e&255)|0)!=4){f=0.0;return +f}f=+((mw(d,0,-1,49942,4)|0)==0&1);return +f}function th(b){b=b|0;var d=0,e=0;e=Ia;Ia=Ia+16|0;d=e;Rv(d,b+12|0);Jc(d);if((a[d+11>>0]|0)>=0){Ia=e;return}Jv(c[d>>2]|0);Ia=e;return}function uh(a,b){a=a|0;b=b|0;Rv(a,b+12|0);return}function vh(a){a=a|0;Gg(1181196,~~+sh(a)>>>0);return}function wh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;h=a[d+11>>0]|0;g=h<<24>>24<0;f=g?c[d>>2]|0:d;h=f+(g?c[d+4>>2]|0:h&255)|0;g=a[e+11>>0]|0;d=g<<24>>24<0;b=d?c[e>>2]|0:e;e=d?c[e+4>>2]|0:g&255;g=b+e|0;if(!e){h=0;return h|0}e=f;while(1){if((e|0)==(h|0)){b=1;d=7;break}f=a[b>>0]|0;d=Uj(a[e>>0]|0)|0;f=Uj(f<<24>>24)|0;if((d|0)<(f|0)){b=1;d=7;break}if((f|0)<(d|0)){b=0;d=7;break}b=b+1|0;if((b|0)==(g|0)){b=0;d=7;break}else e=e+1|0}if((d|0)==7)return b|0;return 0} +function pw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;h=i;if(d>>>0>1073741807)Pv(b);do if(d>>>0>=2){g=d+4&-4;if(g>>>0>1073741823)ea();else{f=Gv(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=d;break}}else{a[b+8+3>>0]=d;f=b}while(0);qw(f,d,e)|0;c[h>>2]=0;bn(f+(d<<2)|0,h);Ia=i;return}function qw(a,b,c){a=a|0;b=b|0;c=c|0;if(b)Yj(a,c,b)|0;return a|0}function rw(b){b=b|0;var d=0;d=b+8|0;if((a[d+3>>0]|0)<0)Mr(c[b>>2]|0,c[d>>2]<<2);return}function sw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+16|0;k=l;f=b+8|0;j=f+3|0;g=a[j>>0]|0;i=g<<24>>24<0;if(i)h=(c[f>>2]&2147483647)+-1|0;else h=1;do if(h>>>0>=e>>>0){if(i)f=c[b>>2]|0;else f=b;tw(f,d,e)|0;c[k>>2]=0;bn(f+(e<<2)|0,k);if((a[j>>0]|0)<0){c[b+4>>2]=e;break}else{a[j>>0]=e;break}}else{if(i)f=c[b+4>>2]|0;else f=g&255;uw(b,h,e-h|0,f,0,f,e,d)}while(0);Ia=l;return b|0}function tw(a,b,c){a=a|0;b=b|0;c=c|0;if(c)Xj(a,b,c)|0;return a|0}function uw(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+16|0;o=p;if((1073741806-d|0)>>>0>>0)Pv(b);l=b+8|0;if((a[l+3>>0]|0)<0)n=c[b>>2]|0;else n=b;if(d>>>0<536870887){e=e+d|0;k=d<<1;e=e>>>0>>0?k:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823)ea();else m=e}else m=1073741807;k=Gv(m<<2)|0;if(g|0)jl(k,n,g)|0;if(i|0)jl(k+(g<<2)|0,j,i)|0;f=f-h|0;e=f-g|0;if(e|0)jl(k+(g<<2)+(i<<2)|0,n+(g<<2)+(h<<2)|0,e)|0;e=d+1|0;if((e|0)!=2)Mr(n,e<<2);c[b>>2]=k;c[l>>2]=m|-2147483648;n=f+i|0;c[b+4>>2]=n;c[o>>2]=0;bn(k+(n<<2)|0,o);Ia=p;return}function vw(a,b){a=a|0;b=b|0;return sw(a,b,dq(b)|0)|0}function ww(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if((1073741807-d|0)>>>0>>0)Pv(b);k=b+8|0;if((a[k+3>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<536870887){e=e+d|0;j=d<<1;e=e>>>0>>0?j:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823)ea();else l=e}else l=1073741807;j=Gv(l<<2)|0;if(g|0)jl(j,m,g)|0;e=f-h-g|0;if(e|0)jl(j+(g<<2)+(i<<2)|0,m+(g<<2)+(h<<2)|0,e)|0;e=d+1|0;if((e|0)!=2)Mr(m,e<<2);c[b>>2]=j;c[k>>2]=l|-2147483648;return}function xw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+16|0;k=l;g=b+8|0;j=g+3|0;f=a[j>>0]|0;i=f<<24>>24<0;if(i){h=c[b+4>>2]|0;f=(c[g>>2]&2147483647)+-1|0}else{h=f&255;f=1}if((f-h|0)>>>0>=e>>>0){if(e|0){if(i)g=c[b>>2]|0;else g=b;jl(g+(h<<2)|0,d,e)|0;f=h+e|0;if((a[j>>0]|0)<0)c[b+4>>2]=f;else a[j>>0]=f;c[k>>2]=0;bn(g+(f<<2)|0,k)}}else uw(b,f,h+e-f|0,h,h,0,e,d);Ia=l;return b|0}function yw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;i=k;j=k+4|0;c[i>>2]=d;d=b+8|0;h=d+3|0;e=a[h>>0]|0;g=e<<24>>24<0;if(g){d=(c[d>>2]&2147483647)+-1|0;f=c[b+4>>2]|0}else{d=1;f=e&255}if((f|0)==(d|0)){ww(b,d,1,d,d,0,0);if((a[h>>0]|0)<0)e=8;else e=7}else if(g)e=8;else e=7;if((e|0)==7){a[h>>0]=f+1;d=b}else if((e|0)==8){d=c[b>>2]|0;c[b+4>>2]=f+1}b=d+(f<<2)|0;bn(b,i);c[j>>2]=0;bn(b+4|0,j);Ia=k;return}function zw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;f=0;while(1){if((f|0)==3)break;c[b+(f<<2)>>2]=0;f=f+1|0}h=Ml(d)|0;g=e+11|0;f=a[g>>0]|0;f=f<<24>>24<0?c[e+4>>2]|0:f&255;nw(b,d,h,f+h|0);dw(b,(a[g>>0]|0)<0?c[e>>2]|0:e,f)|0;return}function Aw(b){b=b|0;var d=0,e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}g=b+11|0;f=a[g>>0]|0;f=f<<24>>24<0?c[b+4>>2]|0:f&255;d=Ml(48366)|0;nw(e,(a[g>>0]|0)<0?c[b>>2]|0:b,f,f+d|0);dw(e,48366,d)|0;Dw(e)}function Bw(b){b=b|0;var d=0,e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[e+(d<<2)>>2]=0;d=d+1|0}g=b+11|0;f=a[g>>0]|0;f=f<<24>>24<0?c[b+4>>2]|0:f&255;d=Ml(48346)|0;nw(e,(a[g>>0]|0)<0?c[b>>2]|0:b,f,f+d|0);dw(e,48346,d)|0;Cw(e)}function Cw(b){b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=c[8596]|0;c[d>>2]=(a[b+11>>0]|0)<0?c[b>>2]|0:b;qj(e,48362,d)|0;ea()}function Dw(b){b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=c[8596]|0;c[d>>2]=(a[b+11>>0]|0)<0?c[b>>2]|0:b;qj(e,48362,d)|0;ea()}function Ew(a,b){a=a|0;b=b|0;var d=0.0,e=0,f=0;e=Ia;Ia=Ia+16|0;f=e;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;Sv(f,48381,Ml(48381)|0);d=+Fw(f,a,b);Wv(f);Ia=e;return +d}function Fw(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Gw(a,b,c))}function Gw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0.0,g=0,h=0,i=0,j=0,k=0;i=Ia;Ia=Ia+16|0;h=i;c[h>>2]=0;g=(a[d+11>>0]|0)<0?c[d>>2]|0:d;k=c[(Nh()|0)>>2]|0;c[(Nh()|0)>>2]=0;f=+Oi(g,h);j=Nh()|0;d=c[j>>2]|0;c[j>>2]=k;if((d|0)==34)Aw(b);d=c[h>>2]|0;if((d|0)==(g|0))Bw(b);if(e|0)c[e>>2]=d-g;Ia=i;return +f}function Hw(a,b){a=a|0;b=+b;var c=0,d=0;c=Ia;Ia=Ia+16|0;d=c;Iw(d);Jw(a,d,b);Wv(d);Ia=c;return}function Iw(b){b=b|0;var d=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}if((a[b+11>>0]|0)<0)d=(c[b+8>>2]&2147483647)+-1|0;else d=10;aw(b,d,0);return}function Jw(b,d,e){b=b|0;d=d|0;e=+e;var f=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;j=k;i=d+11|0;f=a[i>>0]|0;if(f<<24>>24<0)h=c[d+4>>2]|0;else h=f&255;while(1){if(f<<24>>24<0)f=c[d>>2]|0;else f=d;g[j>>3]=e;f=rj(f,h+1|0,48386,j)|0;if((f|0)>-1)if(f>>>0>h>>>0)h=f;else break;else h=h<<1|1;aw(d,h,0);f=a[i>>0]|0}aw(d,f,0);c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];f=0;while(1){if((f|0)==3)break;c[d+(f<<2)>>2]=0;f=f+1|0}Ia=k;return}function Kw(a,b){a=a|0;b=b|0;ea()}function Lw(a){a=a|0;ea()}function Mw(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;f=Ia;Ia=Ia+1072|0;j=f+1056|0;b=f+1048|0;k=f+1040|0;i=f+1024|0;h=f+1068|0;g=f+1064|0;e=f;f=f+1060|0;a=Nw()|0;if(a|0?(d=c[a>>2]|0,d|0):0){a=d+48|0;if(!(Ow(a)|0)){c[b>>2]=48525;Rw(48475,b)}b=Pw(a)|0;if((b|0)==1126902529&(E()|0)==1129074247)a=c[d+44>>2]|0;else a=d+80|0;c[h>>2]=a;d=c[d>>2]|0;c[f>>2]=1024;b=d+4|0;a=Qw(c[b>>2]|0,e,f,g)|0;if(c[g>>2]|0)a=c[b>>2]|0;if(Oa[c[(c[7996]|0)+16>>2]&31](31984,d,h)|0){k=c[h>>2]|0;k=La[c[(c[k>>2]|0)+8>>2]&127](k)|0;c[i>>2]=48525;c[i+4>>2]=a;c[i+8>>2]=k;Rw(48389,i)}else{c[k>>2]=48525;c[k+4>>2]=a;Rw(48434,k)}}Rw(48513,j)}function Nw(){return 1183416}function Ow(a){a=a|0;a=Pw(a)|0;return (a&-256|0)==1126902528&(E()|0)==1129074247|0}function Pw(a){a=a|0;var b=0;b=a;a=c[b>>2]|0;D(c[b+4>>2]|0);return a|0}function Qw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+4496|0;h=i;f=i+4472|0;if((a|0)!=0?(g=(d|0)==0,!((b|0)!=0&g)):0){ix(h,a,a+(li(a)|0)|0);jx(f);a=kx(h)|0;if(a)if(mx(b,d,f)|0){nx(a,f);ox(f,0);if(!g)c[d>>2]=px(f)|0;b=qx(f)|0;a=0}else a=-1;else a=-2;if(e|0)c[e>>2]=a;lx(h);b=(a|0)==0?b:0}else if(!e)b=0;else{c[e>>2]=-3;b=0}Ia=i;return b|0}function Rw(a,b){a=a|0;b=b|0;var d=0;d=Ia;Ia=Ia+16|0;c[d>>2]=b;b=c[8596]|0;ni(b,a,d)|0;fj(10,b)|0;ea()}function Sw(a){a=a|0;return}function Tw(a){a=a|0;Sw(a);Jv(a);return}function Uw(a){a=a|0;return}function Vw(a){a=a|0;return}function Ww(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+64|0;k=l;if(!(_w(d,e,0)|0))if((e|0)!=0?(j=cx(e,32008,31992,0)|0,(j|0)!=0):0){c[k>>2]=j;c[k+4>>2]=0;c[k+8>>2]=d;c[k+12>>2]=-1;d=k+16|0;g=k+24|0;e=k+48|0;h=d;i=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));b[d+36>>1]=0;a[d+38>>0]=0;c[e>>2]=1;_a[c[(c[j>>2]|0)+28>>2]&15](j,k,c[f>>2]|0,1);if((c[g>>2]|0)==1){c[f>>2]=c[d>>2];d=1}else d=0}else d=0;else d=1;Ia=l;return d|0}function Xw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(_w(a,c[b+8>>2]|0,g)|0)bx(0,b,d,e,f);return}function Yw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;do if(!(_w(b,c[d+8>>2]|0,g)|0)){if(_w(b,c[d>>2]|0,g)|0){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}}else ax(0,d,e,f);while(0);return}function Zw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(_w(a,c[b+8>>2]|0,0)|0)$w(0,b,d,e);return}function _w(a,b,d){a=a|0;b=b|0;d=d|0;if(d)d=(Vi(c[a+4>>2]|0,c[b+4>>2]|0)|0)==0;else d=(a|0)==(b|0);return d|0}function $w(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=d+16|0;b=c[g>>2]|0;do if(b){if((b|0)!=(e|0)){f=d+36|0;c[f>>2]=(c[f>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}b=d+24|0;if((c[b>>2]|0)==2)c[b>>2]=f}else{c[g>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function ax(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((c[b+4>>2]|0)==(d|0)?(f=b+28|0,(c[f>>2]|0)!=1):0)c[f>>2]=e;return}function bx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;f=c[b>>2]|0;if(!f){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((f|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;a[d+54>>0]=1;break}b=d+24|0;f=c[b>>2]|0;if((f|0)==2){c[b>>2]=g;f=g}if((f|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function cx(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+64|0;o=p;m=c[d>>2]|0;n=d+(c[m+-8>>2]|0)|0;m=c[m+-4>>2]|0;c[o>>2]=f;c[o+4>>2]=d;c[o+8>>2]=e;c[o+12>>2]=g;g=o+16|0;d=o+20|0;h=o+24|0;j=o+28|0;i=o+32|0;e=o+40|0;k=g;l=k+36|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(l|0));b[g+36>>1]=0;a[g+38>>0]=0;a:do if(_w(m,f,0)|0){c[o+48>>2]=1;ab[c[(c[m>>2]|0)+20>>2]&15](m,o,n,n,1,0);g=(c[h>>2]|0)==1?n:0}else{$a[c[(c[m>>2]|0)+24>>2]&3](m,o,n,1,0);switch(c[o+36>>2]|0){case 0:{g=(c[e>>2]|0)==1&(c[j>>2]|0)==1&(c[i>>2]|0)==1?c[d>>2]|0:0;break a}case 1:break;default:{g=0;break a}}if((c[h>>2]|0)!=1?!((c[e>>2]|0)==0&(c[j>>2]|0)==1&(c[i>>2]|0)==1):0){g=0;break}g=c[g>>2]|0}while(0);Ia=p;return g|0}function dx(a){a=a|0;Sw(a);Jv(a);return}function ex(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;if(_w(a,c[b+8>>2]|0,g)|0)bx(0,b,d,e,f);else{a=c[a+8>>2]|0;ab[c[(c[a>>2]|0)+20>>2]&15](a,b,d,e,f,g)}return}function fx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;a:do if(!(_w(b,c[d+8>>2]|0,g)|0)){if(!(_w(b,c[d>>2]|0,g)|0)){b=c[b+8>>2]|0;$a[c[(c[b>>2]|0)+24>>2]&3](b,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;h=d+44|0;do if((c[h>>2]|0)!=4){f=d+52|0;a[f>>0]=0;j=d+53|0;a[j>>0]=0;b=c[b+8>>2]|0;ab[c[(c[b>>2]|0)+20>>2]&15](b,d,e,e,1,g);if(a[j>>0]|0){j=(a[f>>0]|0)==0;c[h>>2]=3;if(j)break;else break a}else{c[h>>2]=4;break}}while(0);c[i>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else ax(0,d,e,f);while(0);return}function gx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(_w(a,c[b+8>>2]|0,0)|0)$w(0,b,d,e);else{a=c[a+8>>2]|0;_a[c[(c[a>>2]|0)+28>>2]&15](a,b,d,e)}return}function hx(a){a=a|0;return}function ix(a,b,c){a=a|0;b=b|0;c=c|0;LI(a,b,c);return}function jx(a){a=a|0;c[a+12>>2]=-1;c[a+16>>2]=-1;return}function kx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+48|0;e=g+32|0;h=g+24|0;f=g;b=g+16|0;d=g+8|0;Fx(h,48704);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];do if(Gx(a,e)|0){b=Ix(Hx(a)|0)|0;c[e>>2]=b;if(!b)b=0;else{if((Jx(a,0)|0)<<24>>24==46){h=a+4|0;Kx(f,c[a>>2]|0,c[h>>2]|0);b=Lx(a,e,f)|0;c[e>>2]=b;c[a>>2]=c[h>>2]}h=(Mx(a)|0)==0;b=h?b:0}}else{Fx(b,48707);c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];if(!(Gx(a,e)|0)){b=Rx(Hx(a)|0)|0;h=(Mx(a)|0)==0;b=h?b:0;break}h=Ix(Hx(a)|0)|0;c[f>>2]=h;if(((h|0)!=0?(Fx(d,48712),c[e>>2]=c[d>>2],c[e+4>>2]=c[d+4>>2],Gx(a,e)|0):0)?(h=Nx(a,95)|0,Ox(e,a,0),!(h&(Px(e)|0))):0){if((Jx(a,0)|0)<<24>>24==46)c[a>>2]=c[a+4>>2];if(!(Mx(a)|0))b=Qx(a,48726,f)|0;else b=0}else b=0}while(0);Ia=g;return b|0}function lx(a){a=a|0;wx(a+368|0);xx(a+332|0);yx(a+288|0);zx(a+148|0);zx(a+8|0);return}function mx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(!a){a=kk(1024)|0;if(!a)a=0;else{b=1024;e=4}}else{b=c[b>>2]|0;e=4}if((e|0)==4){vx(d,a,b);a=1}return a|0}function nx(b,d){b=b|0;d=d|0;Ya[c[(c[b>>2]|0)+16>>2]&127](b,d);if((a[b+5>>0]|0)!=1)Ya[c[(c[b>>2]|0)+20>>2]&127](b,d);return}function ox(b,d){b=b|0;d=d|0;var e=0,f=0;rx(b,1);e=c[b>>2]|0;f=b+4|0;b=c[f>>2]|0;c[f>>2]=b+1;a[e+b>>0]=d;return}function px(a){a=a|0;return c[a+4>>2]|0}function qx(a){a=a|0;return c[a>>2]|0}function rx(a,b){a=a|0;b=b|0;var d=0,e=0;e=(c[a+4>>2]|0)+b|0;d=a+8|0;b=c[d>>2]|0;if(e>>>0>=b>>>0?(b=b<<1,e=b>>>0>>0?e:b,c[d>>2]=e,e=mk(c[a>>2]|0,e)|0,c[a>>2]=e,(e|0)==0):0)sx();return}function sx(){var a=0,b=0;b=Nw()|0;if((b|0?(a=c[b>>2]|0,a|0):0)?Ow(a+48|0)|0:0)tx(c[a+12>>2]|0);tx(ux()|0)}function tx(a){a=a|0;var b=0;b=Ia;Ia=Ia+16|0;Wa[a&3]();Rw(48664,b)}function ux(){return 2}function vx(a,b,d){a=a|0;b=b|0;d=d|0;c[a+4>>2]=0;c[a>>2]=b;c[a+8>>2]=d;return}function wx(a){a=a|0;Dx(a);return}function xx(a){a=a|0;if(!(Cx(a)|0))lk(c[a>>2]|0);return}function yx(a){a=a|0;if(!(Bx(a)|0))lk(c[a>>2]|0);return}function zx(a){a=a|0;if(!(Ax(a)|0))lk(c[a>>2]|0);return}function Ax(a){a=a|0;return (c[a>>2]|0)==(a+12|0)|0}function Bx(a){a=a|0;return (c[a>>2]|0)==(a+12|0)|0}function Cx(a){a=a|0;return (c[a>>2]|0)==(a+12|0)|0}function Dx(a){a=a|0;Ex(a);return}function Ex(a){a=a|0;var b=0,d=0;d=a+4096|0;while(1){b=c[d>>2]|0;if(!b)break;c[d>>2]=c[b>>2];if((a|0)!=(b|0))lk(b)}c[a>>2]=0;c[a+4>>2]=0;c[d>>2]=a;return}function Fx(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=b+(li(b)|0);return}function Gx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Ia;Ia=Ia+32|0;e=d+16|0;f=d+8|0;g=d;Kx(f,c[a>>2]|0,c[a+4>>2]|0);j=b;i=c[j+4>>2]|0;h=g;c[h>>2]=c[j>>2];c[h+4>>2]=i;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];if(YC(f,e)|0){b=Vy(b)|0;c[a>>2]=(c[a>>2]|0)+b;b=1}else b=0;Ia=d;return b|0}function Hx(a){a=a|0;return a|0}function Ix(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+64|0;k=n+48|0;h=n+40|0;j=n+24|0;i=n+20|0;g=n+16|0;e=n+8|0;m=n;switch((Jx(b,0)|0)<<24>>24){case 84:case 71:{d=TH(Hx(b)|0)|0;break}default:{c[h>>2]=b;UH(j,b);l=Hx(b)|0;d=XE(l,j)|0;c[i>>2]=d;if((d|0)!=0?!(VH(b,j)|0):0){if(!(WH(h)|0)){c[g>>2]=0;Fx(e,54059);c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];do if(Gx(b,k)|0){d=b+8|0;e=xy(d)|0;while(1){if(Nx(b,69)|0){f=11;break}f=Mz(l)|0;c[k>>2]=f;if(!f){f=12;break}wy(d,k)}if((f|0)==11){Rz(k,b,e);c[g>>2]=XH(b,k)|0;f=13;break}else if((f|0)==12){d=0;break}}else f=13;while(0);if((f|0)==13){c[k>>2]=0;if(((a[j>>0]|0)==0?(a[j+1>>0]|0)!=0:0)?(e=Rx(l)|0,c[k>>2]=e,(e|0)==0):0)d=0;else f=16;do if((f|0)==16){if(Nx(b,118)|0){zC(m);d=YH(b,k,i,m,g,j+4|0,j+8|0)|0;break}d=b+8|0;e=xy(d)|0;while(1){f=Rx(l)|0;c[m>>2]=f;if(!f){f=21;break}wy(d,m);if(WH(h)|0){f=22;break}}if((f|0)==21){d=0;break}else if((f|0)==22){Rz(m,b,e);d=YH(b,k,i,m,g,j+4|0,j+8|0)|0;break}}while(0)}}}else d=0}}Ia=n;return d|0}function Jx(b,d){b=b|0;d=d|0;var e=0;e=c[b>>2]|0;if(((c[b+4>>2]|0)-e|0)>>>0>d>>>0)e=a[e+d>>0]|0;else e=0;return e|0}function Kx(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function Lx(a,b,c){a=a|0;b=b|0;c=c|0;return PH(a+368|0,b,c)|0}function Mx(a){a=a|0;return (c[a+4>>2]|0)-(c[a>>2]|0)|0}function Nx(b,d){b=b|0;d=d|0;var e=0;e=c[b>>2]|0;if((e|0)!=(c[b+4>>2]|0)?(a[e>>0]|0)==d<<24>>24:0){c[b>>2]=e+1;e=1}else e=0;return e|0}function Ox(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[d>>2]|0;if(e)Nx(d,110)|0;if((Mx(d)|0)!=0?(f=c[d>>2]|0,((a[f>>0]|0)+-48|0)>>>0<10):0){while(1){if(!(Mx(d)|0))break;if(((a[f>>0]|0)+-48|0)>>>0>=10)break;e=f+1|0;c[d>>2]=e;f=e}Kx(b,g,f)}else Ty(b);return}function Px(a){a=a|0;return (c[a>>2]|0)==(c[a+4>>2]|0)|0}function Qx(a,b,c){a=a|0;b=b|0;c=c|0;return LH(a+368|0,b,c)|0}function Rx(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+32|0;h=j+16|0;g=j+8|0;f=j;c[h>>2]=0;d=Jx(b,0)|0;a:do switch(d<<24>>24|0){case 75:case 86:case 114:{i=d<<24>>24==114;d=i&1;g=(Jx(b,d)|0)<<24>>24==86;d=g?(i?2:1):d;d=d+((Jx(b,d)|0)<<24>>24==75&1)|0;switch((Jx(b,d)|0)<<24>>24){case 70:break;case 68:{switch((Jx(b,d+1|0)|0)<<24>>24){case 120:case 119:case 79:case 111:break;default:{i=5;break a}}break}default:{i=5;break a}}d=Sx(Hx(b)|0)|0;c[h>>2]=d;i=81;break}case 85:{i=5;break}case 118:{c[b>>2]=(c[b>>2]|0)+1;d=Ux(b,48760)|0;break}case 119:{c[b>>2]=(c[b>>2]|0)+1;d=Vx(b)|0;break}case 98:{c[b>>2]=(c[b>>2]|0)+1;d=Ux(b,48765)|0;break}case 99:{c[b>>2]=(c[b>>2]|0)+1;d=Ux(b,48770)|0;break}case 97:{c[b>>2]=(c[b>>2]|0)+1;d=Wx(b,48775)|0;break}case 104:{c[b>>2]=(c[b>>2]|0)+1;d=Xx(b,48787)|0;break}case 115:{c[b>>2]=(c[b>>2]|0)+1;d=Yx(b,48801)|0;break}case 116:{c[b>>2]=(c[b>>2]|0)+1;d=Zx(b,48807)|0;break}case 105:{c[b>>2]=(c[b>>2]|0)+1;d=_x(b,48822)|0;break}case 106:{c[b>>2]=(c[b>>2]|0)+1;d=$x(b,48826)|0;break}case 108:{c[b>>2]=(c[b>>2]|0)+1;d=Ux(b,48839)|0;break}case 109:{c[b>>2]=(c[b>>2]|0)+1;d=Xx(b,48844)|0;break}case 120:{c[b>>2]=(c[b>>2]|0)+1;d=ay(b,48858)|0;break}case 121:{c[b>>2]=(c[b>>2]|0)+1;d=by(b)|0;break}case 110:{c[b>>2]=(c[b>>2]|0)+1;d=cy(b,48868)|0;break}case 111:{c[b>>2]=(c[b>>2]|0)+1;d=dy(b,48877)|0;break}case 102:{c[b>>2]=(c[b>>2]|0)+1;d=Yx(b,48895)|0;break}case 100:{c[b>>2]=(c[b>>2]|0)+1;d=ey(b)|0;break}case 101:{c[b>>2]=(c[b>>2]|0)+1;d=Wx(b,48901)|0;break}case 103:{c[b>>2]=(c[b>>2]|0)+1;d=fy(b,48913)|0;break}case 122:{c[b>>2]=(c[b>>2]|0)+1;d=_x(b,48924)|0;break}case 117:{c[b>>2]=(c[b>>2]|0)+1;gy(g,b);if(Px(g)|0)d=0;else d=hy(b,g)|0;break}case 68:do switch((Jx(b,1)|0)<<24>>24|0){case 100:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,48928)|0;break a}case 101:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,48938)|0;break a}case 102:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,48949)|0;break a}case 104:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,48959)|0;break a}case 105:{c[b>>2]=(c[b>>2]|0)+2;d=cy(b,48969)|0;break a}case 115:{c[b>>2]=(c[b>>2]|0)+2;d=cy(b,48978)|0;break a}case 97:{c[b>>2]=(c[b>>2]|0)+2;d=Ux(b,48987)|0;break a}case 99:{c[b>>2]=(c[b>>2]|0)+2;d=Zx(b,48992)|0;break a}case 110:{c[b>>2]=(c[b>>2]|0)+2;d=Zx(b,49007)|0;break a}case 84:case 116:{d=iy(Hx(b)|0)|0;c[h>>2]=d;i=81;break a}case 118:{d=jy(Hx(b)|0)|0;c[h>>2]=d;i=81;break a}case 112:{c[b>>2]=(c[b>>2]|0)+2;f=Rx(Hx(b)|0)|0;c[g>>2]=f;if(!f){d=0;break a}else{c[h>>2]=ky(b,g)|0;i=82;break a}}case 120:case 119:case 79:case 111:{d=Sx(Hx(b)|0)|0;c[h>>2]=d;i=81;break a}default:{d=0;break a}}while(0);case 70:{d=Sx(Hx(b)|0)|0;c[h>>2]=d;i=81;break}case 65:{d=ly(Hx(b)|0)|0;c[h>>2]=d;i=81;break}case 77:{d=my(Hx(b)|0)|0;c[h>>2]=d;i=81;break}case 84:{switch((Jx(b,1)|0)<<24>>24){case 101:case 117:case 115:{d=ny(Hx(b)|0)|0;c[h>>2]=d;i=81;break a}default:{}}d=Hx(b)|0;f=oy(d)|0;c[h>>2]=f;if(f)if((a[b+360>>0]|0)!=0?(Jx(b,0)|0)<<24>>24==73:0){f=py(d,0)|0;c[g>>2]=f;if(!f){d=0;break a}else{c[h>>2]=qy(b,h,g)|0;i=82;break a}}else i=82;else d=0;break}case 80:{c[b>>2]=(c[b>>2]|0)+1;f=Rx(Hx(b)|0)|0;c[g>>2]=f;if(!f){d=0;break a}else{c[h>>2]=ry(b,g)|0;i=82;break a}}case 82:{c[b>>2]=(c[b>>2]|0)+1;e=Rx(Hx(b)|0)|0;c[g>>2]=e;if(!e){d=0;break a}else{c[f>>2]=0;c[h>>2]=sy(b,g,f)|0;i=82;break a}}case 79:{c[b>>2]=(c[b>>2]|0)+1;e=Rx(Hx(b)|0)|0;c[g>>2]=e;if(!e){d=0;break a}else{c[f>>2]=1;c[h>>2]=sy(b,g,f)|0;i=82;break a}}case 67:{c[b>>2]=(c[b>>2]|0)+1;f=Rx(Hx(b)|0)|0;c[g>>2]=f;if(!f){d=0;break a}else{c[h>>2]=ty(b,g)|0;i=82;break a}}case 71:{c[b>>2]=(c[b>>2]|0)+1;f=Rx(Hx(b)|0)|0;c[g>>2]=f;if(!f){d=0;break a}else{c[h>>2]=uy(b,g)|0;i=82;break a}}case 83:{switch((Jx(b,1)|0)<<24>>24){case 116:case 0:{i=80;break a}default:{}}e=Hx(b)|0;d=vy(e)|0;c[g>>2]=d;if(d){if((a[b+360>>0]|0)!=0?(Jx(b,0)|0)<<24>>24==73:0){e=py(e,0)|0;c[f>>2]=e;if(!e){d=0;break a}else{c[h>>2]=qy(b,g,f)|0;i=82;break a}}}else d=0;break}default:i=80}while(0);if((i|0)==5){d=Tx(Hx(b)|0)|0;c[h>>2]=d;i=81}else if((i|0)==80){d=ny(Hx(b)|0)|0;c[h>>2]=d;i=81}if((i|0)==81)if(!d)d=0;else i=82;if((i|0)==82){wy(b+148|0,h);d=c[h>>2]|0}Ia=j;return d|0}function Sx(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=Ia;Ia=Ia+80|0;n=o+64|0;h=o+28|0;i=o+24|0;p=o+56|0;e=o+48|0;d=o+40|0;f=o+32|0;k=o;j=o+72|0;l=o+16|0;m=o+8|0;c[h>>2]=BE(b)|0;c[i>>2]=0;Fx(p,53760);c[n>>2]=c[p>>2];c[n+4>>2]=c[p+4>>2];do if(!(Gx(b,n)|0)){Fx(e,53772);c[n>>2]=c[e>>2];c[n+4>>2]=c[e+4>>2];if(Gx(b,n)|0){p=zA(Hx(b)|0)|0;c[n>>2]=p;if(!p){d=0;break}if(Nx(b,69)|0){c[i>>2]=tH(b,n)|0;g=14;break}else{d=0;break}}Fx(d,53775);c[n>>2]=c[d>>2];c[n+4>>2]=c[d+4>>2];if(Gx(b,n)|0){d=b+8|0;e=xy(d)|0;while(1){if(Nx(b,69)|0){g=12;break}p=Rx(Hx(b)|0)|0;c[n>>2]=p;if(!p){g=13;break}wy(d,n)}if((g|0)==12){Rz(n,b,e);c[i>>2]=uH(b,n)|0;g=14;break}else if((g|0)==13){d=0;break}}else g=14}else{c[i>>2]=cy(b,53763)|0;g=14}while(0);if((g|0)==14){Fx(f,53778);c[n>>2]=c[f>>2];c[n+4>>2]=c[f+4>>2];Gx(b,n)|0;if(Nx(b,70)|0){Nx(b,89)|0;e=Hx(b)|0;p=Rx(e)|0;c[k>>2]=p;if(!p)d=0;else{a[j>>0]=0;d=b+8|0;f=xy(d)|0;while(1){if(Nx(b,69)|0){g=27;break}if(!(Nx(b,118)|0)){Fx(l,53781);c[n>>2]=c[l>>2];c[n+4>>2]=c[l+4>>2];if(Gx(b,n)|0){g=21;break}Fx(m,53784);c[n>>2]=c[m>>2];c[n+4>>2]=c[m+4>>2];if(Gx(b,n)|0){g=23;break}p=Rx(e)|0;c[n>>2]=p;if(!p){g=26;break}wy(d,n)}}if((g|0)==21){a[j>>0]=1;g=27}else if((g|0)==23){a[j>>0]=2;g=27}else if((g|0)==26)d=0;if((g|0)==27){Rz(n,b,f);d=vH(b,k,n,h,j,i)|0}}}else d=0}Ia=o;return d|0}function Tx(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+64|0;h=i+48|0;g=i+40|0;f=i+32|0;b=i;d=i+20|0;e=i+8|0;if(Nx(a,85)|0){gy(g,a);do if(Px(g)|0)b=0;else{Fx(f,53575);c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];if(!(YC(g,h)|0)){f=Tx(Hx(a)|0)|0;c[h>>2]=f;if(!f)b=0;else b=aH(a,h,g)|0;break}jB(h,g,9);Ty(b);ZG(d,a,Wy(h)|0);ZG(e,a+4|0,Ez(h)|0);gy(b,a);_G(e);_G(d);if(Px(b)|0)b=0;else{h=Tx(Hx(a)|0)|0;c[d>>2]=h;if(!h)b=0;else b=$G(a,d,b)|0}}while(0)}else{d=BE(a)|0;c[h>>2]=d;b=Rx(Hx(a)|0)|0;c[g>>2]=b;if(b){if(d){b=bH(a,g,h)|0;c[g>>2]=b}}else b=0}Ia=i;return b|0}function Ux(a,b){a=a|0;b=b|0;return YG(a+368|0,b)|0}function Vx(a){a=a|0;return XG(a+368|0,49680)|0}function Wx(a,b){a=a|0;b=b|0;return WG(a+368|0,b)|0}function Xx(a,b){a=a|0;b=b|0;return VG(a+368|0,b)|0}function Yx(a,b){a=a|0;b=b|0;return UG(a+368|0,b)|0}function Zx(a,b){a=a|0;b=b|0;return TG(a+368|0,b)|0}function _x(a,b){a=a|0;b=b|0;return SG(a+368|0,b)|0}function $x(a,b){a=a|0;b=b|0;return RG(a+368|0,b)|0}function ay(a,b){a=a|0;b=b|0;return QG(a+368|0,b)|0}function by(a){a=a|0;return PG(a+368|0,53556)|0}function cy(a,b){a=a|0;b=b|0;return OG(a+368|0,b)|0}function dy(a,b){a=a|0;b=b|0;return NG(a+368|0,b)|0}function ey(a){a=a|0;return MG(a+368|0,53549)|0}function fy(a,b){a=a|0;b=b|0;return LG(a+368|0,b)|0}function gy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+16|0;e=g+8|0;f=g;c[e>>2]=0;if(!(XC(b,e)|0)?(h=Mx(b)|0,d=c[e>>2]|0,h>>>0>=d>>>0):0){h=c[b>>2]|0;Kx(f,h,h+d|0);c[b>>2]=(c[b>>2]|0)+d;b=c[f+4>>2]|0;h=a;c[h>>2]=c[f>>2];c[h+4>>2]=b}else Ty(a);Ia=g;return}function hy(a,b){a=a|0;b=b|0;return KG(a+368|0,b)|0}function iy(a){a=a|0;var b=0,d=0,e=0;d=Ia;Ia=Ia+16|0;b=d;do if(Nx(a,68)|0){if(!(Nx(a,116)|0)?!(Nx(a,84)|0):0){b=0;break}e=zA(Hx(a)|0)|0;c[b>>2]=e;if((e|0)!=0?Nx(a,69)|0:0)b=sB(a,53539,b)|0;else b=0}else b=0;while(0);Ia=d;return b|0}function jy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=Ia;Ia=Ia+32|0;d=f+16|0;e=f+8|0;b=f;Fx(e,53414);c[d>>2]=c[e>>2];c[d+4>>2]=c[e+4>>2];do if(Gx(a,d)|0){if(((Jx(a,0)|0)+-49&255)<9){Ox(d,a,0);do if(Nx(a,95)|0){if(Nx(a,112)|0){b=wG(a,d)|0;break}e=Rx(Hx(a)|0)|0;c[b>>2]=e;if(!e)b=0;else b=xG(a,b,d)|0}else b=0;while(0);break}if(Nx(a,95)|0){e=Rx(Hx(a)|0)|0;c[d>>2]=e;if(!e)b=0;else{Ty(b);b=zG(a,d,b)|0}break}e=Hx(a)|0;g=zA(e)|0;c[d>>2]=g;if((g|0)!=0?Nx(a,95)|0:0){g=Rx(e)|0;c[b>>2]=g;if(!g)b=0;else b=yG(a,b,d)|0}else b=0}else b=0;while(0);Ia=f;return b|0}function ky(a,b){a=a|0;b=b|0;return vG(a+368|0,b)|0}function ly(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+32|0;e=g+16|0;d=g;b=g+8|0;if(Nx(a,65)|0){gG(d);if((((Jx(a,0)|0)<<24>>24)+-48|0)>>>0<10){Ox(b,a,0);c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];hG(d,e);if(Nx(a,95)|0)f=8;else b=0}else if(!(Nx(a,95)|0)){b=zA(Hx(a)|0)|0;if((b|0)!=0?Nx(a,95)|0:0){iG(d,b);f=8}else b=0}else f=8;if((f|0)==8){f=Rx(Hx(a)|0)|0;c[e>>2]=f;if(!f)b=0;else b=jG(a,e,d)|0}}else b=0;Ia=g;return b|0}function my(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=Ia;Ia=Ia+16|0;b=f+4|0;d=f;if(Nx(a,77)|0){e=Hx(a)|0;g=Rx(e)|0;c[b>>2]=g;if(!g)b=0;else{g=Rx(e)|0;c[d>>2]=g;if(!g)b=0;else b=$F(a,b,d)|0}}else b=0;Ia=f;return b|0}function ny(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+48|0;f=g+32|0;e=g;h=g+24|0;b=g+16|0;d=g+8|0;Ty(e);Fx(h,52470);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];do if(!(Gx(a,f)|0)){Fx(b,52480);c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];if(Gx(a,f)|0){Fx(e,52483);break}Fx(d,52489);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];if(Gx(a,f)|0)Fx(e,52492)}else Fx(e,52473);while(0);b=XE(Hx(a)|0,0)|0;c[f>>2]=b;if(b){if(!(Px(e)|0))b=YE(a,e,f)|0}else b=0;Ia=g;return b|0}function oy(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;f=i+4|0;g=i;if(Nx(b,84)|0){c[f>>2]=0;if(!(Nx(b,95)|0))if(!(XC(b,f)|0)?(d=(c[f>>2]|0)+1|0,c[f>>2]=d,Nx(b,95)|0):0){e=d;h=5}else d=0;else{e=0;h=5}do if((h|0)==5){if(a[b+362>>0]|0){d=Ux(b,48987)|0;break}if(a[b+361>>0]|0){d=JE(b,f)|0;c[g>>2]=d;KE(b+332|0,g);break}d=b+288|0;if(e>>>0<(dA(d)|0)>>>0)d=c[(LE(d,e)|0)>>2]|0;else d=0}while(0)}else d=0;Ia=i;return d|0}function py(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+64|0;j=l+16|0;d=l+12|0;f=l+8|0;i=l;do if(Nx(a,73)|0){g=a+288|0;if(b)Kz(g);e=a+8|0;k=xy(e)|0;while(1){if(Nx(a,69)|0){e=16;break}if(b){Lz(j,g);h=Mz(Hx(a)|0)|0;c[d>>2]=h;Nz(g,j);if(!h){e=12;break}wy(e,d);c[f>>2]=h;if((tz(h)|0)<<24>>24==28){Oz(i,h);c[f>>2]=Pz(a,i)|0}Qz(g,f);yx(j)}else{h=Mz(Hx(a)|0)|0;c[j>>2]=h;if(!h){e=15;break}wy(e,j)}}if((e|0)==12){yx(j);d=0;break}else if((e|0)==15){d=0;break}else if((e|0)==16){Rz(j,a,k);d=Sz(a,j)|0;break}}else d=0;while(0);Ia=l;return d|0}function qy(a,b,c){a=a|0;b=b|0;c=c|0;return Fz(a+368|0,b,c)|0}function ry(a,b){a=a|0;b=b|0;return vz(a+368|0,b)|0}function sy(a,b,c){a=a|0;b=b|0;c=c|0;return iz(a+368|0,b,c)|0}function ty(a,b){a=a|0;b=b|0;return hz(a+368|0,b,49381)|0}function uy(a,b){a=a|0;b=b|0;return dz(a+368|0,b,49313)|0}function vy(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;a:do if(Nx(a,83)|0){d=(Jx(a,0)|0)<<24>>24;if(!(Qj(d)|0)){if(Nx(a,95)|0){b=a+148|0;if(By(b)|0){b=0;break}b=c[(Cy(b,0)|0)>>2]|0;break}c[f>>2]=0;if((!(Dy(a,f)|0)?(e=(c[f>>2]|0)+1|0,c[f>>2]=e,Nx(a,95)|0):0)?(b=a+148|0,e>>>0<(xy(b)|0)>>>0):0)b=c[(Cy(b,e)|0)>>2]|0;else b=0;break}switch(d|0){case 97:{c[a>>2]=(c[a>>2]|0)+1;c[f>>2]=0;b=zy(a,f)|0;break}case 98:{c[a>>2]=(c[a>>2]|0)+1;c[f>>2]=1;b=zy(a,f)|0;break}case 115:{c[a>>2]=(c[a>>2]|0)+1;c[f>>2]=2;b=zy(a,f)|0;break}case 105:{c[a>>2]=(c[a>>2]|0)+1;c[f>>2]=3;b=zy(a,f)|0;break}case 111:{c[a>>2]=(c[a>>2]|0)+1;c[f>>2]=4;b=zy(a,f)|0;break}case 100:{c[a>>2]=(c[a>>2]|0)+1;c[f>>2]=5;b=zy(a,f)|0;break}default:{b=0;break a}}d=Ay(Hx(a)|0,b)|0;c[f>>2]=d;if((d|0)!=(b|0)){wy(a+148|0,f);b=d}}else b=0;while(0);Ia=g;return b|0}function wy(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)==(c[a+8>>2]|0)){yy(a,(xy(a)|0)<<1);d=c[e>>2]|0}b=c[b>>2]|0;c[e>>2]=d+4;c[d>>2]=b;return}function xy(a){a=a|0;a=(c[a+4>>2]|0)-(c[a>>2]|0)|0;return (2?a>>2:a)|0}function yy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=xy(a)|0;do if(!(Ax(a)|0)){e=mk(c[a>>2]|0,b<<2)|0;c[a>>2]=e;if(!e)sx();else{f=e;d=a+4|0;break}}else{f=kk(b<<2)|0;if(!f)sx();e=c[a>>2]|0;d=a+4|0;g=(c[d>>2]|0)-e|0;if(g|0)CJ(f|0,e|0,g|0)|0;c[a>>2]=f}while(0);c[d>>2]=f+(h<<2);c[a+8>>2]=f+(b<<2);return}function zy(a,b){a=a|0;b=b|0;return _y(a+368|0,b)|0}function Ay(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;d=g;e=g+8|0;c[d>>2]=b;while(1){if(!(Nx(a,66)|0))break;gy(e,a);if(Px(e)|0){f=5;break}b=Fy(a,d,e)|0;c[d>>2]=b}if((f|0)==5)b=0;Ia=g;return b|0}function By(a){a=a|0;return (c[a>>2]|0)==(c[a+4>>2]|0)|0}function Cy(a,b){a=a|0;b=b|0;return (Ey(a)|0)+(b<<2)|0}function Dy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=Jx(a,0)|0;if(f<<24>>24>47?f<<24>>24<58|(f+-65&255)<26:0){e=0;while(1){f=Jx(a,0)|0;if(f<<24>>24<=47)break;if(f<<24>>24>=58)if((f+-65&255)<26)d=-55;else break;else d=-48;c[a>>2]=(c[a>>2]|0)+1;e=(e*36|0)+d+(f<<24>>24)|0}c[b>>2]=e;d=0}else d=1;return d|0}function Ey(a){a=a|0;return c[a>>2]|0}function Fy(a,b,c){a=a|0;b=b|0;c=c|0;return Gy(a+368|0,b,c)|0}function Gy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];Iy(a,b,f);Ia=e;return a|0}function Hy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=b+15&-16;g=a+4096|0;e=c[g>>2]|0;d=e+4|0;f=c[d>>2]|0;b=f+h|0;do if(b>>>0>4087)if(h>>>0>4088){b=Yy(a,h)|0;break}else{Zy(a);e=c[g>>2]|0;d=e+4|0;b=c[d>>2]|0;f=b;b=b+h|0;i=5;break}else i=5;while(0);if((i|0)==5){c[d>>2]=b;b=e+8+f|0}return b|0}function Iy(b,d,e){b=b|0;d=d|0;e=e|0;Jy(b,8,a[d+5>>0]|0,a[d+6>>0]|0,a[d+7>>0]|0);c[b>>2]=38088;c[b+8>>2]=d;d=e;e=c[d+4>>2]|0;b=b+12|0;c[b>>2]=c[d>>2];c[b+4>>2]=e;return}function Jy(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;c[b>>2]=38132;a[b+4>>0]=d;a[b+5>>0]=e;a[b+6>>0]=f;a[b+7>>0]=g;return}function Ky(a,b){a=a|0;b=b|0;return 0}function Ly(a,b){a=a|0;b=b|0;return 0}function My(a,b){a=a|0;b=b|0;return 0}function Ny(a,b){a=a|0;b=b|0;return a|0}function Oy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+32|0;e=d+24|0;i=d+16|0;g=d;f=d+8|0;h=c[a+8>>2]|0;Ya[c[(c[h>>2]|0)+16>>2]&127](h,b);Fx(i,49022);c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];Uy(b,e);i=a+12|0;h=c[i+4>>2]|0;a=g;c[a>>2]=c[i>>2];c[a+4>>2]=h;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Fx(f,49028);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function Py(a,b){a=a|0;b=b|0;return}function Qy(a,b){a=a|0;b=b|0;Ty(a);return}function Ry(a){a=a|0;return}function Sy(a){a=a|0;Jv(a);return}function Ty(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function Uy(a,b){a=a|0;b=b|0;var d=0,e=0;d=Vy(b)|0;if(d|0){rx(a,d);e=a+4|0;a=(c[a>>2]|0)+(c[e>>2]|0)|0;CJ(a|0,Wy(b)|0,d|0)|0;c[e>>2]=(c[e>>2]|0)+d}return}function Vy(a){a=a|0;return (c[a+4>>2]|0)-(c[a>>2]|0)|0}function Wy(a){a=a|0;return c[a>>2]|0}function Xy(a){a=a|0;ta()}function Yy(a,b){a=a|0;b=b|0;b=kk(b+8|0)|0;if(!b)sx();else{a=c[a+4096>>2]|0;c[b>>2]=c[a>>2];c[b+4>>2]=0;c[a>>2]=b;return b+8|0}return 0}function Zy(a){a=a|0;var b=0;b=kk(4096)|0;if(!b)sx();else{a=a+4096|0;c[b>>2]=c[a>>2];c[b+4>>2]=0;c[a>>2]=b;return}}function _y(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;$y(a,c[b>>2]|0);return a|0}function $y(a,b){a=a|0;b=b|0;Jy(a,36,1,1,1);c[a>>2]=38176;c[a+8>>2]=b;return}function az(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+64|0;g=k+48|0;d=k+40|0;h=k+32|0;i=k+24|0;j=k+16|0;e=k+8|0;f=k;switch(c[a+8>>2]|0){case 0:{Fx(d,49172);c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Uy(b,g);break}case 1:{Fx(h,49187);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];Uy(b,g);break}case 2:{Fx(i,49205);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];Uy(b,g);break}case 3:{Fx(j,49217);c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];Uy(b,g);break}case 4:{Fx(e,49230);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];Uy(b,g);break}case 5:{Fx(f,49243);c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Uy(b,g);break}default:{}}Ia=k;return}function bz(a,b){a=a|0;b=b|0;switch(c[b+8>>2]|0){case 0:{Fx(a,49117);break}case 1:{Fx(a,49127);break}case 2:{Fx(a,49140);break}case 3:{Fx(a,49147);break}case 4:{Fx(a,49155);break}case 5:{Fx(a,49163);break}default:{}}return}function cz(a){a=a|0;Jv(a);return}function dz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;Fx(g,d);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];ez(a,b,f);Ia=e;return a|0}function ez(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,5,1,1,1);c[a>>2]=38220;c[a+8>>2]=b;b=c[d+4>>2]|0;a=a+12|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function fz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;h=c[a+8>>2]|0;Ya[c[(c[h>>2]|0)+16>>2]&127](h,b);h=a+12|0;g=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function gz(a){a=a|0;Jv(a);return}function hz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;Fx(g,d);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];ez(a,b,f);Ia=e;return a|0}function iz(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,20)|0;jz(a,c[b>>2]|0,c[d>>2]|0);return a|0}function jz(b,d,e){b=b|0;d=d|0;e=e|0;Jy(b,12,a[d+5>>0]|0,1,1);c[b>>2]=38264;c[b+8>>2]=d;c[b+12>>2]=e;a[b+16>>0]=0;return}function kz(a,b){a=a|0;b=b|0;return uz(c[a+8>>2]|0,b)|0}function lz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+48|0;k=l+40|0;g=l+24|0;f=l+8|0;h=l+32|0;i=l+16|0;j=l;e=b+16|0;if(!(a[e>>0]|0)){oz(g,e,1);pz(f,b,d);e=c[f+4>>2]|0;Ya[c[(c[e>>2]|0)+16>>2]&127](e,d);if(qz(e,d)|0){Fx(h,49392);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];Uy(d,k)}if(!(!(qz(e,d)|0)?!(rz(e,d)|0):0)){Fx(i,49394);c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];Uy(d,k)}Fx(j,(c[f>>2]|0)==0?49396:49398);c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];Uy(d,k);sz(g)}Ia=l;return}function mz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+32|0;i=j+24|0;g=j+16|0;e=j+8|0;h=j;f=b+16|0;if(!(a[f>>0]|0)){oz(g,f,1);pz(e,b,d);e=c[e+4>>2]|0;if(!(!(qz(e,d)|0)?!(rz(e,d)|0):0)){Fx(h,49390);c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];Uy(d,i)}Ya[c[(c[e>>2]|0)+20>>2]&127](e,d);sz(g)}Ia=j;return}function nz(a){a=a|0;Jv(a);return}function oz(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=d;a[b+4>>0]=a[d>>0]|0;a[b+5>>0]=1;a[d>>0]=e&1;return}function pz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[b+12>>2]|0;c[a>>2]=e;f=a+4|0;b=c[b+8>>2]|0;c[f>>2]=b;while(1){b=Na[c[(c[b>>2]|0)+12>>2]&127](b,d)|0;if((tz(b)|0)<<24>>24!=12)break;h=c[b+8>>2]|0;c[f>>2]=h;g=c[b+12>>2]|0;g=(g|0)<(e|0)?g:e;c[a>>2]=g;b=h;e=g}return}function qz(b,d){b=b|0;d=d|0;var e=0;e=a[b+6>>0]|0;if(e<<24>>24==2)e=Na[c[(c[b>>2]|0)+4>>2]&127](b,d)|0;else e=e<<24>>24==0;return e|0}function rz(b,d){b=b|0;d=d|0;var e=0;e=a[b+7>>0]|0;if(e<<24>>24==2)e=Na[c[(c[b>>2]|0)+8>>2]&127](b,d)|0;else e=e<<24>>24==0;return e|0}function sz(b){b=b|0;if(a[b+5>>0]|0)a[c[b>>2]>>0]=a[b+4>>0]|0;return}function tz(b){b=b|0;return a[b+4>>0]|0}function uz(b,d){b=b|0;d=d|0;var e=0;e=a[b+5>>0]|0;if(e<<24>>24==2)e=Na[c[c[b>>2]>>2]&127](b,d)|0;else e=e<<24>>24==0;return e|0}function vz(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;wz(a,c[b>>2]|0);return a|0}function wz(b,d){b=b|0;d=d|0;Jy(b,11,a[d+5>>0]|0,1,1);c[b>>2]=38308;c[b+8>>2]=d;return}function xz(a,b){a=a|0;b=b|0;return uz(c[a+8>>2]|0,b)|0}function yz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+64|0;k=m+48|0;h=m+40|0;i=m+32|0;j=m+24|0;e=m+16|0;f=m;g=m+8|0;d=a+8|0;a=c[d>>2]|0;do if((tz(a)|0)<<24>>24==10)if(Bz(a)|0){h=c[d>>2]|0;Fx(e,49465);c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];Uy(b,k);h=h+12|0;i=c[h+4>>2]|0;j=f;c[j>>2]=c[h>>2];c[j+4>>2]=i;c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];Uy(b,k);Fx(g,49469);c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];Uy(b,k);break}else{a=c[d>>2]|0;l=4;break}else l=4;while(0);if((l|0)==4){Ya[c[(c[a>>2]|0)+16>>2]&127](a,b);if(qz(c[d>>2]|0,b)|0){Fx(h,49392);c[k>>2]=c[h>>2];c[k+4>>2]=c[h+4>>2];Uy(b,k)}if(!(!(qz(c[d>>2]|0,b)|0)?!(rz(c[d>>2]|0,b)|0):0)){Fx(i,49394);c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];Uy(b,k)}Fx(j,49463);c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];Uy(b,k)}Ia=m;return}function zz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;f=h+8|0;e=h;d=a+8|0;a=c[d>>2]|0;if((tz(a)|0)<<24>>24==10){if(!(Bz(a)|0)){a=c[d>>2]|0;g=4}}else g=4;if((g|0)==4){if(!(!(qz(a,b)|0)?!(rz(c[d>>2]|0,b)|0):0)){Fx(e,49390);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];Uy(b,f)}g=c[d>>2]|0;Ya[c[(c[g>>2]|0)+20>>2]&127](g,b)}Ia=h;return}function Az(a){a=a|0;Jv(a);return}function Bz(a){a=a|0;var b=0,d=0,e=0;e=Ia;Ia=Ia+16|0;b=e+8|0;d=e;a=c[a+8>>2]|0;if((tz(a)|0)<<24>>24==7){Cz(b,a);Fx(d,49451);a=Dz(b,d)|0}else a=0;Ia=e;return a|0}function Cz(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+8|0;d=c[e+4>>2]|0;b=a;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function Dz(b,c){b=b|0;c=c|0;var d=0,e=0;e=Vy(b)|0;a:do if((e|0)==(Vy(c)|0)){d=Wy(b)|0;e=Ez(b)|0;b=Wy(c)|0;while(1){if((d|0)==(e|0)){b=1;break a}if((a[d>>0]|0)!=(a[b>>0]|0)){b=0;break a}d=d+1|0;b=b+1|0}}else b=0;while(0);return b|0}function Ez(a){a=a|0;return c[a+4>>2]|0}function Fz(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;Gz(a,c[b>>2]|0,c[d>>2]|0);return a|0}function Gz(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,32,1,1,1);c[a>>2]=38352;c[a+8>>2]=b;c[a+12>>2]=d;return}function Hz(a,b){a=a|0;b=b|0;nx(c[a+8>>2]|0,b);nx(c[a+12>>2]|0,b);return}function Iz(a,b){a=a|0;b=b|0;b=c[b+8>>2]|0;Ya[c[(c[b>>2]|0)+24>>2]&127](a,b);return}function Jz(a){a=a|0;Jv(a);return}function Kz(a){a=a|0;c[a+4>>2]=c[a>>2];return}function Lz(a,b){a=a|0;b=b|0;var d=0,e=0;IE(a);if(Bx(b)|0){d=xA(b)|0;e=(yA(b)|0)-d|0;if(e|0)CJ(c[a>>2]|0,d|0,e|0)|0;e=c[a>>2]|0;c[a+4>>2]=e+((dA(b)|0)<<2);Kz(b)}else{c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];wA(b)}return}function Mz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;d=g;a:do switch((Jx(a,0)|0)<<24>>24|0){case 88:{c[a>>2]=(c[a>>2]|0)+1;b=zA(Hx(a)|0)|0;if(!b)b=0;else{a=Nx(a,69)|0;Ia=g;return (a?b:0)|0}break}case 74:{c[a>>2]=(c[a>>2]|0)+1;b=a+8|0;e=xy(b)|0;while(1){if(Nx(a,69)|0){f=9;break}f=Mz(Hx(a)|0)|0;c[d>>2]=f;if(!f){f=8;break}wy(b,d)}if((f|0)==8){b=0;break a}else if((f|0)==9){Rz(d,a,e);b=AA(a,d)|0;break a}break}case 76:{if((Jx(a,1)|0)<<24>>24!=90){b=BA(Hx(a)|0)|0;break a}c[a>>2]=(c[a>>2]|0)+2;b=Ix(Hx(a)|0)|0;if(!b)b=0;else{a=Nx(a,69)|0;b=a?b:0}break}default:b=Rx(Hx(a)|0)|0}while(0);Ia=g;return b|0}function Nz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=Bx(b)|0;d=Bx(a)|0;do if(!e)if(d){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];wA(b);break}else{f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;a=b+8|0;e=c[d>>2]|0;c[d>>2]=c[a>>2];c[a>>2]=e;Kz(b);break}else{if(!d){lk(c[a>>2]|0);wA(a)}d=xA(b)|0;e=(yA(b)|0)-d|0;if(e|0)CJ(c[a>>2]|0,d|0,e|0)|0;f=c[a>>2]|0;c[a+4>>2]=f+((dA(b)|0)<<2);Kz(b)}while(0);return}function Oz(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+8|0;d=c[e+4>>2]|0;b=a;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function Pz(a,b){a=a|0;b=b|0;return fA(a+368|0,b)|0}function Qz(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)==(c[a+8>>2]|0)){eA(a,(dA(a)|0)<<1);d=c[e>>2]|0}b=c[b>>2]|0;c[e>>2]=d+4;c[d>>2]=b;return}function Rz(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=b+8|0;e=(Ey(d)|0)+(c<<2)|0;$z(a,b,e,_z(d)|0);aA(d,c);return}function Sz(a,b){a=a|0;b=b|0;return Tz(a+368|0,b)|0}function Tz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uz(a,e);Ia=d;return a|0}function Uz(a,b){a=a|0;b=b|0;var d=0;Jy(a,30,1,1,1);c[a>>2]=38396;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function Vz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+32|0;f=g+24|0;h=g+16|0;d=g+8|0;e=g;Fx(h,49576);c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];Uy(b,f);Xz(a+8|0,b);if((Yz(b)|0)<<24>>24==62){Fx(d,49392);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];Uy(b,f)}Fx(e,49469);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];Uy(b,f);Ia=g;return}function Wz(a){a=a|0;Jv(a);return}function Xz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=Ia;Ia=Ia+16|0;i=j+8|0;h=j;g=a+4|0;d=1;f=0;while(1){if((f|0)==(c[g>>2]|0))break;e=px(b)|0;if(!d){Fx(h,49578);c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];Uy(b,i)}k=px(b)|0;nx(c[(c[a>>2]|0)+(f<<2)>>2]|0,b);if((k|0)==(px(b)|0))Zz(b,e);else d=0;f=f+1|0}Ia=j;return}function Yz(b){b=b|0;var d=0;d=c[b+4>>2]|0;if(!d)d=0;else d=a[(c[b>>2]|0)+(d+-1)>>0]|0;return d|0}function Zz(a,b){a=a|0;b=b|0;c[a+4>>2]=b;return}function _z(a){a=a|0;return c[a+4>>2]|0}function $z(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;f=d-c|0;e=2?f>>2:f;d=bA(b+368|0,e)|0;if(f|0)CJ(d|0,c|0,f|0)|0;cA(a,d,e);return}function aA(a,b){a=a|0;b=b|0;c[a+4>>2]=(c[a>>2]|0)+(b<<2);return}function bA(a,b){a=a|0;b=b|0;return Hy(a,b<<2)|0}function cA(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function dA(a){a=a|0;a=(c[a+4>>2]|0)-(c[a>>2]|0)|0;return (2?a>>2:a)|0}function eA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=dA(a)|0;do if(!(Bx(a)|0)){e=mk(c[a>>2]|0,b<<2)|0;c[a>>2]=e;if(!e)sx();else{f=e;d=a+4|0;break}}else{f=kk(b<<2)|0;if(!f)sx();e=c[a>>2]|0;d=a+4|0;g=(c[d>>2]|0)-e|0;if(g|0)CJ(f|0,e|0,g|0)|0;c[a>>2]=f}while(0);c[d>>2]=f+(h<<2);c[a+8>>2]=f+(b<<2);return}function fA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];gA(a,e);Ia=d;return a|0}function gA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;Jy(b,27,1,1,1);c[b>>2]=38440;g=b+8|0;f=c[d+4>>2]|0;h=g;c[h>>2]=c[d>>2];c[h+4>>2]=f;h=b+5|0;a[h>>0]=2;f=b+7|0;a[f>>0]=2;d=b+6|0;a[d>>0]=2;b=hA(g)|0;e=iA(g)|0;while(1){if((b|0)==(e|0)){i=4;break}if(jA(c[b>>2]|0)|0)b=b+4|0;else break}if((i|0)==4)a[d>>0]=1;d=hA(g)|0;b=iA(g)|0;while(1){if((d|0)==(b|0)){i=8;break}if(kA(c[d>>2]|0)|0)d=d+4|0;else break}if((i|0)==8)a[f>>0]=1;d=hA(g)|0;b=iA(g)|0;while(1){if((d|0)==(b|0)){i=12;break}if(lA(c[d>>2]|0)|0)d=d+4|0;else break}if((i|0)==12)a[h>>0]=1;return}function hA(a){a=a|0;return c[a>>2]|0}function iA(a){a=a|0;return (c[a>>2]|0)+(c[a+4>>2]<<2)|0}function jA(b){b=b|0;return (a[b+6>>0]|0)==1|0}function kA(b){b=b|0;return (a[b+7>>0]|0)==1|0}function lA(b){b=b|0;return (a[b+5>>0]|0)==1|0}function mA(a,b){a=a|0;b=b|0;var d=0;tA(a,b);d=c[b+12>>2]|0;a=a+8|0;if(d>>>0<(uA(a)|0)>>>0)a=uz(vA(a,d)|0,b)|0;else a=0;return a|0}function nA(a,b){a=a|0;b=b|0;var d=0;tA(a,b);d=c[b+12>>2]|0;a=a+8|0;if(d>>>0<(uA(a)|0)>>>0)a=qz(vA(a,d)|0,b)|0;else a=0;return a|0}function oA(a,b){a=a|0;b=b|0;var d=0;tA(a,b);d=c[b+12>>2]|0;a=a+8|0;if(d>>>0<(uA(a)|0)>>>0)a=rz(vA(a,d)|0,b)|0;else a=0;return a|0}function pA(a,b){a=a|0;b=b|0;var d=0,e=0;tA(a,b);d=c[b+12>>2]|0;e=a+8|0;if(d>>>0<(uA(e)|0)>>>0){a=vA(e,d)|0;a=Na[c[(c[a>>2]|0)+12>>2]&127](a,b)|0}return a|0}function qA(a,b){a=a|0;b=b|0;var d=0;tA(a,b);d=c[b+12>>2]|0;a=a+8|0;if(d>>>0<(uA(a)|0)>>>0){d=vA(a,d)|0;Ya[c[(c[d>>2]|0)+16>>2]&127](d,b)}return}function rA(a,b){a=a|0;b=b|0;var d=0;tA(a,b);d=c[b+12>>2]|0;a=a+8|0;if(d>>>0<(uA(a)|0)>>>0){d=vA(a,d)|0;Ya[c[(c[d>>2]|0)+20>>2]&127](d,b)}return}function sA(a){a=a|0;Jv(a);return}function tA(a,b){a=a|0;b=b|0;var d=0;d=b+16|0;if((c[d>>2]|0)==-1){c[d>>2]=uA(a+8|0)|0;c[b+12>>2]=0}return}function uA(a){a=a|0;return c[a+4>>2]|0}function vA(a,b){a=a|0;b=b|0;return c[(c[a>>2]|0)+(b<<2)>>2]|0}function wA(a){a=a|0;var b=0;b=a+12|0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=a+44;return}function xA(a){a=a|0;return c[a>>2]|0}function yA(a){a=a|0;return c[a+4>>2]|0}function zA(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;V=Ia;Ia=Ia+352|0;U=V+336|0;e=V+344|0;d=V+328|0;p=V+320|0;v=V+312|0;D=V+304|0;K=V+296|0;N=V+288|0;T=V+8|0;f=V+280|0;g=V+272|0;h=V+264|0;i=V+256|0;j=V+248|0;k=V+240|0;l=V+232|0;m=V+224|0;n=V+216|0;o=V+208|0;q=V+200|0;r=V+192|0;s=V+184|0;t=V+176|0;u=V+168|0;w=V+160|0;x=V+152|0;y=V+144|0;z=V+136|0;A=V+128|0;B=V+120|0;C=V+112|0;E=V+104|0;F=V+96|0;G=V+88|0;H=V+80|0;I=V+72|0;J=V+64|0;L=V+56|0;M=V+48|0;S=V;O=V+40|0;P=V+32|0;Q=V+24|0;R=V+16|0;Fx(d,50107);c[U>>2]=c[d>>2];c[U+4>>2]=c[d+4>>2];a[e>>0]=(Gx(b,U)|0)&1;a:do if((Mx(b)|0)>>>0<2)d=0;else{d=c[b>>2]|0;do switch(a[d>>0]|0){case 76:{d=BA(Hx(b)|0)|0;break a}case 84:{d=oy(Hx(b)|0)|0;break a}case 102:{switch((Jx(b,1)|0)<<24>>24){case 112:{g=7;break}case 76:{if((((Jx(b,2)|0)<<24>>24)+-48|0)>>>0<10)g=7;else g=8;break}default:g=8}if((g|0)==7){d=oB(Hx(b)|0)|0;break a}else if((g|0)==8){d=pB(Hx(b)|0)|0;break a}break}case 97:switch(a[d+1>>0]|0){case 97:{c[b>>2]=d+2;d=Hx(b)|0;Fx(p,49398);c[U>>2]=c[p>>2];c[U+4>>2]=c[p+4>>2];d=qB(d,U)|0;break a}case 100:{c[b>>2]=d+2;d=Hx(b)|0;Fx(v,49396);c[U>>2]=c[v>>2];c[U+4>>2]=c[v+4>>2];d=rB(d,U)|0;break a}case 110:{c[b>>2]=d+2;d=Hx(b)|0;Fx(D,49396);c[U>>2]=c[D>>2];c[U+4>>2]=c[D+4>>2];d=qB(d,U)|0;break a}case 78:{c[b>>2]=d+2;d=Hx(b)|0;Fx(K,50110);c[U>>2]=c[K>>2];c[U+4>>2]=c[K+4>>2];d=qB(d,U)|0;break a}case 83:{c[b>>2]=d+2;d=Hx(b)|0;Fx(N,50113);c[U>>2]=c[N>>2];c[U+4>>2]=c[N+4>>2];d=qB(d,U)|0;break a}case 116:{c[b>>2]=d+2;T=Rx(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=sB(b,50115,U)|0;break a}case 122:{c[b>>2]=d+2;T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=sB(b,50115,U)|0;break a}default:{d=0;break a}}case 99:switch(a[d+1>>0]|0){case 99:{c[b>>2]=d+2;d=Hx(b)|0;S=Rx(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=tB(b,U,T)|0}break a}case 108:{c[b>>2]=d+2;e=Hx(b)|0;S=zA(e)|0;c[U>>2]=S;do if(S){d=b+8|0;f=xy(d)|0;while(1){if(Nx(b,69)|0){g=33;break}S=zA(e)|0;c[T>>2]=S;if(!S){g=31;break}wy(d,T)}if((g|0)==31){d=0;break}else if((g|0)==33){Rz(T,b,f);d=uB(b,U,T)|0;break}}else d=0;while(0);break a}case 109:{c[b>>2]=d+2;d=Hx(b)|0;Fx(f,50125);c[U>>2]=c[f>>2];c[U+4>>2]=c[f+4>>2];d=qB(d,U)|0;break a}case 111:{c[b>>2]=d+2;d=Hx(b)|0;Fx(g,50127);c[U>>2]=c[g>>2];c[U+4>>2]=c[g+4>>2];d=rB(d,U)|0;break a}case 118:{d=vB(Hx(b)|0)|0;break a}default:{d=0;break a}}case 100:switch(a[d+1>>0]|0){case 97:{c[b>>2]=d+2;S=zA(Hx(b)|0)|0;c[U>>2]=S;if(!S)d=0;else{a[T>>0]=1;d=wB(b,U,e,T)|0}break a}case 99:{c[b>>2]=d+2;d=Hx(b)|0;S=Rx(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=xB(b,U,T)|0}break a}case 101:{c[b>>2]=d+2;d=Hx(b)|0;Fx(h,49463);c[U>>2]=c[h>>2];c[U+4>>2]=c[h+4>>2];d=rB(d,U)|0;break a}case 108:{c[b>>2]=d+2;S=zA(Hx(b)|0)|0;c[U>>2]=S;if(!S)d=0;else{a[T>>0]=0;d=wB(b,U,e,T)|0}break a}case 110:{d=yB(Hx(b)|0)|0;break a}case 115:{c[b>>2]=d+2;d=Hx(b)|0;S=zA(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=zB(b,U,50129,T)|0}break a}case 116:{c[b>>2]=d+2;d=Hx(b)|0;S=zA(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=AB(b,U,T)|0}break a}case 118:{c[b>>2]=d+2;d=Hx(b)|0;Fx(i,50132);c[U>>2]=c[i>>2];c[U+4>>2]=c[i+4>>2];d=qB(d,U)|0;break a}case 86:{c[b>>2]=d+2;d=Hx(b)|0;Fx(j,50134);c[U>>2]=c[j>>2];c[U+4>>2]=c[j+4>>2];d=qB(d,U)|0;break a}default:{d=0;break a}}case 101:switch(a[d+1>>0]|0){case 111:{c[b>>2]=d+2;d=Hx(b)|0;Fx(k,50137);c[U>>2]=c[k>>2];c[U+4>>2]=c[k+4>>2];d=qB(d,U)|0;break a}case 79:{c[b>>2]=d+2;d=Hx(b)|0;Fx(l,50139);c[U>>2]=c[l>>2];c[U+4>>2]=c[l+4>>2];d=qB(d,U)|0;break a}case 113:{c[b>>2]=d+2;d=Hx(b)|0;Fx(m,50142);c[U>>2]=c[m>>2];c[U+4>>2]=c[m+4>>2];d=qB(d,U)|0;break a}default:{d=0;break a}}case 103:switch(a[d+1>>0]|0){case 101:{c[b>>2]=d+2;d=Hx(b)|0;Fx(n,50145);c[U>>2]=c[n>>2];c[U+4>>2]=c[n+4>>2];d=qB(d,U)|0;break a}case 116:{c[b>>2]=d+2;d=Hx(b)|0;Fx(o,49469);c[U>>2]=c[o>>2];c[U+4>>2]=c[o+4>>2];d=qB(d,U)|0;break a}default:{d=0;break a}}case 105:{switch(a[d+1>>0]|0){case 120:{c[b>>2]=d+2;d=Hx(b)|0;S=zA(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=BB(b,U,T)|0}break a}case 108:break;default:{d=0;break a}}c[b>>2]=d+2;d=b+8|0;e=xy(d)|0;while(1){if(Nx(b,69)|0){g=82;break}S=CB(Hx(b)|0)|0;c[U>>2]=S;if(!S){g=81;break}wy(d,U)}if((g|0)==81){d=0;break a}else if((g|0)==82){Rz(T,b,e);d=DB(b,U,T)|0;break a}break}case 108:switch(a[d+1>>0]|0){case 101:{c[b>>2]=d+2;d=Hx(b)|0;Fx(q,50148);c[U>>2]=c[q>>2];c[U+4>>2]=c[q+4>>2];d=qB(d,U)|0;break a}case 115:{c[b>>2]=d+2;d=Hx(b)|0;Fx(r,50151);c[U>>2]=c[r>>2];c[U+4>>2]=c[r+4>>2];d=qB(d,U)|0;break a}case 83:{c[b>>2]=d+2;d=Hx(b)|0;Fx(s,50154);c[U>>2]=c[s>>2];c[U+4>>2]=c[s+4>>2];d=qB(d,U)|0;break a}case 116:{c[b>>2]=d+2;d=Hx(b)|0;Fx(t,49576);c[U>>2]=c[t>>2];c[U+4>>2]=c[t+4>>2];d=qB(d,U)|0;break a}default:{d=0;break a}}case 109:switch(a[d+1>>0]|0){case 105:{c[b>>2]=d+2;d=Hx(b)|0;Fx(u,49997);c[U>>2]=c[u>>2];c[U+4>>2]=c[u+4>>2];d=qB(d,U)|0;break a}case 73:{c[b>>2]=d+2;d=Hx(b)|0;Fx(w,50158);c[U>>2]=c[w>>2];c[U+4>>2]=c[w+4>>2];d=qB(d,U)|0;break a}case 108:{c[b>>2]=d+2;d=Hx(b)|0;Fx(x,49463);c[U>>2]=c[x>>2];c[U+4>>2]=c[x+4>>2];d=qB(d,U)|0;break a}case 76:{c[b>>2]=d+2;d=Hx(b)|0;Fx(y,50161);c[U>>2]=c[y>>2];c[U+4>>2]=c[y+4>>2];d=qB(d,U)|0;break a}case 109:{c[b>>2]=d+2;if(Nx(b,95)|0){d=Hx(b)|0;Fx(z,50164);c[U>>2]=c[z>>2];c[U+4>>2]=c[z+4>>2];d=rB(d,U)|0;break a}T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=EB(b,U,50164)|0;break a}default:{d=0;break a}}case 110:switch(a[d+1>>0]|0){case 119:case 97:{d=FB(Hx(b)|0)|0;break a}case 101:{c[b>>2]=d+2;d=Hx(b)|0;Fx(A,50167);c[U>>2]=c[A>>2];c[U+4>>2]=c[A+4>>2];d=qB(d,U)|0;break a}case 103:{c[b>>2]=d+2;d=Hx(b)|0;Fx(B,49997);c[U>>2]=c[B>>2];c[U+4>>2]=c[B+4>>2];d=rB(d,U)|0;break a}case 116:{c[b>>2]=d+2;d=Hx(b)|0;Fx(C,50170);c[U>>2]=c[C>>2];c[U+4>>2]=c[C+4>>2];d=rB(d,U)|0;break a}case 120:{c[b>>2]=d+2;T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=GB(b,U)|0;break a}default:{d=0;break a}}case 111:switch(a[d+1>>0]|0){case 110:{d=yB(Hx(b)|0)|0;break a}case 111:{c[b>>2]=d+2;d=Hx(b)|0;Fx(E,50172);c[U>>2]=c[E>>2];c[U+4>>2]=c[E+4>>2];d=qB(d,U)|0;break a}case 114:{c[b>>2]=d+2;d=Hx(b)|0;Fx(F,50175);c[U>>2]=c[F>>2];c[U+4>>2]=c[F+4>>2];d=qB(d,U)|0;break a}case 82:{c[b>>2]=d+2;d=Hx(b)|0;Fx(G,50177);c[U>>2]=c[G>>2];c[U+4>>2]=c[G+4>>2];d=qB(d,U)|0;break a}default:{d=0;break a}}case 112:switch(a[d+1>>0]|0){case 109:{c[b>>2]=d+2;d=Hx(b)|0;Fx(H,50180);c[U>>2]=c[H>>2];c[U+4>>2]=c[H+4>>2];d=qB(d,U)|0;break a}case 108:{c[b>>2]=d+2;d=Hx(b)|0;Fx(I,50184);c[U>>2]=c[I>>2];c[U+4>>2]=c[I+4>>2];d=qB(d,U)|0;break a}case 76:{c[b>>2]=d+2;d=Hx(b)|0;Fx(J,50186);c[U>>2]=c[J>>2];c[U+4>>2]=c[J+4>>2];d=qB(d,U)|0;break a}case 112:{c[b>>2]=d+2;if(Nx(b,95)|0){d=Hx(b)|0;Fx(L,50189);c[U>>2]=c[L>>2];c[U+4>>2]=c[L+4>>2];d=rB(d,U)|0;break a}T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=EB(b,U,50189)|0;break a}case 115:{c[b>>2]=d+2;d=Hx(b)|0;Fx(M,50184);c[U>>2]=c[M>>2];c[U+4>>2]=c[M+4>>2];d=rB(d,U)|0;break a}case 116:{c[b>>2]=d+2;d=Hx(b)|0;S=zA(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=zB(b,U,50192,T)|0}break a}default:{d=0;break a}}case 113:{if((a[d+1>>0]|0)!=117){d=0;break a}c[b>>2]=d+2;d=Hx(b)|0;R=zA(d)|0;c[U>>2]=R;if(!R)d=0;else{R=zA(d)|0;c[T>>2]=R;if(!R)d=0;else{R=zA(d)|0;c[S>>2]=R;if(!R)d=0;else d=HB(b,U,T,S)|0}}break a}case 114:switch(a[d+1>>0]|0){case 99:{c[b>>2]=d+2;d=Hx(b)|0;S=Rx(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=IB(b,U,T)|0}break a}case 109:{c[b>>2]=d+2;d=Hx(b)|0;Fx(O,50195);c[U>>2]=c[O>>2];c[U+4>>2]=c[O+4>>2];d=qB(d,U)|0;break a}case 77:{c[b>>2]=d+2;d=Hx(b)|0;Fx(P,50197);c[U>>2]=c[P>>2];c[U+4>>2]=c[P+4>>2];d=qB(d,U)|0;break a}case 115:{c[b>>2]=d+2;d=Hx(b)|0;Fx(Q,50200);c[U>>2]=c[Q>>2];c[U+4>>2]=c[Q+4>>2];d=qB(d,U)|0;break a}case 83:{c[b>>2]=d+2;d=Hx(b)|0;Fx(R,50203);c[U>>2]=c[R>>2];c[U+4>>2]=c[R+4>>2];d=qB(d,U)|0;break a}default:{d=0;break a}}case 115:{switch(a[d+1>>0]|0){case 99:{c[b>>2]=d+2;d=Hx(b)|0;S=Rx(d)|0;c[U>>2]=S;if(!S)d=0;else{S=zA(d)|0;c[T>>2]=S;if(!S)d=0;else d=JB(b,U,T)|0}break a}case 112:{c[b>>2]=d+2;T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=ky(b,U)|0;break a}case 114:{d=yB(Hx(b)|0)|0;break a}case 116:{c[b>>2]=d+2;T=Rx(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=KB(b,50207,U)|0;break a}case 122:{c[b>>2]=d+2;T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=KB(b,50207,U)|0;break a}case 90:{c[b>>2]=d+2;switch((Jx(b,0)|0)<<24>>24){case 84:{T=oy(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=LB(b,U)|0;break a}case 102:{T=oB(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=MB(b,U)|0;break a}default:{d=0;break a}}}case 80:{c[b>>2]=d+2;d=b+8|0;e=xy(d)|0;while(1){if(Nx(b,69)|0){g=172;break}S=Mz(Hx(b)|0)|0;c[U>>2]=S;if(!S){g=171;break}wy(d,U)}if((g|0)==171){d=0;break a}else if((g|0)==172){Rz(T,b,e);c[U>>2]=NB(b,T)|0;d=MB(b,U)|0;break a}break}default:{d=0;break a}}break}case 116:switch(a[d+1>>0]|0){case 101:{c[b>>2]=d+2;T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=KB(b,50216,U)|0;break a}case 105:{c[b>>2]=d+2;T=Rx(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=KB(b,50216,U)|0;break a}case 108:{c[b>>2]=d+2;e=Hx(b)|0;S=Rx(e)|0;c[U>>2]=S;do if(S){d=b+8|0;f=xy(d)|0;while(1){if(Nx(b,69)|0){g=186;break}S=CB(e)|0;c[T>>2]=S;if(!S){g=185;break}wy(d,T)}if((g|0)==185){d=0;break}else if((g|0)==186){Rz(T,b,f);d=OB(b,U,T)|0;break}}else d=0;while(0);break a}case 114:{c[b>>2]=d+2;d=Yx(b,50225)|0;break a}case 119:{c[b>>2]=d+2;T=zA(Hx(b)|0)|0;c[U>>2]=T;if(!T)d=0;else d=PB(b,U)|0;break a}default:{d=0;break a}}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:{d=yB(Hx(b)|0)|0;break a}default:{d=0;break a}}while(0)}while(0);Ia=V;return d|0}function AA(a,b){a=a|0;b=b|0;return kB(a+368|0,b)|0}function BA(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=Ia;Ia=Ia+160|0;u=v+144|0;b=v+136|0;m=v+128|0;d=v+120|0;f=v+112|0;g=v+104|0;h=v+96|0;i=v+88|0;j=v+80|0;k=v+72|0;l=v+64|0;n=v+56|0;o=v+48|0;p=v+40|0;q=v+32|0;r=v+24|0;s=v+16|0;e=v+8|0;t=v;a:do if(Nx(a,76)|0)do switch((Jx(a,0)|0)<<24>>24|0){case 84:{b=0;break a}case 119:{c[a>>2]=(c[a>>2]|0)+1;a=Hx(a)|0;Fx(b,49680);c[u>>2]=c[b>>2];c[u+4>>2]=c[b+4>>2];b=CA(a,u)|0;break a}case 98:{Fx(m,49688);c[u>>2]=c[m>>2];c[u+4>>2]=c[m+4>>2];if(Gx(a,u)|0){c[u>>2]=0;b=DA(a,u)|0;break a}Fx(d,49692);c[u>>2]=c[d>>2];c[u+4>>2]=c[d+4>>2];if(!(Gx(a,u)|0)){b=0;break a}c[u>>2]=1;b=DA(a,u)|0;break a}case 99:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(f,48770);c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];b=CA(b,u)|0;break a}case 97:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(g,48775);c[u>>2]=c[g>>2];c[u+4>>2]=c[g+4>>2];b=CA(b,u)|0;break a}case 104:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(h,48787);c[u>>2]=c[h>>2];c[u+4>>2]=c[h+4>>2];b=CA(b,u)|0;break a}case 115:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(i,48801);c[u>>2]=c[i>>2];c[u+4>>2]=c[i+4>>2];b=CA(b,u)|0;break a}case 116:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(j,48807);c[u>>2]=c[j>>2];c[u+4>>2]=c[j+4>>2];b=CA(b,u)|0;break a}case 105:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(k,1183440);c[u>>2]=c[k>>2];c[u+4>>2]=c[k+4>>2];b=CA(b,u)|0;break a}case 106:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(l,49696);c[u>>2]=c[l>>2];c[u+4>>2]=c[l+4>>2];b=CA(b,u)|0;break a}case 108:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(n,49698);c[u>>2]=c[n>>2];c[u+4>>2]=c[n+4>>2];b=CA(b,u)|0;break a}case 109:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(o,49700);c[u>>2]=c[o>>2];c[u+4>>2]=c[o+4>>2];b=CA(b,u)|0;break a}case 120:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(p,49703);c[u>>2]=c[p>>2];c[u+4>>2]=c[p+4>>2];b=CA(b,u)|0;break a}case 121:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(q,49706);c[u>>2]=c[q>>2];c[u+4>>2]=c[q+4>>2];b=CA(b,u)|0;break a}case 110:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(r,48868);c[u>>2]=c[r>>2];c[u+4>>2]=c[r+4>>2];b=CA(b,u)|0;break a}case 111:{c[a>>2]=(c[a>>2]|0)+1;b=Hx(a)|0;Fx(s,48877);c[u>>2]=c[s>>2];c[u+4>>2]=c[s+4>>2];b=CA(b,u)|0;break a}case 102:{c[a>>2]=(c[a>>2]|0)+1;b=EA(Hx(a)|0)|0;break a}case 100:{c[a>>2]=(c[a>>2]|0)+1;b=FA(Hx(a)|0)|0;break a}case 101:{c[a>>2]=(c[a>>2]|0)+1;b=GA(Hx(a)|0)|0;break a}case 95:{Fx(e,48704);c[u>>2]=c[e>>2];c[u+4>>2]=c[e+4>>2];if(!(Gx(a,u)|0)){b=0;break a}b=Ix(Hx(a)|0)|0;if(b|0?Nx(a,69)|0:0)break a;b=0;break a}default:{b=Rx(Hx(a)|0)|0;c[u>>2]=b;if(!b)b=0;else{Ox(t,a,0);s=Px(t)|0;d=Nx(a,69)|0;if(!s)if(d)b=HA(a,u,t)|0;else b=0;else b=d?b:0}break a}}while(0);else b=0;while(0);Ia=v;return b|0}function CA(a,b){a=a|0;b=b|0;var c=0,d=0;d=Ia;Ia=Ia+16|0;c=d;Ox(c,a,1);if(!(Px(c)|0)?Nx(a,69)|0:0)b=dB(a,b,c)|0;else b=0;Ia=d;return b|0}function DA(a,b){a=a|0;b=b|0;return $A(a+368|0,b)|0}function EA(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;d=h;if((Mx(b)|0)>>>0<9)d=0;else{e=c[b>>2]|0;Kx(d,e,e+8|0);e=Wy(d)|0;f=Ez(d)|0;while(1){if((e|0)==(f|0)){g=5;break}if(!(Tj(a[e>>0]|0)|0)){d=0;break}else e=e+1|0}if((g|0)==5){c[b>>2]=(c[b>>2]|0)+8;if(Nx(b,69)|0)d=WA(b,d)|0;else d=0}}Ia=h;return d|0}function FA(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;d=h;if((Mx(b)|0)>>>0<17)d=0;else{e=c[b>>2]|0;Kx(d,e,e+16|0);e=Wy(d)|0;f=Ez(d)|0;while(1){if((e|0)==(f|0)){g=5;break}if(!(Tj(a[e>>0]|0)|0)){d=0;break}else e=e+1|0}if((g|0)==5){c[b>>2]=(c[b>>2]|0)+16;if(Nx(b,69)|0)d=RA(b,d)|0;else d=0}}Ia=h;return d|0}function GA(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;d=h;if((Mx(b)|0)>>>0<21)d=0;else{e=c[b>>2]|0;Kx(d,e,e+20|0);e=Wy(d)|0;f=Ez(d)|0;while(1){if((e|0)==(f|0)){g=5;break}if(!(Tj(a[e>>0]|0)|0)){d=0;break}else e=e+1|0}if((g|0)==5){c[b>>2]=(c[b>>2]|0)+20;if(Nx(b,69)|0)d=MA(b,d)|0;else d=0}}Ia=h;return d|0}function HA(a,b,c){a=a|0;b=b|0;c=c|0;return IA(a+368|0,b,c)|0}function IA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];JA(a,b,f);Ia=e;return a|0}function JA(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,60,1,1,1);c[a>>2]=38484;c[a+8>>2]=b;b=c[d+4>>2]|0;a=a+12|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function KA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+32|0;e=d+24|0;g=d+16|0;h=d+8|0;f=d;Fx(g,49394);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Fx(h,49390);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);h=a+12|0;g=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function LA(a){a=a|0;Jv(a);return}function MA(a,b){a=a|0;b=b|0;return NA(a+368|0,b)|0}function NA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];OA(a,e);Ia=d;return a|0}function OA(a,b){a=a|0;b=b|0;var d=0;Jy(a,64,1,1,1);c[a>>2]=38528;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function PA(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Ia;Ia=Ia+64|0;k=m+48|0;i=m+40|0;l=m;j=m+56|0;h=b+8|0;b=Wy(h)|0;if(((Ez(h)|0)+1-b|0)>>>0>20){h=i+8|0;e=i;f=0;while(1){if((f|0)==20)break;n=a[b+f>>0]|0;o=a[b+(f|1)>>0]|0;a[e>>0]=((o+-48|0)>>>0<10?208:169)+o+(((n+-48|0)>>>0<10?0:9)+n<<4);e=e+1|0;f=f+2|0}e=i;b=h+2|0;while(1){b=b+-1|0;if(e>>>0>=b>>>0)break;o=a[e>>0]|0;a[e>>0]=a[b>>0]|0;a[b>>0]=o;e=e+1|0}b=l;e=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(e|0));g[k>>3]=+g[i>>3];Kx(j,l,l+(rj(l,40,49762,k)|0)|0);c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];Uy(d,k)}Ia=m;return}function QA(a){a=a|0;Jv(a);return}function RA(a,b){a=a|0;b=b|0;return SA(a+368|0,b)|0}function SA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];TA(a,e);Ia=d;return a|0}function TA(a,b){a=a|0;b=b|0;var d=0;Jy(a,63,1,1,1);c[a>>2]=38572;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function UA(b,d){b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Ia;Ia=Ia+64|0;k=m+40|0;i=m+32|0;l=m;j=m+48|0;h=b+8|0;e=Wy(h)|0;if(((Ez(h)|0)+1-e|0)>>>0>16){b=i+8|0;f=i;h=0;while(1){if((h|0)==16)break;n=a[e+h>>0]|0;o=a[e+(h|1)>>0]|0;a[f>>0]=((o+-48|0)>>>0<10?208:169)+o+(((n+-48|0)>>>0<10?0:9)+n<<4);f=f+1|0;h=h+2|0}e=i;while(1){b=b+-1|0;if(e>>>0>=b>>>0)break;o=a[e>>0]|0;a[e>>0]=a[b>>0]|0;a[b>>0]=o;e=e+1|0}c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[l+12>>2]=0;c[l+16>>2]=0;c[l+20>>2]=0;c[l+24>>2]=0;c[l+28>>2]=0;g[k>>3]=+g[i>>3];Kx(j,l,l+(rj(l,32,49823,k)|0)|0);c[k>>2]=c[j>>2];c[k+4>>2]=c[j+4>>2];Uy(d,k)}Ia=m;return}function VA(a){a=a|0;Jv(a);return}function WA(a,b){a=a|0;b=b|0;return XA(a+368|0,b)|0}function XA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];YA(a,e);Ia=d;return a|0}function YA(a,b){a=a|0;b=b|0;var d=0;Jy(a,62,1,1,1);c[a>>2]=38616;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function ZA(b,d){b=b|0;d=d|0;var e=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=Ia;Ia=Ia+48|0;l=n+24|0;j=n+40|0;m=n;k=n+32|0;i=b+8|0;e=Wy(i)|0;if(((Ez(i)|0)+1-e|0)>>>0>8){b=j+4|0;h=j;i=0;while(1){if((i|0)==8)break;o=a[e+i>>0]|0;p=a[e+(i|1)>>0]|0;a[h>>0]=((p+-48|0)>>>0<10?208:169)+p+(((o+-48|0)>>>0<10?0:9)+o<<4);h=h+1|0;i=i+2|0}e=j;while(1){b=b+-1|0;if(e>>>0>=b>>>0)break;p=a[e>>0]|0;a[e>>0]=a[b>>0]|0;a[b>>0]=p;e=e+1|0}c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[m+20>>2]=0;g[l>>3]=+f[j>>2];Kx(k,m,m+(rj(m,24,49882,l)|0)|0);c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Uy(d,l)}Ia=n;return}function _A(a){a=a|0;Jv(a);return}function $A(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;aB(a,(c[b>>2]|0)!=0);return a|0}function aB(b,d){b=b|0;d=d|0;Jy(b,59,1,1,1);c[b>>2]=38660;a[b+8>>0]=d&1;return}function bB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g+8|0;e=g;if(!(a[b+8>>0]|0))Fx(e,49947);else Fx(e,49942);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];Uy(d,f);Ia=g;return}function cB(a){a=a|0;Jv(a);return}function dB(a,b,c){a=a|0;b=b|0;c=c|0;return eB(a+368|0,b,c)|0}function eB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=Ia;Ia=Ia+32|0;f=e+24|0;g=e+16|0;i=e+8|0;h=e;a=Hy(a,24)|0;k=b;b=c[k+4>>2]|0;j=i;c[j>>2]=c[k>>2];c[j+4>>2]=b;j=d;b=c[j+4>>2]|0;d=h;c[d>>2]=c[j>>2];c[d+4>>2]=b;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];fB(a,g,f);Ia=e;return a|0}function fB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;Jy(a,61,1,1,1);c[a>>2]=38704;f=b;e=c[f+4>>2]|0;b=a+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;b=d;d=c[b+4>>2]|0;a=a+16|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function gB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=Ia;Ia=Ia+64|0;m=n+56|0;e=n+48|0;f=n+16|0;g=n+40|0;i=n+32|0;j=n+24|0;k=n+8|0;l=n;h=b+8|0;if((Vy(h)|0)>>>0>3){Fx(e,49394);c[m>>2]=c[e>>2];c[m+4>>2]=c[e+4>>2];Uy(d,m);p=h;o=c[p+4>>2]|0;e=f;c[e>>2]=c[p>>2];c[e+4>>2]=o;c[m>>2]=c[f>>2];c[m+4>>2]=c[f+4>>2];Uy(d,m);Fx(g,49390);c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];Uy(d,m)}e=b+16|0;if((a[(iB(e)|0)>>0]|0)==110){Fx(i,49997);c[m>>2]=c[i>>2];c[m+4>>2]=c[i+4>>2];Uy(d,m);jB(j,e,1);c[m>>2]=c[j>>2];c[m+4>>2]=c[j+4>>2];Uy(d,m)}else{j=e;o=c[j+4>>2]|0;p=k;c[p>>2]=c[j>>2];c[p+4>>2]=o;c[m>>2]=c[k>>2];c[m+4>>2]=c[k+4>>2];Uy(d,m)}if((Vy(h)|0)>>>0<4){k=h;o=c[k+4>>2]|0;p=l;c[p>>2]=c[k>>2];c[p+4>>2]=o;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];Uy(d,m)}Ia=n;return}function hB(a){a=a|0;Jv(a);return}function iB(a){a=a|0;return Wy(a)|0}function jB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Vy(b)|0;Kx(a,(c[b>>2]|0)+(e>>>0>d>>>0?d:e+-1|0)|0,c[b+4>>2]|0);return}function kB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];lB(a,e);Ia=d;return a|0}function lB(a,b){a=a|0;b=b|0;var d=0;Jy(a,28,1,1,1);c[a>>2]=38748;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function mB(a,b){a=a|0;b=b|0;Xz(a+8|0,b);return}function nB(a){a=a|0;Jv(a);return}function oB(a){a=a|0;var b=0,d=0,e=0,f=0;e=Ia;Ia=Ia+32|0;d=e+16|0;f=e+8|0;b=e;Fx(f,52353);c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];if(!(Gx(a,d)|0)){Fx(b,52356);c[d>>2]=c[b>>2];c[d+4>>2]=c[b+4>>2];if((Gx(a,d)|0?(Ox(d,a,0),!(Px(d)|0)):0)?Nx(a,112)|0:0){BE(a)|0;Ox(d,a,0);if(Nx(a,95)|0)b=CE(a,d)|0;else b=0}else b=0}else{BE(a)|0;Ox(d,a,0);if(Nx(a,95)|0)b=CE(a,d)|0;else b=0}Ia=e;return b|0}function pB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;P=Ia;Ia=Ia+288|0;N=P+8|0;L=P+272|0;M=P;d=P+264|0;s=P+256|0;t=P+248|0;u=P+240|0;v=P+232|0;w=P+224|0;x=P+216|0;y=P+208|0;z=P+200|0;A=P+192|0;B=P+184|0;C=P+176|0;D=P+168|0;E=P+160|0;F=P+152|0;G=P+144|0;H=P+136|0;e=P+128|0;f=P+120|0;g=P+112|0;h=P+104|0;i=P+96|0;j=P+88|0;k=P+80|0;l=P+72|0;m=P+64|0;n=P+56|0;o=P+48|0;p=P+40|0;q=P+32|0;r=P+24|0;K=P+16|0;if(Nx(b,102)|0){I=Jx(b,0)|0;switch(I<<24>>24){case 76:case 108:{O=1;J=4;break}case 82:case 114:{O=0;J=4;break}default:d=0}if((J|0)==4){a[L>>0]=O;c[b>>2]=(c[b>>2]|0)+1;Ty(M);Fx(d,52206);c[N>>2]=c[d>>2];c[N+4>>2]=c[d+4>>2];do if(Gx(b,N)|0){Fx(N,49398);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66}else{Fx(s,52209);c[N>>2]=c[s>>2];c[N+4>>2]=c[s+4>>2];if(Gx(b,N)|0){Fx(N,49396);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(t,52212);c[N>>2]=c[t>>2];c[N+4>>2]=c[t+4>>2];if(Gx(b,N)|0){Fx(N,50110);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(u,52215);c[N>>2]=c[u>>2];c[N+4>>2]=c[u+4>>2];if(Gx(b,N)|0){Fx(N,50113);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(v,52218);c[N>>2]=c[v>>2];c[N+4>>2]=c[v+4>>2];if(Gx(b,N)|0){Fx(N,50125);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(w,52221);c[N>>2]=c[w>>2];c[N+4>>2]=c[w+4>>2];if(Gx(b,N)|0){Fx(N,50129);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(x,52224);c[N>>2]=c[x>>2];c[N+4>>2]=c[x+4>>2];if(Gx(b,N)|0){Fx(N,50132);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(y,52227);c[N>>2]=c[y>>2];c[N+4>>2]=c[y+4>>2];if(Gx(b,N)|0){Fx(N,50134);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(z,52230);c[N>>2]=c[z>>2];c[N+4>>2]=c[z+4>>2];if(Gx(b,N)|0){Fx(N,50137);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(A,52233);c[N>>2]=c[A>>2];c[N+4>>2]=c[A+4>>2];if(Gx(b,N)|0){Fx(N,50139);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(B,52236);c[N>>2]=c[B>>2];c[N+4>>2]=c[B+4>>2];if(Gx(b,N)|0){Fx(N,50142);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(C,52239);c[N>>2]=c[C>>2];c[N+4>>2]=c[C+4>>2];if(Gx(b,N)|0){Fx(N,50145);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(D,52242);c[N>>2]=c[D>>2];c[N+4>>2]=c[D+4>>2];if(Gx(b,N)|0){Fx(N,49469);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(E,52245);c[N>>2]=c[E>>2];c[N+4>>2]=c[E+4>>2];if(Gx(b,N)|0){Fx(N,50148);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(F,52248);c[N>>2]=c[F>>2];c[N+4>>2]=c[F+4>>2];if(Gx(b,N)|0){Fx(N,50151);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(G,52251);c[N>>2]=c[G>>2];c[N+4>>2]=c[G+4>>2];if(Gx(b,N)|0){Fx(N,50154);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(H,52254);c[N>>2]=c[H>>2];c[N+4>>2]=c[H+4>>2];if(Gx(b,N)|0){Fx(N,49576);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(e,52257);c[N>>2]=c[e>>2];c[N+4>>2]=c[e+4>>2];if(Gx(b,N)|0){Fx(N,49997);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(f,52260);c[N>>2]=c[f>>2];c[N+4>>2]=c[f+4>>2];if(Gx(b,N)|0){Fx(N,50158);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(g,52263);c[N>>2]=c[g>>2];c[N+4>>2]=c[g+4>>2];if(Gx(b,N)|0){Fx(N,49463);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(h,52266);c[N>>2]=c[h>>2];c[N+4>>2]=c[h+4>>2];if(Gx(b,N)|0){Fx(N,50161);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(i,52269);c[N>>2]=c[i>>2];c[N+4>>2]=c[i+4>>2];if(Gx(b,N)|0){Fx(N,50167);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(j,52272);c[N>>2]=c[j>>2];c[N+4>>2]=c[j+4>>2];if(Gx(b,N)|0){Fx(N,50172);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(k,52275);c[N>>2]=c[k>>2];c[N+4>>2]=c[k+4>>2];if(Gx(b,N)|0){Fx(N,50175);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(l,52278);c[N>>2]=c[l>>2];c[N+4>>2]=c[l+4>>2];if(Gx(b,N)|0){Fx(N,50177);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(m,52281);c[N>>2]=c[m>>2];c[N+4>>2]=c[m+4>>2];if(Gx(b,N)|0){Fx(N,50184);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(n,52284);c[N>>2]=c[n>>2];c[N+4>>2]=c[n+4>>2];if(Gx(b,N)|0){Fx(N,50186);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(o,52287);c[N>>2]=c[o>>2];c[N+4>>2]=c[o+4>>2];if(Gx(b,N)|0){Fx(N,50195);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(p,52290);c[N>>2]=c[p>>2];c[N+4>>2]=c[p+4>>2];if(Gx(b,N)|0){Fx(N,50197);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(q,52293);c[N>>2]=c[q>>2];c[N+4>>2]=c[q+4>>2];if(Gx(b,N)|0){Fx(N,50200);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66;break}Fx(r,52296);c[N>>2]=c[r>>2];c[N+4>>2]=c[r+4>>2];if(!(Gx(b,N)|0)){d=0;break}Fx(N,50203);G=N;H=c[G+4>>2]|0;J=M;c[J>>2]=c[G>>2];c[J+4>>2]=H;J=66}while(0);if((J|0)==66){d=Hx(b)|0;J=zA(d)|0;c[N>>2]=J;c[K>>2]=0;e=J;a:do if(!J)d=0;else{switch(I<<24>>24){case 76:case 82:{d=zA(d)|0;c[K>>2]=d;if(!d){d=0;break a}if(O<<24>>24){c[N>>2]=d;c[K>>2]=e}break}default:{}}d=vE(b,L,M,N,K)|0}while(0)}}}else d=0;Ia=P;return d|0}function qB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+16|0;d=g+4|0;e=g;f=Hx(a)|0;h=zA(f)|0;c[d>>2]=h;if(!h)b=0;else{h=zA(f)|0;c[e>>2]=h;if(!h)b=0;else b=qE(a,d,b,e)|0}Ia=g;return b|0}function rB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=Ia;Ia=Ia+16|0;d=e;f=zA(Hx(a)|0)|0;c[d>>2]=f;if(!f)d=0;else d=lE(a,b,d)|0;Ia=e;return d|0}function sB(a,b,c){a=a|0;b=b|0;c=c|0;return kE(a+368|0,b,c,49390)|0}function tB(a,b,c){a=a|0;b=b|0;c=c|0;return jE(a+368|0,52095,b,c)|0}function uB(a,b,c){a=a|0;b=b|0;c=c|0;return fE(a+368|0,b,c)|0}function vB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=Ia;Ia=Ia+32|0;g=h+24|0;e=h+16|0;f=h+8|0;b=h;Fx(e,51994);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];if(Gx(a,g)|0){oz(f,a+360|0,0);d=Hx(a)|0;e=Rx(d)|0;c[g>>2]=e;sz(f);do if(e){if(!(Nx(a,95)|0)){e=zA(d)|0;c[f>>2]=e;if(!e)b=0;else{$z(b,a,f,f+4|0);b=$D(a,g,b)|0}break}b=a+8|0;e=xy(b)|0;while(1){if(Nx(a,69)|0){d=9;break}i=zA(d)|0;c[f>>2]=i;if(!i){d=7;break}wy(b,f)}if((d|0)==7){b=0;break}else if((d|0)==9){Rz(f,a,e);b=_D(a,g,f)|0;break}}else b=0;while(0)}else b=0;Ia=h;return b|0}function wB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return WD(a+368|0,b,c,d)|0}function xB(a,b,c){a=a|0;b=b|0;c=c|0;return VD(a+368|0,51923,b,c)|0}function yB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=Ia;Ia=Ia+48|0;f=h+32|0;g=h+8|0;i=h+24|0;b=h+16|0;d=h;c[g>>2]=0;Fx(i,51133);c[f>>2]=c[i>>2];c[f+4>>2]=c[i+4>>2];a:do if(Gx(a,f)|0){b=Hx(a)|0;i=nD(b)|0;c[g>>2]=i;if(!i)b=0;else{do if((Jx(a,0)|0)<<24>>24==73){i=py(b,0)|0;c[f>>2]=i;if(!i){b=0;break a}else{c[g>>2]=qy(a,g,f)|0;break}}while(0);while(1){if(Nx(a,69)|0)break;i=oD(b)|0;c[f>>2]=i;if(!i){e=35;break}c[g>>2]=pD(a,g,f)|0}if((e|0)==35){b=0;break}i=qD(b)|0;c[f>>2]=i;if(!i)b=0;else b=pD(a,g,f)|0}}else{Fx(b,50107);c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];e=Gx(a,f)|0;Fx(d,51137);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];if(!(Gx(a,f)|0)){b=qD(Hx(a)|0)|0;c[g>>2]=b;if((b|0)==0|e^1)break;b=rD(a,g)|0;c[g>>2]=b;break}b:do if((((Jx(a,0)|0)<<24>>24)+-48|0)>>>0>=10){b=Hx(a)|0;i=nD(b)|0;c[g>>2]=i;if(!i){b=0;break a}if((Jx(a,0)|0)<<24>>24==73){i=py(b,0)|0;c[f>>2]=i;if(!i){b=0;break a}else{c[g>>2]=qy(a,g,f)|0;break}}}else{while(1){b=Hx(a)|0;d=oD(b)|0;c[f>>2]=d;if(!d)break;do if(!(c[g>>2]|0))if(e){c[g>>2]=rD(a,f)|0;break}else{c[g>>2]=d;break}else c[g>>2]=pD(a,g,f)|0;while(0);if(Nx(a,69)|0)break b}b=0;break a}while(0);i=qD(b)|0;c[f>>2]=i;if(!i)b=0;else b=pD(a,g,f)|0}while(0);Ia=h;return b|0}function zB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return mD(a+368|0,b,c,d)|0}function AB(a,b,c){a=a|0;b=b|0;c=c|0;return iD(a+368|0,b,51084,c)|0}function BB(a,b,c){a=a|0;b=b|0;c=c|0;return eD(a+368|0,b,c)|0}function CB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=Ia;Ia=Ia+16|0;e=i+8|0;f=i+4|0;g=i;a:do if((Jx(b,0)|0)<<24>>24==100)switch((Jx(b,1)|0)<<24>>24|0){case 105:{c[b>>2]=(c[b>>2]|0)+2;d=Hx(b)|0;j=MC(d)|0;c[e>>2]=j;if(!j)d=0;else{j=CB(d)|0;c[f>>2]=j;if(!j)d=0;else{a[g>>0]=0;d=NC(b,e,f,g)|0}}break a}case 120:{c[b>>2]=(c[b>>2]|0)+2;d=Hx(b)|0;j=zA(d)|0;c[e>>2]=j;if(!j)d=0;else{j=CB(d)|0;c[f>>2]=j;if(!j)d=0;else{a[g>>0]=1;d=NC(b,e,f,g)|0}}break a}case 88:{c[b>>2]=(c[b>>2]|0)+2;d=Hx(b)|0;j=zA(d)|0;c[e>>2]=j;if(!j)d=0;else{j=zA(d)|0;c[f>>2]=j;if(!j)d=0;else{j=CB(d)|0;c[g>>2]=j;if(!j)d=0;else d=OC(b,e,f,g)|0}}break a}default:{h=20;break a}}else h=20;while(0);if((h|0)==20)d=zA(Hx(b)|0)|0;Ia=i;return d|0}function DB(a,b,c){a=a|0;b=b|0;c=c|0;return LC(a+368|0,b,c)|0}function EB(a,b,c){a=a|0;b=b|0;c=c|0;return HC(a+368|0,b,c)|0}function FB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=Ia;Ia=Ia+64|0;k=m+48|0;h=m+57|0;n=m+40|0;i=m+56|0;f=m+32|0;d=m+24|0;g=m+16|0;j=m;e=m+8|0;Fx(n,50107);c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];a[h>>0]=(Gx(b,k)|0)&1;a[i>>0]=(Jx(b,1)|0)<<24>>24==97&1;Fx(f,50721);c[k>>2]=c[f>>2];c[k+4>>2]=c[f+4>>2];if(!(Gx(b,k)|0)?(Fx(d,50724),c[k>>2]=c[d>>2],c[k+4>>2]=c[d+4>>2],!(Gx(b,k)|0)):0)d=0;else l=3;do if((l|0)==3){f=b+8|0;d=xy(f)|0;while(1){if(Nx(b,95)|0)break;n=zA(Hx(b)|0)|0;c[k>>2]=n;if(!n){l=7;break}wy(f,k)}if((l|0)==7){d=0;break}Rz(g,b,d);d=Hx(b)|0;n=Rx(d)|0;c[j>>2]=n;do if(n){Fx(e,50727);c[k>>2]=c[e>>2];c[k+4>>2]=c[e+4>>2];if(!(Gx(b,k)|0)){if(!(Nx(b,69)|0)){d=0;break}zC(k);d=AC(b,g,j,k,h,i)|0;break}e=xy(f)|0;while(1){if(Nx(b,69)|0){l=15;break}n=zA(d)|0;c[k>>2]=n;if(!n){l=13;break}wy(f,k)}if((l|0)==13){d=0;break}else if((l|0)==15){Rz(k,b,e);d=yC(b,g,j,k,h,i)|0;break}}else d=0;while(0)}while(0);Ia=m;return d|0}function GB(a,b){a=a|0;b=b|0;return xC(a+368|0,50710,b,49390)|0}function HB(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return tC(a+368|0,b,c,d)|0}function IB(a,b,c){a=a|0;b=b|0;c=c|0;return sC(a+368|0,50629,b,c)|0}function JB(a,b,c){a=a|0;b=b|0;c=c|0;return oC(a+368|0,50570,b,c)|0}function KB(a,b,c){a=a|0;b=b|0;c=c|0;return nC(a+368|0,b,c,49390)|0}function LB(a,b){a=a|0;b=b|0;return eC(a+368|0,b)|0}function MB(a,b){a=a|0;b=b|0;return aC(a+368|0,50382,b,49390)|0}function NB(a,b){a=a|0;b=b|0;return YB(a+368|0,b)|0}function OB(a,b,c){a=a|0;b=b|0;c=c|0;return UB(a+368|0,b,c)|0}function PB(a,b){a=a|0;b=b|0;return QB(a+368|0,b)|0}function QB(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;RB(a,c[b>>2]|0);return a|0}function RB(a,b){a=a|0;b=b|0;Jy(a,58,1,1,1);c[a>>2]=38792;c[a+8>>2]=b;return}function SB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,50231);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Ia=d;return}function TB(a){a=a|0;Jv(a);return}function UB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];VB(a,b,f);Ia=e;return a|0}function VB(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,56,1,1,1);c[a>>2]=38836;c[a+8>>2]=b;b=c[d+4>>2]|0;a=a+12|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function WB(a,b){a=a|0;b=b|0;var d=0;d=c[a+8>>2]|0;if(d|0)nx(d,b);ox(b,123);Xz(a+12|0,b);ox(b,125);return}function XB(a){a=a|0;Jv(a);return}function YB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];ZB(a,e);Ia=d;return a|0}function ZB(a,b){a=a|0;b=b|0;var d=0;Jy(a,0,1,1,1);c[a>>2]=38880;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function _B(a,b){a=a|0;b=b|0;Xz(a+8|0,b);return}function $B(a){a=a|0;Jv(a);return}function aC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=Ia;Ia=Ia+32|0;g=f+24|0;h=f+16|0;j=f+8|0;i=f;a=Hy(a,28)|0;Fx(j,b);d=c[d>>2]|0;Fx(i,e);c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];bC(a,h,d,g);Ia=f;return a|0}function bC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;Jy(a,47,1,1,1);c[a>>2]=38924;g=b;f=c[g+4>>2]|0;b=a+8|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;c[a+16>>2]=d;b=c[e+4>>2]|0;a=a+20|0;c[a>>2]=c[e>>2];c[a+4>>2]=b;return}function cC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;d=Ia;Ia=Ia+32|0;e=d+16|0;h=d+8|0;f=d;j=a+8|0;i=c[j+4>>2]|0;g=h;c[g>>2]=c[j>>2];c[g+4>>2]=i;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);nx(c[a+16>>2]|0,b);h=a+20|0;g=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function dC(a){a=a|0;Jv(a);return}function eC(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;fC(a,c[b>>2]|0);return a|0}function fC(a,b){a=a|0;b=b|0;Jy(a,49,1,1,1);c[a>>2]=38968;c[a+8>>2]=b;return}function gC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+48|0;e=d+32|0;h=d+24|0;g=d+8|0;f=d;Fx(h,50444);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);iC(g,c[a+8>>2]|0);jC(g,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function hC(a){a=a|0;Jv(a);return}function iC(a,b){a=a|0;b=b|0;Jy(a,29,1,1,1);c[a>>2]=39012;c[a+8>>2]=b;return}function jC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+64|0;l=m+48|0;i=m+32|0;j=m+8|0;f=m+24|0;k=m;h=b+12|0;kC(i,h);d=b+16|0;kC(j,d);g=px(b)|0;e=a+8|0;nx(c[e>>2]|0,b);d=c[d>>2]|0;a:do switch(d|0){case -1:{Fx(f,48924);c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];Uy(b,l);break}case 0:{Zz(b,g);break}default:{a=1;while(1){if(a>>>0>=d>>>0)break a;Fx(k,49578);c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Uy(b,l);c[h>>2]=a;nx(c[e>>2]|0,b);a=a+1|0}}}while(0);lC(j);lC(i);Ia=m;return}function kC(b,d){b=b|0;d=d|0;c[b>>2]=d;c[b+4>>2]=c[d>>2];a[b+8>>0]=1;c[d>>2]=-1;return}function lC(b){b=b|0;if(a[b+8>>0]|0)c[c[b>>2]>>2]=c[b+4>>2];return}function mC(a){a=a|0;Jv(a);return}function nC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=Ia;Ia=Ia+32|0;g=f+24|0;h=f+16|0;j=f+8|0;i=f;a=Hy(a,28)|0;Fx(j,b);d=c[d>>2]|0;Fx(i,e);c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];bC(a,h,d,g);Ia=f;return a|0}function oC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;a=Hy(a,24)|0;Fx(h,b);d=c[d>>2]|0;e=c[e>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];pC(a,g,d,e);Ia=f;return a|0}function pC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;Jy(a,48,1,1,1);c[a>>2]=39056;g=b;f=c[g+4>>2]|0;b=a+8|0;c[b>>2]=c[g>>2];c[b+4>>2]=f;c[a+16>>2]=d;c[a+20>>2]=e;return}function qC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=Ia;Ia=Ia+48|0;e=d+32|0;i=d;h=d+24|0;g=d+16|0;f=d+8|0;l=a+8|0;k=c[l+4>>2]|0;j=i;c[j>>2]=c[l>>2];c[j+4>>2]=k;c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];Uy(b,e);Fx(h,49576);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);h=c[a+16>>2]|0;Ya[c[(c[h>>2]|0)+16>>2]&127](h,b);Fx(g,50582);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);a=c[a+20>>2]|0;Ya[c[(c[a>>2]|0)+16>>2]&127](a,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function rC(a){a=a|0;Jv(a);return}function sC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;a=Hy(a,24)|0;Fx(h,b);d=c[d>>2]|0;e=c[e>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];pC(a,g,d,e);Ia=f;return a|0}function tC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Hy(a,20)|0;uC(a,c[b>>2]|0,c[d>>2]|0,c[e>>2]|0);return a|0}function uC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Jy(a,45,1,1,1);c[a>>2]=39100;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;return}function vC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+48|0;e=d+32|0;i=d+24|0;h=d+16|0;g=d+8|0;f=d;Fx(i,49394);c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Fx(h,50646);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);nx(c[a+12>>2]|0,b);Fx(g,50652);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);nx(c[a+16>>2]|0,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function wC(a){a=a|0;Jv(a);return}function xC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=Ia;Ia=Ia+32|0;g=f+24|0;h=f+16|0;j=f+8|0;i=f;a=Hy(a,28)|0;Fx(j,b);d=c[d>>2]|0;Fx(i,e);c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];bC(a,h,d,g);Ia=f;return a|0}function yC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return GC(a+368|0,b,c,d,e,f)|0}function zC(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function AC(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return BC(a+368|0,b,c,d,e,f)|0}function BC(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=Ia;Ia=Ia+32|0;j=i+24|0;k=i+16|0;m=i+8|0;l=i;b=Hy(b,32)|0;o=d;d=c[o+4>>2]|0;n=m;c[n>>2]=c[o>>2];c[n+4>>2]=d;e=c[e>>2]|0;n=f;d=c[n+4>>2]|0;f=l;c[f>>2]=c[n>>2];c[f+4>>2]=d;g=(a[g>>0]|0)!=0;h=(a[h>>0]|0)!=0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];CC(b,k,e,j,g,h);Ia=i;return b|0}function CC(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;Jy(b,51,1,1,1);c[b>>2]=39144;j=d;i=c[j+4>>2]|0;d=b+8|0;c[d>>2]=c[j>>2];c[d+4>>2]=i;c[b+16>>2]=e;d=f;f=c[d+4>>2]|0;e=b+20|0;c[e>>2]=c[d>>2];c[e+4>>2]=f;a[b+28>>0]=g&1;a[b+29>>0]=h&1;return}function DC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+64|0;l=m+56|0;e=m+48|0;f=m+40|0;g=m+32|0;h=m+24|0;i=m+16|0;j=m+8|0;k=m;if(a[b+28>>0]|0){Fx(e,50730);c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];Uy(d,l)}Fx(f,50742);c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];Uy(d,l);if(a[b+29>>0]|0){Fx(g,50746);c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];Uy(d,l)}ox(d,32);e=b+8|0;if(!(FC(e)|0)){Fx(h,49394);c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];Uy(d,l);Xz(e,d);Fx(i,49390);c[l>>2]=c[i>>2];c[l+4>>2]=c[i+4>>2];Uy(d,l)}nx(c[b+16>>2]|0,d);e=b+20|0;if(!(FC(e)|0)){Fx(j,49394);c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];Uy(d,l);Xz(e,d);Fx(k,49390);c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Uy(d,l)}Ia=m;return}function EC(a){a=a|0;Jv(a);return}function FC(a){a=a|0;return (c[a+4>>2]|0)==0|0}function GC(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=Ia;Ia=Ia+32|0;j=i+24|0;k=i+16|0;m=i+8|0;l=i;b=Hy(b,32)|0;o=d;d=c[o+4>>2]|0;n=m;c[n>>2]=c[o>>2];c[n+4>>2]=d;e=c[e>>2]|0;n=f;d=c[n+4>>2]|0;f=l;c[f>>2]=c[n>>2];c[f+4>>2]=d;g=(a[g>>0]|0)!=0;h=(a[h>>0]|0)!=0;c[k>>2]=c[m>>2];c[k+4>>2]=c[m+4>>2];c[j>>2]=c[l>>2];c[j+4>>2]=c[l+4>>2];CC(b,k,e,j,g,h);Ia=i;return b|0}function HC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;Fx(g,d);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];IC(a,b,f);Ia=e;return a|0}function IC(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,44,1,1,1);c[a>>2]=39188;c[a+8>>2]=b;b=d;d=c[b+4>>2]|0;a=a+12|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function JC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+32|0;e=d+24|0;g=d+16|0;h=d+8|0;f=d;Fx(g,49394);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Fx(h,49390);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);h=a+12|0;g=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function KC(a){a=a|0;Jv(a);return}function LC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;b=Ia;Ia=Ia+16|0;e=b+8|0;f=b;a=Hy(a,20)|0;h=d;g=c[h+4>>2]|0;d=f;c[d>>2]=c[h>>2];c[d+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];VB(a,0,e);Ia=b;return a|0}function MC(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;h=Ia;Ia=Ia+32|0;g=h+24|0;d=h+16|0;e=h+8|0;f=h;c[d>>2]=0;if(!(XC(a,d)|0)?(i=Mx(a)|0,b=c[d>>2]|0,(b+-1|0)>>>0>>0):0){i=c[a>>2]|0;Kx(e,i,i+b|0);c[a>>2]=(c[a>>2]|0)+b;Fx(f,50949);c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];if(YC(e,g)|0)b=ZC(a)|0;else b=hy(a,e)|0}else b=0;Ia=h;return b|0}function NC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return TC(a+368|0,b,c,d)|0}function OC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return PC(a+368|0,b,c,d)|0}function PC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=Hy(a,20)|0;QC(a,c[b>>2]|0,c[d>>2]|0,c[e>>2]|0);return a|0}function QC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;Jy(a,66,1,1,1);c[a>>2]=39232;c[a+8>>2]=b;c[a+12>>2]=d;c[a+16>>2]=e;return}function RC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+32|0;f=g+16|0;d=g+8|0;e=g;ox(b,91);nx(c[a+8>>2]|0,b);Fx(d,50840);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];Uy(b,f);nx(c[a+12>>2]|0,b);ox(b,93);d=a+16|0;a=c[d>>2]|0;if(((tz(a)|0)+-65&255)>=2){Fx(e,50846);c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];Uy(b,f);a=c[d>>2]|0}nx(a,b);Ia=g;return}function SC(a){a=a|0;Jv(a);return}function TC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=Hy(b,20)|0;UC(b,c[d>>2]|0,c[e>>2]|0,(a[f>>0]|0)!=0);return b|0}function UC(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;Jy(b,65,1,1,1);c[b>>2]=39276;c[b+8>>2]=d;c[b+12>>2]=e;a[b+16>>0]=f&1;return}function VC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;g=h+8|0;f=h;if(!(a[b+16>>0]|0)){ox(d,46);nx(c[b+8>>2]|0,d)}else{ox(d,91);nx(c[b+8>>2]|0,d);ox(d,93)}e=b+12|0;b=c[e>>2]|0;if(((tz(b)|0)+-65&255)>=2){Fx(f,50846);c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Uy(d,g);b=c[e>>2]|0}nx(b,d);Ia=h;return}function WC(a){a=a|0;Jv(a);return}function XC(a,b){a=a|0;b=b|0;var d=0,e=0;c[b>>2]=0;a:do if(((Jx(a,0)|0)+-48&255)>9)d=1;else{d=0;while(1){if(((Jx(a,0)|0)+-48&255)>=10){d=0;break a}c[b>>2]=d*10;e=((dD(a)|0)<<24>>24)+-48|0;e=e+(c[b>>2]|0)|0;c[b>>2]=e;d=e}}while(0);return d|0}function YC(b,c){b=b|0;c=c|0;var d=0,e=0;e=Vy(c)|0;a:do if(e>>>0>(Vy(b)|0)>>>0)c=0;else{d=Wy(c)|0;e=Ez(c)|0;c=Wy(b)|0;while(1){if((d|0)==(e|0)){c=1;break a}if((a[d>>0]|0)!=(a[c>>0]|0)){c=0;break a}d=d+1|0;c=c+1|0}}while(0);return c|0}function ZC(a){a=a|0;return _C(a+368|0,50960)|0}function _C(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function $C(a,b){a=a|0;b=b|0;var d=0;Jy(a,7,1,1,1);c[a>>2]=39320;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function aD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;h=a+8|0;g=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return} +function xh(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+144|0;n=p+80|0;o=p;k=p+64|0;l=p+16|0;d=Gv(16)|0;c[o>>2]=d;c[o+8>>2]=-2147483632;c[o+4>>2]=14;h=d;e=45054;m=h+14|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+14>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;zh(n,1183440,239);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;f=n+36|0;g=c[f+4>>2]|0;j=d+64|0;c[j>>2]=c[f>>2];c[j+4>>2]=g;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;j=n+56|0;m=c[j+4>>2]|0;f=e;c[f>>2]=c[j>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;j=o+11|0;a[j>>0]=8;g=o;c[g>>2]=1953394499;c[g+4>>2]=1953525093;a[o+8>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,24.0,-100,100,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;e=n+36|0;f=c[e+4>>2]|0;g=d+64|0;c[g>>2]=c[e>>2];c[g+4>>2]=f;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;g=n+56|0;m=c[g+4>>2]|0;f=e;c[f>>2]=c[g>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[j>>0]|0)<0)Jv(c[o>>2]|0);d=Gv(32)|0;c[o>>2]=d;c[o+8>>2]=-2147483616;c[o+4>>2]=17;h=d;e=45076;m=h+17|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+17>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){f=Gv(92)|0;e=f+16|0;c[e>>2]=c[o>>2];c[e+4>>2]=c[o+4>>2];c[e+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;e=f+52|0;d=f+63|0;h=f+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[d>>0]=6;a[e>>0]=a[45069]|0;a[e+1>>0]=a[45070]|0;a[e+2>>0]=a[45071]|0;a[e+3>>0]=a[45072]|0;a[e+4>>0]=a[45073]|0;a[e+5>>0]=a[45074]|0;a[f+58>>0]=0;d=f+64|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[f+88>>2]=0;d=c[n>>2]|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=d;c[g>>2]=f;d=c[c[b>>2]>>2]|0;if(!d)d=f;else{c[b>>2]=d;d=c[g>>2]|0}sc(c[b+4>>2]|0,d);d=b+8|0;c[d>>2]=(c[d>>2]|0)+1;d=f}m=d+28|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;a[l+11>>0]=4;c[l>>2]=1752461122;a[l+4>>0]=0;j=l+12|0;i=l+16|0;c[i>>2]=0;c[i+4>>2]=0;a[j+11>>0]=3;a[j>>0]=a[45094]|0;a[j+1>>0]=a[45095]|0;a[j+2>>0]=a[45096]|0;a[j+3>>0]=0;j=l+24|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;a[j+11>>0]=5;a[j>>0]=a[45098]|0;a[j+1>>0]=a[45099]|0;a[j+2>>0]=a[45100]|0;a[j+3>>0]=a[45101]|0;a[j+4>>0]=a[45102]|0;a[j+5>>0]=0;j=l+36|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;a[j+11>>0]=5;a[j>>0]=a[45104]|0;a[j+1>>0]=a[45105]|0;a[j+2>>0]=a[45106]|0;a[j+3>>0]=a[45107]|0;a[j+4>>0]=a[45108]|0;a[j+5>>0]=0;c[k>>2]=0;j=k+4|0;c[j>>2]=0;i=k+8|0;c[i>>2]=0;h=Gv(48)|0;c[j>>2]=h;c[k>>2]=h;c[i>>2]=h+48;Rv(h,l);h=(c[j>>2]|0)+12|0;c[j>>2]=h;Rv(h,l+12|0);h=(c[j>>2]|0)+12|0;c[j>>2]=h;Rv(h,l+24|0);h=(c[j>>2]|0)+12|0;c[j>>2]=h;Rv(h,l+36|0);c[j>>2]=(c[j>>2]|0)+12;Dh(n,45254,k,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;e=n+36|0;f=c[e+4>>2]|0;g=d+64|0;c[g>>2]=c[e>>2];c[g+4>>2]=f;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;g=n+56|0;m=c[g+4>>2]|0;f=e;c[f>>2]=c[g>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);e=c[k>>2]|0;if(e|0){d=c[j>>2]|0;if((d|0)==(e|0))d=e;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(e|0));d=c[k>>2]|0}c[j>>2]=e;Jv(d)}d=l+36|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);d=l+24|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);d=l+12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[l+11>>0]|0)<0)Jv(c[l>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);c[o+8>>2]=0;j=o+11|0;a[j>>0]=7;a[o>>0]=a[45110]|0;a[o+1>>0]=a[45111]|0;a[o+2>>0]=a[45112]|0;a[o+3>>0]=a[45113]|0;a[o+4>>0]=a[45114]|0;a[o+5>>0]=a[45115]|0;a[o+6>>0]=a[45116]|0;a[o+7>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,1.0,1,1,240);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;g=n+36|0;k=c[g+4>>2]|0;l=d+64|0;c[l>>2]=c[g>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[j>>0]|0)<0)Jv(c[o>>2]|0);c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;j=o+11|0;a[j>>0]=4;c[o>>2]=1752392008;a[o+4>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,16.0,16,16,241);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;g=n+36|0;k=c[g+4>>2]|0;l=d+64|0;c[l>>2]=c[g>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[j>>0]|0)<0)Jv(c[o>>2]|0);k=o+11|0;a[k>>0]=10;h=o;e=45118;m=h+10|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[o+10>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}e=d+28|0;j=n+24|0;i=j+11|0;h=n;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[i>>0]=6;a[j>>0]=a[45069]|0;a[j+1>>0]=a[45070]|0;a[j+2>>0]=a[45071]|0;a[j+3>>0]=a[45072]|0;a[j+4>>0]=a[45073]|0;a[j+5>>0]=a[45074]|0;a[j+6>>0]=0;g=n+36|0;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[n+60>>2]=242;Xv(e,n)|0;h=n+12|0;Xv(d+40|0,h)|0;Xv(d+52|0,j)|0;l=c[g+4>>2]|0;m=d+64|0;c[m>>2]=c[g>>2];c[m+4>>2]=l;if((e|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i>>0]|0)<0)Jv(c[j>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;j=o+11|0;a[j>>0]=6;a[o>>0]=a[45129]|0;a[o+1>>0]=a[45130]|0;a[o+2>>0]=a[45131]|0;a[o+3>>0]=a[45132]|0;a[o+4>>0]=a[45133]|0;a[o+5>>0]=a[45134]|0;a[o+6>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Ch(n,0,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;g=n+36|0;k=c[g+4>>2]|0;l=d+64|0;c[l>>2]=c[g>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[j>>0]|0)<0)Jv(c[o>>2]|0);c[o+8>>2]=0;j=o+11|0;a[j>>0]=7;a[o>>0]=a[45136]|0;a[o+1>>0]=a[45137]|0;a[o+2>>0]=a[45138]|0;a[o+3>>0]=a[45139]|0;a[o+4>>0]=a[45140]|0;a[o+5>>0]=a[45141]|0;a[o+6>>0]=a[45142]|0;a[o+7>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,1.0,1,500,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;g=n+36|0;k=c[g+4>>2]|0;l=d+64|0;c[l>>2]=c[g>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[j>>0]|0)<0)Jv(c[o>>2]|0);d=Gv(16)|0;c[o>>2]=d;c[o+8>>2]=-2147483632;c[o+4>>2]=11;h=d;e=45144;m=h+11|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+11>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,20.0,0,20,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;j=n+36|0;k=c[j+4>>2]|0;l=d+64|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);d=Gv(16)|0;c[o>>2]=d;c[o+8>>2]=-2147483632;c[o+4>>2]=13;h=d;e=45156;m=h+13|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+13>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,30.0,0,5e3,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;j=n+36|0;k=c[j+4>>2]|0;l=d+64|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);d=Gv(32)|0;c[o>>2]=d;c[o+8>>2]=-2147483616;c[o+4>>2]=21;h=d;e=45170;m=h+21|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+21>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,20.0,0,5e3,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;j=n+36|0;k=c[j+4>>2]|0;l=d+64|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);j=o+11|0;a[j>>0]=10;h=o;e=45192;m=h+10|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[o+10>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,84.0,10,1e3,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;g=n+36|0;k=c[g+4>>2]|0;l=d+64|0;c[l>>2]=c[g>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[j>>0]|0)<0)Jv(c[o>>2]|0);c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;j=o+11|0;a[j>>0]=9;h=o;e=45203;m=h+9|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[o+9>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Bh(n,0.0,0,1e4,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;g=n+36|0;k=c[g+4>>2]|0;l=d+64|0;c[l>>2]=c[g>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[j>>0]|0)<0)Jv(c[o>>2]|0);d=Gv(16)|0;c[o>>2]=d;c[o+8>>2]=-2147483632;c[o+4>>2]=12;h=d;e=45213;m=h+12|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+12>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}m=d+28|0;Ch(n,0,0);Xv(m,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;j=n+36|0;k=c[j+4>>2]|0;l=d+64|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;if((m|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);d=Gv(16)|0;c[o>>2]=d;c[o+8>>2]=-2147483632;c[o+4>>2]=11;h=d;e=45226;m=h+11|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+11>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);m=b+8|0;c[m>>2]=(c[m>>2]|0)+1}f=d+28|0;e=c[295326]|0;if((a[e+11>>0]|0)<0)e=c[e>>2]|0;Dh(n,e,1181304,0);Xv(f,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;k=n+36|0;l=c[k+4>>2]|0;m=d+64|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;if((f|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;l=n+56|0;m=c[l+4>>2]|0;f=e;c[f>>2]=c[l>>2];c[f+4>>2]=m;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);d=Gv(16)|0;c[o>>2]=d;c[o+8>>2]=-2147483632;c[o+4>>2]=15;h=d;e=45238;m=h+15|0;do{a[h>>0]=a[e>>0]|0;h=h+1|0;e=e+1|0}while((h|0)<(m|0));a[d+15>>0]=0;g=yh(b,n,o)|0;d=c[g>>2]|0;if(!d){d=Gv(92)|0;f=d+16|0;c[f>>2]=c[o>>2];c[f+4>>2]=c[o+4>>2];c[f+8>>2]=c[o+8>>2];c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;f=d+52|0;e=d+63|0;h=d+28|0;m=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(m|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[d+58>>0]=0;e=d+64|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[d+88>>2]=0;e=c[n>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=e;c[g>>2]=d;e=c[c[b>>2]>>2]|0;if(!e)e=d;else{c[b>>2]=e;e=c[g>>2]|0}sc(c[b+4>>2]|0,e);b=b+8|0;c[b>>2]=(c[b>>2]|0)+1}b=d+28|0;Ch(n,0,0);Xv(b,n)|0;h=n+12|0;Xv(d+40|0,h)|0;i=n+24|0;Xv(d+52|0,i)|0;k=n+36|0;l=c[k+4>>2]|0;m=d+64|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;if((b|0)!=(n|0))Ah(d+72|0,c[n+44>>2]|0,c[n+48>>2]|0);e=d+84|0;m=n+56|0;b=c[m+4>>2]|0;f=e;c[f>>2]=c[m>>2];c[f+4>>2]=b;f=c[295329]|0;c[295329]=f+1;c[e>>2]=f;e=n+44|0;f=c[e>>2]|0;if(f|0){g=n+48|0;d=c[g>>2]|0;if((d|0)==(f|0))d=f;else{do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));d=c[e>>2]|0}c[g>>2]=f;Jv(d)}if((a[i+11>>0]|0)<0)Jv(c[i>>2]|0);if((a[h+11>>0]|0)<0)Jv(c[h>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[o+11>>0]|0)>=0){Ia=p;return}Jv(c[o>>2]|0);Ia=p;return}function yh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f=b+4|0;g=c[f>>2]|0;if(!g){c[d>>2]=f;d=f;return d|0}f=b+4|0;k=a[e+11>>0]|0;m=k<<24>>24<0;n=m?c[e>>2]|0:e;k=m?c[e+4>>2]|0:k&255;m=n+k|0;a:do if(!k){e=g+16|0;b=a[e+11>>0]|0;l=b<<24>>24<0;e=l?c[e>>2]|0:e;b=l?c[g+20>>2]|0:b&255;if(!b){b=g;l=29}else{j=g;i=e+b|0;while(1){h=n;while(1){if((h|0)==(m|0))break;g=a[e>>0]|0;b=Uj(a[h>>0]|0)|0;g=Uj(g<<24>>24)|0;if((b|0)<(g|0))break;if((g|0)<(b|0)){b=j;l=29;break a}e=e+1|0;if((e|0)==(i|0)){b=j;l=29;break a}else h=h+1|0}f=c[j>>2]|0;if(!f){b=j;f=j;l=21;break a}e=f+16|0;b=a[e+11>>0]|0;l=b<<24>>24<0;e=l?c[e>>2]|0:e;b=l?c[f+20>>2]|0:b&255;if(!b)break;else{l=j;j=f;i=e+b|0;f=l}}b=f;f=j;l=29}}else{while(1){b=g+16|0;j=a[b+11>>0]|0;k=j<<24>>24<0;b=k?c[b>>2]|0:b;j=k?c[g+20>>2]|0:j&255;k=b+j|0;b:do if(j){e=n;h=b;while(1){if((e|0)==(m|0))break;j=a[h>>0]|0;i=Uj(a[e>>0]|0)|0;j=Uj(j<<24>>24)|0;if((i|0)<(j|0))break;if((j|0)<(i|0)){l=15;break b}h=h+1|0;if((h|0)==(k|0)){l=15;break b}else e=e+1|0}f=c[g>>2]|0;if(!f){b=g;f=g;l=21;break a}else{b=f;f=g}}else l=15;while(0);if((l|0)==15){l=0;e=n;while(1){if((b|0)==(k|0))break;i=a[e>>0]|0;h=Uj(a[b>>0]|0)|0;i=Uj(i<<24>>24)|0;if((h|0)<(i|0))break;if((i|0)<(h|0)){b=g;l=29;break a}e=e+1|0;if((e|0)==(m|0)){b=g;l=29;break a}else b=b+1|0}f=g+4|0;b=c[f>>2]|0;if(!b)break}g=b}c[d>>2]=g;d=f;return d|0}while(0);if((l|0)==21){c[d>>2]=f;d=b;return d|0}else if((l|0)==29){c[d>>2]=b;d=f;return d|0}return 0}function zh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=b+12|0;h=b+24|0;f=h+11|0;i=b;j=i+36|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(j|0));a[f>>0]=6;a[h>>0]=a[49140]|0;a[h+1>>0]=a[49141]|0;a[h+2>>0]=a[49142]|0;a[h+3>>0]=a[49143]|0;a[h+4>>0]=a[49144]|0;a[h+5>>0]=a[49145]|0;a[h+6>>0]=0;j=b+36|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[b+60>>2]=e;Xv(b,$v(g,d)|0)|0;return}function Ah(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=(e-d|0)/12|0;j=b+8|0;f=c[j>>2]|0;g=c[b>>2]|0;k=g;if(i>>>0<=((f-g|0)/12|0)>>>0){j=b+4|0;h=((c[j>>2]|0)-g|0)/12|0;g=i>>>0>h>>>0;i=d+(h*12|0)|0;h=g?i:e;if((h|0)==(d|0))f=k;else{f=k;do{Xv(f,d)|0;d=d+12|0;f=f+12|0}while((d|0)!=(h|0))}if(g){if((h|0)==(e|0))return;f=c[j>>2]|0;d=i;do{Rv(f,d);d=d+12|0;f=(c[j>>2]|0)+12|0;c[j>>2]=f}while((d|0)!=(e|0));return}d=c[j>>2]|0;if((d|0)!=(f|0))do{d=d+-12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0)}while((d|0)!=(f|0));c[j>>2]=f;return}if(g){h=b+4|0;f=c[h>>2]|0;if((f|0)==(k|0))f=g;else{do{f=f+-12|0;if((a[f+11>>0]|0)<0)Jv(c[f>>2]|0)}while((f|0)!=(k|0));f=c[b>>2]|0}c[h>>2]=k;Jv(f);c[j>>2]=0;c[h>>2]=0;c[b>>2]=0;f=0}if(i>>>0>357913941)Lw(b);k=(f|0)/12|0;g=k<<1;g=k>>>0<178956970?(g>>>0>>0?i:g):357913941;if(g>>>0>357913941)Lw(b);f=Gv(g*12|0)|0;h=b+4|0;c[h>>2]=f;c[b>>2]=f;c[j>>2]=f+(g*12|0);if((d|0)==(e|0))return;do{Rv(f,d);d=d+12|0;f=(c[h>>2]|0)+12|0;c[h>>2]=f}while((d|0)!=(e|0));return}function Bh(b,d,e,f,g){b=b|0;d=+d;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+16|0;m=n;l=b+12|0;i=b+24|0;h=i+11|0;j=b;k=j+36|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(k|0));a[h>>0]=4;a[i>>0]=115;a[i+1>>0]=112;a[i+2>>0]=105;a[i+3>>0]=110;a[b+28>>0]=0;c[b+36>>2]=e;c[b+40>>2]=f;c[b+44>>2]=0;c[b+48>>2]=0;c[b+52>>2]=0;c[b+60>>2]=g;Hw(m,d);h=l+11|0;if((a[h>>0]|0)<0){a[c[l>>2]>>0]=0;c[b+16>>2]=0;if((a[h>>0]|0)<0){Jv(c[l>>2]|0);c[b+20>>2]=0}}else{a[l>>0]=0;a[h>>0]=0};c[l>>2]=c[m>>2];c[l+4>>2]=c[m+4>>2];c[l+8>>2]=c[m+8>>2];c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;Xv(b,l)|0;if((a[m+11>>0]|0)>=0){Ia=n;return}Jv(c[m>>2]|0);Ia=n;return}function Ch(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=b+12|0;h=b+24|0;f=h+11|0;i=b;j=i+36|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(j|0));a[f>>0]=5;a[h>>0]=a[45265]|0;a[h+1>>0]=a[45266]|0;a[h+2>>0]=a[45267]|0;a[h+3>>0]=a[45268]|0;a[h+4>>0]=a[45269]|0;a[h+5>>0]=0;j=b+36|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[b+60>>2]=e;Xv(b,$v(g,d?49942:49947)|0)|0;return}function Dh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0;h=b+12|0;i=b+24|0;g=i+11|0;j=b;k=j+36|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(k|0));a[g>>0]=5;a[i>>0]=a[45259]|0;a[i+1>>0]=a[45260]|0;a[i+2>>0]=a[45261]|0;a[i+3>>0]=a[45262]|0;a[i+4>>0]=a[45263]|0;a[i+5>>0]=0;c[b+36>>2]=0;c[b+40>>2]=0;Eh(b+44|0,e);c[b+60>>2]=f;Xv(b,$v(h,d)|0)|0;return}function Eh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;c[a>>2]=0;i=a+4|0;c[i>>2]=0;f=a+8|0;c[f>>2]=0;h=b+4|0;d=(c[h>>2]|0)-(c[b>>2]|0)|0;g=(d|0)/12|0;if(!d)return;if(g>>>0>357913941)Lw(a);e=Gv(d)|0;c[i>>2]=e;c[a>>2]=e;c[f>>2]=e+(g*12|0);d=c[b>>2]|0;f=c[h>>2]|0;if((d|0)==(f|0))return;do{Rv(e,d);d=d+12|0;e=(c[i>>2]|0)+12|0;c[i>>2]=e}while((d|0)!=(f|0));return}function Fh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=Ia;Ia=Ia+16|0;u=v;r=d+8|0;if(!(c[r>>2]|0)){Ia=v;return b|0}s=d+4|0;p=u+11|0;q=u+4|0;t=0;do{e=c[d>>2]|0;a:do if((e|0)!=(s|0)){while(1){if((c[e+84>>2]|0)==(t|0))break;f=c[e+4>>2]|0;if(!f){f=e+8|0;g=c[f>>2]|0;if((c[g>>2]|0)==(e|0))e=g;else do{m=c[f>>2]|0;f=m+8|0;e=c[f>>2]|0}while((c[e>>2]|0)!=(m|0))}else{e=f;while(1){f=c[e>>2]|0;if(!f)break;else e=f}}if((e|0)==(s|0))break a}j=e+16|0;l=e+28|0;f=Tb(b,45271,13)|0;h=a[j+11>>0]|0;m=h<<24>>24<0;h=Tb(Tb(f,m?c[j>>2]|0:j,m?c[e+20>>2]|0:h&255)|0,45285,6)|0;m=e+52|0;j=m+11|0;f=a[j>>0]|0;g=f<<24>>24<0;k=e+56|0;Tb(h,g?c[m>>2]|0:m,g?c[k>>2]|0:f&255)|0;f=a[j>>0]|0;g=c[k>>2]|0;h=f&255;if(((f<<24>>24<0?g:h)|0)==6)if(!(mw(m,0,-1,49140,6)|0))i=15;else{h=a[j>>0]|0;f=h;g=c[k>>2]|0;h=h&255;i=10}else i=10;do if((i|0)==10){i=0;if(((f<<24>>24<0?g:h)|0)==5){if(!(mw(m,0,-1,45265,5)|0)){i=15;break}h=a[j>>0]|0;f=h;g=c[k>>2]|0;h=h&255}if(((f<<24>>24<0?g:h)|0)==5?(mw(m,0,-1,45259,5)|0)==0:0)i=15}while(0);if((i|0)==15){g=Tb(b,45292,9)|0;i=a[l+11>>0]|0;h=i<<24>>24<0;Tb(g,h?c[l>>2]|0:l,h?c[e+32>>2]|0:i&255)|0}i=a[j>>0]|0;if((((i<<24>>24<0?c[k>>2]|0:i&255)|0)==5?(mw(m,0,-1,45259,5)|0)==0:0)?(n=c[e+72>>2]|0,o=c[e+76>>2]|0,(n|0)!=(o|0)):0){f=n;do{Rv(u,f);g=Tb(b,45302,5)|0;i=a[p>>0]|0;h=i<<24>>24<0;Tb(g,h?c[u>>2]|0:u,h?c[q>>2]|0:i&255)|0;if((a[p>>0]|0)<0)Jv(c[u>>2]|0);f=f+12|0}while((f|0)!=(o|0))}j=a[j>>0]|0;if(((j<<24>>24<0?c[k>>2]|0:j&255)|0)==4?(mw(m,0,-1,45049,4)|0)==0:0){m=Tb(b,45292,9)|0;m=Tb(bm(m,~~+Ew(l,0))|0,45308,5)|0;m=Tb(bm(m,c[e+64>>2]|0)|0,45314,5)|0;bm(m,c[e+68>>2]|0)|0}}while(0);t=t+1|0}while(t>>>0<(c[r>>2]|0)>>>0);Ia=v;return b|0}function Gh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=b+24|0;e=f+11|0;g=b;h=g+36|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));a[e>>0]=6;a[f>>0]=a[45069]|0;a[f+1>>0]=a[45070]|0;a[f+2>>0]=a[45071]|0;a[f+3>>0]=a[45072]|0;a[f+4>>0]=a[45073]|0;a[f+5>>0]=a[45074]|0;a[f+6>>0]=0;h=b+36|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[b+60>>2]=d;return}function Hh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=Ia;Ia=Ia+32|0;q=r+12|0;n=r;o=b+12|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;g=li(d)|0;if(g>>>0>4294967279)Pv(q);if(g>>>0<11){f=q+11|0;a[f>>0]=g;if(!g){e=q;p=f}else{e=q;m=6}}else{f=g+16&-16;e=Gv(f)|0;c[q>>2]=e;c[q+8>>2]=f|-2147483648;c[q+4>>2]=g;f=q+11|0;m=6}if((m|0)==6){BJ(e|0,d|0,g|0)|0;p=f}a[e+g>>0]=0;k=o+11|0;i=a[k>>0]|0;f=i<<24>>24<0;l=b+16|0;e=f?c[o>>2]|0:o;i=e+(f?c[l>>2]|0:i&255)|0;f=a[p>>0]|0;h=f<<24>>24<0;g=h?c[q>>2]|0:q;h=h?c[q+4>>2]|0:f&255;j=g+h|0;a:do if(!h)m=13;else while(1){if((e|0)==(i|0)){e=0;break a}h=a[g>>0]|0;b=Uj(a[e>>0]|0)|0;h=Uj(h<<24>>24)|0;if((b|0)<(h|0)){e=0;break a}if((h|0)<(b|0)){m=13;break a}g=g+1|0;if((g|0)==(j|0)){m=13;break}else e=e+1|0}while(0);if((m|0)==13){c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;g=li(d)|0;if(g>>>0>4294967279)Pv(n);if(g>>>0<11){e=n+11|0;a[e>>0]=g;if(!g)f=n;else{f=n;m=18}}else{e=g+16&-16;f=Gv(e)|0;c[n>>2]=f;c[n+8>>2]=e|-2147483648;c[n+4>>2]=g;e=n+11|0;m=18}if((m|0)==18)BJ(f|0,d|0,g|0)|0;a[f+g>>0]=0;i=a[e>>0]|0;d=i<<24>>24<0;j=c[n>>2]|0;b=d?j:n;i=b+(d?c[n+4>>2]|0:i&255)|0;h=a[k>>0]|0;n=h<<24>>24<0;e=n?c[o>>2]|0:o;o=n?c[l>>2]|0:h&255;h=e+o|0;b:do if(!o)e=1;else while(1){if((b|0)==(i|0)){e=0;break b}g=a[e>>0]|0;f=Uj(a[b>>0]|0)|0;g=Uj(g<<24>>24)|0;if((f|0)<(g|0)){e=0;break b}if((g|0)<(f|0)){e=1;break b}e=e+1|0;if((e|0)==(h|0)){e=1;break}else b=b+1|0}while(0);if(d)Jv(j);f=a[p>>0]|0}if(f<<24>>24>=0){Ia=r;return e|0}Jv(c[q>>2]|0);Ia=r;return e|0}function Ih(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;p=b+24|0;n=p+11|0;m=a[n>>0]|0;o=b+28|0;if(!(((m<<24>>24<0?c[o>>2]|0:m&255)|0)==6?!(mw(p,0,-1,45069,6)|0):0))e=3;if((e|0)==3?(m=a[d+11>>0]|0,((m<<24>>24<0?c[d+4>>2]|0:m&255)|0)==0):0)return b|0;m=a[n>>0]|0;do if(((m<<24>>24<0?c[o>>2]|0:m&255)|0)==5?(mw(p,0,-1,45265,5)|0)==0:0){h=d+11|0;g=a[h>>0]|0;i=d+4|0;f=c[i>>2]|0;e=g&255;if(((g<<24>>24<0?f:e)|0)==4){if(!(mw(d,0,-1,49942,4)|0))break;e=a[h>>0]|0;g=e;f=c[i>>2]|0;e=e&255}if(((g<<24>>24<0?f:e)|0)!=5)return b|0;if(mw(d,0,-1,49947,5)|0)return b|0}while(0);m=a[n>>0]|0;if(((m<<24>>24<0?c[o>>2]|0:m&255)|0)==5?(mw(p,0,-1,45259,5)|0)==0:0){e=c[b+44>>2]|0;m=c[b+48>>2]|0;a:do if((e|0)!=(m|0)){l=a[d+11>>0]|0;k=l<<24>>24<0;l=k?c[d+4>>2]|0:l&255;k=k?c[d>>2]|0:d;j=(l|0)==0;do{f=a[e+11>>0]|0;i=f<<24>>24<0;f=f&255;do if(((i?c[e+4>>2]|0:f)|0)==(l|0)){g=c[e>>2]|0;h=i?g:e;g=g&255;if(i){if(j)break a;if(!(Vj(h,k,l)|0))break a;else break}if(j)break a;if((a[k>>0]|0)==g<<24>>24){g=e;h=k;do{f=f+-1|0;g=g+1|0;if(!f)break a;h=h+1|0}while((a[g>>0]|0)==(a[h>>0]|0))}}while(0);e=e+12|0}while((e|0)!=(m|0));return b|0}while(0);if((e|0)==(m|0))return b|0}m=a[n>>0]|0;if(((m<<24>>24<0?c[o>>2]|0:m&255)|0)==4?(mw(p,0,-1,45049,4)|0)==0:0){q=+Ew(d,0);if(q<+(c[b+36>>2]|0))return b|0;q=+Ew(d,0);if(q>+(c[b+40>>2]|0))return b|0}n=a[n>>0]|0;if(!(((n<<24>>24<0?c[o>>2]|0:n&255)|0)==6?!(mw(p,0,-1,45069,6)|0):0))Xv(b+12|0,d)|0;e=c[b+60>>2]|0;if(!e)return b|0;Xa[e&255](b);return b|0}function Jh(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+16|0;d=b;c[d>>2]=Oh(c[a+60>>2]|0)|0;a=Mh(Z(6,d|0)|0)|0;Ia=b;return a|0}function Kh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=Ia;Ia=Ia+48|0;i=m+32|0;f=m+16|0;e=m;j=a+28|0;g=c[j>>2]|0;c[e>>2]=g;k=a+20|0;g=(c[k>>2]|0)-g|0;c[e+4>>2]=g;c[e+8>>2]=b;c[e+12>>2]=d;g=g+d|0;h=a+60|0;c[f>>2]=c[h>>2];c[f+4>>2]=e;c[f+8>>2]=2;b=Mh(V(146,f|0)|0)|0;a:do if((g|0)!=(b|0)){f=2;while(1){if((b|0)<0)break;g=g-b|0;o=c[e+4>>2]|0;n=b>>>0>o>>>0;e=n?e+8|0:e;f=f+(n<<31>>31)|0;o=b-(n?o:0)|0;c[e>>2]=(c[e>>2]|0)+o;n=e+4|0;c[n>>2]=(c[n>>2]|0)-o;c[i>>2]=c[h>>2];c[i+4>>2]=e;c[i+8>>2]=f;b=Mh(V(146,i|0)|0)|0;if((g|0)==(b|0)){l=3;break a}}c[a+16>>2]=0;c[j>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((f|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}else l=3;while(0);if((l|0)==3){o=c[a+44>>2]|0;c[a+16>>2]=o+(c[a+48>>2]|0);c[j>>2]=o;c[k>>2]=o}Ia=m;return d|0}function Lh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=Ia;Ia=Ia+32|0;h=g+8|0;f=g;c[h>>2]=c[a+60>>2];c[h+4>>2]=d;c[h+8>>2]=b;c[h+12>>2]=f;c[h+16>>2]=e;if((Mh(T(140,h|0)|0)|0)<0){b=f;c[b>>2]=-1;c[b+4>>2]=-1;b=-1;d=-1}else{d=f;b=c[d+4>>2]|0;d=c[d>>2]|0}D(b|0);Ia=g;return d|0}function Mh(a){a=a|0;if(a>>>0>4294963200){c[(Nh()|0)>>2]=0-a;a=-1}return a|0}function Nh(){return 1181320}function Oh(a){a=a|0;return a|0}function Ph(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;k=Ia;Ia=Ia+32|0;f=k+16|0;i=k;c[i>>2]=d;g=i+4|0;j=b+48|0;l=c[j>>2]|0;c[g>>2]=e-((l|0)!=0&1);h=b+44|0;c[i+8>>2]=c[h>>2];c[i+12>>2]=l;c[f>>2]=c[b+60>>2];c[f+4>>2]=i;c[f+8>>2]=2;f=Mh(U(145,f|0)|0)|0;if((f|0)>=1){i=c[g>>2]|0;if(f>>>0>i>>>0){g=c[h>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-i);if(!(c[j>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else c[b>>2]=c[b>>2]|f&48^16;Ia=k;return f|0}function Qh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=Ia;Ia=Ia+32|0;f=g;c[b+36>>2]=5;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21523,c[f+8>>2]=g+16,Y(54,f|0)|0):0)a[b+75>>0]=-1;f=Kh(b,d,e)|0;Ia=g;return f|0}function Rh(a,b){a=a|0;b=b|0;return +(+Sh(a,b,1))}function Sh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0;g=Ia;Ia=Ia+144|0;e=g;DJ(e|0,0,144)|0;i=e+4|0;c[i>>2]=a;h=e+8|0;c[h>>2]=-1;c[e+44>>2]=a;c[e+76>>2]=-1;Th(e,0,0);f=+Uh(e,d,1);e=e+120|0;d=(c[i>>2]|0)-(c[h>>2]|0)|0;d=pJ(c[e>>2]|0,c[e+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;e=E()|0;if(b|0)c[b>>2]=(d|0)==0&(e|0)==0?a:a+d|0;Ia=g;return +f}function Th(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=a+112|0;c[e>>2]=b;c[e+4>>2]=d;e=c[a+8>>2]|0;f=c[a+4>>2]|0;g=e-f|0;h=((g|0)<0)<<31>>31;i=a+120|0;c[i>>2]=g;c[i+4>>2]=h;if(((b|0)!=0|(d|0)!=0)&((h|0)>(d|0)|(h|0)==(d|0)&g>>>0>b>>>0))c[a+104>>2]=f+b;else c[a+104>>2]=e;return}function Uh(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;switch(e|0){case 0:{l=24;m=-149;i=4;break}case 1:{l=53;m=-1074;i=4;break}case 2:{l=53;m=-1074;i=4;break}default:g=0.0}a:do if((i|0)==4){o=b+4|0;n=b+104|0;do{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=Vh(b)|0}while((Wh(e)|0)!=0);b:do switch(e|0){case 43:case 45:{h=1-(((e|0)==45&1)<<1)|0;e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0;k=h;break b}else{e=Vh(b)|0;k=h;break b}}default:k=1}while(0);h=e;e=0;while(1){if((h|32|0)!=(a[45320+e>>0]|0))break;do if(e>>>0<7){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=Vh(b)|0;break}}while(0);e=e+1|0;if(e>>>0>=8){e=8;break}}c:do switch(e&2147483647|0){case 8:break;case 3:{i=23;break}default:{j=(f|0)!=0;if(j&e>>>0>3)if((e|0)==8)break c;else{i=23;break c}d:do if(!e){e=0;while(1){if((h|32|0)!=(a[45382+e>>0]|0))break d;do if(e>>>0<2){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=Vh(b)|0;break}}while(0);e=e+1|0;if(e>>>0>=3){e=3;break}}}while(0);switch(e|0){case 3:{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=Vh(b)|0;if((e|0)!=40){if(!(c[n>>2]|0)){g=r;break a}c[o>>2]=(c[o>>2]|0)+-1;g=r;break a}e=1;while(1){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0}else h=Vh(b)|0;if(!((h+-48|0)>>>0<10|(h+-65|0)>>>0<26)?!((h|0)==95|(h+-97|0)>>>0<26):0)break;e=e+1|0}if((h|0)==41){g=r;break a}h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!j){c[(Nh()|0)>>2]=22;Th(b,0,0);g=0.0;break a}if(!e){g=r;break a}while(1){e=e+-1|0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!e){g=r;break a}}}case 0:{if((h|0)==48){e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=Vh(b)|0;if((e|32|0)==120){g=+Xh(b,l,m,k,f);break a}if(!(c[n>>2]|0))e=48;else{c[o>>2]=(c[o>>2]|0)+-1;e=48}}else e=h;g=+Yh(b,e,l,m,k,f);break a}default:{if(c[n>>2]|0)c[o>>2]=(c[o>>2]|0)+-1;c[(Nh()|0)>>2]=22;Th(b,0,0);g=0.0;break a}}}}while(0);if((i|0)==23){h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[o>>2]=(c[o>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(k|0)*s}while(0);return +g}function Vh(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=b+112|0;f=g;e=c[f>>2]|0;f=c[f+4>>2]|0;if(!((e|0)==0&(f|0)==0)?(i=b+120|0,h=c[i+4>>2]|0,!((h|0)<(f|0)|((h|0)==(f|0)?(c[i>>2]|0)>>>0>>0:0))):0)j=4;else{e=fi(b)|0;if((e|0)>=0){f=c[g>>2]|0;g=c[g+4>>2]|0;i=c[b+8>>2]|0;if(!((f|0)==0&(g|0)==0)){h=c[b+4>>2]|0;k=i-h|0;l=((k|0)<0)<<31>>31;m=b+120|0;g=qJ(f|0,g|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=E()|0;f=i;if((m|0)>(l|0)|(m|0)==(l|0)&g>>>0>k>>>0)j=9;else c[b+104>>2]=h+(g+-1)}else{f=i;j=9}if((j|0)==9)c[b+104>>2]=i;g=b+4|0;if(!f)f=c[g>>2]|0;else{m=c[g>>2]|0;k=f+1-m|0;f=b+120|0;l=f;k=pJ(c[l>>2]|0,c[l+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;l=E()|0;c[f>>2]=k;c[f+4>>2]=l;f=m}f=f+-1|0;if((e|0)!=(d[f>>0]|0|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+104>>2]=0;e=-1}return e|0}function Wh(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Xh(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0.0,i=0,j=0,k=0,l=0.0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=a+4|0;i=c[y>>2]|0;x=a+104|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=Vh(a)|0;m=0;a:while(1){switch(i|0){case 46:{w=10;break a}case 48:break;default:{j=0;k=0;o=0;break a}}i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=Vh(a)|0;m=1}if((w|0)==10){i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=Vh(a)|0;if((i|0)==48){j=0;k=0;do{i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=Vh(a)|0;j=pJ(j|0,k|0,-1,-1)|0;k=E()|0}while((i|0)==48);m=1;o=1}else{j=0;k=0;o=1}}v=0;u=0;t=k;s=0;n=1.0;k=0;h=0.0;while(1){r=i+-48|0;p=i|32;if(r>>>0>=10){q=(i|0)==46;if(!(q|(p+-97|0)>>>0<6))break;if(q)if(!o){j=u;t=v;r=u;q=v;o=1;p=s;l=n}else{i=46;break}else w=24}else w=24;if((w|0)==24){w=0;i=(i|0)>57?p+-87|0:r;do if(!((v|0)<0|(v|0)==0&u>>>0<8))if((v|0)<0|(v|0)==0&u>>>0<14){n=n*.0625;p=s;l=n;h=h+n*+(i|0);break}else{r=(s|0)!=0|(i|0)==0;p=r?s:1;l=n;h=r?h:h+n*.5;break}else{p=s;l=n;k=i+(k<<4)|0}while(0);r=pJ(u|0,v|0,1,0)|0;q=E()|0;m=1}i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=Vh(a)|0;v=q;u=r;s=p;n=l}do if(!m){i=(c[x>>2]|0)==0;if(!i)c[y>>2]=(c[y>>2]|0)+-1;if(g){if(!i?(c[y>>2]=(c[y>>2]|0)+-1,!((o|0)==0|i)):0)c[y>>2]=(c[y>>2]|0)+-1}else Th(a,0,0);h=+(f|0)*0.0}else{o=(o|0)==0;p=o?u:j;o=o?v:t;if((v|0)<0|(v|0)==0&u>>>0<8){m=u;j=v;do{k=k<<4;w=m;m=pJ(m|0,j|0,1,0)|0;v=j;j=E()|0}while((v|0)<0|(v|0)==0&w>>>0<7)}if((i|32|0)==112){j=Zh(a,g)|0;i=E()|0;if((j|0)==0&(i|0)==-2147483648){if(!g){Th(a,0,0);h=0.0;break}if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}}}else if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}y=yJ(p|0,o|0,2)|0;y=pJ(y|0,E()|0,-32,-1)|0;i=pJ(y|0,E()|0,j|0,i|0)|0;j=E()|0;if(!k){h=+(f|0)*0.0;break}y=0-e|0;g=((y|0)<0)<<31>>31;if((j|0)>(g|0)|(j|0)==(g|0)&i>>>0>y>>>0){c[(Nh()|0)>>2]=34;h=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}y=e+-106|0;g=((y|0)<0)<<31>>31;if((j|0)<(g|0)|(j|0)==(g|0)&i>>>0>>0){c[(Nh()|0)>>2]=34;h=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((k|0)>-1){do{y=!(h>=.5);k=k<<1|(y^1)&1;h=h+(y?h:h+-1.0);i=pJ(i|0,j|0,-1,-1)|0;j=E()|0}while((k|0)>-1);m=i;n=h}else{m=i;n=h}y=((b|0)<0)<<31>>31;i=qJ(32,0,e|0,((e|0)<0)<<31>>31|0)|0;i=pJ(i|0,E()|0,m|0,j|0)|0;e=E()|0;if((e|0)<(y|0)|(e|0)==(y|0)&i>>>0>>0)if((i|0)>0)w=65;else{j=0;i=84;w=67}else{i=b;w=65}if((w|0)==65)if((i|0)<53){j=i;i=84-i|0;w=67}else{l=0.0;h=+(f|0)}if((w|0)==67){h=+(f|0);l=+$h(+_h(1.0,i),h);i=j}f=(k&1|0)==0&(n!=0.0&(i|0)<32);h=(f?0.0:n)*h+(l+h*+((k+(f&1)|0)>>>0))-l;if(!(h!=0.0))c[(Nh()|0)>>2]=34;h=+bi(h,m)}while(0);return +h}function Yh(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,t=0.0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0.0;I=Ia;Ia=Ia+512|0;F=I;G=f+e|0;H=0-G|0;C=a+4|0;D=a+104|0;j=b;m=0;a:while(1){switch(j|0){case 46:{A=7;break a}case 48:break;default:{l=0;b=0;p=0;break a}}b=c[C>>2]|0;if(b>>>0<(c[D>>2]|0)>>>0){c[C>>2]=b+1;b=d[b>>0]|0}else b=Vh(a)|0;j=b;m=1}if((A|0)==7){b=c[C>>2]|0;if(b>>>0<(c[D>>2]|0)>>>0){c[C>>2]=b+1;j=d[b>>0]|0}else j=Vh(a)|0;if((j|0)==48){j=0;b=0;while(1){l=pJ(j|0,b|0,-1,-1)|0;b=E()|0;j=c[C>>2]|0;if(j>>>0<(c[D>>2]|0)>>>0){c[C>>2]=j+1;j=d[j>>0]|0}else j=Vh(a)|0;if((j|0)==48)j=l;else{m=1;p=1;break}}}else{l=0;b=0;p=1}}c[F>>2]=0;v=j+-48|0;n=(j|0)==46;b:do if(n|v>>>0<10){B=F+496|0;A=l;y=0;s=0;w=n;o=0;l=0;n=0;c:while(1){do if(w)if(!p){A=y;b=s;p=1}else break c;else{w=pJ(y|0,s|0,1,0)|0;s=E()|0;x=(j|0)!=48;if((l|0)>=125){if(!x){y=w;break}c[B>>2]=c[B>>2]|1;y=w;break}m=F+(l<<2)|0;if(!o)j=v;else j=j+-48+((c[m>>2]|0)*10|0)|0;c[m>>2]=j;o=o+1|0;v=(o|0)==9;y=w;m=1;o=v?0:o;l=l+(v&1)|0;n=x?w:n}while(0);j=c[C>>2]|0;if(j>>>0<(c[D>>2]|0)>>>0){c[C>>2]=j+1;j=d[j>>0]|0}else j=Vh(a)|0;v=j+-48|0;w=(j|0)==46;if(!(w|v>>>0<10)){v=y;w=A;A=31;break b}}v=y;p=A;j=(m|0)!=0;A=39}else{v=0;w=l;s=0;o=0;l=0;n=0;A=31}while(0);do if((A|0)==31){B=(p|0)==0;p=B?v:w;b=B?s:b;w=(m|0)!=0;if(!(w&(j|32|0)==101))if((j|0)>-1){j=w;A=39;break}else{m=s;j=w;A=41;break}m=Zh(a,h)|0;j=E()|0;if((m|0)==0&(j|0)==-2147483648){if(!h){Th(a,0,0);i=0.0;break}if(!(c[D>>2]|0)){m=0;j=0}else{c[C>>2]=(c[C>>2]|0)+-1;m=0;j=0}}w=pJ(m|0,j|0,p|0,b|0)|0;p=v;b=E()|0;m=s;A=43}while(0);if((A|0)==39)if(c[D>>2]|0){c[C>>2]=(c[C>>2]|0)+-1;if(j){w=p;p=v;m=s;A=43}else A=42}else{m=s;A=41}if((A|0)==41)if(j){w=p;p=v;A=43}else A=42;do if((A|0)==42){c[(Nh()|0)>>2]=22;Th(a,0,0);i=0.0}else if((A|0)==43){j=c[F>>2]|0;if(!j){i=+(g|0)*0.0;break}if(((m|0)<0|(m|0)==0&p>>>0<10)&((w|0)==(p|0)&(b|0)==(m|0))?(e|0)>30|((e?j>>>e:j)|0)==0:0){i=+(g|0)*+(j>>>0);break}a=(f|0)/-2|0;D=((a|0)<0)<<31>>31;if((b|0)>(D|0)|(b|0)==(D|0)&w>>>0>a>>>0){c[(Nh()|0)>>2]=34;i=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=f+-106|0;D=((a|0)<0)<<31>>31;if((b|0)<(D|0)|(b|0)==(D|0)&w>>>0>>0){c[(Nh()|0)>>2]=34;i=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(o){if((o|0)<9){m=F+(l<<2)|0;b=o;j=c[m>>2]|0;while(1){j=j*10|0;if((b|0)>=8)break;else b=b+1|0}c[m>>2]=j}l=l+1|0}if((n|0)<9?(n|0)<=(w|0)&(w|0)<18:0){if((w|0)==9){i=+(g|0)*+((c[F>>2]|0)>>>0);break}if((w|0)<9){i=+(g|0)*+((c[F>>2]|0)>>>0)/+(c[24032+(8-w<<2)>>2]|0);break}a=e+27+(z(w,-3)|0)|0;b=c[F>>2]|0;if((a|0)>30|((a?b>>>a:b)|0)==0){i=+(g|0)*+(b>>>0)*+(c[24032+(w+-10<<2)>>2]|0);break}}b=(w|0)%9|0;if(!b){m=0;j=w}else{s=(w|0)>-1?b:b+9|0;m=c[24032+(8-s<<2)>>2]|0;if(l){o=1e9/(m|0)|0;j=0;n=0;p=0;b=w;do{C=F+(p<<2)|0;D=c[C>>2]|0;a=(D>>>0)/(m>>>0)|0;D=D-(z(a,m)|0)|0;a=a+n|0;c[C>>2]=a;n=z(o,D)|0;a=(p|0)==(j|0)&(a|0)==0;b=a?b+-9|0:b;j=a?j+1&127:j;p=p+1|0}while((p|0)!=(l|0));if(n){c[F+(l<<2)>>2]=n;l=l+1|0}}else{j=0;b=w;l=0}m=j;j=9-s+b|0}b=0;d:while(1){x=(j|0)<18;y=(j|0)==18;w=F+(m<<2)|0;do{if(!x){if(!y)break d;if((c[w>>2]|0)>>>0>=9007199){j=18;break d}}o=0;n=l+127|0;while(1){s=n&127;p=F+(s<<2)|0;n=yJ(c[p>>2]|0,0,29)|0;n=pJ(n|0,E()|0,o|0,0)|0;o=E()|0;if(o>>>0>0|(o|0)==0&n>>>0>1e9){v=wJ(n|0,o|0,1e9,0)|0;a=vJ(v|0,E()|0,1e9,0)|0;n=qJ(n|0,o|0,a|0,E()|0)|0;E()|0}else v=0;c[p>>2]=n;a=(s|0)==(m|0);p=(s|0)!=(l+127&127|0)|a?l:(n|0)==0?s:l;if(a)break;else{o=v;n=s+-1|0;l=p}}b=b+-29|0}while((v|0)==0);m=m+127&127;n=p+127&127;o=F+((p+126&127)<<2)|0;if((m|0)==(p|0)){c[o>>2]=c[o>>2]|c[F+(n<<2)>>2];l=n}c[F+(m<<2)>>2]=v;j=j+9|0}e:while(1){w=l+1&127;x=F+((l+127&127)<<2)|0;while(1){p=(j|0)==18;v=(j|0)>27?9:1;y=m;while(1){o=0;while(1){m=o+y&127;if((m|0)==(l|0)){A=92;break}m=c[F+(m<<2)>>2]|0;n=c[34452+(o<<2)>>2]|0;if(m>>>0>>0){A=92;break}if(m>>>0>n>>>0)break;if((o+1|0)>>>0<2)o=1;else{A=92;break}}if((A|0)==92?(A=0,p):0)break e;b=v+b|0;if((y|0)==(l|0))y=l;else break}s=(1<>>v:1e9;m=y;o=0;n=y;do{C=F+(n<<2)|0;D=c[C>>2]|0;a=(v?D>>>v:D)+o|0;c[C>>2]=a;o=z(D&s,p)|0;a=(n|0)==(m|0)&(a|0)==0;j=a?j+-9|0:j;m=a?m+1&127:m;n=n+1&127}while((n|0)!=(l|0));if(o|0){if((w|0)!=(m|0))break;c[x>>2]=c[x>>2]|1}}c[F+(l<<2)>>2]=o;l=w}n=0;i=0.0;while(1){m=n+y&127;j=l+1&127;if((m|0)==(l|0))c[F+(j+-1<<2)>>2]=0;else j=l;i=i*1.0e9+ +((c[F+(m<<2)>>2]|0)>>>0);n=n+1|0;if((n|0)==2)break;else l=j}t=+(g|0);k=i*t;m=b+53|0;p=m-f|0;o=(p|0)<(e|0);n=o?((p|0)>0?p:0):e;if((n|0)<53){J=+$h(+_h(1.0,105-n|0),k);q=+ai(k,+_h(1.0,53-n|0));r=J;i=q;q=J+(k-q)}else{r=0.0;i=0.0;q=k}l=y+2&127;if((l|0)!=(j|0)){l=c[F+(l<<2)>>2]|0;do if(l>>>0>=5e8){if((l|0)!=5e8){i=t*.75+i;break}if((y+3&127|0)==(j|0)){i=t*.5+i;break}else{i=t*.75+i;break}}else{if((l|0)==0?(y+3&127|0)==(j|0):0)break;i=t*.25+i}while(0);if((53-n|0)>1?!(+ai(i,1.0)!=0.0):0)k=i+1.0;else k=i}else k=i;i=q+k-r;do if((m&2147483647|0)>(-2-G|0)){G=!(+u(+i)>=9007199254740992.0);b=b+((G^1)&1)|0;i=G?i:i*.5;if((b+50|0)<=(H|0)?!(k!=0.0&(o&((n|0)!=(p|0)|G))):0)break;c[(Nh()|0)>>2]=34}while(0);i=+bi(i,b)}while(0);Ia=I;return +i}function Zh(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;e=c[i>>2]|0;j=a+104|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;f=d[e>>0]|0}else f=Vh(a)|0;switch(f|0){case 43:case 45:{g=(f|0)==45&1;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;e=d[e>>0]|0}else e=Vh(a)|0;f=e+-48|0;if((b|0)!=0&f>>>0>9)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;k=14}else{h=g;k=12}break}default:{e=f;h=0;f=f+-48|0;k=12}}if((k|0)==12)if(f>>>0>9)k=14;else{g=0;while(1){g=e+-48+(g*10|0)|0;e=c[i>>2]|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;f=d[e>>0]|0}else f=Vh(a)|0;b=f+-48|0;if(!(b>>>0<10&(g|0)<214748364))break;else e=f}e=((g|0)<0)<<31>>31;if(b>>>0<10){do{l=vJ(g|0,e|0,10,0)|0;b=E()|0;f=pJ(f|0,((f|0)<0)<<31>>31|0,-48,-1)|0;g=pJ(f|0,E()|0,l|0,b|0)|0;e=E()|0;f=c[i>>2]|0;if(f>>>0<(c[j>>2]|0)>>>0){c[i>>2]=f+1;f=d[f>>0]|0}else f=Vh(a)|0;b=f+-48|0}while(b>>>0<10&((e|0)<21474836|(e|0)==21474836&g>>>0<2061584302));if(b>>>0<10)do{f=c[i>>2]|0;if(f>>>0<(c[j>>2]|0)>>>0){c[i>>2]=f+1;f=d[f>>0]|0}else f=Vh(a)|0}while((f+-48|0)>>>0<10)}if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;j=(h|0)==0;l=qJ(0,0,g|0,e|0)|0;f=E()|0;f=j?e:f;e=j?g:l}if((k|0)==14)if(!(c[j>>2]|0)){f=-2147483648;e=0}else{c[i>>2]=(c[i>>2]|0)+-1;f=-2147483648;e=0}D(f|0);return e|0}function _h(a,b){a=+a;b=b|0;var d=0,e=0;if((b|0)<=1023){if((b|0)<-1022){a=a*2.2250738585072014e-308;d=(b|0)<-2044;e=b+2044|0;b=d?((e|0)>-1022?e:-1022):b+1022|0;a=d?a*2.2250738585072014e-308:a}}else{a=a*8988465674311579538646525.0e283;e=(b|0)>2046;d=b+-2046|0;b=e?((d|0)<1023?d:1023):b+-1023|0;a=e?a*8988465674311579538646525.0e283:a}d=yJ(b+1023|0,0,52)|0;e=E()|0;c[h>>2]=d;c[h+4>>2]=e;return +(a*+g[h>>3])}function $h(a,b){a=+a;b=+b;return +(+ei(a,b))}function ai(a,b){a=+a;b=+b;return +(+ci(a,b))}function bi(a,b){a=+a;b=b|0;return +(+_h(a,b))}function ci(a,b){a=+a;b=+b;var d=0,e=0,f=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g[h>>3]=a;k=c[h>>2]|0;l=c[h+4>>2]|0;g[h>>3]=b;n=c[h>>2]|0;o=c[h+4>>2]|0;e=xJ(k|0,l|0,52)|0;E()|0;e=e&2047;m=xJ(n|0,o|0,52)|0;E()|0;m=m&2047;p=l&-2147483648;j=yJ(n|0,o|0,1)|0;i=E()|0;a:do if(!((j|0)==0&(i|0)==0)?(f=di(b)|0,d=(E()|0)&2147483647,!((e|0)==2047|(d>>>0>2146435072|(d|0)==2146435072&f>>>0>0))):0){d=yJ(k|0,l|0,1)|0;f=E()|0;if(!(f>>>0>i>>>0|(f|0)==(i|0)&d>>>0>j>>>0))return +((d|0)==(j|0)&(f|0)==(i|0)?a*0.0:a);if(!e){d=yJ(k|0,l|0,12)|0;e=E()|0;if((e|0)>-1|(e|0)==-1&d>>>0>4294967295){f=e;e=0;do{e=e+-1|0;d=yJ(d|0,f|0,1)|0;f=E()|0}while((f|0)>-1|(f|0)==-1&d>>>0>4294967295)}else e=0;k=yJ(k|0,l|0,1-e|0)|0;j=E()|0}else j=l&1048575|1048576;if(!m){d=yJ(n|0,o|0,12)|0;f=E()|0;if((f|0)>-1|(f|0)==-1&d>>>0>4294967295){i=0;do{i=i+-1|0;d=yJ(d|0,f|0,1)|0;f=E()|0}while((f|0)>-1|(f|0)==-1&d>>>0>4294967295)}else i=0;n=yJ(n|0,o|0,1-i|0)|0;l=E()|0;m=i}else l=o&1048575|1048576;d=qJ(k|0,j|0,n|0,l|0)|0;f=E()|0;i=(f|0)>-1|(f|0)==-1&d>>>0>4294967295;b:do if((e|0)>(m|0)){while(1){if(i){if((d|0)==0&(f|0)==0)break}else{d=k;f=j}k=yJ(d|0,f|0,1)|0;j=E()|0;e=e+-1|0;d=qJ(k|0,j|0,n|0,l|0)|0;f=E()|0;i=(f|0)>-1|(f|0)==-1&d>>>0>4294967295;if((e|0)<=(m|0))break b}b=a*0.0;break a}while(0);if(i){if((d|0)==0&(f|0)==0){b=a*0.0;break}}else{f=j;d=k}if(f>>>0<1048576|(f|0)==1048576&d>>>0<0)do{d=yJ(d|0,f|0,1)|0;f=E()|0;e=e+-1|0}while(f>>>0<1048576|(f|0)==1048576&d>>>0<0);if((e|0)>0){o=pJ(d|0,f|0,0,-1048576)|0;d=E()|0;e=yJ(e|0,0,52)|0;d=d|(E()|0);e=o|e}else{e=xJ(d|0,f|0,1-e|0)|0;d=E()|0}c[h>>2]=e;c[h+4>>2]=d|p;b=+g[h>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function di(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;D(c[h+4>>2]|0);return b|0}function ei(a,b){a=+a;b=+b;var d=0,e=0;g[h>>3]=a;e=c[h>>2]|0;d=c[h+4>>2]|0;g[h>>3]=b;d=c[h+4>>2]&-2147483648|d&2147483647;c[h>>2]=e;c[h+4>>2]=d;return +(+g[h>>3])}function fi(a){a=a|0;var b=0,e=0;e=Ia;Ia=Ia+16|0;b=e;if((gi(a)|0)==0?(Oa[c[a+32>>2]&31](a,b,1)|0)==1:0)b=d[b>>0]|0;else b=-1;Ia=e;return b|0}function gi(b){b=b|0;var d=0,e=0;e=b+74|0;d=a[e>>0]|0;a[e>>0]=d+255|d;e=b+20|0;d=b+28|0;if((c[e>>2]|0)>>>0>(c[d>>2]|0)>>>0)Oa[c[b+36>>2]&31](b,0,0)|0;c[b+16>>2]=0;c[d>>2]=0;c[e>>2]=0;d=c[b>>2]|0;if(!(d&4)){e=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=e;c[b+4>>2]=e;d=d<<27;d=31?d>>31:d}else{c[b>>2]=d|32;d=-1}return d|0}function hi(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a:do if(e>>>0>36){c[(Nh()|0)>>2]=22;h=0;g=0}else{r=b+4|0;q=b+104|0;do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0}while((Wh(i)|0)!=0);b:do switch(i|0){case 43:case 45:{j=((i|0)==45)<<31>>31;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0;p=j;break b}else{i=Vh(b)|0;p=j;break b}}default:p=0}while(0);j=(e|0)==0;do if((e|16|0)==16&(i|0)==48){i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;if((i|32|0)!=120)if(j){e=8;n=47;break}else{n=32;break}i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;if((d[24065+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){Th(b,0,0);h=0;g=0;break a}if(g){h=0;g=0;break a}c[r>>2]=(c[r>>2]|0)+-1;h=0;g=0;break a}else{e=16;n=47}}else{e=j?10:e;if(e>>>0>(d[24065+i>>0]|0)>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;Th(b,0,0);c[(Nh()|0)>>2]=22;h=0;g=0;break a}}while(0);c:do if((n|0)==32)if((e|0)==10){i=i+-48|0;if(i>>>0<10){f=i;e=0;do{e=(e*10|0)+f|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;f=i+-48|0}while(f>>>0<10&e>>>0<429496729);if(f>>>0<10){j=0;do{k=vJ(e|0,j|0,10,0)|0;l=E()|0;m=((f|0)<0)<<31>>31;o=~m;if(l>>>0>o>>>0|(l|0)==(o|0)&k>>>0>~f>>>0){k=e;e=10;n=76;break c}e=pJ(k|0,l|0,f|0,m|0)|0;j=E()|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;f=i+-48|0}while(f>>>0<10&(j>>>0<429496729|(j|0)==429496729&e>>>0<2576980378));if(f>>>0>9)i=p;else{k=e;e=10;n=76}}else{j=0;i=p}}else{j=0;e=0;i=p}}else n=47;while(0);d:do if((n|0)==47){if(!(e+-1&e)){o=e*23|0;o=a[45329+((5?o>>>5:o)&7)>>0]|0;j=a[24065+i>>0]|0;f=j&255;if(e>>>0>f>>>0){k=0;do{k=f|k<>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;j=a[24065+i>>0]|0;f=j&255}while(k>>>0<134217728&e>>>0>f>>>0);n=0}else{n=0;k=0}l=xJ(-1,-1,o|0)|0;m=E()|0;if(e>>>0<=f>>>0|(m>>>0>>0|(m|0)==(n|0)&l>>>0>>0)){j=n;n=76;break}i=n;while(1){k=yJ(k|0,i|0,o|0)|0;f=E()|0;k=k|j&255;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;j=a[24065+i>>0]|0;if(e>>>0<=(j&255)>>>0|(f>>>0>m>>>0|(f|0)==(m|0)&k>>>0>l>>>0)){j=f;n=76;break d}else i=f}}j=a[24065+i>>0]|0;f=j&255;if(e>>>0>f>>>0){k=0;do{k=f+(z(k,e)|0)|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;j=a[24065+i>>0]|0;f=j&255}while(k>>>0<119304647&e>>>0>f>>>0);l=0}else{k=0;l=0}if(e>>>0>f>>>0){n=wJ(-1,-1,e|0,0)|0;o=E()|0;f=l;while(1){if(f>>>0>o>>>0|(f|0)==(o|0)&k>>>0>n>>>0){j=f;n=76;break d}l=vJ(k|0,f|0,e|0,0)|0;m=E()|0;j=j&255;if(m>>>0>4294967295|(m|0)==-1&l>>>0>~j>>>0){j=f;n=76;break d}k=pJ(l|0,m|0,j|0,0)|0;f=E()|0;i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0;j=a[24065+i>>0]|0;if(e>>>0<=(j&255)>>>0){j=f;n=76;break}}}else{j=l;n=76}}while(0);if((n|0)==76)if(e>>>0>(d[24065+i>>0]|0)>>>0){do{i=c[r>>2]|0;if(i>>>0<(c[q>>2]|0)>>>0){c[r>>2]=i+1;i=d[i>>0]|0}else i=Vh(b)|0}while(e>>>0>(d[24065+i>>0]|0)>>>0);c[(Nh()|0)>>2]=34;j=h;e=g;i=(g&1|0)==0&0==0?p:0}else{e=k;i=p}if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(j>>>0>>0|(j|0)==(h|0)&e>>>0>>0)){if(!((g&1|0)!=0|0!=0|(i|0)!=0)){c[(Nh()|0)>>2]=34;g=pJ(g|0,h|0,-1,-1)|0;h=E()|0;break}if(j>>>0>h>>>0|(j|0)==(h|0)&e>>>0>g>>>0){c[(Nh()|0)>>2]=34;break}}g=((i|0)<0)<<31>>31;g=qJ(e^i|0,j^g|0,i|0,g|0)|0;h=E()|0}while(0);D(h|0);return g|0}function ii(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;b=b-a|0;return (2?b>>2:b)|0}function ji(a){a=a|0;return (a+-48|0)>>>0<10|0}function ki(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(li(b)|0)|0;else{if(b&3){e=d&255;do{g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break a;b=b+1|0}while((b&3|0)!=0)}f=z(f,16843009)|0;e=c[b>>2]|0;b:do if(!((e&-2139062144^-2139062144)&e+-16843009))do{g=e^f;if((g&-2139062144^-2139062144)&g+-16843009|0)break b;b=b+4|0;e=c[b>>2]|0}while(!((e&-2139062144^-2139062144)&e+-16843009|0));while(0);e=d&255;while(1){g=a[b>>0]|0;if(g<<24>>24==0?1:g<<24>>24==e<<24>>24)break;else b=b+1|0}}while(0);return b|0}function li(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3)){d=b;e=5}else{d=f;while(1){if(!(a[b>>0]|0))break a;b=b+1|0;d=b;if(!(d&3)){d=b;e=5;break}}}while(0);if((e|0)==5){while(1){b=c[d>>2]|0;if(!((b&-2139062144^-2139062144)&b+-16843009))d=d+4|0;else break}if((b&255)<<24>>24)do d=d+1|0;while((a[d>>0]|0)!=0)}return d-f|0}function mi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+160|0;g=j+144|0;i=j;BJ(i|0,30400,144)|0;if((d+-1|0)>>>0>2147483646)if(!d){d=1;h=4}else{c[(Nh()|0)>>2]=75;d=-1}else{g=b;h=4}if((h|0)==4){h=-2-g|0;h=d>>>0>h>>>0?h:d;c[i+48>>2]=h;b=i+20|0;c[b>>2]=g;c[i+44>>2]=g;d=g+h|0;g=i+16|0;c[g>>2]=d;c[i+28>>2]=d;d=ni(i,e,f)|0;if(h){e=c[b>>2]|0;a[e+(((e|0)==(c[g>>2]|0))<<31>>31)>>0]=0}}Ia=j;return d|0}function ni(a,b,c){a=a|0;b=b|0;c=c|0;return qi(a,b,c,1,126)|0}function oi(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0;H=Ia;Ia=Ia+560|0;m=H+32|0;t=H+536|0;G=H;F=G;l=H+540|0;c[t>>2]=0;D=l+12|0;Ii(e)|0;j=E()|0;if((j|0)<0){e=-e;Ii(e)|0;j=E()|0;C=1;A=45355}else{C=(h&2049|0)!=0&1;A=(h&2048|0)==0?((h&1|0)==0?45356:45361):45358}do if(0==0&(j&2146435072|0)==2146435072){G=(i&32|0)!=0;j=C+3|0;Bi(b,32,f,j,h&-65537);ui(b,A,C);ui(b,e!=e|0.0!=0.0?(G?45382:45386):G?45374:45378,3);Bi(b,32,f,j,h^8192)}else{r=+Ji(e,t)*2.0;j=r!=0.0;if(j)c[t>>2]=(c[t>>2]|0)+-1;v=i|32;if((v|0)==97){o=i&32;q=(o|0)==0?A:A+9|0;p=C|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[q>>0]|0)==45){e=-(e+(-r-e));break}else{e=r+e-e;break}}else e=r;while(0);k=c[t>>2]|0;j=(k|0)<0?0-k|0:k;j=zi(j,((j|0)<0)<<31>>31,D)|0;if((j|0)==(D|0)){j=l+11|0;a[j>>0]=48}a[j+-1>>0]=((31?k>>31:k)&2)+43;n=j+-2|0;a[n>>0]=i+15;k=(g|0)<1;l=(h&8|0)==0;j=G;while(1){C=~~e;m=j+1|0;a[j>>0]=o|d[24800+C>>0];e=(e-+(C|0))*16.0;if((m-F|0)==1?!(l&(k&e==0.0)):0){a[m>>0]=46;m=j+2|0}if(!(e!=0.0))break;else j=m}if((g|0)!=0?(-2-F+m|0)<(g|0):0){k=D;l=n;j=g+2+k-l|0}else{k=D;l=n;j=k-F-l+m|0}D=j+p|0;Bi(b,32,f,D,h);ui(b,q,p);Bi(b,48,f,D,h^65536);F=m-F|0;ui(b,G,F);G=k-l|0;Bi(b,48,j-(F+G)|0,0,0);ui(b,n,G);Bi(b,32,f,D,h^8192);j=D;break}k=(g|0)<0?6:g;if(j){l=(c[t>>2]|0)+-28|0;c[t>>2]=l;e=r*268435456.0}else{l=c[t>>2]|0;e=r}B=(l|0)<0?m:m+288|0;m=B;do{x=~~e>>>0;c[m>>2]=x;m=m+4|0;e=(e-+(x>>>0))*1.0e9}while(e!=0.0);x=B;if((l|0)>0){j=B;do{o=(l|0)<29?l:29;l=m+-4|0;if(l>>>0>=j>>>0){n=0;do{s=yJ(c[l>>2]|0,0,o|0)|0;s=pJ(s|0,E()|0,n|0,0)|0;u=E()|0;n=wJ(s|0,u|0,1e9,0)|0;w=vJ(n|0,E()|0,1e9,0)|0;w=qJ(s|0,u|0,w|0,E()|0)|0;E()|0;c[l>>2]=w;l=l+-4|0}while(l>>>0>=j>>>0);if(n){j=j+-4|0;c[j>>2]=n}}a:do if(m>>>0>j>>>0)while(1){l=m+-4|0;if(c[l>>2]|0)break a;if(l>>>0>j>>>0)m=l;else{m=l;break}}while(0);l=(c[t>>2]|0)-o|0;c[t>>2]=l}while((l|0)>0)}else j=B;if((l|0)<0){g=((k+25|0)/9|0)+1|0;s=(v|0)==102;do{q=0-l|0;q=(q|0)<9?q:9;if(j>>>0>>0){o=(1<>>q:1e9;p=0;l=j;do{w=c[l>>2]|0;c[l>>2]=(q?w>>>q:w)+p;p=z(w&o,n)|0;l=l+4|0}while(l>>>0>>0);j=(c[j>>2]|0)==0?j+4|0:j;if(p){c[m>>2]=p;m=m+4|0}}else j=(c[j>>2]|0)==0?j+4|0:j;l=s?B:j;w=m-l|0;m=((2?w>>2:w)|0)>(g|0)?l+(g<<2)|0:m;l=(c[t>>2]|0)+q|0;c[t>>2]=l}while((l|0)<0);s=m}else s=m;if(j>>>0>>0){l=x-j|0;l=(2?l>>2:l)*9|0;n=c[j>>2]|0;if(n>>>0>=10){m=10;do{m=m*10|0;l=l+1|0}while(n>>>0>=m>>>0)}}else l=0;t=(v|0)==103;u=(k|0)!=0;m=k-((v|0)==102?0:l)+((u&t)<<31>>31)|0;w=s-x|0;if((m|0)<(((2?w>>2:w)*9|0)+-9|0)){w=m+9216|0;m=(w|0)/9|0;g=B+4+(m+-1024<<2)|0;m=w-(m*9|0)|0;if((m|0)<8){n=10;while(1){n=n*10|0;if((m|0)<7)m=m+1|0;else break}}else n=10;p=c[g>>2]|0;m=(p>>>0)/(n>>>0)|0;q=p-(z(m,n)|0)|0;o=(g+4|0)==(s|0);if(!(o&(q|0)==0)){r=(m&1|0)==0?9007199254740992.0:9007199254740994.0;w=1?n>>>1:n;e=q>>>0>>0?.5:o&(q|0)==(w|0)?1.0:1.5;if(C){w=(a[A>>0]|0)==45;r=w?-r:r;e=w?-e:e}m=p-q|0;c[g>>2]=m;if(r+e!=r){w=m+n|0;c[g>>2]=w;if(w>>>0>999999999){l=g;while(1){m=l+-4|0;c[l>>2]=0;if(m>>>0>>0){j=j+-4|0;c[j>>2]=0}w=(c[m>>2]|0)+1|0;c[m>>2]=w;if(w>>>0>999999999)l=m;else break}}else m=g;l=x-j|0;l=(2?l>>2:l)*9|0;o=c[j>>2]|0;if(o>>>0>=10){n=10;do{n=n*10|0;l=l+1|0}while(o>>>0>=n>>>0)}}else m=g}else m=g;v=m+4|0;w=j;j=s>>>0>v>>>0?v:s}else{w=j;j=s}q=0-l|0;b:do if(j>>>0>w>>>0)while(1){m=j+-4|0;if(c[m>>2]|0){s=1;v=j;break b}if(m>>>0>w>>>0)j=m;else{s=0;v=m;break}}else{s=0;v=j}while(0);do if(t){j=k+((u^1)&1)|0;if((j|0)>(l|0)&(l|0)>-5){k=j+-1-l|0;n=i+-1|0}else{k=j+-1|0;n=i+-2|0}if(!(h&8)){if(s?(y=c[v+-4>>2]|0,(y|0)!=0):0)if(!((y>>>0)%10|0)){j=10;m=0;do{j=j*10|0;m=m+1|0}while(!((y>>>0)%(j>>>0)|0|0))}else m=0;else m=9;j=v-x|0;j=((2?j>>2:j)*9|0)+-9|0;if((n|32|0)==102){i=j-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}else{i=j+l-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}}}else n=i;while(0);g=(k|0)!=0;o=g?1:(3?h>>>3:h)&1;p=(n|32|0)==102;if(p){u=0;j=(l|0)>0?l:0}else{j=(l|0)<0?q:l;j=zi(j,((j|0)<0)<<31>>31,D)|0;m=D;if((m-j|0)<2)do{j=j+-1|0;a[j>>0]=48}while((m-j|0)<2);a[j+-1>>0]=((31?l>>31:l)&2)+43;j=j+-2|0;a[j>>0]=n;u=j;j=m-j|0}j=C+1+k+o+j|0;Bi(b,32,f,j,h);ui(b,A,C);Bi(b,48,f,j,h^65536);if(p){o=w>>>0>B>>>0?B:w;q=G+9|0;p=q;n=G+8|0;m=o;do{l=zi(c[m>>2]|0,0,q)|0;if((m|0)==(o|0)){if((l|0)==(q|0)){a[n>>0]=48;l=n}}else if(l>>>0>G>>>0){DJ(G|0,48,l-F|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}ui(b,l,p-l|0);m=m+4|0}while(m>>>0<=B>>>0);if(!((h&8|0)==0&(g^1)))ui(b,51084,1);if(m>>>0>>0&(k|0)>0)while(1){l=zi(c[m>>2]|0,0,q)|0;if(l>>>0>G>>>0){DJ(G|0,48,l-F|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}ui(b,l,(k|0)<9?k:9);m=m+4|0;l=k+-9|0;if(!(m>>>0>>0&(k|0)>9)){k=l;break}else k=l}Bi(b,48,k+9|0,9,0)}else{g=s?v:w+4|0;if(w>>>0>>0&(k|0)>-1){q=G+9|0;t=(h&8|0)==0;s=q;n=0-F|0;p=G+8|0;o=w;do{l=zi(c[o>>2]|0,0,q)|0;if((l|0)==(q|0)){a[p>>0]=48;l=p}do if((o|0)==(w|0)){m=l+1|0;ui(b,l,1);if(t&(k|0)<1){l=m;break}ui(b,51084,1);l=m}else{if(l>>>0<=G>>>0)break;DJ(G|0,48,l+n|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}while(0);F=s-l|0;ui(b,l,(k|0)>(F|0)?F:k);k=k-F|0;o=o+4|0}while(o>>>0>>0&(k|0)>-1)}Bi(b,48,k+18|0,18,0);ui(b,u,D-u|0)}Bi(b,32,f,j,h^8192)}while(0);Ia=H;return ((j|0)<(f|0)?f:j)|0}function pi(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=(c[b>>2]|0)+(8-1)&~(8-1);d=+g[e>>3];c[b>>2]=e+8;g[a>>3]=d;return}function qi(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=Ia;Ia=Ia+224|0;o=t+208|0;s=t+160|0;r=t+80|0;q=t;h=s;i=h+40|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c[o>>2]=c[e>>2];if((ri(0,d,o,r,s,f,g)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)p=si(b)|0;else p=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;j=b+48|0;if(!(c[j>>2]|0)){i=b+44|0;e=c[i>>2]|0;c[i>>2]=q;k=b+28|0;c[k>>2]=q;m=b+20|0;c[m>>2]=q;c[j>>2]=80;l=b+16|0;c[l>>2]=q+80;h=ri(b,d,o,r,s,f,g)|0;if(e){Oa[c[b+36>>2]&31](b,0,0)|0;h=(c[m>>2]|0)==0?-1:h;c[i>>2]=e;c[j>>2]=0;c[l>>2]=0;c[k>>2]=0;c[m>>2]=0}}else h=ri(b,d,o,r,s,f,g)|0;e=c[b>>2]|0;c[b>>2]=e|n;if(p|0)ti(b);e=(e&32|0)==0?h:-1}Ia=t;return e|0}function ri(d,e,f,h,i,j,k){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0;J=Ia;Ia=Ia+64|0;H=J+56|0;F=J+40|0;y=J;I=J+48|0;G=J+60|0;c[H>>2]=e;B=(d|0)!=0;x=y+40|0;A=x;y=y+39|0;z=I+4|0;e=0;l=0;o=0;a:while(1){do{do if((e|0)>-1)if((l|0)>(2147483647-e|0)){c[(Nh()|0)>>2]=75;e=-1;break}else{e=l+e|0;break}while(0);s=c[H>>2]|0;l=a[s>>0]|0;if(!(l<<24>>24)){w=92;break a}m=s;b:while(1){switch(l<<24>>24){case 37:{w=10;break b}case 0:{l=m;break b}default:{}}v=m+1|0;c[H>>2]=v;l=a[v>>0]|0;m=v}c:do if((w|0)==10){w=0;n=m;l=m;do{if((a[n+1>>0]|0)!=37)break c;l=l+1|0;n=n+2|0;c[H>>2]=n}while((a[n>>0]|0)==37)}while(0);l=l-s|0;if(B)ui(d,s,l)}while((l|0)!=0);v=(ji(a[(c[H>>2]|0)+1>>0]|0)|0)==0;l=c[H>>2]|0;if(!v?(a[l+2>>0]|0)==36:0){m=3;q=(a[l+1>>0]|0)+-48|0;p=1}else{m=1;q=-1;p=o}m=l+m|0;c[H>>2]=m;l=a[m>>0]|0;n=(l<<24>>24)+-32|0;if(n>>>0>31|(1<>2]=m;l=a[m>>0]|0;n=(l<<24>>24)+-32|0;if(n>>>0>31|(1<>24==42){if((ji(a[m+1>>0]|0)|0)!=0?(C=c[H>>2]|0,(a[C+2>>0]|0)==36):0){l=C+1|0;c[i+((a[l>>0]|0)+-48<<2)>>2]=10;n=1;m=C+3|0;l=c[h+((a[l>>0]|0)+-48<<3)>>2]|0}else{if(p|0){e=-1;break}if(B){v=(c[f>>2]|0)+(4-1)&~(4-1);l=c[v>>2]|0;c[f>>2]=v+4}else l=0;n=0;m=(c[H>>2]|0)+1|0}c[H>>2]=m;u=(l|0)<0;o=u?o|8192:o;v=n;u=u?0-l|0:l}else{l=vi(H)|0;if((l|0)<0){e=-1;break}m=c[H>>2]|0;v=p;u=l}do if((a[m>>0]|0)==46){l=m+1|0;if((a[l>>0]|0)!=42){c[H>>2]=l;t=vi(H)|0;l=c[H>>2]|0;break}if(ji(a[m+2>>0]|0)|0?(D=c[H>>2]|0,(a[D+3>>0]|0)==36):0){t=D+2|0;c[i+((a[t>>0]|0)+-48<<2)>>2]=10;t=c[h+((a[t>>0]|0)+-48<<3)>>2]|0;l=D+4|0;c[H>>2]=l;break}if(v|0){e=-1;break a}if(B){t=(c[f>>2]|0)+(4-1)&~(4-1);m=c[t>>2]|0;c[f>>2]=t+4}else m=0;l=(c[H>>2]|0)+2|0;c[H>>2]=l;t=m}else{l=m;t=-1}while(0);r=0;while(1){if(((a[l>>0]|0)+-65|0)>>>0>57){e=-1;break a}m=l;l=l+1|0;c[H>>2]=l;m=a[(a[m>>0]|0)+-65+(24336+(r*58|0))>>0]|0;p=m&255;if((p+-1|0)>>>0>=8)break;else r=p}if(!(m<<24>>24)){e=-1;break}n=(q|0)>-1;do if(m<<24>>24==19)if(n){e=-1;break a}else w=54;else{if(n){c[i+(q<<2)>>2]=p;p=h+(q<<3)|0;q=c[p+4>>2]|0;w=F;c[w>>2]=c[p>>2];c[w+4>>2]=q;w=54;break}if(!B){e=0;break a}wi(F,p,f,k);l=c[H>>2]|0;w=55}while(0);if((w|0)==54){w=0;if(B)w=55;else l=0}d:do if((w|0)==55){w=0;n=a[l+-1>>0]|0;n=(r|0)!=0&(n&15|0)==3?n&-33:n;l=o&-65537;q=(o&8192|0)==0?o:l;e:do switch(n|0){case 110:switch((r&255)<<24>>24){case 0:{c[c[F>>2]>>2]=e;l=0;break d}case 1:{c[c[F>>2]>>2]=e;l=0;break d}case 2:{l=c[F>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}case 3:{b[c[F>>2]>>1]=e;l=0;break d}case 4:{a[c[F>>2]>>0]=e;l=0;break d}case 6:{c[c[F>>2]>>2]=e;l=0;break d}case 7:{l=c[F>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}default:{l=0;break d}}case 112:{l=q|8;m=t>>>0>8?t:8;n=120;w=67;break}case 88:case 120:{l=q;m=t;w=67;break}case 111:{o=F;o=yi(c[o>>2]|0,c[o+4>>2]|0,x)|0;m=A-o|0;l=q;m=(q&8|0)==0|(t|0)>(m|0)?t:m+1|0;r=0;p=45338;w=73;break}case 105:case 100:{m=F;l=c[m>>2]|0;m=c[m+4>>2]|0;if((m|0)<0){l=qJ(0,0,l|0,m|0)|0;m=E()|0;n=F;c[n>>2]=l;c[n+4>>2]=m;n=1;p=45338;w=72;break e}else{n=(q&2049|0)!=0&1;p=(q&2048|0)==0?((q&1|0)==0?45338:45340):45339;w=72;break e}}case 117:{m=F;l=c[m>>2]|0;m=c[m+4>>2]|0;n=0;p=45338;w=72;break}case 99:{a[y>>0]=c[F>>2];s=y;q=l;o=1;n=0;m=45338;l=A;break}case 115:{p=c[F>>2]|0;p=(p|0)==0?45348:p;r=Ai(p,0,t)|0;K=(r|0)==0;s=p;q=l;o=K?t:r-p|0;n=0;m=45338;l=K?p+t|0:r;break}case 67:{c[I>>2]=c[F>>2];c[z>>2]=0;c[F>>2]=I;o=-1;w=79;break}case 83:{if(!t){Bi(d,32,u,0,q);l=0;w=89}else{o=t;w=79}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{l=Ma[j&1](d,+g[F>>3],u,t,q,n)|0;break d}default:{o=t;n=0;m=45338;l=A}}while(0);f:do if((w|0)==67){o=F;o=xi(c[o>>2]|0,c[o+4>>2]|0,x,n&32)|0;p=F;p=(l&8|0)==0|(c[p>>2]|0)==0&(c[p+4>>2]|0)==0;r=p?0:2;p=p?45338:45338+(4?n>>>4:n)|0;w=73}else if((w|0)==72){o=zi(l,m,x)|0;l=q;m=t;r=n;w=73}else if((w|0)==79){w=0;l=0;p=c[F>>2]|0;while(1){m=c[p>>2]|0;if(!m)break;m=Ci(G,m)|0;n=(m|0)<0;if(n|m>>>0>(o-l|0)>>>0){w=83;break}l=m+l|0;if(o>>>0>l>>>0)p=p+4|0;else break}if((w|0)==83){w=0;if(n){e=-1;break a}}Bi(d,32,u,l,q);if(!l){l=0;w=89}else{n=0;o=c[F>>2]|0;while(1){m=c[o>>2]|0;if(!m){w=89;break f}m=Ci(G,m)|0;n=m+n|0;if((n|0)>(l|0)){w=89;break f}ui(d,G,m);if(n>>>0>=l>>>0){w=89;break}else o=o+4|0}}}while(0);if((w|0)==73){w=0;n=F;n=(c[n>>2]|0)!=0|(c[n+4>>2]|0)!=0;K=(m|0)!=0|n;n=A-o+((n^1)&1)|0;s=K?o:x;q=(m|0)>-1?l&-65537:l;o=K?((m|0)>(n|0)?m:n):0;n=r;m=p;l=A}else if((w|0)==89){w=0;Bi(d,32,u,l,q^8192);l=(u|0)>(l|0)?u:l;break}t=l-s|0;r=(o|0)<(t|0)?t:o;K=r+n|0;l=(u|0)<(K|0)?K:u;Bi(d,32,l,K,q);ui(d,m,n);Bi(d,48,l,K,q^65536);Bi(d,48,r,t,0);ui(d,s,t);Bi(d,32,l,K,q^8192)}while(0);o=v}g:do if((w|0)==92)if(!d)if(!o)e=0;else{e=1;while(1){l=c[i+(e<<2)>>2]|0;if(!l)break;wi(h+(e<<3)|0,l,f,k);e=e+1|0;if(e>>>0>=10){e=1;break g}}while(1){if(c[i+(e<<2)>>2]|0){e=-1;break g}e=e+1|0;if(e>>>0>=10){e=1;break}}}while(0);Ia=J;return e|0}function si(a){a=a|0;return 1}function ti(a){a=a|0;return}function ui(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))Gi(b,d,a)|0;return}function vi(b){b=b|0;var d=0,e=0;if(!(ji(a[c[b>>2]>>0]|0)|0))d=0;else{d=0;do{e=c[b>>2]|0;d=(d*10|0)+-48+(a[e>>0]|0)|0;e=e+1|0;c[b>>2]=e}while((ji(a[e>>0]|0)|0)!=0)}return d|0}function wi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{e=(c[d>>2]|0)+(4-1)&~(4-1);b=c[e>>2]|0;c[d>>2]=e+4;c[a>>2]=b;break a}case 10:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;b=a;c[b>>2]=e;c[b+4>>2]=((e|0)<0)<<31>>31;break a}case 11:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;b=a;c[b>>2]=e;c[b+4>>2]=0;break a}case 12:{b=(c[d>>2]|0)+(8-1)&~(8-1);e=b;f=c[e>>2]|0;e=c[e+4>>2]|0;c[d>>2]=b+8;b=a;c[b>>2]=f;c[b+4>>2]=e;break a}case 13:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;b=(b&65535)<<16>>16;f=a;c[f>>2]=b;c[f+4>>2]=((b|0)<0)<<31>>31;break a}case 14:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=b&65535;c[f+4>>2]=0;break a}case 15:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;b=(b&255)<<24>>24;f=a;c[f>>2]=b;c[f+4>>2]=((b|0)<0)<<31>>31;break a}case 16:{f=(c[d>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[d>>2]=f+4;f=a;c[f>>2]=b&255;c[f+4>>2]=0;break a}case 17:{f=(c[d>>2]|0)+(8-1)&~(8-1);h=+g[f>>3];c[d>>2]=f+8;g[a>>3]=h;break a}case 18:{Ya[e&127](a,d);break a}default:break a}while(0);while(0);return}function xi(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[24800+(b&15)>>0]|0|f;b=xJ(b|0,c|0,4)|0;c=E()|0}while(!((b|0)==0&(c|0)==0));return e|0}function yi(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=xJ(b|0,c|0,3)|0;c=E()|0}while(!((b|0)==0&(c|0)==0));return d|0}function zi(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295)do{e=b;b=wJ(b|0,c|0,10,0)|0;f=c;c=E()|0;g=vJ(b|0,c|0,10,0)|0;g=qJ(e|0,f|0,g|0,E()|0)|0;E()|0;d=d+-1|0;a[d>>0]=g&255|48}while(f>>>0>9|(f|0)==9&e>>>0>4294967295);if(b)do{g=b;b=(b>>>0)/10|0;d=d+-1|0;a[d>>0]=g-(b*10|0)|48}while(g>>>0>=10);return d|0}function Ai(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=d&255;f=(e|0)!=0;a:do if(f&(b&3|0)!=0){g=d&255;while(1){if((a[b>>0]|0)==g<<24>>24){i=6;break a}b=b+1|0;e=e+-1|0;f=(e|0)!=0;if(!(f&(b&3|0)!=0)){i=5;break}}}else i=5;while(0);if((i|0)==5)if(f)i=6;else i=16;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)==g<<24>>24)if(!e){i=16;break}else break;f=z(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break c;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break}}else i=11;while(0);if((i|0)==11)if(!e){i=16;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;e=e+-1|0;if(!e){i=16;break}else b=b+1|0}}while(0);if((i|0)==16)b=0;return b|0}function Bi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=Ia;Ia=Ia+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;DJ(f|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{ui(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}ui(a,f,e)}Ia=g;return}function Ci(a,b){a=a|0;b=b|0;if(!a)a=0;else a=Di(a,b,0)|0;return a|0}function Di(b,d,e){b=b|0;d=d|0;e=e|0;do if(b){if(d>>>0<128){a[b>>0]=d;b=1;break}if(!(c[c[(Ei()|0)+188>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{c[(Nh()|0)>>2]=84;b=-1;break}if(d>>>0<2048){a[b>>0]=(6?d>>>6:d)|192;a[b+1>>0]=d&63|128;b=2;break}if(d>>>0<55296|(d&-8192|0)==57344){a[b>>0]=(12?d>>>12:d)|224;a[b+1>>0]=(6?d>>>6:d)&63|128;a[b+2>>0]=d&63|128;b=3;break}if((d+-65536|0)>>>0<1048576){a[b>>0]=(18?d>>>18:d)|240;a[b+1>>0]=(12?d>>>12:d)&63|128;a[b+2>>0]=(6?d>>>6:d)&63|128;a[b+3>>0]=d&63|128;b=4;break}else{c[(Nh()|0)>>2]=84;b=-1;break}}else b=1;while(0);return b|0}function Ei(){return Fi()|0}function Fi(){return 34460}function Gi(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;g=e+16|0;f=c[g>>2]|0;if(!f)if(!(Hi(e)|0)){f=c[g>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;g=i;if((f-i|0)>>>0>>0){f=Oa[c[e+36>>2]&31](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){h=g;e=0;g=d;f=b}else{i=d;while(1){f=i+-1|0;if((a[b+f>>0]|0)==10)break;if(!f){h=g;e=0;g=d;f=b;break b}else i=f}f=Oa[c[e+36>>2]&31](e,b,i)|0;if(f>>>0>>0)break a;h=c[j>>2]|0;e=i;g=d-i|0;f=b+i|0}while(0);BJ(h|0,f|0,g|0)|0;c[j>>2]=(c[j>>2]|0)+g;f=e+g|0}while(0);return f|0}function Hi(b){b=b|0;var d=0,e=0;d=b+74|0;e=a[d>>0]|0;a[d>>0]=e+255|e;d=c[b>>2]|0;if(!(d&8)){c[b+8>>2]=0;c[b+4>>2]=0;d=c[b+44>>2]|0;c[b+28>>2]=d;c[b+20>>2]=d;c[b+16>>2]=d+(c[b+48>>2]|0);d=0}else{c[b>>2]=d|32;d=-1}return d|0}function Ii(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;D(c[h+4>>2]|0);return b|0}function Ji(a,b){a=+a;b=b|0;var d=0,e=0,f=0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;f=xJ(d|0,e|0,52)|0;E()|0;switch(f&2047){case 0:{if(a!=0.0){a=+Ji(a*18446744073709551616.0,b);d=(c[b>>2]|0)+-64|0}else d=0;c[b>>2]=d;break}case 2047:break;default:{c[b>>2]=(f&2047)+-1022;c[h>>2]=d;c[h+4>>2]=e&-2146435073|1071644672;a=+g[h>>3]}}return +a}function Ki(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=a+20|0;f=c[e>>2]|0;a=(c[a+16>>2]|0)-f|0;a=a>>>0>d>>>0?d:a;BJ(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function Li(a,b,c){a=a|0;b=b|0;c=c|0;a=Mi(a,b,c,-1,-1)|0;D(E()|0);return a|0}function Mi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+144|0;h=j;c[h>>2]=0;i=h+4|0;c[i>>2]=a;c[h+44>>2]=a;g=h+8|0;c[g>>2]=(a|0)<0?-1:a+2147483647|0;c[h+76>>2]=-1;Th(h,0,0);e=hi(h,d,1,e,f)|0;f=E()|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+120>>2]|0)-(c[g>>2]|0));D(f|0);Ia=j;return e|0}function Ni(a,b,c){a=a|0;b=b|0;c=c|0;a=Mi(a,b,c,0,-2147483648)|0;D(E()|0);return a|0}function Oi(a,b){a=a|0;b=b|0;return +(+Sh(a,b,0))}function Pi(a,b){a=a|0;b=b|0;return +(+Sh(a,b,2))}function Qi(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Oi(a,b))}function Ri(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Rh(a,b))}function Si(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Pi(a,b))}function Ti(){return}function Ui(a,b){a=a|0;b=b|0;var d=0,e=0;d=Ia;Ia=Ia+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;a=Mh(_(91,e|0)|0)|0;Ia=d;return a|0}function Vi(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24))do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));return (d&255)-(e&255)|0}function Wi(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;g=j;a:do if(!e)g=0;else{do if(f|0){i=(b|0)==0?g:b;g=a[e>>0]|0;if(g<<24>>24>-1){c[i>>2]=g&255;g=g<<24>>24!=0&1;break a}h=(c[c[(Xi()|0)+188>>2]>>2]|0)==0;g=a[e>>0]|0;if(h){c[i>>2]=g<<24>>24&57343;g=1;break a}g=(g&255)+-194|0;if(g>>>0<=50){h=e+1|0;b=c[23792+(g<<2)>>2]|0;if(f>>>0<4?(f=(f*6|0)+-6|0,b&(f?-2147483648>>>f:-2147483648)|0):0)break;g=d[h>>0]|0;f=3?g>>>3:g;if((f+-16|f+(26?b>>26:b))>>>0<=7){g=g+-128|b<<6;if((g|0)>=0){c[i>>2]=g;g=2;break a}b=(d[e+2>>0]|0)+-128|0;if(b>>>0<=63){b=b|g<<6;if((b|0)>=0){c[i>>2]=b;g=3;break a}g=(d[e+3>>0]|0)+-128|0;if(g>>>0<=63){c[i>>2]=g|b<<6;g=4;break a}}}}}while(0);c[(Nh()|0)>>2]=84;g=-1}while(0);Ia=j;return g|0}function Xi(){return Fi()|0}function Yi(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;l=Ia;Ia=Ia+272|0;i=l;k=l+256|0;m=c[b>>2]|0;c[k>>2]=m;j=(a|0)!=0;h=j?e:256;g=j?a:i;f=m;a:do if((h|0)!=0&(m|0)!=0){e=f;f=0;while(1){a=d>>>0>=h>>>0;if(!(a|d>>>0>32))break a;e=a?h:d;d=d-e|0;e=Zi(g,k,e,0)|0;if((e|0)==-1)break;m=(g|0)==(i|0);h=h-(m?0:e)|0;g=m?g:g+e|0;f=e+f|0;e=c[k>>2]|0;if(!((h|0)!=0&(e|0)!=0))break a}e=c[k>>2]|0;f=-1;h=0}else{e=f;f=0}while(0);b:do if((e|0)!=0?(h|0)!=0&(d|0)!=0:0){while(1){a=Di(g,c[e>>2]|0,0)|0;if((a+1|0)>>>0<2)break;e=(c[k>>2]|0)+4|0;c[k>>2]=e;d=d+-1|0;h=h-a|0;f=a+f|0;if(!((h|0)!=0&(d|0)!=0))break b;else g=g+a|0}if(!a)c[k>>2]=0;else f=-1}while(0);if(j)c[b>>2]=c[k>>2];Ia=l;return f|0}function Zi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;i=j;a:do if(!b){f=c[d>>2]|0;e=c[f>>2]|0;if(!e)e=0;else{g=e;e=0;b=f;do{if(g>>>0>127){f=Di(i,g,0)|0;if((f|0)==-1){e=-1;break a}}else f=1;e=f+e|0;b=b+4|0;g=c[b>>2]|0}while((g|0)!=0)}}else{b:do if(e>>>0>3){h=c[d>>2]|0;g=e;while(1){f=c[h>>2]|0;if((f+-1|0)>>>0>126){if(!f)break;f=Di(b,f,0)|0;if((f|0)==-1){e=-1;break a}g=g-f|0;f=b+f|0}else{a[b>>0]=f;h=c[d>>2]|0;g=g+-1|0;f=b+1|0}h=h+4|0;c[d>>2]=h;if(g>>>0<=3)break b;else b=f}a[b>>0]=0;c[d>>2]=0;e=e-g|0;break a}else{g=e;f=b}while(0);if(g){b=c[d>>2]|0;h=f;while(1){f=c[b>>2]|0;if((f+-1|0)>>>0>126){if(!f){f=20;break}f=Di(i,f,0)|0;if((f|0)==-1){e=-1;break a}if(g>>>0>>0){f=23;break}Di(h,c[b>>2]|0,0)|0;g=g-f|0;f=h+f|0}else{a[h>>0]=f;b=c[d>>2]|0;g=g+-1|0;f=h+1|0}b=b+4|0;c[d>>2]=b;if(!g)break a;else h=f}if((f|0)==20){a[h>>0]=0;c[d>>2]=0;e=e-g|0;break}else if((f|0)==23){e=e-g|0;break}}}while(0);Ia=j;return e|0}function _i(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=c[e>>2]|0;if((g|0)!=0?(i=c[g>>2]|0,(i|0)!=0):0)if(!b){j=h;g=f;l=26}else{c[g>>2]=0;k=h;g=f;l=48}else l=5;a:do if((l|0)==5){i=(b|0)!=0;if(c[c[($i()|0)+188>>2]>>2]|0)if(i){g=f;l=33;break}else{i=f;l=15;break}if(!i){f=li(h)|0;l=63;break}b:do if(f){i=f;while(1){g=a[h>>0]|0;if(!(g<<24>>24))break;h=h+1|0;c[b>>2]=g<<24>>24&57343;i=i+-1|0;if(!i)break b;else b=b+4|0}c[b>>2]=0;c[e>>2]=0;f=f-i|0;l=63;break a}while(0);c[e>>2]=h;l=63}while(0);c:while(1){d:do if((l|0)==15){g=i;while(1){i=a[h>>0]|0;if(((i&255)+-1|0)>>>0<127?(h&3|0)==0:0){l=c[h>>2]|0;i=l&255;if(!((l+-16843009|l)&-2139062144)){do{h=h+4|0;g=g+-4|0;i=c[h>>2]|0}while(!((i+-16843009|i)&-2139062144|0));i=i&255}}i=i&255;if((i+-1|0)>>>0>=127)break;h=h+1|0;g=g+-1|0}i=i+-194|0;if(i>>>0>50){i=b;l=57}else{i=c[23792+(i<<2)>>2]|0;j=h+1|0;l=26;continue c}}else if((l|0)==26){l=d[j>>0]|0;l=3?l>>>3:l;if((l+-16|l+(26?i>>26:i))>>>0>7)l=56;else{h=j+1|0;if(i&33554432){if((a[h>>0]&-64)<<24>>24!=-128){l=56;break}h=j+2|0;if(i&524288){if((a[h>>0]&-64)<<24>>24!=-128){l=56;break}h=j+3|0}}i=g+-1|0;l=15;continue c}}else if((l|0)==33){l=0;e:do if(g){while(1){i=d[h>>0]|0;j=i+-1|0;if(j>>>0<127){if((h&3|0)==0&g>>>0>4){while(1){i=c[h>>2]|0;if((i+-16843009|i)&-2139062144|0){l=42;break}c[b>>2]=i&255;c[b+4>>2]=d[h+1>>0];c[b+8>>2]=d[h+2>>0];i=h+4|0;j=b+16|0;c[b+12>>2]=d[h+3>>0];g=g+-4|0;if(g>>>0>4){h=i;b=j}else{l=41;break}}if((l|0)==41){k=a[i>>0]|0;h=i;b=j}else if((l|0)==42)k=i&255;j=k&255;i=j;j=j+-1|0;l=44}}else l=44;if((l|0)==44){l=0;if(j>>>0>=127)break}h=h+1|0;c[b>>2]=i;g=g+-1|0;if(!g)break e;else b=b+4|0}i=i+-194|0;if(i>>>0>50){i=b;l=57;break d}i=c[23792+(i<<2)>>2]|0;k=h+1|0;l=48;continue c}while(0);c[e>>2]=h;l=63;continue c}else if((l|0)==48){l=0;j=d[k>>0]|0;h=3?j>>>3:j;if((h+-16|h+(26?i>>26:i))>>>0>7){j=k;l=56}else{h=k+1|0;i=j+-128|i<<6;do if((i|0)<0){j=(d[h>>0]|0)+-128|0;if(j>>>0<=63){h=k+2|0;i=j|i<<6;if((i|0)>=0)break;h=(d[h>>0]|0)+-128|0;if(h>>>0<=63){i=h|i<<6;h=k+3|0;break}}c[(Nh()|0)>>2]=84;h=k+-1|0;break d}while(0);c[b>>2]=i;g=g+-1|0;b=b+4|0;l=33;continue c}}else if((l|0)==63)return f|0;while(0);if((l|0)==56){h=j+-1|0;if(!i){i=b;l=57}else{f=b;l=61}}if((l|0)==57)if(!(a[h>>0]|0)){if(i|0){c[i>>2]=0;c[e>>2]=0}f=f-g|0;l=63;continue}else{f=i;l=61}if((l|0)==61){c[(Nh()|0)>>2]=84;if(!f){f=-1;l=63;continue}}c[e>>2]=h;f=-1;l=63}return 0}function $i(){return Fi()|0}function aj(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;l=Ia;Ia=Ia+16|0;h=l;j=(g|0)==0?1181412:g;g=c[j>>2]|0;a:do if(!e)if(!g)g=0;else k=19;else{i=(b|0)==0?h:b;if(!f)g=-2;else{if(!g){g=a[e>>0]|0;if(g<<24>>24>-1){c[i>>2]=g&255;g=g<<24>>24!=0&1;break}b=(c[c[(bj()|0)+188>>2]>>2]|0)==0;g=a[e>>0]|0;if(b){c[i>>2]=g<<24>>24&57343;g=1;break}g=(g&255)+-194|0;if(g>>>0>50){k=19;break}g=c[23792+(g<<2)>>2]|0;h=f+-1|0;if(h){b=h;e=e+1|0;k=11}}else{b=f;k=11}b:do if((k|0)==11){h=d[e>>0]|0;m=3?h>>>3:h;if((m+-16|m+(26?g>>26:g))>>>0>7){k=19;break a}g=h+-128|g<<6;h=b+-1|0;if((g|0)<0)do{e=e+1|0;if(!h)break b;b=a[e>>0]|0;if((b&-64)<<24>>24!=-128){k=19;break a}g=(b&255)+-128|g<<6;h=h+-1|0}while((g|0)<0);c[j>>2]=0;c[i>>2]=g;g=f-h|0;break a}while(0);c[j>>2]=g;g=-2}}while(0);if((k|0)==19){c[j>>2]=0;c[(Nh()|0)>>2]=84;g=-1}Ia=l;return g|0}function bj(){return Fi()|0}function cj(a,b,c){a=a|0;b=b|0;c=c|0;return aj(0,a,b,(c|0)==0?1181416:c)|0}function dj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+1040|0;k=n;l=n+1024|0;j=c[b>>2]|0;c[l>>2]=j;m=(a|0)!=0;h=m?e:256;g=m?a:k;e=j;a:do if((h|0)!=0&(j|0)!=0){a=e;e=0;j=h;while(1){i=2?d>>>2:d;h=i>>>0>=j>>>0;if(!(d>>>0>131|h)){h=j;break a}a=h?j:i;d=d-a|0;a=_i(g,l,a,f)|0;if((a|0)==-1)break;i=(g|0)==(k|0);h=j-(i?0:a)|0;g=i?g:g+(a<<2)|0;e=a+e|0;a=c[l>>2]|0;if((h|0)!=0&(a|0)!=0)j=h;else break a}a=c[l>>2]|0;e=-1;h=0}else{a=e;e=0}while(0);b:do if((a|0)!=0?(h|0)!=0&(d|0)!=0:0){i=e;while(1){e=aj(g,a,d,f)|0;if((e+2|0)>>>0<3)break;a=(c[l>>2]|0)+e|0;c[l>>2]=a;d=d-e|0;h=h+-1|0;e=i+1|0;if(!((h|0)!=0&(d|0)!=0))break b;else{i=e;g=g+4|0}}switch(e|0){case -1:break b;case 0:{c[l>>2]=0;e=i;break b}default:{c[f>>2]=0;e=i;break b}}}while(0);if(m)c[b>>2]=c[l>>2];Ia=n;return e|0}function ej(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0&1;return a|0}function fj(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(si(d)|0)!=0:0){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(j=d+20|0,h=c[j>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[j>>2]=h+1;a[h>>0]=f}else e=gj(d,b)|0;ti(d)}else k=3;do if((k|0)==3){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(i=d+20|0,g=c[i>>2]|0,g>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=g+1;a[g>>0]=f;break}e=gj(d,b)|0}while(0);return e|0}function gj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+16|0;j=l;k=e&255;a[j>>0]=k;h=b+16|0;g=c[h>>2]|0;if(!g)if(!(Hi(b)|0)){g=c[h>>2]|0;i=4}else f=-1;else i=4;do if((i|0)==4){i=b+20|0;h=c[i>>2]|0;if(h>>>0>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[i>>2]=h+1;a[h>>0]=k;break}if((Oa[c[b+36>>2]&31](b,j,1)|0)==1)f=d[j>>0]|0;else f=-1}while(0);Ia=l;return f|0}function hj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=Ai(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0>>0?f:d;BJ(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function ij(b,c){b=b|0;c=c|0;b=ki(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function jj(a){a=a|0;var b=0,d=0;d=kj()|0;c[a+56>>2]=c[d>>2];b=c[d>>2]|0;if(b|0)c[b+52>>2]=a;c[d>>2]=a;lj();return a|0}function kj(){Q(1181420);return 1181428}function lj(){$(1181420);return} +function ye(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;N=Ia;Ia=Ia+16|0;M=N+8|0;j=N+4|0;k=N;F((c[b+5348>>2]|0)+160|0,1,0,0)|0;E()|0;G=b+5352|0;h=c[G>>2]|0;r=h+48|0;g=1174448;q=c[g>>2]^c[r>>2];r=c[g+4>>2]^c[r+4>>2];g=e;i=g+48|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));c[e+328>>2]=c[G>>2];c[G>>2]=e;L=b+5336|0;c[L>>2]=(c[L>>2]|0)+1;L=e+28|0;c[L>>2]=(c[L>>2]|0)+1;L=e+32|0;c[L>>2]=(c[L>>2]|0)+1;L=b+5340|0;I=c[L>>2]|0;H=I^1;B=d&61440;J=(B|0)==36864;g=6?d>>>6:d;K=J?64:g&63;v=d&63;c[M>>2]=v;D=b+5360|0;i=c[D>>2]|0;m=(i|0)==3;if(J&m)C=g&15;else C=c[b+(K<<2)>>2]|0;z=d&49152;A=(z|0)==32768;do if(A){g=d&12288;if(g<<16>>16<8192)switch(g<<16>>16){case 4096:{x=6;break}default:x=7}else switch(g<<16>>16){case 8192:{x=6;break}default:x=7}if((x|0)==6){g=c[b+(v<<2)>>2]|0;x=10;break}else if((x|0)==7){k=H<<3|1;x=11;break}}else{g=c[b+(v<<2)>>2]|0;if((z|0)==49152){ze(b,I,K,M,j,k);i=956496+(g<<9)+(c[j>>2]<<3)|0;h=956496+(g<<9)+(c[k>>2]<<3)|0;g=c[i>>2]^q^c[h>>2];h=c[i+4>>2]^r^c[h+4>>2];i=c[D>>2]|0;x=32}else x=10}while(0);if((x|0)==10)if(!g){g=q;h=r;x=32}else{k=g;x=11}if((x|0)==11){h=k&7;if((h|0)!=1){g=14192+(k<<2)|0;t=e+16+(H<<2)|0;c[t>>2]=(c[t>>2]|0)-(c[g>>2]|0);if(m?(t=b+4560|0,s=161184+(v<<3)|0,l=e+16+(I<<2)|0,(c[s>>2]&c[t>>2]|0)==0?(c[s+4>>2]&c[t+4>>2]|0)==0:0):0){c[l>>2]=(c[l>>2]|0)+(c[g>>2]|0);g=v}else g=v}else{a:do if(A){g=d&12288;if(g<<16>>16<8192)switch(g<<16>>16){case 4096:{g=v;break a}default:{}}else switch(g<<16>>16){case 8192:{g=v;break a}default:{}}g=v-((I|0)==0?8:-8)|0;c[b+(g<<2)>>2]=0}else g=v;while(0);n=956496+(k<<9)+(g<<3)|0;l=e;s=c[l+4>>2]^c[n+4>>2];t=e;c[t>>2]=c[l>>2]^c[n>>2];c[t+4>>2]=s}t=b+256|0;l=161184+(g<<3)|0;j=l;O=t;s=c[O+4>>2]^c[j+4>>2];n=t;c[n>>2]=c[O>>2]^c[j>>2];c[n+4>>2]=s;n=b+256+(h<<3)|0;s=l;h=n;j=c[h+4>>2]^c[s+4>>2];c[n>>2]=c[h>>2]^c[s>>2];c[n+4>>2]=j;n=b+320+((3?k>>3:k)<<3)|0;j=n;s=c[j+4>>2]^c[l+4>>2];c[n>>2]=c[j>>2]^c[l>>2];c[n+4>>2]=s;n=(i|0)==2;if(n)c[b+(g<<2)>>2]=0;l=b+336+(k<<2)|0;s=(c[l>>2]|0)+-1|0;c[l>>2]=s;s=c[b+400+(k<<8)+(s<<2)>>2]|0;j=c[b+4568+(g<<2)>>2]|0;c[b+4568+(s<<2)>>2]=j;c[b+400+(k<<8)+(j<<2)>>2]=s;c[b+400+(k<<8)+(c[l>>2]<<2)>>2]=64;j=k&-8;s=b+336+(j<<2)|0;c[s>>2]=(c[s>>2]|0)+-1;s=b+5344|0;h=(c[s>>2]|0)-(c[1065488+(i*4160|0)+(k*260|0)+(g<<2)>>2]|0)|0;c[s>>2]=h;if(m){O=b+4560|0;Q=O;S=c[Q>>2]|0;Q=c[Q+4>>2]|0;P=161184+(v<<3)|0;R=c[P>>2]|0;P=c[P+4>>2]|0;T=(R&S|0)!=0|(P&Q|0)!=0;a[e+324>>0]=T&1;T=T?j^9:k^8;m=3?T>>3:T;i=b+4496+(m<<5)+((T&7)<<2)|0;c[i>>2]=(c[i>>2]|0)+1;m=b+4496+(m<<5)|0;c[m>>2]=(c[m>>2]|0)+1;m=(c[1077968+(T*260|0)+256>>2]|0)+h|0;c[s>>2]=m;i=c[i>>2]|0;j=964944+(T*136|0)+(i+-1<<3)|0;i=964944+(T*136|0)+(i<<3)|0;h=c[j>>2]^q^c[i>>2];i=c[j+4>>2]^r^c[i+4>>2];c[O>>2]=S&~R;c[O+4>>2]=Q&~P}else{m=h;h=q;i=r}S=956496+(k<<9)+(g<<3)|0;g=c[S>>2]^h;h=c[S+4>>2]^i;S=956496+(k<<9)+(c[l>>2]<<3)|0;r=e+8|0;T=r;i=c[T>>2]^c[S>>2];S=c[T+4>>2]^c[S+4>>2];T=r;c[T>>2]=i;c[T+4>>2]=S;if(n?(T=237792+(v<<3)|0,o=161184+(K<<3)|0,p=c[T>>2]&~c[o>>2],o=c[T+4>>2]&~c[o+4>>2],!((p|0)==0&(o|0)==0)):0){q=e+24|0;while(1){n=qa(p|0,o|0,0)|0;E()|0;j=pJ(p|0,o|0,-1,-1)|0;p=j&p;o=(E()|0)&o;j=b+(n<<2)|0;l=c[j>>2]|0;c[e+68+(n<<2)>>2]=l;if((l|0)!=0?(w=l&7,(w|0)!=1):0){T=3?l>>3:l;S=e+16+(T<<2)|0;c[S>>2]=(c[S>>2]|0)-(c[14192+(w<<2)>>2]|0);S=161184+(n<<3)|0;P=S;i=t;Q=c[i+4>>2]^c[P+4>>2];R=t;c[R>>2]=c[i>>2]^c[P>>2];c[R+4>>2]=Q;R=b+256+(w<<3)|0;Q=S;P=R;i=c[P+4>>2]^c[Q+4>>2];c[R>>2]=c[P>>2]^c[Q>>2];c[R+4>>2]=i;T=b+320+(T<<3)|0;R=T;i=c[R+4>>2]^c[S+4>>2];c[T>>2]=c[R>>2]^c[S>>2];c[T+4>>2]=i;c[j>>2]=0;T=b+336+(l<<2)|0;i=(c[T>>2]|0)+-1|0;c[T>>2]=i;i=c[b+400+(l<<8)+(i<<2)>>2]|0;j=c[b+4568+(n<<2)>>2]|0;c[b+4568+(i<<2)>>2]=j;c[b+400+(l<<8)+(j<<2)>>2]=i;c[b+400+(l<<8)+(c[T>>2]<<2)>>2]=64;j=b+336+((l&-8)<<2)|0;c[j>>2]=(c[j>>2]|0)+-1;m=m-(c[1073808+(l*260|0)+(n<<2)>>2]|0)|0;c[s>>2]=m;j=956496+(l<<9)+(n<<3)|0;g=c[j>>2]^g;h=c[j+4>>2]^h;T=956496+(l<<9)+(c[T>>2]<<3)|0;j=r;i=c[j>>2]^c[T>>2];T=c[j+4>>2]^c[T+4>>2];j=r;c[j>>2]=i;c[j+4>>2]=T;j=c[q>>2]|0;if((j|0)!=0?(u=c[b+4824+(n<<2)>>2]|0,(u|0)!=0):0){T=964752+((u&j)<<3)|0;g=c[T>>2]^g;h=c[T+4>>2]^h;c[q>>2]=j&~u;j=m}else j=m}else j=m;if((p|0)==0&(o|0)==0)break;else m=j}}c[(c[G>>2]|0)+28>>2]=0;j=c[D>>2]|0;if((j|0)==2){n=956496+(C<<9)+(K<<3)|0;o=c[n>>2]|0;n=c[n+4>>2]|0;m=h;j=2;e=k;t=1;r=1;w=1}else{i=0;l=1;x=35}}else if((x|0)==32){j=i;k=0;i=(i|0)==2;l=0;x=35}do if((x|0)==35)if(J&(j|0)==3){v=c[M>>2]|0;m=956496+(C<<9)+(v<<3)|0;n=c[b+4496+((3?C>>3:C)<<5)+((C&7)<<2)>>2]|0;j=964944+(C*136|0)+(n+-1<<3)|0;n=964944+(C*136|0)+(n<<3)|0;o=c[j>>2]^c[m>>2]^c[n>>2];n=c[j+4>>2]^c[m+4>>2]^c[n+4>>2];m=h;j=3;e=k;t=i;r=0;w=l;break}else{n=956496+(C<<9)+(K<<3)|0;v=c[M>>2]|0;m=956496+(C<<9)+(v<<3)|0;o=c[m>>2]^c[n>>2];n=c[m+4>>2]^c[n+4>>2];m=h;e=k;t=i;r=0;w=l;break}while(0);h=o^g;g=n^m;u=c[G>>2]|0;l=u+44|0;i=c[l>>2]|0;if((i|0)!=64){T=964688+((i&7)<<3)|0;h=c[T>>2]^h;g=c[T+4>>2]^g;c[l>>2]=64}q=(j|0)==3;s=J&q;if(!s){k=u+24|0;i=c[k>>2]|0;if((i|0)!=0?(y=c[b+4824+(v<<2)>>2]|c[b+4824+(K<<2)>>2],(y|0)!=0):0){T=964752+((y&i)<<3)|0;h=c[T>>2]^h;g=c[T+4>>2]^g;c[k>>2]=i&~y}if(!((j|0)!=7|f^1)){S=u+36+(I<<2)|0;R=c[S>>2]|0;T=967120+(I<<5)+(R<<3)|0;h=c[T>>2]^h;T=c[T+4>>2]^g;g=R+1|0;c[S>>2]=g;g=967120+(I<<5)+(g<<3)|0;h=h^c[g>>2];g=T^c[g+4>>2]}}b:do if(r){i=b+(K<<2)|0;c[u+68+(K<<2)>>2]=c[i>>2];k=b+256|0;R=161184+(K<<3)|0;S=R;P=k;T=c[P+4>>2]^c[S+4>>2];c[k>>2]=c[P>>2]^c[S>>2];c[k+4>>2]=T;k=C&7;T=b+256+(k<<3)|0;S=R;P=T;Q=c[P+4>>2]^c[S+4>>2];c[T>>2]=c[P>>2]^c[S>>2];c[T+4>>2]=Q;T=b+320+((3?C>>3:C)<<3)|0;Q=T;S=c[Q+4>>2]^c[R+4>>2];c[T>>2]=c[Q>>2]^c[R>>2];c[T+4>>2]=S;if(t)c[i>>2]=0;S=b+336+(C<<2)|0;R=(c[S>>2]|0)+-1|0;c[S>>2]=R;R=c[b+400+(C<<8)+(R<<2)>>2]|0;i=c[b+4568+(K<<2)>>2]|0;c[b+4568+(R<<2)>>2]=i;c[b+400+(C<<8)+(i<<2)>>2]=R;c[b+400+(C<<8)+(c[S>>2]<<2)>>2]=64;i=b+336+((C&-8)<<2)|0;c[i>>2]=(c[i>>2]|0)+-1;i=b+5344|0;c[i>>2]=(c[i>>2]|0)-(c[1065488+(j*4160|0)+(C*260|0)+(K<<2)>>2]|0);S=956496+(C<<9)+(c[S>>2]<<3)|0;i=u+8|0;R=i;T=c[R+4>>2]^c[S+4>>2];c[i>>2]=c[R>>2]^c[S>>2];c[i+4>>2]=T;i=u+16+(I<<2)|0;if((k|0)==1)p=j;else{c[i>>2]=(c[i>>2]|0)-(c[14192+(k<<2)>>2]|0);p=j}}else{do if(q){if(!A)if((z|0)==49152){p=3;break b}else break;if((d&12288|0)==4096){c[b+(v<<2)>>2]=C;Q=b+256|0;R=161184+(v<<3)|0;P=R;p=Q;T=c[p+4>>2]|c[P+4>>2];c[Q>>2]=c[p>>2]|c[P>>2];c[Q+4>>2]=T;Q=C&7;T=b+256+(Q<<3)|0;P=R;p=T;S=c[p+4>>2]|c[P+4>>2];c[T>>2]=c[p>>2]|c[P>>2];c[T+4>>2]=S;T=3?C>>3:C;S=b+320+(T<<3)|0;P=S;p=c[P+4>>2]|c[R+4>>2];c[S>>2]=c[P>>2]|c[R>>2];c[S+4>>2]=p;S=b+336+(C<<2)|0;p=c[S>>2]|0;c[S>>2]=p+1;c[b+4568+(v<<2)>>2]=p;c[b+400+(C<<8)+(p<<2)>>2]=v;p=b+336+((C&-8)<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=b+5344|0;R=(c[p>>2]|0)+(c[1077968+(C*260|0)+(v<<2)>>2]|0)|0;c[p>>2]=R;Q=b+4496+(T<<5)+(Q<<2)|0;c[Q>>2]=(c[Q>>2]|0)+-1;T=b+4496+(T<<5)|0;c[T>>2]=(c[T>>2]|0)+-1;c[p>>2]=R-(c[1077968+(C*260|0)+256>>2]|0);S=956496+(C<<9)+((c[S>>2]|0)+-1<<3)|0;p=u+8|0;R=p;T=c[R+4>>2]^c[S+4>>2];c[p>>2]=c[R>>2]^c[S>>2];c[p+4>>2]=T;p=3;break b}}else if((z|0)==49152){p=j;break b}while(0);T=161184+(K<<3)|0;p=161184+(v<<3)|0;S=c[p>>2]^c[T>>2];T=c[p+4>>2]^c[T+4>>2];p=b+256|0;R=p;Q=c[R+4>>2]^T;c[p>>2]=c[R>>2]^S;c[p+4>>2]=Q;p=b+256+((C&7)<<3)|0;Q=p;R=c[Q+4>>2]^T;c[p>>2]=c[Q>>2]^S;c[p+4>>2]=R;p=b+320+((3?C>>3:C)<<3)|0;R=p;T=c[R+4>>2]^T;c[p>>2]=c[R>>2]^S;c[p+4>>2]=T;c[b+(K<<2)>>2]=0;c[b+(v<<2)>>2]=C;p=c[b+4568+(K<<2)>>2]|0;c[b+4568+(v<<2)>>2]=p;c[b+400+(C<<8)+(p<<2)>>2]=v;p=b+5344|0;c[p>>2]=(c[1065488+(j*4160|0)+(C*260|0)+(v<<2)>>2]|0)-(c[1065488+(j*4160|0)+(C*260|0)+(K<<2)>>2]|0)+(c[p>>2]|0);p=j}while(0);if((C&7|0)==1){if((p|0)==4?((3?K>>>3:K)|0)==(I*7|0):0)x=78;else x=61;c:do if((x|0)==61){do if((v^K|0)==16){if(t){k=237792+(v-((I|0)==0?8:-8)<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;i=H<<3|6;if((p|0)==1?(c[b+336+(i<<2)>>2]|0)==0:0)i=64;else i=c[b+400+(i<<8)>>2]|0;T=161184+(i<<3)|0;if(!((c[T>>2]&j|0)==0?(c[T+4>>2]&k|0)==0:0))break}i=v-((I|0)==0?8:-8)|0;S=238816+(I<<9)+(i<<3)|0;R=b+320+(H<<3)|0;T=b+264|0;if(!((c[R>>2]&c[S>>2]&c[T>>2]|0)==0?(c[R+4>>2]&c[S+4>>2]&c[T+4>>2]|0)==0:0)){c[l>>2]=i;x=964688+((i&7)<<3)|0;h=c[x>>2]^h;g=c[x+4>>2]^g;x=78;break c}}while(0);if(r)x=79;else{if(A){if((d&12288|0)!=8192){x=80;break}}else if((z|0)!=16384){x=80;break}l=(B|0)==40960?6:((12?d>>>12:d)&3)+2|0;o=I<<3;m=o|l;i=b+256|0;n=161184+(v<<3)|0;T=n;S=i;R=c[S+4>>2]^c[T+4>>2];j=i;c[j>>2]=c[S>>2]^c[T>>2];c[j+4>>2]=R;j=b+264|0;R=n;T=j;S=c[T+4>>2]^c[R+4>>2];c[j>>2]=c[T>>2]^c[R>>2];c[j+4>>2]=S;j=b+320+((3?C>>3:C)<<3)|0;S=n;R=j;T=c[R+4>>2]^c[S+4>>2];c[j>>2]=c[R>>2]^c[S>>2];c[j+4>>2]=T;j=b+(v<<2)|0;if(t)c[j>>2]=0;k=b+336+(C<<2)|0;S=(c[k>>2]|0)+-1|0;c[k>>2]=S;S=c[b+400+(C<<8)+(S<<2)>>2]|0;Q=b+4568+(v<<2)|0;T=c[Q>>2]|0;c[b+4568+(S<<2)>>2]=T;c[b+400+(C<<8)+(T<<2)>>2]=S;c[b+400+(C<<8)+(c[k>>2]<<2)>>2]=64;T=b+336+((C&-8)<<2)|0;c[T>>2]=(c[T>>2]|0)+-1;T=b+5344|0;S=(c[T>>2]|0)-(c[1065488+(p*4160|0)+(C*260|0)+(v<<2)>>2]|0)|0;c[T>>2]=S;c[j>>2]=m;R=n;P=i;O=c[P+4>>2]|c[R+4>>2];c[i>>2]=c[P>>2]|c[R>>2];c[i+4>>2]=O;i=b+256+(l<<3)|0;O=n;R=i;P=c[R+4>>2]|c[O+4>>2];c[i>>2]=c[R>>2]|c[O>>2];c[i+4>>2]=P;i=b+320+((3?o>>3:o)<<3)|0;P=n;O=i;R=c[O+4>>2]|c[P+4>>2];c[i>>2]=c[O>>2]|c[P>>2];c[i+4>>2]=R;i=b+336+(m<<2)|0;R=c[i>>2]|0;c[i>>2]=R+1;c[Q>>2]=R;c[b+400+(m<<8)+(R<<2)>>2]=v;R=b+336+(o<<2)|0;c[R>>2]=(c[R>>2]|0)+1;c[T>>2]=(c[1065488+(p*4160|0)+(m*260|0)+(v<<2)>>2]|0)+S;if(q){T=b+4560|0;R=T;Q=n;S=c[Q+4>>2]|c[R+4>>2];c[T>>2]=c[Q>>2]|c[R>>2];c[T+4>>2]=S}Q=956496+(C<<9)+(v<<3)|0;x=c[Q>>2]|0;Q=c[Q+4>>2]|0;S=956496+(m<<9)+(v<<3)|0;h=x^h^c[S>>2];g=Q^g^c[S+4>>2];S=u;Q=c[S+4>>2]^Q;R=u;c[R>>2]=c[S>>2]^x;c[R+4>>2]=Q;R=956496+(m<<9)+((c[i>>2]|0)+-1<<3)|0;Q=956496+(C<<9)+(c[k>>2]<<3)|0;x=u+8|0;S=x;T=c[Q+4>>2]^c[R+4>>2]^c[S+4>>2];c[x>>2]=c[Q>>2]^c[R>>2]^c[S>>2];c[x+4>>2]=T;x=u+16+(I<<2)|0;c[x>>2]=(c[x>>2]|0)+(c[14192+(m<<2)>>2]|0);x=80}}while(0);if((x|0)==78)if(r)x=79;else x=80;do if((x|0)==79){R=956496+((I<<3|1)<<9)+(K<<3)|0;Q=u;S=c[Q+4>>2]^c[R+4>>2];T=u;c[T>>2]=c[Q>>2]^c[R>>2];c[T+4>>2]=S}else if((x|0)==80)if(s){R=956496+(C<<9)+(v<<3)|0;Q=u;S=c[Q+4>>2]^c[R+4>>2];T=u;c[T>>2]=c[Q>>2]^c[R>>2];c[T+4>>2]=S;break}else{Q=956496+(C<<9)+(K<<3)|0;P=956496+(C<<9)+(v<<3)|0;R=u;S=c[P+4>>2]^c[Q+4>>2]^c[R+4>>2];T=u;c[T>>2]=c[P>>2]^c[Q>>2]^c[R>>2];c[T+4>>2]=S;break}while(0);l=c[G>>2]|0;c[l+28>>2]=0;j=c[D>>2]|0}else l=u;c[l+64>>2]=e;i=(j|0)==3;if(!(w|i^1))a[l+324>>0]=0;T=l+48|0;c[T>>2]=h;c[T+4>>2]=g;if(f){g=H<<3|6;if((j|0)==1?(c[b+336+(g<<2)>>2]|0)==0:0)g=64;else g=c[b+400+(g<<8)>>2]|0;T=b+256|0;h=c[T>>2]|0;T=c[T+4>>2]|0;O=239328+(g<<3)|0;f=b+320|0;Q=b+264|0;H=c[Q>>2]|0;Q=c[Q+4>>2]|0;G=238816+(g<<3)|0;R=b+328|0;S=235744+(g<<3)|0;P=b+272|0;H=c[G>>2]&H&c[R>>2]|c[f>>2]&c[O>>2]&H|c[P>>2]&c[S>>2];S=c[G+4>>2]&Q&c[R+4>>2]|c[f+4>>2]&c[O+4>>2]&Q|c[P+4>>2]&c[S+4>>2];P=c[239840+(g*24|0)+16>>2]|0;Q=239840+(g*24|0)|0;O=239840+(g*24|0)+8|0;O=vJ(c[Q>>2]&h|0,c[Q+4>>2]&T|0,c[O>>2]|0,c[O+4>>2]|0)|0;O=xJ(O|0,E()|0,52)|0;E()|0;O=P+(O<<3)|0;P=b+288|0;Q=b+296|0;f=c[Q>>2]|0;Q=c[Q+4>>2]|0;H=H|(f|c[P>>2])&c[O>>2];O=S|(Q|c[P+4>>2])&c[O+4>>2];P=c[241376+(g*24|0)+16>>2]|0;S=241376+(g*24|0)|0;R=241376+(g*24|0)+8|0;R=vJ(c[S>>2]&h|0,c[S+4>>2]&T|0,c[R>>2]|0,c[R+4>>2]|0)|0;R=xJ(R|0,E()|0,55)|0;E()|0;R=P+(R<<3)|0;P=b+280|0;T=237792+(g<<3)|0;S=b+304|0;h=b+320+(I<<3)|0;g=(H|(c[P>>2]|f)&c[R>>2]|c[S>>2]&c[T>>2])&c[h>>2];h=(O|(c[P+4>>2]|Q)&c[R+4>>2]|c[S+4>>2]&c[T+4>>2])&c[h+4>>2]}else{g=0;h=0}T=l+56|0;c[T>>2]=g;c[T+4>>2]=h;if(J&i){T=c[L>>2]|0;T=T^1;c[L>>2]=T;ne(b,l);Ia=N;return}k=b+4560|0;j=k;i=c[j>>2]|0;j=c[j+4>>2]|0;h=161184+(K<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;if((g&i|0)==0&(h&j|0)==0){T=c[L>>2]|0;T=T^1;c[L>>2]=T;ne(b,l);Ia=N;return}R=161184+(c[M>>2]<<3)|0;S=c[R+4>>2]|j&~h;T=k;c[T>>2]=c[R>>2]|i&~g;c[T+4>>2]=S;T=c[L>>2]|0;T=T^1;c[L>>2]=T;ne(b,l);Ia=N;return}function ze(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;k=c[e>>2]|0;l=(k|0)>(d|0);c[f>>2]=k;k=b*56|0;c[g>>2]=(l?5:3)|k;c[e>>2]=(l?6:2)|k;b=b<<3;k=b|6;l=a+256|0;s=161184+(d<<3)|0;j=s;r=l;q=c[r+4>>2]^c[j+4>>2];o=l;c[o>>2]=c[r>>2]^c[j>>2];c[o+4>>2]=q;o=a+304|0;q=s;j=o;r=c[j+4>>2]^c[q+4>>2];p=o;c[p>>2]=c[j>>2]^c[q>>2];c[p+4>>2]=r;p=a+320+((3?b>>3:b)<<3)|0;r=p;q=c[r+4>>2]^c[s+4>>2];j=p;c[j>>2]=c[r>>2]^c[s>>2];c[j+4>>2]=q;j=c[a+5360>>2]|0;q=(j|0)==2;if(q)c[a+(d<<2)>>2]=0;m=a+336+(k<<2)|0;r=(c[m>>2]|0)+-1|0;c[m>>2]=r;r=c[a+400+(k<<8)+(r<<2)>>2]|0;n=c[a+4568+(d<<2)>>2]|0;c[a+4568+(r<<2)>>2]=n;c[a+400+(k<<8)+(n<<2)>>2]=r;c[a+400+(k<<8)+(c[m>>2]<<2)>>2]=64;n=a+336+(b<<2)|0;c[n>>2]=(c[n>>2]|0)+-1;r=a+5344|0;s=(c[r>>2]|0)-(c[1065488+(j*4160|0)+(k*260|0)+(d<<2)>>2]|0)|0;c[r>>2]=s;h=b|4;b=c[f>>2]|0;v=161184+(b<<3)|0;x=v;u=l;t=c[u+4>>2]^c[x+4>>2];i=l;c[i>>2]=c[u>>2]^c[x>>2];c[i+4>>2]=t;i=a+288|0;t=v;x=i;u=c[x+4>>2]^c[t+4>>2];w=i;c[w>>2]=c[x>>2]^c[t>>2];c[w+4>>2]=u;w=p;u=c[w+4>>2]^c[v+4>>2];t=p;c[t>>2]=c[w>>2]^c[v>>2];c[t+4>>2]=u;if(q)c[a+(b<<2)>>2]=0;u=a+336+(h<<2)|0;w=(c[u>>2]|0)+-1|0;c[u>>2]=w;w=c[a+400+(h<<8)+(w<<2)>>2]|0;x=c[a+4568+(b<<2)>>2]|0;c[a+4568+(w<<2)>>2]=x;c[a+400+(h<<8)+(x<<2)>>2]=w;c[a+400+(h<<8)+(c[u>>2]<<2)>>2]=64;c[n>>2]=(c[n>>2]|0)+-1;x=s-(c[1065488+(j*4160|0)+(h*260|0)+(b<<2)>>2]|0)|0;c[r>>2]=x;c[a+(c[f>>2]<<2)>>2]=0;c[a+(d<<2)>>2]=0;w=c[e>>2]|0;c[a+(w<<2)>>2]=k;f=161184+(w<<3)|0;t=f;v=l;d=c[v+4>>2]|c[t+4>>2];e=l;c[e>>2]=c[v>>2]|c[t>>2];c[e+4>>2]=d;e=f;d=o;t=c[d+4>>2]|c[e+4>>2];v=o;c[v>>2]=c[d>>2]|c[e>>2];c[v+4>>2]=t;v=p;t=c[v+4>>2]|c[f+4>>2];e=p;c[e>>2]=c[v>>2]|c[f>>2];c[e+4>>2]=t;e=c[m>>2]|0;c[m>>2]=e+1;c[a+4568+(w<<2)>>2]=e;c[a+400+(k<<8)+(e<<2)>>2]=w;c[n>>2]=(c[n>>2]|0)+1;x=(c[1065488+(j*4160|0)+(k*260|0)+(w<<2)>>2]|0)+x|0;c[r>>2]=x;w=c[g>>2]|0;c[a+(w<<2)>>2]=h;e=161184+(w<<3)|0;t=e;g=l;f=c[g+4>>2]|c[t+4>>2];v=l;c[v>>2]=c[g>>2]|c[t>>2];c[v+4>>2]=f;v=e;f=i;t=c[f+4>>2]|c[v+4>>2];g=i;c[g>>2]=c[f>>2]|c[v>>2];c[g+4>>2]=t;g=p;t=c[g+4>>2]|c[e+4>>2];v=p;c[v>>2]=c[g>>2]|c[e>>2];c[v+4>>2]=t;v=c[u>>2]|0;c[u>>2]=v+1;c[a+4568+(w<<2)>>2]=v;c[a+400+(h<<8)+(v<<2)>>2]=w;c[n>>2]=(c[n>>2]|0)+1;c[r>>2]=(c[1065488+(j*4160|0)+(h*260|0)+(w<<2)>>2]|0)+x;return}function Ae(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;z=Ia;Ia=Ia+16|0;i=z+8|0;g=z+4|0;h=z;j=b+5340|0;q=c[j>>2]^1;c[j>>2]=q;j=(d&61440|0)==36864;v=j?64:(6?d>>>6:d)&63;y=d&63;c[i>>2]=y;k=b+(y<<2)|0;e=c[k>>2]|0;x=c[b+5360>>2]|0;r=(x|0)==2;if(r?(f=c[b+5352>>2]|0,(c[f+64>>2]|0)!=0):0)e=c[f+68+(v<<2)>>2]|0;f=d&49152;p=(f|0)==32768;a:do if(p)if((d&12288|0)==8192)g=7;else g=14;else{f=f&65535;if(f<<16>>16>=16384)switch(f<<16>>16){case 16384:{g=7;break a}default:{g=14;break a}}switch(f<<16>>16){case -16384:break;default:{g=14;break a}}Be(b,q,v,i,g,h);y=b+5352|0;x=c[y>>2]|0;x=x+328|0;x=c[x>>2]|0;c[y>>2]=x;b=b+5336|0;y=c[b>>2]|0;y=y+-1|0;c[b>>2]=y;Ia=z;return}while(0);do if((g|0)==7){if(r?c[(c[b+5352>>2]|0)+64>>2]|0:0){g=15;break}g=b+256|0;f=161184+(y<<3)|0;n=f;m=g;l=c[m+4>>2]^c[n+4>>2];o=g;c[o>>2]=c[m>>2]^c[n>>2];c[o+4>>2]=l;o=b+256+((e&7)<<3)|0;l=f;n=o;m=c[n+4>>2]^c[l+4>>2];c[o>>2]=c[n>>2]^c[l>>2];c[o+4>>2]=m;o=b+320+((3?e>>3:e)<<3)|0;m=f;l=o;n=c[l+4>>2]^c[m+4>>2];c[o>>2]=c[l>>2]^c[m>>2];c[o+4>>2]=n;if(r)c[k>>2]=0;o=b+336+(e<<2)|0;m=(c[o>>2]|0)+-1|0;c[o>>2]=m;m=c[b+400+(e<<8)+(m<<2)>>2]|0;i=b+4568+(y<<2)|0;n=c[i>>2]|0;c[b+4568+(m<<2)>>2]=n;c[b+400+(e<<8)+(n<<2)>>2]=m;c[b+400+(e<<8)+(c[o>>2]<<2)>>2]=64;o=b+336+((e&-8)<<2)|0;c[o>>2]=(c[o>>2]|0)+-1;o=b+5344|0;n=(c[o>>2]|0)-(c[1065488+(x*4160|0)+(e*260|0)+(y<<2)>>2]|0)|0;c[o>>2]=n;m=q<<3;e=m|1;c[k>>2]=e;l=f;B=g;A=c[B+4>>2]|c[l+4>>2];h=g;c[h>>2]=c[B>>2]|c[l>>2];c[h+4>>2]=A;h=b+264|0;A=f;l=h;g=c[l+4>>2]|c[A+4>>2];c[h>>2]=c[l>>2]|c[A>>2];c[h+4>>2]=g;h=b+320+((3?m>>3:m)<<3)|0;g=f;A=h;l=c[A+4>>2]|c[g+4>>2];c[h>>2]=c[A>>2]|c[g>>2];c[h+4>>2]=l;h=b+336+(e<<2)|0;l=c[h>>2]|0;c[h>>2]=l+1;c[i>>2]=l;c[b+400+(e<<8)+(l<<2)>>2]=y;m=b+336+(m<<2)|0;c[m>>2]=(c[m>>2]|0)+1;c[o>>2]=(c[1065488+(x*4160|0)+(e*260|0)+(y<<2)>>2]|0)+n;if((x|0)==3){g=b+4560|0;A=f;o=g;B=c[o+4>>2]&~c[A+4>>2];c[g>>2]=c[o>>2]&~c[A>>2];c[g+4>>2]=B;g=14}else g=14}while(0);if((g|0)==14)if(!r)if(j&(x|0)==3){o=b+256|0;f=161184+(y<<3)|0;B=f;m=o;A=c[m+4>>2]^c[B+4>>2];c[o>>2]=c[m>>2]^c[B>>2];c[o+4>>2]=A;o=e&7;A=b+256+(o<<3)|0;B=f;m=A;g=c[m+4>>2]^c[B+4>>2];c[A>>2]=c[m>>2]^c[B>>2];c[A+4>>2]=g;A=3?e>>3:e;g=b+320+(A<<3)|0;B=f;m=g;n=c[m+4>>2]^c[B+4>>2];c[g>>2]=c[m>>2]^c[B>>2];c[g+4>>2]=n;g=b+336+(e<<2)|0;n=(c[g>>2]|0)+-1|0;c[g>>2]=n;n=c[b+400+(e<<8)+(n<<2)>>2]|0;B=c[b+4568+(y<<2)>>2]|0;c[b+4568+(n<<2)>>2]=B;c[b+400+(e<<8)+(B<<2)>>2]=n;c[b+400+(e<<8)+(c[g>>2]<<2)>>2]=64;g=b+336+((e&-8)<<2)|0;c[g>>2]=(c[g>>2]|0)+-1;g=b+5344|0;B=(c[g>>2]|0)-(c[1077968+(e*260|0)+(y<<2)>>2]|0)|0;c[g>>2]=B;c[k>>2]=0;o=b+4496+(A<<5)+(o<<2)|0;c[o>>2]=(c[o>>2]|0)+1;A=b+4496+(A<<5)|0;c[A>>2]=(c[A>>2]|0)+1;e=(c[1077968+(e*260|0)+256>>2]|0)+B|0;c[g>>2]=e;g=20}else g=19;else g=15;if((g|0)==15)if(!(c[(c[b+5352>>2]|0)+64>>2]|0))g=19;else{c[b+(v<<2)>>2]=e;B=b+256|0;A=161184+(v<<3)|0;m=A;o=B;n=c[o+4>>2]|c[m+4>>2];c[B>>2]=c[o>>2]|c[m>>2];c[B+4>>2]=n;B=b+256+((e&7)<<3)|0;n=A;m=B;o=c[m+4>>2]|c[n+4>>2];c[B>>2]=c[m>>2]|c[n>>2];c[B+4>>2]=o;B=b+320+((3?e>>3:e)<<3)|0;o=B;n=c[o+4>>2]|c[A+4>>2];c[B>>2]=c[o>>2]|c[A>>2];c[B+4>>2]=n;B=b+336+(e<<2)|0;n=c[B>>2]|0;c[B>>2]=n+1;c[b+4568+(v<<2)>>2]=n;c[b+400+(e<<8)+(n<<2)>>2]=v;n=b+336+((e&-8)<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=b+5344|0;e=(c[n>>2]|0)+(c[1073808+(e*260|0)+(v<<2)>>2]|0)|0;c[n>>2]=e;n=0}if((g|0)==19){f=161184+(y<<3)|0;A=f;B=161184+(v<<3)|0;o=c[B>>2]^c[A>>2];A=c[B+4>>2]^c[A+4>>2];B=b+256|0;n=B;m=c[n+4>>2]^A;c[B>>2]=c[n>>2]^o;c[B+4>>2]=m;B=b+256+((e&7)<<3)|0;m=B;n=c[m+4>>2]^A;c[B>>2]=c[m>>2]^o;c[B+4>>2]=n;B=b+320+((3?e>>3:e)<<3)|0;n=B;A=c[n+4>>2]^A;c[B>>2]=c[n>>2]^o;c[B+4>>2]=A;c[k>>2]=0;c[b+(v<<2)>>2]=e;B=c[b+4568+(y<<2)>>2]|0;c[b+4568+(v<<2)>>2]=B;c[b+400+(e<<8)+(B<<2)>>2]=v;B=b+5344|0;e=(c[1065488+(x*4160|0)+(e*260|0)+(v<<2)>>2]|0)-(c[1065488+(x*4160|0)+(e*260|0)+(y<<2)>>2]|0)+(c[B>>2]|0)|0;c[B>>2]=e;if((x|0)==3)g=20;else n=0}if((g|0)==20){j=b+4560|0;i=j;h=c[i>>2]|0;i=c[i+4>>2]|0;g=f;f=c[g>>2]|0;g=c[g+4>>2]|0;if((f&h|0)==0&(g&i|0)==0)n=1;else{A=161184+(v<<3)|0;B=c[A+4>>2]|i&~g;n=j;c[n>>2]=c[A>>2]|h&~f;c[n+4>>2]=B;n=1}}o=b+5352|0;m=c[o>>2]|0;l=m+64|0;g=c[l>>2]|0;if(!g){A=m;B=o;A=A+328|0;A=c[A>>2]|0;c[B>>2]=A;B=b+5336|0;A=c[B>>2]|0;A=A+-1|0;c[B>>2]=A;Ia=z;return}b:do if(p){f=d&12288;if(f<<16>>16<8192)switch(f<<16>>16){case 4096:{k=y;break b}default:{}}else switch(f<<16>>16){case 8192:{k=y;break b}default:{}}k=y-((q|0)==0?8:-8)|0}else k=y;while(0);if(r?(t=237792+(y<<3)|0,s=c[t>>2]|0,t=c[t+4>>2]|0,!((s|0)==0&(t|0)==0)):0){i=b+256|0;j=b+5344|0;h=s;g=t;do{f=qa(h|0,g|0,0)|0;E()|0;B=pJ(h|0,g|0,-1,-1)|0;h=B&h;g=(E()|0)&g;if(((v|0)!=(f|0)?(u=c[m+68+(f<<2)>>2]|0,(u|0)!=0):0)?(w=u&7,(w|0)!=1):0){c[b+(f<<2)>>2]=u;t=161184+(f<<3)|0;r=t;s=i;B=c[s+4>>2]|c[r+4>>2];A=i;c[A>>2]=c[s>>2]|c[r>>2];c[A+4>>2]=B;A=b+256+(w<<3)|0;B=t;r=A;s=c[r+4>>2]|c[B+4>>2];c[A>>2]=c[r>>2]|c[B>>2];c[A+4>>2]=s;A=b+320+((3?u>>3:u)<<3)|0;s=A;B=c[s+4>>2]|c[t+4>>2];c[A>>2]=c[s>>2]|c[t>>2];c[A+4>>2]=B;A=b+336+(u<<2)|0;B=c[A>>2]|0;c[A>>2]=B+1;c[b+4568+(f<<2)>>2]=B;c[b+400+(u<<8)+(B<<2)>>2]=f;B=b+336+((u&-8)<<2)|0;c[B>>2]=(c[B>>2]|0)+1;e=e+(c[1073808+(u*260|0)+(f<<2)>>2]|0)|0;c[j>>2]=e}}while(!((h|0)==0&(g|0)==0));g=c[l>>2]|0}c[b+(k<<2)>>2]=g;B=b+256|0;A=161184+(k<<3)|0;v=A;w=B;f=c[w+4>>2]|c[v+4>>2];c[B>>2]=c[w>>2]|c[v>>2];c[B+4>>2]=f;B=b+256+((g&7)<<3)|0;f=A;v=B;w=c[v+4>>2]|c[f+4>>2];c[B>>2]=c[v>>2]|c[f>>2];c[B+4>>2]=w;B=b+320+((3?g>>3:g)<<3)|0;w=B;f=c[w+4>>2]|c[A+4>>2];c[B>>2]=c[w>>2]|c[A>>2];c[B+4>>2]=f;B=b+336+(g<<2)|0;f=c[B>>2]|0;c[B>>2]=f+1;c[b+4568+(k<<2)>>2]=f;c[b+400+(g<<8)+(f<<2)>>2]=k;f=b+336+((g&-8)<<2)|0;c[f>>2]=(c[f>>2]|0)+1;f=b+5344|0;e=e+(c[1065488+(x*4160|0)+(g*260|0)+(k<<2)>>2]|0)|0;c[f>>2]=e;if(!n){A=m;B=o;A=A+328|0;A=c[A>>2]|0;c[B>>2]=A;B=b+5336|0;A=c[B>>2]|0;A=A+-1|0;c[B>>2]=A;Ia=z;return}A=c[l>>2]|0;x=(3?A>>3:A)^1;B=(a[m+324>>0]|0)==0;A=B?A&7:1;w=b+4496+(x<<5)+(A<<2)|0;c[w>>2]=(c[w>>2]|0)+-1;w=b+4496+(x<<5)|0;c[w>>2]=(c[w>>2]|0)+-1;c[f>>2]=e-(c[1077968+((x<<3|A)*260|0)+256>>2]|0);e=b+4560|0;if(B){A=m;B=o;A=A+328|0;A=c[A>>2]|0;c[B>>2]=A;B=b+5336|0;A=c[B>>2]|0;A=A+-1|0;c[B>>2]=A;Ia=z;return}y=161184+(y<<3)|0;x=e;B=c[x+4>>2]|c[y+4>>2];A=e;c[A>>2]=c[x>>2]|c[y>>2];c[A+4>>2]=B;A=m;B=o;A=A+328|0;A=c[A>>2]|0;c[B>>2]=A;B=b+5336|0;A=c[B>>2]|0;A=A+-1|0;c[B>>2]=A;Ia=z;return}function Be(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;h=c[e>>2]|0;l=(h|0)>(d|0);c[f>>2]=h;h=b*56|0;c[g>>2]=(l?5:3)|h;h=(l?6:2)|h;c[e>>2]=h;b=b<<3;l=b|6;m=a+256|0;s=161184+(h<<3)|0;k=s;o=m;r=c[o+4>>2]^c[k+4>>2];p=m;c[p>>2]=c[o>>2]^c[k>>2];c[p+4>>2]=r;p=a+304|0;r=s;k=p;o=c[k+4>>2]^c[r+4>>2];q=p;c[q>>2]=c[k>>2]^c[r>>2];c[q+4>>2]=o;q=a+320+((3?b>>3:b)<<3)|0;o=q;r=c[o+4>>2]^c[s+4>>2];k=q;c[k>>2]=c[o>>2]^c[s>>2];c[k+4>>2]=r;k=c[a+5360>>2]|0;r=(k|0)==2;if(r)c[a+(h<<2)>>2]=0;n=a+336+(l<<2)|0;s=(c[n>>2]|0)+-1|0;c[n>>2]=s;s=c[a+400+(l<<8)+(s<<2)>>2]|0;o=c[a+4568+(h<<2)>>2]|0;c[a+4568+(s<<2)>>2]=o;c[a+400+(l<<8)+(o<<2)>>2]=s;c[a+400+(l<<8)+(c[n>>2]<<2)>>2]=64;o=a+336+(b<<2)|0;c[o>>2]=(c[o>>2]|0)+-1;s=a+5344|0;j=(c[s>>2]|0)-(c[1065488+(k*4160|0)+(l*260|0)+(h<<2)>>2]|0)|0;c[s>>2]=j;h=b|4;b=c[g>>2]|0;v=161184+(b<<3)|0;x=v;u=m;t=c[u+4>>2]^c[x+4>>2];i=m;c[i>>2]=c[u>>2]^c[x>>2];c[i+4>>2]=t;i=a+288|0;t=v;x=i;u=c[x+4>>2]^c[t+4>>2];w=i;c[w>>2]=c[x>>2]^c[t>>2];c[w+4>>2]=u;w=q;u=c[w+4>>2]^c[v+4>>2];t=q;c[t>>2]=c[w>>2]^c[v>>2];c[t+4>>2]=u;if(r)c[a+(b<<2)>>2]=0;u=a+336+(h<<2)|0;t=(c[u>>2]|0)+-1|0;c[u>>2]=t;t=c[a+400+(h<<8)+(t<<2)>>2]|0;x=c[a+4568+(b<<2)>>2]|0;c[a+4568+(t<<2)>>2]=x;c[a+400+(h<<8)+(x<<2)>>2]=t;c[a+400+(h<<8)+(c[u>>2]<<2)>>2]=64;c[o>>2]=(c[o>>2]|0)+-1;x=j-(c[1065488+(k*4160|0)+(h*260|0)+(b<<2)>>2]|0)|0;c[s>>2]=x;c[a+(c[g>>2]<<2)>>2]=0;c[a+(c[e>>2]<<2)>>2]=0;c[a+(d<<2)>>2]=l;t=161184+(d<<3)|0;e=t;g=m;v=c[g+4>>2]|c[e+4>>2];w=m;c[w>>2]=c[g>>2]|c[e>>2];c[w+4>>2]=v;w=t;v=p;e=c[v+4>>2]|c[w+4>>2];g=p;c[g>>2]=c[v>>2]|c[w>>2];c[g+4>>2]=e;g=q;e=c[g+4>>2]|c[t+4>>2];w=q;c[w>>2]=c[g>>2]|c[t>>2];c[w+4>>2]=e;w=c[n>>2]|0;c[n>>2]=w+1;c[a+4568+(d<<2)>>2]=w;c[a+400+(l<<8)+(w<<2)>>2]=d;c[o>>2]=(c[o>>2]|0)+1;x=(c[1065488+(k*4160|0)+(l*260|0)+(d<<2)>>2]|0)+x|0;c[s>>2]=x;w=c[f>>2]|0;c[a+(w<<2)>>2]=h;e=161184+(w<<3)|0;t=e;g=m;f=c[g+4>>2]|c[t+4>>2];v=m;c[v>>2]=c[g>>2]|c[t>>2];c[v+4>>2]=f;v=e;f=i;t=c[f+4>>2]|c[v+4>>2];g=i;c[g>>2]=c[f>>2]|c[v>>2];c[g+4>>2]=t;g=q;t=c[g+4>>2]|c[e+4>>2];v=q;c[v>>2]=c[g>>2]|c[e>>2];c[v+4>>2]=t;v=c[u>>2]|0;c[u>>2]=v+1;c[a+4568+(w<<2)>>2]=v;c[a+400+(h<<8)+(v<<2)>>2]=w;c[o>>2]=(c[o>>2]|0)+1;c[s>>2]=(c[1065488+(k*4160|0)+(h*260|0)+(w<<2)>>2]|0)+x;return}function Ce(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+5352|0;BJ(b|0,c[f>>2]|0,432)|0;c[b+328>>2]=c[f>>2];c[f>>2]=b;e=b+44|0;d=c[e>>2]|0;if((d|0)==64){b=b+48|0;e=b;d=c[e>>2]|0;e=c[e+4>>2]|0}else{g=964688+((d&7)<<3)|0;b=b+48|0;h=b;d=c[h>>2]^c[g>>2];g=c[h+4>>2]^c[g+4>>2];h=b;c[h>>2]=d;c[h+4>>2]=g;c[e>>2]=64;e=g}i=1174448;g=e^c[i+4>>2];h=b;c[h>>2]=d^c[i>>2];c[h+4>>2]=g;h=c[f>>2]|0;g=h+28|0;c[g>>2]=(c[g>>2]|0)+1;c[h+32>>2]=0;g=a+5340|0;c[g>>2]=c[g>>2]^1;ne(a,h);return}function De(a){a=a|0;var b=0;b=a+5352|0;c[b>>2]=c[(c[b>>2]|0)+328>>2];a=a+5340|0;c[a>>2]=c[a>>2]^1;return}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=(b&61440|0)==36864;d=6?b>>>6:b;l=h?64:d&63;i=b&63;f=c[a+5360>>2]|0;g=(f|0)==3;if(h&g)k=d&15;else k=c[a+(l<<2)>>2]|0;e=c[a+(i<<2)>>2]|0;b=(c[a+5352>>2]|0)+48|0;m=1174448;d=c[m>>2]^c[b>>2];b=c[m+4>>2]^c[b+4>>2];do if(!e){if(g)j=13}else{m=956496+(e<<9)+(i<<3)|0;d=c[m>>2]^d;b=c[m+4>>2]^b;if((f|0)!=2){if(!g)break;g=a+4560|0;j=161184+(i<<3)|0;g=((c[j>>2]&c[g>>2]|0)==0?(c[j+4>>2]&c[g+4>>2]|0)==0:0)?e^8:e&-8^9;j=c[a+4496+((3?g>>3:g)<<5)+((g&7)<<2)>>2]|0;m=964944+(g*136|0)+(j+1<<3)|0;j=964944+(g*136|0)+(j<<3)|0;d=c[m>>2]^d^c[j>>2];b=c[m+4>>2]^b^c[j+4>>2];j=13;break}m=237792+(i<<3)|0;j=a+256|0;i=a+264|0;f=161184+(l<<3)|0;e=(c[i>>2]^c[j>>2])&c[m>>2]&~c[f>>2];f=(c[i+4>>2]^c[j+4>>2])&c[m+4>>2]&~c[f+4>>2];if(!((e|0)==0&(f|0)==0))do{m=qa(e|0,f|0,0)|0;E()|0;j=pJ(e|0,f|0,-1,-1)|0;e=j&e;f=(E()|0)&f;m=956496+(c[a+(m<<2)>>2]<<9)+(m<<3)|0;d=c[m>>2]^d;b=c[m+4>>2]^b}while(!((e|0)==0&(f|0)==0));k=956496+(k<<9)+(l<<3)|0;a=c[k>>2]|0;m=d;k=c[k+4>>2]|0;l=b;m=a^m;l=k^l;D(l|0);return m|0}while(0);if((j|0)==13)if(h){i=956496+(k<<9)+(i<<3)|0;l=c[a+4496+((3?k>>3:k)<<5)+((k&7)<<2)>>2]|0;j=964944+(k*136|0)+(l<<3)|0;l=964944+(k*136|0)+(l+-1<<3)|0;a=c[i>>2]^d^c[j>>2];m=c[l>>2]|0;k=c[i+4>>2]^b^c[j+4>>2];l=c[l+4>>2]|0;m=a^m;l=k^l;D(l|0);return m|0}j=956496+(k<<9)+(i<<3)|0;l=956496+(k<<9)+(l<<3)|0;a=c[j>>2]^d;m=c[l>>2]|0;k=c[j+4>>2]^b;l=c[l+4>>2]|0;m=a^m;l=k^l;D(l|0);return m|0}function Fe(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0;g=(b&61440|0)==36864?64:(6?b>>>6:b)&63;B=c[a+(g<<2)>>2]|0;B=3?B>>3:B;i=b&63;A=237792+(i<<3)|0;y=a+256|0;x=a+264|0;g=161184+(g<<3)|0;b=(c[x>>2]^c[y>>2])&c[A>>2]&~c[g>>2];g=(c[x+4>>2]^c[y+4>>2])&c[A+4>>2]&~c[g+4>>2];i=(i|0)==(f|0);if(i)A=b;else{y=161184+(f<<3)|0;A=b&~c[y>>2];g=g&~c[y+4>>2]}y=a+320+((B^1)<<3)|0;h=a+304|0;b=c[h>>2]&A;h=c[h+4>>2]&g;if(!((b&c[y>>2]|0)==0?(h&c[y+4>>2]|0)==0:0)){a=32e3;return a|0}if(!i?(y=a+320+(B<<3)|0,!((b&c[y>>2]|0)==0?(h&c[y+4>>2]|0)==0:0)):0){a=-32e3;return a|0}b=c[a+5360>>2]|0;n=a+272|0;v=14192+(b<<7)+8|0;o=a+280|0;w=14192+(b<<7)+12|0;p=a+288|0;x=14192+(b<<7)+16|0;q=a+296|0;y=14192+(b<<7)+20|0;j=a+272|0;r=14192+(b<<7)+8|0;k=a+280|0;s=14192+(b<<7)+12|0;l=a+288|0;t=14192+(b<<7)+16|0;m=a+296|0;u=14192+(b<<7)+20|0;b=(c[14192+(b<<7)+((c[a+(f<<2)>>2]&7)<<2)>>2]|0)-(c[14192+(b<<7)+(e<<2)>>2]|0)|0;e=0;do{i=a+320+(e<<3)|0;h=c[i>>2]&A;i=c[i+4>>2]&g;if((e|0)==(B|0)){f=n;D=h&c[f>>2];f=i&c[f+4>>2];F=xJ(D|0,f|0,16)|0;E()|0;C=xJ(D|0,f|0,48)|0;E()|0;C=b-(z((d[79264+(F&65535)>>0]|0)+(d[79264+(D&65535)>>0]|0)+(d[79264+(f&65535)>>0]|0)+(d[79264+C>>0]|0)|0,c[v>>2]|0)|0)|0;f=o;b=h&c[f>>2];f=i&c[f+4>>2];D=xJ(b|0,f|0,16)|0;E()|0;F=xJ(b|0,f|0,48)|0;E()|0;F=C-(z((d[79264+(D&65535)>>0]|0)+(d[79264+(b&65535)>>0]|0)+(d[79264+(f&65535)>>0]|0)+(d[79264+F>>0]|0)|0,c[w>>2]|0)|0)|0;f=p;b=h&c[f>>2];f=i&c[f+4>>2];D=xJ(b|0,f|0,16)|0;E()|0;C=xJ(b|0,f|0,48)|0;E()|0;C=F-(z((d[79264+(D&65535)>>0]|0)+(d[79264+(b&65535)>>0]|0)+(d[79264+(f&65535)>>0]|0)+(d[79264+C>>0]|0)|0,c[x>>2]|0)|0)|0;f=q;h=h&c[f>>2];f=i&c[f+4>>2];i=xJ(h|0,f|0,16)|0;E()|0;b=xJ(h|0,f|0,48)|0;E()|0;b=C-(z((d[79264+(i&65535)>>0]|0)+(d[79264+(h&65535)>>0]|0)+(d[79264+(f&65535)>>0]|0)+(d[79264+b>>0]|0)|0,c[y>>2]|0)|0)|0}else{F=j;D=h&c[F>>2];F=i&c[F+4>>2];C=xJ(D|0,F|0,16)|0;E()|0;f=xJ(D|0,F|0,48)|0;E()|0;b=(z((d[79264+(C&65535)>>0]|0)+(d[79264+(D&65535)>>0]|0)+(d[79264+(F&65535)>>0]|0)+(d[79264+f>>0]|0)|0,c[r>>2]|0)|0)+b|0;f=k;F=h&c[f>>2];f=i&c[f+4>>2];D=xJ(F|0,f|0,16)|0;E()|0;C=xJ(F|0,f|0,48)|0;E()|0;b=(z((d[79264+(D&65535)>>0]|0)+(d[79264+(F&65535)>>0]|0)+(d[79264+(f&65535)>>0]|0)+(d[79264+C>>0]|0)|0,c[s>>2]|0)|0)+b|0;C=l;f=h&c[C>>2];C=i&c[C+4>>2];F=xJ(f|0,C|0,16)|0;E()|0;D=xJ(f|0,C|0,48)|0;E()|0;b=(z((d[79264+(F&65535)>>0]|0)+(d[79264+(f&65535)>>0]|0)+(d[79264+(C&65535)>>0]|0)+(d[79264+D>>0]|0)|0,c[t>>2]|0)|0)+b|0;D=m;C=h&c[D>>2];D=i&c[D+4>>2];f=xJ(C|0,D|0,16)|0;E()|0;F=xJ(C|0,D|0,48)|0;E()|0;b=(z((d[79264+(f&65535)>>0]|0)+(d[79264+(C&65535)>>0]|0)+(d[79264+(D&65535)>>0]|0)+(d[79264+F>>0]|0)|0,c[u>>2]|0)|0)+b|0}e=e+1|0}while((e|0)!=2);return b|0}function Ge(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;$=c[a+5360>>2]|0;j=($|0)==3;if(j){g=(b&61440|0)==36864;h=6?b>>>6:b;if(g)e=h&15;else e=c[a+((h&63)<<2)>>2]|0;f=3?e>>3:e;if((f|0)==(c[a+5340>>2]|0)){if(we(a,b)|0){e=z(c[3645]|0,c[a+4496+(f<<5)+4>>2]|0)|0;e=(z(c[3646]|0,c[a+4496+(f<<5)+8>>2]|0)|0)+e|0;e=e+(z(c[3647]|0,c[a+4496+(f<<5)+12>>2]|0)|0)|0;e=e+(z(c[3648]|0,c[a+4496+(f<<5)+16>>2]|0)|0)|0;e=d-((e+(z(c[3649]|0,c[a+4496+(f<<5)+20>>2]|0)|0)|0)/5|0)|0}else e=d;_=(c[a+5352>>2]|0)+56|0;if(!((c[_>>2]|0)==0&(c[_+4>>2]|0)==0)){_=f^1;Z=z(c[3645]|0,c[a+4496+(_<<5)+4>>2]|0)|0;Z=(z(c[3646]|0,c[a+4496+(_<<5)+8>>2]|0)|0)+Z|0;Z=Z+(z(c[3647]|0,c[a+4496+(_<<5)+12>>2]|0)|0)|0;Z=Z+(z(c[3648]|0,c[a+4496+(_<<5)+16>>2]|0)|0)|0;e=((Z+(z(c[3649]|0,c[a+4496+(_<<5)+20>>2]|0)|0)|0)/5|0)+e|0}e=(e|0)/2|0}else e=d;if(g){f=h;g=64;h=b&63;_=24}else{d=e;_=19}}else if(($|0)==7){e=6?b>>>6:b;if((b&61440|0)==36864)e=e&15;else e=c[a+((e&63)<<2)>>2]|0;if(((3?e>>3:e)|0)==(c[a+5340>>2]|0)?we(a,b)|0:0){a=1;return a|0}else _=19}else _=19;do if((_|0)==19){if(b&49152|0){a=(d|0)<1;return a|0}e=b&61440;f=6?b>>>6:b;g=(e|0)==36864?64:f&63;h=b&63;if(j){if((e|0)==36864){e=d;_=24;break}i=c[a+(g<<2)>>2]|0;e=3?i>>3:i;i=i&7;l=h;Z=e;e=e^1;break}f=c[a+(g<<2)>>2]|0;i=f&7;f=3?f>>3:f;e=f^1;if(($|0)==2){if(c[a+(h<<2)>>2]|0){a=(Fe(a,b,i,h)|0)>(d|0);return a|0}if((d|0)>0){a=0;return a|0}W=a+256|0;Z=161184+(g<<3)|0;T=c[Z>>2]^c[W>>2];W=c[Z+4>>2]^c[W+4>>2];Z=239328+(h<<3)|0;V=a+320|0;$=a+264|0;U=c[$>>2]|0;$=c[$+4>>2]|0;Y=238816+(h<<3)|0;f=a+328|0;X=235744+(h<<3)|0;_=a+272|0;U=c[Y>>2]&U&c[f>>2]|c[V>>2]&c[Z>>2]&U|c[_>>2]&c[X>>2];X=c[Y+4>>2]&$&c[f+4>>2]|c[V+4>>2]&c[Z+4>>2]&$|c[_+4>>2]&c[X+4>>2];_=c[239840+(h*24|0)+16>>2]|0;$=239840+(h*24|0)|0;Z=239840+(h*24|0)+8|0;Z=vJ(c[$>>2]&T|0,c[$+4>>2]&W|0,c[Z>>2]|0,c[Z+4>>2]|0)|0;Z=xJ(Z|0,E()|0,52)|0;E()|0;Z=_+(Z<<3)|0;_=a+288|0;$=a+296|0;V=c[$>>2]|0;$=c[$+4>>2]|0;U=U|(V|c[_>>2])&c[Z>>2];Z=X|($|c[_+4>>2])&c[Z+4>>2];_=c[241376+(h*24|0)+16>>2]|0;X=241376+(h*24|0)|0;f=241376+(h*24|0)+8|0;f=vJ(c[X>>2]&T|0,c[X+4>>2]&W|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=xJ(f|0,E()|0,55)|0;E()|0;f=_+(f<<3)|0;_=a+280|0;X=a+304|0;Y=a+320+(e<<3)|0;e=T&~c[X>>2]&c[Y>>2]&(U|(c[_>>2]|V)&c[f>>2]);f=W&~c[X+4>>2]&c[Y+4>>2]&(Z|(c[_+4>>2]|$)&c[f+4>>2]);if((e|0)==0&(f|0)==0){a=1;return a|0}while(1){$=qa(e|0,f|0,0)|0;E()|0;if((Fe(a,b,i,$)|0)<(d|0)){e=0;_=62;break}$=pJ(e|0,f|0,-1,-1)|0;e=$&e;f=(E()|0)&f;if((e|0)==0&(f|0)==0){e=1;_=62;break}}if((_|0)==62)return e|0}else{l=h;Z=f}}while(0);if((_|0)==24){Y=(3?f>>>3:f)&1;i=f&7;l=h;Z=Y;d=e;e=Y^1}f=(c[14192+($<<7)+(c[a+(l<<2)>>2]<<2)>>2]|0)-d|0;if((f|0)<0){a=0;return a|0}m=f-(c[14192+($<<7)+(i<<2)>>2]|0)|0;if((m|0)>-1){a=1;return a|0}k=a+256|0;i=c[k>>2]|0;k=c[k+4>>2]|0;if((b&61440|0)==36864&j){g=161184+(l<<3)|0;f=c[g>>2]|0;d=i;g=c[g+4>>2]|0;h=k}else{g=161184+(g<<3)|0;h=161184+(l<<3)|0;f=c[g>>2]^i;d=c[h>>2]|0;g=c[g+4>>2]^k;h=c[h+4>>2]|0}j=f^d;r=g^h;Q=239328+(l<<3)|0;F=a+320|0;y=a+264|0;x=c[y>>2]|0;y=c[y+4>>2]|0;G=238816+(l<<3)|0;H=a+328|0;B=235744+(l<<3)|0;A=c[B>>2]|0;B=c[B+4>>2]|0;D=a+272|0;C=c[D>>2]|0;D=c[D+4>>2]|0;g=c[G>>2]&x&c[H>>2]|c[F>>2]&c[Q>>2]&x|C&A;Q=c[G+4>>2]&y&c[H+4>>2]|c[F+4>>2]&c[Q+4>>2]&y|D&B;F=c[239840+(l*24|0)+16>>2]|0;H=239840+(l*24|0)|0;G=c[H>>2]|0;H=c[H+4>>2]|0;J=239840+(l*24|0)+8|0;I=c[J>>2]|0;J=c[J+4>>2]|0;v=vJ(G&j|0,H&r|0,I|0,J|0)|0;v=xJ(v|0,E()|0,52)|0;E()|0;v=F+(v<<3)|0;L=a+288|0;K=c[L>>2]|0;L=c[L+4>>2]|0;N=a+296|0;M=c[N>>2]|0;N=c[N+4>>2]|0;O=M|K;P=N|L;g=g|O&c[v>>2];v=Q|P&c[v+4>>2];Q=c[241376+(l*24|0)+16>>2]|0;S=241376+(l*24|0)|0;R=c[S>>2]|0;S=c[S+4>>2]|0;U=241376+(l*24|0)+8|0;T=c[U>>2]|0;U=c[U+4>>2]|0;w=vJ(R&j|0,S&r|0,T|0,U|0)|0;w=xJ(w|0,E()|0,55)|0;E()|0;w=Q+(w<<3)|0;W=a+280|0;V=c[W>>2]|0;W=c[W+4>>2]|0;X=V|M;Y=W|N;d=237792+(l<<3)|0;s=a+304|0;g=(g|X&c[w>>2]|c[s>>2]&c[d>>2])&j;d=(v|Y&c[w+4>>2]|c[s+4>>2]&c[d+4>>2])&r;s=c[a+5352>>2]|0;w=($|0)==6;v=($|0)==4;u=14192+($<<7)+24|0;t=vJ(i&R|0,k&S|0,T|0,U|0)|0;t=xJ(t|0,E()|0,55)|0;E()|0;t=Q+(t<<3)|0;q=vJ(i&G|0,k&H|0,I|0,J|0)|0;q=xJ(q|0,E()|0,52)|0;E()|0;q=F+(q<<3)|0;i=r;a:while(1){n=a+320+(e<<3)|0;l=c[n>>2]|0;n=c[n+4>>2]|0;h=l&g;f=n&d;r=e^1;k=s+352+(r<<3)|0;o=~j;p=~i;if((c[k>>2]&o|0)==0?(c[k+4>>2]&p|0)==0:0){k=s+336+(e<<3)|0;h=h&~c[k>>2];f=f&~c[k+4>>2]}if(w){k=161184+(c[a+400+((r<<3|6)<<8)>>2]<<3)|0;b=c[k>>2]|0;k=c[k+4>>2]|0;if(!((b&A|0)==0&(k&B|0)==0)){h=h&~(C&l);f=f&~(D&n)}aa=t;if(!((b&c[aa>>2]|0)==0?(k&c[aa+4>>2]|0)==0:0)){h=h&~(V&l);f=f&~(W&n)}aa=q;if(!((b&c[aa>>2]|0)==0?(k&c[aa+4>>2]|0)==0:0)){h=h&~(K&l);f=f&~(L&n)}aa=t;ba=q;if(!((b&(c[ba>>2]|c[aa>>2])|0)==0?(k&(c[ba+4>>2]|c[aa+4>>2])|0)==0:0)){h=h&~(M&l);f=f&~(N&n)}ba=s+352+(e<<3)|0;if((c[ba>>2]&o|0)==0?(c[ba+4>>2]&p|0)==0:0){b=s+336+(r<<3)|0;k=h&~c[b>>2];b=f&~c[b+4>>2]}else{k=h;b=f}}else{k=h;b=f}if((k|0)==0&(b|0)==0)break;f=x&k;h=y&b;do if((f|0)==0&(h|0)==0){f=C&k;h=D&b;if(!((f|0)==0&(h|0)==0)){h=qa(f|0,h|0,0)|0;E()|0;h=161184+(h<<3)|0;_=c[h>>2]^j;h=c[h+4>>2]^i;f=_;i=h;g=_&g;d=h&d;h=2;_=56;break}f=V&k;h=W&b;if(!((f|0)==0&(h|0)==0)){h=qa(f|0,h|0,0)|0;E()|0;h=161184+(h<<3)|0;ba=c[h>>2]^j;h=c[h+4>>2]^i;_=vJ(ba&R|0,h&S|0,T|0,U|0)|0;_=xJ(_|0,E()|0,55)|0;E()|0;_=Q+(_<<3)|0;f=ba;i=h;g=(X&c[_>>2]|g)&ba;d=(Y&c[_+4>>2]|d)&h;h=3;_=56;break}f=K&k;h=L&b;if(!((f|0)==0&(h|0)==0)){h=qa(f|0,h|0,0)|0;E()|0;h=161184+(h<<3)|0;ba=c[h>>2]^j;h=c[h+4>>2]^i;_=vJ(ba&G|0,h&H|0,I|0,J|0)|0;_=xJ(_|0,E()|0,52)|0;E()|0;_=F+(_<<3)|0;f=ba;i=h;g=(O&c[_>>2]|g)&ba;d=(P&c[_+4>>2]|d)&h;h=4;_=56;break}h=M&k;f=N&b;if((h|0)==0&(f|0)==0)if(v){f=1;_=59;break a}else{h=u;f=1;break}else{h=qa(h|0,f|0,0)|0;E()|0;h=161184+(h<<3)|0;ba=c[h>>2]^j;h=c[h+4>>2]^i;_=vJ(ba&R|0,h&S|0,T|0,U|0)|0;_=xJ(_|0,E()|0,55)|0;E()|0;_=Q+(_<<3)|0;g=c[_>>2]&X|g;_=c[_+4>>2]&Y|d;d=vJ(ba&G|0,h&H|0,I|0,J|0)|0;d=xJ(d|0,E()|0,52)|0;E()|0;d=F+(d<<3)|0;f=ba;i=h;g=(g|c[d>>2]&O)&ba;d=(_|c[d+4>>2]&P)&h;h=5;_=56;break}}else{h=qa(f|0,h|0,0)|0;E()|0;h=161184+(h<<3)|0;ba=c[h>>2]^j;h=c[h+4>>2]^i;_=vJ(ba&R|0,h&S|0,T|0,U|0)|0;_=xJ(_|0,E()|0,55)|0;E()|0;_=Q+(_<<3)|0;f=ba;i=h;g=(X&c[_>>2]|g)&ba;d=(Y&c[_+4>>2]|d)&h;h=1;_=56}while(0);if((_|0)==56){_=0;j=f;h=14192+($<<7)+(h<<2)|0;f=0}m=~m-(c[h>>2]|0)|0;if((m|0)>-1){_=59;break}else e=r}if((_|0)==59)if(($|0)!=1&f){ba=a+320+(r<<3)|0;e=((c[ba>>2]&g|0)==0?(c[ba+4>>2]&d|0)==0:0)?r:e}else e=r;ba=(Z|0)!=(e|0);return ba|0}function He(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=Ia;Ia=Ia+4112|0;e=i;g=a+5360|0;f=a+5352|0;d=c[f>>2]|0;a:do if((c[g>>2]|0)==3)h=6;else{do if((c[d+28>>2]|0)>99){d=d+56|0;if((c[d>>2]|0)==0&(c[d+4>>2]|0)==0){b=1;Ia=i;return b|0}if((Nd(a,e)|0)==(e|0)){d=c[f>>2]|0;if((c[g>>2]|0)==3){h=6;break a}else break}else{b=1;Ia=i;return b|0}}while(0);g=d+28|0;a=d+32|0;e=d;d=(c[a>>2]|0)<(c[g>>2]|0)?a:g}while(0);if((h|0)==6){e=d;d=d+32|0}g=c[d>>2]|0;if((g|0)<4){b=0;Ia=i;return b|0}a=e+48|0;f=c[a>>2]|0;a=c[a+4>>2]|0;d=0;h=4;e=c[(c[e+328>>2]|0)+328>>2]|0;while(1){e=c[(c[e+328>>2]|0)+328>>2]|0;j=e+48|0;if((c[j>>2]|0)==(f|0)?(c[j+4>>2]|0)==(a|0):0){d=d+1|0;if((d+((h|0)<(b|0)&1)|0)==2){d=1;h=13;break}}h=h+2|0;if((h|0)>(g|0)){d=0;h=13;break}}if((h|0)==13){Ia=i;return d|0}return 0}function Ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;if((c[a+5360>>2]|0)==1){o=0;return o|0}d=c[a+5352>>2]|0;m=c[d+32>>2]|0;l=c[d+28>>2]|0;l=(m|0)<(l|0)?m:l;if((l|0)<3){o=0;return o|0}k=d+48|0;m=c[k>>2]|0;k=c[k+4>>2]|0;i=a+256|0;j=3;h=c[d+328>>2]|0;a:while(1){h=c[(c[h+328>>2]|0)+328>>2]|0;g=h+48|0;f=c[g>>2]|0;g=c[g+4>>2]|0;d=f^m;e=g^k;a=d&8191;p=967184+(a<<3)|0;if(!((c[p>>2]|0)==(d|0)?(c[p+4>>2]|0)==(e|0):0)){a=xJ(d|0,e|0,16)|0;E()|0;a=a&8191;p=967184+(a<<3)|0;if((c[p>>2]|0)==(d|0)?(c[p+4>>2]|0)==(e|0):0){n=a;o=6}}else{n=a;o=6}if((o|0)==6?(o=0,p=c[1032720+(n<<2)>>2]|0,p=162016+(((p&61440|0)==36864?64:(6?p>>>6:p)&63)<<9)+((p&63)<<3)|0,e=i,(c[e>>2]&c[p>>2]|0)==0?(c[e+4>>2]&c[p+4>>2]|0)==0:0):0){if((j|0)<(b|0)){a=1;o=13;break}a=j+2|0;if((a|0)<=(l|0)){d=h;do{d=c[(c[d+328>>2]|0)+328>>2]|0;p=d+48|0;if((c[p>>2]|0)==(f|0)?(c[p+4>>2]|0)==(g|0):0){a=1;o=13;break a}a=a+2|0}while((a|0)<=(l|0))}}j=j+2|0;if((j|0)>(l|0)){a=0;o=13;break}}if((o|0)==13)return a|0;return 0}function Je(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=Ia;Ia=Ia+192|0;t=x+168|0;s=x+156|0;v=x+144|0;u=x;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;de(t,b);m=u+64|0;r=u+8|0;c[r>>2]=33264;n=u+12|0;c[u>>2]=29052;c[m>>2]=29072;c[u+4>>2]=0;Ol(u+64|0,n);c[u+136>>2]=0;c[u+140>>2]=-1;c[u>>2]=33244;c[m>>2]=33284;c[r>>2]=33264;Tl(n);c[n>>2]=33340;r=u+44|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[u+60>>2]=24;Fc(n,t);if((a[t+11>>0]|0)<0)Jv(c[t>>2]|0);o=s+11|0;l=s+4|0;p=v+11|0;q=v+4|0;i=t+11|0;g=t+8|0;h=t+4|0;k=7;while(1){Ke(u,v,(k|0)==0?32:47)|0;f=a[o>>0]|0;f=((f<<24>>24<0?c[l>>2]|0:f&255)|0)==0?49392:50132;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;j=a[p>>0]|0;e=j<<24>>24<0;j=e?c[q>>2]|0:j&255;e=e?c[v>>2]|0:v;d=j+1|0;if(d>>>0>4294967279){w=6;break}if(d>>>0<11){a[i>>0]=j;if(!j)d=t;else{d=t;w=10}}else{w=j+17&-16;d=Gv(w)|0;c[t>>2]=d;c[g>>2]=w|-2147483648;c[h>>2]=j;w=10}if((w|0)==10){w=0;BJ(d|0,e|0,j|0)|0}a[d+j>>0]=0;dw(t,f,1)|0;j=a[i>>0]|0;f=j<<24>>24<0;gw(s,0,f?c[t>>2]|0:t,f?c[h>>2]|0:j&255)|0;if((a[i>>0]|0)<0)Jv(c[t>>2]|0);if(!k)break;else k=k+-1|0}if((w|0)==6)Pv(t);Gc(u,v)|0;k=a[p>>0]|0;if(((k<<24>>24<0?c[q>>2]|0:k&255)|0)==1){d=(mw(v,0,-1,42667,1)|0)==0;d=d?42669:42672}else d=42672;ew(s,d)|0;Gc(u,v)|0;c[t>>2]=0;c[t+4>>2]=0;c[t+8>>2]=0;f=a[p>>0]|0;e=f<<24>>24<0;f=e?c[q>>2]|0:f&255;e=e?c[v>>2]|0:v;d=f+1|0;if(d>>>0>4294967279)Pv(t);if(d>>>0<11){a[t+11>>0]=f;if(!f)d=t;else{d=t;w=20}}else{w=f+17&-16;d=Gv(w)|0;c[t>>2]=d;c[t+8>>2]=w|-2147483648;c[t+4>>2]=f;w=20}if((w|0)==20)BJ(d|0,e|0,f|0)|0;a[d+f>>0]=0;dw(t,49392,1)|0;k=t+11|0;j=a[k>>0]|0;i=j<<24>>24<0;dw(s,i?c[t>>2]|0:t,i?c[t+4>>2]|0:j&255)|0;if((a[k>>0]|0)<0)Jv(c[t>>2]|0);f=a[o>>0]|0;k=f<<24>>24<0;d=c[s>>2]|0;f=k?d+(c[l>>2]|0)|0:s+(f&255)|0;d=k?d:s;if((d|0)!=(f|0))do{e=a[d>>0]|0;if(!(Qj(e)|0))e=Uj(e)|0;else e=Sj(e)|0;a[d>>0]=e;d=d+1|0}while((d|0)!=(f|0));Gc(u,v)|0;d=a[p>>0]|0;if(((d<<24>>24<0?c[q>>2]|0:d&255)|0)==1)if(!(mw(v,0,-1,49997,1)|0)){d=v;e=p;f=q;g=v}else{d=a[p>>0]|0;w=32}else w=32;if((w|0)==32){g=jw(v,1,1,(a[(d<<24>>24<0?c[v>>2]|0:v)+1>>0]|0)==51?42675:42677)|0;d=g;e=g+11|0;f=g+4|0}w=a[e>>0]|0;l=w<<24>>24<0;dw(s,l?c[d>>2]|0:g,l?c[f>>2]|0:w&255)|0;Ql(t,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);w=qn(t,1182988)|0;w=Na[c[(c[w>>2]|0)+28>>2]&127](w,10)|0;rn(t);Ke(u,v,w)|0;w=a[p>>0]|0;t=w<<24>>24<0;dw(s,t?c[v>>2]|0:v,t?c[q>>2]|0:w&255)|0;je(b,s,(a[b+5356>>0]|0)!=0,c[b+5360>>2]|0,c[b+5352>>2]|0,c[b+5348>>2]|0)|0;c[u>>2]=33244;c[m>>2]=33284;c[u+8>>2]=33264;c[n>>2]=33340;if((a[r+11>>0]|0)<0)Jv(c[r>>2]|0);Dk(n);Ll(u,33296);yk(m);if((a[p>>0]|0)<0)Jv(c[v>>2]|0);if((a[o>>0]|0)>=0){Ia=x;return}Jv(c[s>>2]|0);Ia=x;return}function Ke(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=Ia;Ia=Ia+16|0;l=n;Vl(l,b,1);if(!(a[l>>0]|0)){Ia=n;return b|0}k=e+11|0;if((a[k>>0]|0)<0){a[c[e>>2]>>0]=0;l=e+4|0;c[l>>2]=0}else{a[e>>0]=0;a[k>>0]=0;l=e+4|0}j=0;while(1){g=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;i=g+12|0;h=c[i>>2]|0;if((h|0)==(c[g+16>>2]|0)){g=La[c[(c[g>>2]|0)+40>>2]&127](g)|0;if((g|0)==-1){m=11;break}}else{c[i>>2]=h+1;g=d[h>>0]|0}g=g&255;if(g<<24>>24==f<<24>>24){g=0;break}fw(e,g);if((a[k>>0]|0)<0&(c[l>>2]|0)==-17){g=4;break}else j=j+1|0}if((m|0)==11)g=(j|0)==0?6:2;m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(m,c[m+16>>2]|g);Ia=n;return b|0}function Le(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295284]=0;c[295285]=0;c[295286]=0;f=Gv(96)|0;c[295285]=f;c[295284]=f;c[295286]=f+96;Rv(f,r);f=(c[295285]|0)+12|0;c[295285]=f;Rv(f,m);f=(c[295285]|0)+12|0;c[295285]=f;Rv(f,n);f=(c[295285]|0)+12|0;c[295285]=f;Rv(f,o);f=(c[295285]|0)+12|0;c[295285]=f;Rv(f,p);f=(c[295285]|0)+12|0;c[295285]=f;Rv(f,q);f=(c[295285]|0)+12|0;c[295285]=f;Rv(f,d);f=(c[295285]|0)+12|0;c[295285]=f;Rv(f,b);c[295285]=(c[295285]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function Me(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;d=c[3741]|0;e=c[3757]|0;p=(e<<16)+d|0;v=p+852020|0;B=-852020-p|0;h=c[3742]|0;i=c[3758]|0;q=(i<<16)+h|0;w=q+1966146|0;C=-1966146-q|0;j=c[3743]|0;k=c[3759]|0;r=(k<<16)+j|0;x=r+262148|0;D=-262148-r|0;l=c[3744]|0;m=c[3760]|0;s=(m<<16)+l|0;y=s+196621|0;E=-196621-s|0;n=c[3745]|0;o=c[3761]|0;t=(o<<16)+n|0;z=t+589849|0;F=-589849-t|0;f=c[3746]|0;g=c[3762]|0;u=(g<<16)+f|0;G=0-u|0;H=0;do{A=(H|0)==3;if((H|0)==6){c[3749]=d;c[3765]=e;a=0;do{b=a&7;I=b^7;b=(c[21488+((3?a>>>3:a)<<4)+((I>>>0>>0?I:b)<<2)>>2]|0)+p|0;c[1090708+(a<<2)>>2]=b;c[1092788+((a^7)<<2)>>2]=0-b;a=a+1|0}while((a|0)!=64);if(A){c[272741]=v;c[273261]=B}c[3750]=h;c[3766]=i;a=0;do{I=a&7;b=I^7;I=(c[21616+((3?a>>>3:a)<<4)+((b>>>0>>0?b:I)<<2)>>2]|0)+q|0;c[1090968+(a<<2)>>2]=I;c[1093048+((a^7)<<2)>>2]=0-I;a=a+1|0}while((a|0)!=64);if(A){c[272806]=w;c[273326]=C}c[3751]=j;c[3767]=k;a=0;do{I=a&7;b=I^7;I=(c[21744+((3?a>>>3:a)<<4)+((b>>>0>>0?b:I)<<2)>>2]|0)+r|0;c[1091228+(a<<2)>>2]=I;c[1093308+((a^7)<<2)>>2]=0-I;a=a+1|0}while((a|0)!=64);if(A){c[272871]=x;c[273391]=D}c[3752]=l;c[3768]=m;a=0;do{I=a&7;b=I^7;I=(c[21872+((3?a>>>3:a)<<4)+((b>>>0>>0?b:I)<<2)>>2]|0)+s|0;c[1091488+(a<<2)>>2]=I;c[1093568+((a^7)<<2)>>2]=0-I;a=a+1|0}while((a|0)!=64);if(A){c[272936]=y;c[273456]=E}c[3753]=n;c[3769]=o;a=0;do{I=a&7;b=I^7;I=(c[22e3+((3?a>>>3:a)<<4)+((b>>>0>>0?b:I)<<2)>>2]|0)+t|0;c[1091748+(a<<2)>>2]=I;c[1093828+((a^7)<<2)>>2]=0-I;a=a+1|0}while((a|0)!=64);if(A){c[273001]=z;c[273521]=F}c[3754]=f;c[3770]=g;a=0;do{I=a&7;b=I^7;I=(c[22128+((3?a>>>3:a)<<4)+((b>>>0>>0?b:I)<<2)>>2]|0)+u|0;c[1092008+(a<<2)>>2]=I;c[1094088+((a^7)<<2)>>2]=0-I;a=a+1|0}while((a|0)!=64);if(A){c[273066]=u;c[273586]=G}}else{a=c[14192+(H<<7)+4>>2]|0;c[14192+(H<<7)+36>>2]=a;b=c[14192+(H<<7)+68>>2]|0;c[14192+(H<<7)+100>>2]=b;a=(b<<16)+a|0;b=0;do{I=b&7;J=I^7;I=(c[15216+(H<<10)+128+((3?b>>>3:b)<<4)+((J>>>0>>0?J:I)<<2)>>2]|0)+a|0;c[1065488+(H*4160|0)+260+(b<<2)>>2]=I;c[1065488+(H*4160|0)+2340+((b^56)<<2)>>2]=0-I;b=b+1|0}while((b|0)!=64);if(A){c[269621]=a+852020;c[270141]=-852020-a}a=c[14192+(H<<7)+8>>2]|0;c[14192+(H<<7)+40>>2]=a;b=c[14192+(H<<7)+72>>2]|0;c[14192+(H<<7)+104>>2]=b;a=(b<<16)+a|0;b=0;do{J=b&7;I=J^7;J=(c[15216+(H<<10)+256+((3?b>>>3:b)<<4)+((I>>>0>>0?I:J)<<2)>>2]|0)+a|0;c[1065488+(H*4160|0)+520+(b<<2)>>2]=J;c[1065488+(H*4160|0)+2600+((b^56)<<2)>>2]=0-J;b=b+1|0}while((b|0)!=64);if(A){c[269686]=a+1966146;c[270206]=-1966146-a}a=c[14192+(H<<7)+12>>2]|0;c[14192+(H<<7)+44>>2]=a;b=c[14192+(H<<7)+76>>2]|0;c[14192+(H<<7)+108>>2]=b;a=(b<<16)+a|0;b=0;do{J=b&7;I=J^7;J=(c[15216+(H<<10)+384+((3?b>>>3:b)<<4)+((I>>>0>>0?I:J)<<2)>>2]|0)+a|0;c[1065488+(H*4160|0)+780+(b<<2)>>2]=J;c[1065488+(H*4160|0)+2860+((b^56)<<2)>>2]=0-J;b=b+1|0}while((b|0)!=64);if(A){c[269751]=a+262148;c[270271]=-262148-a}a=c[14192+(H<<7)+16>>2]|0;c[14192+(H<<7)+48>>2]=a;b=c[14192+(H<<7)+80>>2]|0;c[14192+(H<<7)+112>>2]=b;a=(b<<16)+a|0;b=0;do{J=b&7;I=J^7;J=(c[15216+(H<<10)+512+((3?b>>>3:b)<<4)+((I>>>0>>0?I:J)<<2)>>2]|0)+a|0;c[1065488+(H*4160|0)+1040+(b<<2)>>2]=J;c[1065488+(H*4160|0)+3120+((b^56)<<2)>>2]=0-J;b=b+1|0}while((b|0)!=64);if(A){c[269816]=a+196621;c[270336]=-196621-a}a=c[14192+(H<<7)+20>>2]|0;c[14192+(H<<7)+52>>2]=a;b=c[14192+(H<<7)+84>>2]|0;c[14192+(H<<7)+116>>2]=b;a=(b<<16)+a|0;b=0;do{J=b&7;I=J^7;J=(c[15216+(H<<10)+640+((3?b>>>3:b)<<4)+((I>>>0>>0?I:J)<<2)>>2]|0)+a|0;c[1065488+(H*4160|0)+1300+(b<<2)>>2]=J;c[1065488+(H*4160|0)+3380+((b^56)<<2)>>2]=0-J;b=b+1|0}while((b|0)!=64);if(A){c[269881]=a+589849;c[270401]=-589849-a}a=c[14192+(H<<7)+24>>2]|0;c[14192+(H<<7)+56>>2]=a;b=c[14192+(H<<7)+88>>2]|0;c[14192+(H<<7)+120>>2]=b;a=(b<<16)+a|0;b=0;do{J=b&7;I=J^7;J=(c[15216+(H<<10)+768+((3?b>>>3:b)<<4)+((I>>>0>>0?I:J)<<2)>>2]|0)+a|0;c[1065488+(H*4160|0)+1560+(b<<2)>>2]=J;c[1065488+(H*4160|0)+3640+((b^56)<<2)>>2]=0-J;b=b+1|0}while((b|0)!=64);if(A){c[269946]=a;c[270466]=0-a}}H=H+1|0}while((H|0)!=8);return}function Ne(a){a=a|0;wf(a);Jv(a);return}function Oe(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;r=Ia;Ia=Ia+8656|0;q=r+4544|0;p=r;g=r+444|0;o=r+432|0;e=c[293637]|0;j=b+176|0;if(e|0){f=(e|0)==2;m=Nd(j,g)|0;c[g+4096>>2]=m;a:do if((g|0)!=(m|0)){n=b+5532|0;k=o+11|0;l=o+4|0;i=q;h=e+-1|0;if((e|0)<2){f=0;e=0;while(1){f=pJ(f|0,e|0,1,0)|0;e=E()|0;i=Ic(1182116,0)|0;ih(o,c[g>>2]|0,(a[n>>0]|0)!=0);p=a[k>>0]|0;j=p<<24>>24<0;p=em(Tb(Tb(i,j?c[o>>2]|0:o,j?c[l>>2]|0:p&255)|0,42679,2)|0,1,0)|0;Ql(q,p+(c[(c[p>>2]|0)+-12>>2]|0)|0);j=qn(q,1182988)|0;j=Na[c[(c[j>>2]|0)+28>>2]&127](j,10)|0;rn(q);gm(p,j)|0;Wl(p)|0;Ic(p,1)|0;if((a[k>>0]|0)<0)Jv(c[o>>2]|0);g=g+8|0;if((g|0)==(m|0))break a}}if(f){f=0;e=0;do{h=c[g>>2]|0;ye(j,h,p,we(j,h)|0);h=(Nd(j,q)|0)-i|0;h=3?h>>3:h;f=pJ(f|0,e|0,h|0,0)|0;e=E()|0;Ae(j,c[g>>2]|0);u=Ic(1182116,0)|0;ih(o,c[g>>2]|0,(a[n>>0]|0)!=0);s=a[k>>0]|0;t=s<<24>>24<0;h=em(Tb(Tb(u,t?c[o>>2]|0:o,t?c[l>>2]|0:s&255)|0,42679,2)|0,h,0)|0;Ql(q,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);s=qn(q,1182988)|0;s=Na[c[(c[s>>2]|0)+28>>2]&127](s,10)|0;rn(q);gm(h,s)|0;Wl(h)|0;Ic(h,1)|0;if((a[k>>0]|0)<0)Jv(c[o>>2]|0);g=g+8|0}while((g|0)!=(m|0))}else{f=0;e=0;do{t=c[g>>2]|0;ye(j,t,p,we(j,t)|0);t=Pe(j,h)|0;u=E()|0;f=pJ(t|0,u|0,f|0,e|0)|0;e=E()|0;Ae(j,c[g>>2]|0);v=Ic(1182116,0)|0;ih(o,c[g>>2]|0,(a[n>>0]|0)!=0);s=a[k>>0]|0;i=s<<24>>24<0;u=em(Tb(Tb(v,i?c[o>>2]|0:o,i?c[l>>2]|0:s&255)|0,42679,2)|0,t,u)|0;Ql(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);t=qn(q,1182988)|0;t=Na[c[(c[t>>2]|0)+28>>2]&127](t,10)|0;rn(q);gm(u,t)|0;Wl(u)|0;Ic(u,1)|0;if((a[k>>0]|0)<0)Jv(c[o>>2]|0);g=g+8|0}while((g|0)!=(m|0))}}else{f=0;e=0}while(0);v=b+160|0;H(v|0,f|0,e|0,5);u=Tb(Ic(1182116,0)|0,42682,17)|0;v=G(v|0,5)|0;v=Tb(em(u,v,E()|0)|0,44551,1)|0;Ql(q,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=qn(q,1182988)|0;u=Na[c[(c[u>>2]|0)+28>>2]&127](u,10)|0;rn(q);gm(v,u)|0;Wl(v)|0;Ic(v,1)|0;Ia=r;return}g=c[b+5516>>2]|0;c[295287]=g;h=b+5536|0;Pg(1174616,c[h>>2]|0,1174464,g,c[b+5512>>2]|0);a[1181252]=(d[1181252]|0)+4;g=b+5544|0;e=c[g>>2]|0;f=b+5548|0;if((e|0)!=(c[f>>2]|0)){e=c[295299]|0;g=c[295300]|0;if((e|0)!=(g|0))do{f=c[e>>2]|0;if((f|0)!=(b|0))Eg(f);e=e+4|0}while((e|0)!=(g|0));Re(b);Ia=r;return}c[q>>2]=0;if(e>>>0<(c[b+5552>>2]|0)>>>0){c[e>>2]=-32001;c[e+4>>2]=-32001;c[e+8>>2]=0;c[e+12>>2]=0;u=e+20|0;c[u>>2]=0;v=e+24|0;c[v>>2]=0;s=e+28|0;c[s>>2]=0;t=Gv(4)|0;c[u>>2]=t;u=t+4|0;c[s>>2]=u;c[t>>2]=0;c[v>>2]=u;c[f>>2]=(c[f>>2]|0)+32}else Qe(g,q);if(!(Zb(j)|0)){v=(c[b+5528>>2]|0)+56|0;if((c[v>>2]|0)==0&(c[v+4>>2]|0)==0)e=(c[h>>2]|0)==1?32e3:0;else e=-32e3}else e=_b(j,0,0)|0;s=Tb(Ic(1182116,0)|0,42700,19)|0;nh(p,e);v=p+11|0;u=a[v>>0]|0;t=u<<24>>24<0;u=Tb(s,t?c[p>>2]|0:p,t?c[p+4>>2]|0:u&255)|0;Ql(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);t=qn(q,1182988)|0;t=Na[c[(c[t>>2]|0)+28>>2]&127](t,10)|0;rn(q);gm(u,t)|0;Wl(u)|0;Ic(u,1)|0;if((a[v>>0]|0)<0)Jv(c[p>>2]|0);Ia=r;return}function Pe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+8640|0;j=k;e=k+4532|0;f=k+432|0;i=Nd(a,e)|0;c[e+4096>>2]=i;if((e|0)==(i|0)){a=0;j=0;D(a|0);Ia=k;return j|0}h=f;g=b+-1|0;if((b|0)==2){b=0;d=0;do{g=c[e>>2]|0;ye(a,g,j,we(a,g)|0);g=(Nd(a,f)|0)-h|0;b=pJ(b|0,d|0,(3?g>>3:g)|0,0)|0;d=E()|0;Ae(a,c[e>>2]|0);e=e+8|0}while((e|0)!=(i|0));D(d|0);Ia=k;return b|0}else{b=0;d=0;do{h=c[e>>2]|0;ye(a,h,j,we(a,h)|0);h=Pe(a,g)|0;b=pJ(h|0,E()|0,b|0,d|0)|0;d=E()|0;Ae(a,c[e>>2]|0);e=e+8|0}while((e|0)!=(i|0));D(d|0);Ia=k;return b|0}return 0}function Qe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=a+4|0;h=c[m>>2]|0;d=c[a>>2]|0;g=h-d|0;g=5?g>>5:g;e=g+1|0;i=d;if(e>>>0>134217727)Lw(a);n=a+8|0;l=(c[n>>2]|0)-d|0;f=4?l>>4:l;f=(5?l>>5:l)>>>0<67108863?(f>>>0>>0?e:f):134217727;do if(f)if(f>>>0>134217727){a=I(8)|0;Nv(a,44817);c[a>>2]=41100;L(a|0,33144,231)}else{l=Gv(f<<5)|0;break}else l=0;while(0);e=l+(g<<5)|0;k=l+(f<<5)|0;o=c[b>>2]|0;c[e>>2]=-32001;c[l+(g<<5)+4>>2]=-32001;c[l+(g<<5)+8>>2]=0;c[l+(g<<5)+12>>2]=0;b=l+(g<<5)+20|0;c[b>>2]=0;j=l+(g<<5)+24|0;c[j>>2]=0;p=l+(g<<5)+28|0;c[p>>2]=0;f=Gv(4)|0;c[b>>2]=f;b=f+4|0;c[p>>2]=b;c[f>>2]=o;c[j>>2]=b;j=e+32|0;if((h|0)!=(i|0)){f=h+-32+(0-d)|0;f=g+-1-(5?f>>>5:f)|0;d=h;do{g=e;e=e+-32|0;h=d;d=d+-32|0;c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];c[e+8>>2]=c[d+8>>2];c[e+12>>2]=c[d+12>>2];c[e+16>>2]=c[d+16>>2];o=g+-12|0;p=h+-12|0;c[o>>2]=0;b=g+-8|0;c[b>>2]=0;g=g+-4|0;c[g>>2]=0;c[o>>2]=c[p>>2];o=h+-8|0;c[b>>2]=c[o>>2];h=h+-4|0;c[g>>2]=c[h>>2];c[h>>2]=0;c[o>>2]=0;c[p>>2]=0}while((d|0)!=(i|0));d=c[a>>2]|0;e=c[m>>2]|0;b=d;c[a>>2]=l+(f<<5);c[m>>2]=j;c[n>>2]=k;if((e|0)!=(b|0))do{f=c[e+-12>>2]|0;if(f|0){c[e+-8>>2]=f;Jv(f)}e=e+-32|0}while((e|0)!=(b|0))}else{c[a>>2]=e;c[m>>2]=j;c[n>>2]=k}if(!d)return;Jv(d);return}function Re(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+32|0;i=m+16|0;j=m+12|0;k=m+24|0;l=m;c[295292]=0;c[295293]=0;d=c[c[295299]>>2]|0;c[295294]=(d|0)==(b|0)?d:0;g[146821]=1.0;c[295287]=c[b+5516>>2];DJ(1098928+-160|0,0,280)|0;d=b+42684|0;c[1098928+-156>>2]=d;c[1098928+-116>>2]=d;c[1098928+-76>>2]=d;c[1098928+-36>>2]=d;c[274732]=1104176;c[295289]=-32001;c[295291]=-32001;c[295288]=-32001;c[295290]=32001;d=c[295294]|0;if(d|0){g[d+2139840>>3]=0.0;a[1183425]=0}c[l+8>>2]=0;h=l+11|0;a[h>>0]=7;a[l>>0]=a[45136]|0;a[l+1>>0]=a[45137]|0;a[l+2>>0]=a[45138]|0;a[l+3>>0]=a[45139]|0;a[l+4>>0]=a[45140]|0;a[l+5>>0]=a[45141]|0;a[l+6>>0]=a[45142]|0;a[l+7>>0]=0;c[j>>2]=l;rc(i,1181292,l,1183426,j,k);c[295295]=~~+sh((c[i>>2]|0)+28|0)>>>0;if((a[h>>0]|0)<0)Jv(c[l>>2]|0);d=Gv(16)|0;c[l>>2]=d;c[l+8>>2]=-2147483632;c[l+4>>2]=11;e=d;f=45144;h=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(h|0));a[d+11>>0]=0;c[j>>2]=l;rc(i,1181292,l,1183426,j,k);d=~~+sh((c[i>>2]|0)+28|0);k=1174576;c[k>>2]=d;c[k+4>>2]=0;if((a[l+11>>0]|0)<0){Jv(c[l>>2]|0);e=c[293644]|0}else e=d;d=c[295295]|0;if((e|0)>=20){l=d;k=b+5544|0;j=b+5548|0;j=c[j>>2]|0;k=c[k>>2]|0;k=j-k|0;k=5?k>>5:k;j=k>>>0>>0;l=j?k:l;c[295295]=l;ga(237,b|0,0);Ia=m;return}l=d>>>0>4?d:4;c[295295]=l;k=b+5544|0;j=b+5548|0;j=c[j>>2]|0;k=c[k>>2]|0;k=j-k|0;k=5?k>>5:k;j=k>>>0>>0;l=j?k:l;c[295295]=l;ga(237,b|0,0);Ia=m;return}function Se(a){a=a|0;Te(a);return}function Te(b){b=b|0;var d=0,e=0,f=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,H=0,I=0,J=0,K=0;K=Ia;Ia=Ia+96|0;J=K+32|0;D=K+80|0;F=K+76|0;I=K+16|0;H=K;m=K+64|0;l=K+52|0;c[I>>2]=0;c[I+4>>2]=0;c[I+8>>2]=0;C=I+11|0;a[C>>0]=8;d=I;c[d>>2]=1953394499;c[d+4>>2]=1953525093;a[I+8>>0]=0;c[D>>2]=I;rc(J,1181292,I,1183426,D,F);d=(~~+sh((c[J>>2]|0)+28|0)*208|0)/100|0;if((a[C>>0]|0)<0)Jv(c[I>>2]|0);if(!(c[293638]|0)){e=Gv(16)|0;c[I>>2]=e;c[I+8>>2]=-2147483632;c[I+4>>2]=15;i=e;j=45238;k=i+15|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[e+15>>0]=0;c[D>>2]=I;rc(J,1181292,I,1183426,D,F);e=+sh((c[J>>2]|0)+28|0)!=0.0;if((a[I+11>>0]|0)<0)Jv(c[I>>2]|0);if(e)f=7}else f=7;if((f|0)==7){e=Gv(32)|0;c[I>>2]=e;c[I+8>>2]=-2147483616;c[I+4>>2]=17;i=e;j=45076;k=i+17|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[e+17>>0]=0;c[D>>2]=I;rc(J,1181292,I,1183426,D,F);if(Hh((c[J>>2]|0)+28|0,45094)|0)d=0;else{c[H>>2]=0;c[H+4>>2]=0;c[H+8>>2]=0;e=Gv(32)|0;c[H>>2]=e;c[H+8>>2]=-2147483616;c[H+4>>2]=17;i=e;j=45076;k=i+17|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[e+17>>0]=0;c[D>>2]=H;rc(J,1181292,H,1183426,D,F);if(!(Hh((c[J>>2]|0)+28|0,45254)|0)){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;e=Gv(32)|0;c[m>>2]=e;c[m+8>>2]=-2147483616;c[m+4>>2]=17;i=e;j=45076;k=i+17|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[e+17>>0]=0;c[D>>2]=m;rc(J,1181292,m,1183426,D,F);C=Hh((c[J>>2]|0)+28|0,45098)|0;if(C&(c[295287]|0)==1)d=0-d|0;else{c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;e=Gv(32)|0;c[l>>2]=e;c[l+8>>2]=-2147483616;c[l+4>>2]=17;i=e;j=45076;k=i+17|0;do{a[i>>0]=a[j>>0]|0;i=i+1|0;j=j+1|0}while((i|0)<(k|0));a[e+17>>0]=0;c[D>>2]=l;rc(J,1181292,l,1183426,D,F);C=Hh((c[J>>2]|0)+28|0,45104)|0;d=C&(c[295287]|0)==0?0-d|0:d;if((a[l+11>>0]|0)<0)Jv(c[l>>2]|0)}if((a[m+11>>0]|0)<0)Jv(c[m>>2]|0)}if((a[H+11>>0]|0)<0)Jv(c[H>>2]|0)}if((a[I+11>>0]|0)<0)Jv(c[I>>2]|0)}B=(((d|0)/2|0)<<16)+d|0;y=b+2139836|0;c[y>>2]=(c[295287]|0)==0?B:0-B|0;B=b+5556|0;C=c[B>>2]|0;c[B>>2]=C+1;do if((C|0)<127?(a[1181208]&1)==0:0){C=c[293635]|0;f=c[295294]|0;if((C|0)!=0&(f|0)!=0?(c[B>>2]|0)>(C|0):0)break;e=c[b+80>>2]|0;if(e|0?(C=((e+-1|0)>>>0)%20|0,(((c[23408+(C<<2)>>2]|0)+(c[B>>2]|0)|0)/(c[23488+(C<<2)>>2]|0)|0)&1|0):0){ga(237,b|0,0);Ia=K;return}e=f+2139840|0;if(f|0){g[e>>3]=+g[e>>3]*.517;a[1183425]=0}C=b+5544|0;e=c[C>>2]|0;A=b+5548|0;f=c[A>>2]|0;if((e|0)!=(f|0))do{c[e+4>>2]=c[e>>2];e=e+32|0}while((e|0)!=(f|0));u=b+144|0;c[u>>2]=0;t=b+140|0;c[t>>2]=0;a:do if(c[295295]|0){x=b+148|0;w=b+176|0;q=D+11|0;s=D+4|0;p=D+11|0;r=D+4|0;e=0;do{if(a[1181208]&1)break a;k=c[t>>2]|0;b:do if((k|0)==(c[u>>2]|0)){e=k+1|0;c[u>>2]=e;f=c[C>>2]|0;j=(c[A>>2]|0)-f|0;j=5?j>>5:j;if(e>>>0>>0){i=c[f+(k<<5)+12>>2]|0;while(1){if((c[f+(e<<5)+12>>2]|0)!=(i|0)){e=k;break b}e=e+1|0;c[u>>2]=e;if(e>>>0>=j>>>0){e=k;break}}}else e=k}while(0);c[x>>2]=0;f=c[B>>2]|0;if((f|0)>=5){o=c[(c[C>>2]|0)+(k<<5)+4>>2]|0;c[295291]=20;n=o+-20|0;c[295289]=(n|0)>-32001?n:-32001;n=o+20|0;c[295290]=(n|0)<32001?n:32001;o=((o*88|0)/(((o|0)>-1?o:0-o|0)+200|0)|0)+d|0;o=(((o|0)/2|0)<<16)+o|0;c[y>>2]=(c[295287]|0)==0?o:0-o|0}i=0;c:while(1){n=f-i|0;c[295288]=Ue(w,1098928,c[295289]|0,c[295290]|0,(n|0)>1?n:1)|0;n=c[C>>2]|0;l=c[t>>2]|0;o=c[u>>2]|0;m=n+(o<<5)|0;n=n+(l<<5)|0;l=o-l<<5;o=5?l>>5:l;if((l|0)>0){j=(o|0)<67108863?o:67108863;while(1){f=Hv(j<<5,1183439)|0;if(f|0)break;j=1?j>>>1:j;if(!j){f=0;j=0;break}}l=f;k=f;f=j}else{l=0;k=0;f=0}c[F>>2]=n;c[I>>2]=m;c[D>>2]=c[F>>2];c[J>>2]=c[I>>2];Ve(D,J,H,o,k,f);if(k|0)Jv(l);if(a[1181208]&1)break;do if((c[295294]|0)!=0&(c[295295]|0)==1){o=c[295288]|0;if((o|0)>(c[295289]|0)&(o|0)<(c[295290]|0))break;o=1174512;if((c[o>>2]|0)==0&(c[o+4>>2]|0)==0){o=sk()|0;o=tJ(o|0,E()|0,1e3,0)|0;j=E()|0;f=1174624;f=qJ(o|0,j|0,c[f>>2]|0,c[f+4>>2]|0)|0;j=E()|0}else{k=c[295299]|0;l=c[295300]|0;if((k|0)==(l|0))break;f=0;j=0;do{o=G((c[k>>2]|0)+160|0,0)|0;f=pJ(o|0,E()|0,f|0,j|0)|0;j=E()|0;k=k+4|0}while((k|0)!=(l|0))}if(!((j|0)>0|(j|0)==0&f>>>0>2500))break;m=Ic(1182116,0)|0;We(D,w,c[B>>2]|0,c[295289]|0,c[295290]|0);o=a[q>>0]|0;n=o<<24>>24<0;o=Tb(m,n?c[D>>2]|0:D,n?c[s>>2]|0:o&255)|0;Ql(J,o+(c[(c[o>>2]|0)+-12>>2]|0)|0);n=qn(J,1182988)|0;n=Na[c[(c[n>>2]|0)+28>>2]&127](n,10)|0;rn(J);gm(o,n)|0;Wl(o)|0;Ic(o,1)|0;if((a[q>>0]|0)<0)Jv(c[D>>2]|0)}while(0);k=c[295288]|0;f=c[295289]|0;j=c[295290]|0;do if((k|0)>(f|0)){if((k|0)<(j|0))break c;f=c[295291]|0;o=f+k|0;c[295290]=(o|0)<32001?o:32001;i=i+((c[295294]|0)!=0&1)|0}else{c[295290]=(j+f|0)/2|0;f=c[295291]|0;o=k-f|0;c[295289]=(o|0)>-32001?o:-32001;if(!(c[295294]|0))break;a[1183425]=1;a[1181210]=0;f=c[295291]|0;i=0}while(0);c[295291]=f+5+((f|0)/4|0);f=c[B>>2]|0}m=c[C>>2]|0;l=m+(c[t>>2]<<5)+32|0;m=m+(e<<5)|0;o=l-m|0;n=5?o>>5:o;if((o|0)>0){i=(n|0)<67108863?n:67108863;while(1){f=Hv(i<<5,1183439)|0;if(f|0)break;i=1?i>>>1:i;if(!i){f=0;i=0;break}}k=f;j=f;f=i}else{k=0;j=0;f=0}c[F>>2]=m;c[I>>2]=l;c[D>>2]=c[F>>2];c[J>>2]=c[I>>2];Ve(D,J,H,n,j,f);if(j|0)Jv(k);d:do if(c[295294]|0){do if(!(a[1181208]&1)){if(((c[t>>2]|0)+1|0)==(c[295295]|0))break;o=1174512;if((c[o>>2]|0)==0&(c[o+4>>2]|0)==0){o=sk()|0;o=tJ(o|0,E()|0,1e3,0)|0;i=E()|0;f=1174624;f=qJ(o|0,i|0,c[f>>2]|0,c[f+4>>2]|0)|0;i=E()|0}else{j=c[295299]|0;k=c[295300]|0;if((j|0)==(k|0))break d;f=0;i=0;do{o=G((c[j>>2]|0)+160|0,0)|0;f=pJ(o|0,E()|0,f|0,i|0)|0;i=E()|0;j=j+4|0}while((j|0)!=(k|0))}if(!((i|0)>0|(i|0)==0&f>>>0>2500))break d}while(0);m=Ic(1182116,0)|0;We(D,w,c[B>>2]|0,c[295289]|0,c[295290]|0);o=a[p>>0]|0;n=o<<24>>24<0;o=Tb(m,n?c[D>>2]|0:D,n?c[r>>2]|0:o&255)|0;Ql(J,o+(c[(c[o>>2]|0)+-12>>2]|0)|0);n=qn(J,1182988)|0;n=Na[c[(c[n>>2]|0)+28>>2]&127](n,10)|0;rn(J);gm(o,n)|0;Wl(o)|0;Ic(o,1)|0;if((a[p>>0]|0)<0)Jv(c[D>>2]|0)}while(0);o=(c[t>>2]|0)+1|0;c[t>>2]=o}while(o>>>0<(c[295295]|0)>>>0)}while(0);if(!(a[1181208]&1))c[b+5560>>2]=c[B>>2];d=c[c[(c[C>>2]|0)+20>>2]>>2]|0;if((d|0)!=(c[295292]|0)){c[295292]=d;c[295293]=c[B>>2]}J=c[293636]|0;I=c[295288]|0;if((J|0)!=0&(I|0)>31743?(32e3-I|0)<=(J<<1|0):0)a[1181208]=1;if(!(c[295294]|0)){ga(237,b|0,0);Ia=K;return}J=c[293644]|0;if((J|0)<20?(J+1|0)==(c[B>>2]|0):0)Xe(c[295295]|0)|0;D=c[293636]|0;B=1174520;F=c[293635]|0;H=1174560;I=c[293637]|0;J=c[293638]|0;do if((((c[B>>2]|D|F|c[H>>2]|I|J|0)==0?(c[B+4>>2]|((D|0)<0)<<31>>31|((F|0)<0)<<31>>31|c[H+4>>2]|((I|0)<0)<<31>>31|((J|0)<0)<<31>>31|0)==0:0)?(a[1181208]&1)==0:0)?(a[1181210]&1)==0:0){d=c[295294]|0;j=(0-(a[1183425]|0)&119)+306+(z((c[295288]|0)-(c[d+2139856>>2]|0)|0,-6)|0)|0;j=(j|0)<832?j:832;g[146821]=1.0;F=c[295293]|0;I=c[b+5560>>2]|0;J=(F*3|0)<(I|0);h=J?1.25:1.0;H=(F<<2|0)<(I|0);h=H?h*1.25:h;I=(F*5|0)<(I|0);h=I?h*1.25:h;g[146821]=H|I?h:J?1.25:1.0;j=(j|0)>246?j:246;if(((c[A>>2]|0)-(c[C>>2]|0)|0)!=32){h=(+g[d+2139840>>3]+1.0)*(+v(+(+g[d+2139848>>3]),.528)/h);J=1174512;do if((c[J>>2]|0)==0&(c[J+4>>2]|0)==0){J=sk()|0;J=tJ(J|0,E()|0,1e3,0)|0;d=E()|0;e=1174624;e=qJ(J|0,d|0,c[e>>2]|0,c[e+4>>2]|0)|0;d=E()|0}else{f=c[295299]|0;i=c[295300]|0;if((f|0)==(i|0)){e=0;d=0;break}e=0;d=0;do{J=G((c[f>>2]|0)+160|0,0)|0;e=pJ(J|0,E()|0,e|0,d|0)|0;d=E()|0;f=f+4|0}while((f|0)!=(i|0))}while(0);J=1174632;if(!(h*(+((c[J>>2]|0)>>>0)+4294967296.0*+(c[J+4>>2]|0))*+(j|0)/581.0<+(e>>>0)+4294967296.0*+(d|0)))break}if(!(a[1181209]&1)){a[1181208]=1;break}else{a[1181210]=1;break}}while(0);ga(237,b|0,0);Ia=K;return}while(0);d=c[295294]|0;if(!d){Ia=K;return}g[d+2139848>>3]=+g[146821];if((c[293644]|0)<20){i=c[b+5544>>2]|0;d=c[b+5548>>2]|0;e=c[293645]|0;if(!e)e=Xe(c[295295]|0)|0;e:do if((i|0)==(d|0))d=i;else{f=i;do{if((c[c[f+20>>2]>>2]|0)==(e|0)){d=f;break e}f=f+32|0}while((f|0)!=(d|0))}while(0);c[J>>2]=c[i>>2];c[J+4>>2]=c[i+4>>2];c[J+8>>2]=c[i+8>>2];c[J+12>>2]=c[i+12>>2];c[J+16>>2]=c[i+16>>2];H=i+20|0;C=c[H>>2]|0;b=i+24|0;F=c[b>>2]|0;B=i+28|0;I=c[B>>2]|0;c[B>>2]=0;c[b>>2]=0;c[H>>2]=0;c[i>>2]=c[d>>2];c[i+4>>2]=c[d+4>>2];c[i+8>>2]=c[d+8>>2];c[i+12>>2]=c[d+12>>2];c[i+16>>2]=c[d+16>>2];D=d+20|0;c[H>>2]=c[D>>2];H=d+24|0;c[b>>2]=c[H>>2];b=d+28|0;c[B>>2]=c[b>>2];c[d>>2]=c[J>>2];c[d+4>>2]=c[J+4>>2];c[d+8>>2]=c[J+8>>2];c[d+12>>2]=c[J+12>>2];c[d+16>>2]=c[J+16>>2];c[D>>2]=C;c[H>>2]=F;c[b>>2]=I;d=c[295294]|0;if(!d){Ia=K;return}}ga(238,d|0,0);Ia=K;return}function Ue(d,f,h,i,j){d=d|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0;Pa=Ia;Ia=Ia+5536|0;Aa=Pa+400|0;Ha=Pa+272|0;Ga=Pa+16|0;Ba=Pa+920|0;r=Pa+5524|0;ya=Pa;za=Pa+1352|0;Ka=f+8|0;k=c[Ka>>2]|0;xa=(k|0)==0;Ja=d+5352|0;if(!(xa|((h|0)>-1?1:(c[(c[Ja>>2]|0)+28>>2]|0)<3))?Ie(d,k)|0:0){if((j|0)<4)h=0;else{h=G((c[d+5348>>2]|0)+160|0,0)|0;E()|0;h=(h<<1&2)+-1|0}if((h|0)>=(i|0)){j=h;Ia=Pa;return j|0}}if((j|0)<1){j=lf(d,f,h,i,0)|0;Ia=Pa;return j|0}l=d+5348|0;ta=c[l>>2]|0;Da=(c[Ja>>2]|0)+56|0;Da=(c[Da>>2]|0)!=0|(c[Da+4>>2]|0)!=0;wa=d+5340|0;sa=c[wa>>2]|0;ua=f+36|0;c[ua>>2]=0;if((ta|0)==(c[c[295299]>>2]|0))mf(ta);va=ta+148|0;k=c[Ka>>2]|0;if((c[va>>2]|0)<=(k|0))c[va>>2]=k+1;do if(!xa){if(Zb(d)|0){h=_b(d,c[Ka>>2]|0,0)|0;break}if(((a[1181208]&1)==0?!(He(d,c[Ka>>2]|0)|0):0)?(m=c[Ka>>2]|0,(m|0)<=127):0){k=m+-32e3|0;h=(k|0)<(h|0)?h:k;k=31999-m|0;k=(k|0)>(i|0)?i:k;if((h|0)<(k|0)){l=m;Na=k;Oa=23;break}else break}if(!(Da|(c[Ka>>2]|0)<128)){h=Xb(d)|0;break}if((j|0)<4)h=0;else{h=G((c[l>>2]|0)+160|0,0)|0;E()|0;h=(h<<1&2)+-1|0}}else{l=k;Na=i;Oa=23}while(0);a:do if((Oa|0)==23){qa=f+40|0;c[f+48>>2]=l+1;c[f+56>>2]=0;oa=f+12|0;c[oa>>2]=0;na=f+4|0;c[na>>2]=ta+42684;c[f+104>>2]=0;c[f+100>>2]=0;ra=f+-28|0;Ea=c[ra>>2]&63;c[f+112>>2]=0;pa=f+16|0;Fa=c[pa>>2]|0;n=(c[Ja>>2]|0)+48|0;Ma=Fa<<16;La=c[n>>2]^Ma;Ma=c[n+4>>2]^((Ma|0)<0)<<31>>31;n=Ug(1181240,La,Ma,r)|0;k=(a[r>>0]|0)==0;do if(!k?(o=b[n+4>>1]|0,q=o<<16>>16,p=c[Ka>>2]|0,o<<16>>16!=32002):0)if(o<<16>>16>31743){q=q-p|0;break}else{q=(o<<16>>16<-31743?p:0)+q|0;break}else q=32002;while(0);if(!xa)if(k)p=0;else p=e[n+2>>1]|0;else p=c[c[(c[ta+5544>>2]|0)+(c[ta+140>>2]<<5)+20>>2]>>2]|0;b:do if(!Da){if(!k){Ca=b[n+6>>1]|0;k=Ca<<16>>16;l=f+28|0;c[l>>2]=k;if(Ca<<16>>16==32002){Ca=Xb(d)|0;c[l>>2]=Ca;l=Ca}else l=k;if((q|0)==32002)k=l;else k=(((q|0)>(l|0)?2:1)&(a[n+8>>0]&3)|0)==0?l:q}else{if((c[ra>>2]|0)==65){l=(c[23568+(c[d+5360>>2]<<2)>>2]<<1)-(c[f+-12>>2]|0)|0;k=l}else{k=c[f+-8>>2]|0;if((k|0)<=0)if((k|0)<0)k=(2500-k|0)/512|0;else k=0;else k=(-2500-k|0)/512|0;l=Xb(d)|0;k=l+k|0}c[f+28>>2]=k;Rg(n,La,Ma,32002,0,-6,0,l)}i=d+5360|0;m=c[i>>2]|0;do if((m|0)==1)if(id(d)|0){o=c[f+-52>>2]|0;o=(o|0)==32002?1:(c[f+28>>2]|0)>=(o|0);Ca=l;k=q;break b}else{m=c[i>>2]|0;break}while(0);if((m|0)==6?(Ca=d+304|0,ma=c[Ca+4>>2]|0,ma>>>0>65535|(ma|0)==65535&(c[Ca>>2]|0)>>>0>4294967295):0){o=c[f+-52>>2]|0;o=(o|0)==32002?1:(c[f+28>>2]|0)>=(o|0);Ca=l;k=q;break}i=xa^1;if((j|0)<2&i?(k|0)<=(h-(c[23600+(m<<2)>>2]|0)|0):0){h=lf(d,f,h,Na,0)|0;break a}o=c[f+-52>>2]|0;o=(o|0)==32002?1:(c[f+28>>2]|0)>=(o|0);if((j|0)<7&i?((k|0)<1e4?(k-(z((c[23632+(m<<2)>>2]|0)-(o?50:0)|0,j)|0)|0)>=(Na|0):0):0){h=k;break a}if(!((p|0)!=0|(((m|0)==3?6:8)|0)>(j|0))){Ue(d,f,h,Na,j+-7|0)|0;n=Ug(1181240,La,Ma,r)|0;if(!(a[r>>0]|0)){Ca=l;p=0;k=32002}else{k=b[n+4>>1]|0;i=k<<16>>16;m=c[Ka>>2]|0;do if(k<<16>>16!=32002)if(k<<16>>16>31743){k=i-m|0;break}else{k=(k<<16>>16<-31743?m:0)+i|0;break}else k=32002;while(0);Ca=l;p=e[n+2>>1]|0}}else{Ca=l;k=q}}else{c[f+28>>2]=32002;o=0;Ca=32002;k=q}while(0);c[ya>>2]=c[f+-36>>2];ja=ya+4|0;ma=f+-76|0;c[ja>>2]=c[ma>>2];c[ya+8>>2]=0;ka=ya+12|0;c[ka>>2]=c[f+-156>>2];la=d+(Ea<<2)|0;Pd(za,d,p,j,ta+9660|0,ta+26300|0,ya,c[ta+5564+(c[la>>2]<<8)+(Ea<<2)>>2]|0,f+20|0);c:do if(!p)m=0;else{if((c[d+5360>>2]|0)==6){ia=(p&61440|0)==36864?64:(6?p>>>6:p)&63;l=p&63;if((c[d+(ia<<2)>>2]&7|0)==6?(3?l>>>3:l)>>>0>(3?ia>>>3:ia)>>>0:0){m=1;break}m=(c[d+(l<<2)>>2]|0)!=0;break}m=p&49152;l=m&65535;d:do if(l<<16>>16<0){switch(l<<16>>16){case -32768:break;default:break d}l=p&12288;if((l|0)==4096){m=0;break c}l=l&16383;if(l<<16>>16<8192)switch(l<<16>>16){case 4096:{m=1;break c}default:break d}else switch(l<<16>>16){case 8192:{m=1;break c}default:break d}}else{switch(l<<16>>16){case 0:break;default:break d}m=(c[d+((p&63)<<2)>>2]|0)!=0;break c}while(0);m=(m|0)!=49152}while(0);if(!(a[r>>0]|0))l=0;else l=(a[n+8>>0]&3)==3;i=Sd(za,0)|0;e:do if(i){ea=ta+5544|0;ga=ta+140|0;ha=ta+144|0;ia=d+5360|0;fa=(j|0)<16;_=o&1;V=(j|0)<8;ba=j+-1|0;Z=n+8|0;W=(j|0)>2;X=n+9|0;da=j+-3|0;U=(j|0)<63?j:63;aa=0-Na|0;$=f+-4|0;T=k-(j<<1)|0;T=(T|0)>-32e3?T:-32e3;ca=T+-1|0;Y=1?j>>>1:j;P=(l<<31>>31)+(m&1)|0;L=ta+5548|0;O=z(j,-208)|0;M=d+256|0;Q=f+32|0;R=f+-8|0;S=f+28|0;N=ta+2139840|0;K=xa|(Fa|0)!=0|(k|0)==32002;k=0;o=-32001;I=i;i=0;D=0;m=0;J=0;B=-32001;f:while(1){g:do if((I|0)==(Fa|0)){l=D;s=J;r=B}else{if(xa){l=c[ea>>2]|0;q=c[ga>>2]|0;H=c[ha>>2]|0;r=l+(H<<5)|0;if((q|0)==(H|0)){l=D;s=J;r=B;break}l=l+(q<<5)|0;q=0;do{q=q+((c[c[l+20>>2]>>2]|0)==(I|0)&1)|0;l=l+32|0}while((l|0)!=(r|0));if(!q){l=D;s=J;r=B;break}}l=D+1|0;c[ua>>2]=l;c[qa>>2]=0;s=c[ia>>2]|0;h:do if((s|0)==6){H=(I&61440|0)==36864?64:(6?I>>>6:I)&63;q=I&63;if((c[d+(H<<2)>>2]&7|0)==6?(3?q>>>3:q)>>>0>(3?H>>>3:H)>>>0:0){H=1;break}H=(c[d+(q<<2)>>2]|0)!=0}else{r=I&49152;q=r&65535;i:do if(q<<16>>16<0){switch(q<<16>>16){case -32768:break;default:break i}q=I&12288;if((q|0)==4096){H=0;break h}q=q&16383;if(q<<16>>16<8192)switch(q<<16>>16){case 4096:{H=1;break h}default:break i}else switch(q<<16>>16){case 8192:{H=1;break h}default:break i}}else{switch(q<<16>>16){case 0:break;default:break i}H=(c[d+((I&63)<<2)>>2]|0)!=0;break h}while(0);H=(r|0)!=49152}while(0);y=(I&61440|0)==36864;w=6?I>>>6:I;if(y)A=w&15;else A=c[d+((w&63)<<2)>>2]|0;q=c[wa>>2]|0;t=I&49152;x=(t|0)==0;do if(x){r=c[Ja>>2]|0;F=r+336+((q^1)<<3)|0;C=d+320+(q<<3)|0;if((s|0)==2|(c[C>>2]&c[F>>2]|0?1:(c[C+4>>2]&c[F+4>>2]|0)!=0)){Oa=105;break}if(y)q=w&15;else q=c[d+((w&63)<<2)>>2]|0;r=r+368+((q&7)<<3)|0;F=161184+((I&63)<<3)|0;q=c[F>>2]&c[r>>2];r=c[F+4>>2]&c[r+4>>2]}else Oa=105;while(0);if((Oa|0)==105){Oa=0;q=(we(d,I)|0)&1;r=0}u=(q|0)!=0|(r|0)!=0;if(fa)v=(l|0)>=(c[1104704+(c[ia>>2]<<7)+(_<<6)+(j<<2)>>2]|0);else v=0;do if((I|0)!=(p|0)|V|K)Oa=113;else{if(!(a[Z>>0]&2)){Oa=113;break}if((da|0)>(a[X>>0]|0)){Oa=113;break}if(!(ve(d,p)|0)){Oa=113;break}c[pa>>2]=p;r=nf(d,f,ca,T,Y,0)|0;c[pa>>2]=0;t=(r|0)<(T|0)}while(0);do if((Oa|0)==113){Oa=0;if(u?Ge(d,I,0)|0:0){t=1;r=B;break}if(!(v|(c[ia>>2]|0)!=1)?(of(d,I)|0)==1:0){t=1;r=B;break}t=(t|0)==49152;r=B}while(0);B=ba+(t&1)|0;do if(xa){Ee(d,I)|0;E()|0}else{q=c[ia>>2]|0;if((q|0)==4){if((o|0)>-31744)Oa=122}else if((o|0)>-31744?(c[(c[Ja>>2]|0)+16+(sa<<2)>>2]|0)!=0:0)Oa=122;j:do if((Oa|0)==122){Oa=0;k:do if(!(H|u)){if((q|0)==1){s=M;s=ue(d,I&63,c[s>>2]|0,c[s+4>>2]|0)|0;F=E()|0;C=d+320+((c[wa>>2]^1)<<3)|0;if(!((c[C>>2]&s|0)==0?(c[C+4>>2]&F|0)==0:0))break;q=c[ia>>2]|0}do if((q|0)!=4){if(y)s=w&15;else s=c[d+((w&63)<<2)>>2]|0;if((s&7|0)!=1)break;if(((c[wa>>2]|0)*7^(y?8:(9?I>>>9:I)&7)|0)<=3)break;F=c[Ja>>2]|0;if(((c[F+20>>2]|0)+(c[F+16>>2]|0)|0)<=4999)break k}while(0);if(v){s=1;break g}s=B-(c[1105728+(_<<14)+(U<<8)+(((l|0)<63?l:63)<<2)>>2]|0)|0;s=(s|0)>0?s:0;do if((s|0)<(((c[R>>2]|0)>0?4:3)|0)){t=I&63;if((b[(c[ya>>2]|0)+(A<<7)+(t<<1)>>1]|0)>=0)break;if((b[(c[ja>>2]|0)+(A<<7)+(t<<1)>>1]|0)<0){s=J;break g}}while(0);if(!(Da|((q|0)==6|(s|0)>6))?((c[23664+(q<<3)>>2]|0)+(c[S>>2]|0)+(z(c[23664+(q<<3)+4>>2]|0,s)|0)|0)<=(h|0):0){s=J;break g}if((q|0)==1)break j;if(Ge(d,I,z(z(s,-29)|0,s)|0)|0)break j;else{s=J;break g}}while(0);if(t)break;if(!(Ge(d,I,O)|0)){s=J;break g}}while(0);Ee(d,I)|0;E()|0;if(ve(d,I)|0)break;c[ua>>2]=D;l=D;s=J;break g}while(0);c[oa>>2]=I;s=I&63;c[na>>2]=ta+42684+(A<<17)+(s<<11);ye(d,I,Ba,u);C=(D|0)>0;F=H^1;do if(W&C&(v|F)){q=c[1105728+(_<<14)+(U<<8)+(((l|0)<63?l:63)<<2)>>2]|0;do if((c[ia>>2]|0)==1){if(!(id(d)|0)){Oa=150;break}q=q-((q|0)!=0&1)|0}else Oa=150;while(0);if((Oa|0)==150){Oa=0;q=q+(((c[$>>2]|0)>15)<<31>>31)|0}if(!H){q=P+q|0;if(x){D=Ge(d,(y?64:w&63)+(s<<6)|0,0)|0;q=D?q:q+-2|0}s=(b[(c[ya>>2]|0)+(A<<7)+(s<<1)>>1]|0)+(b[ta+9660+(sa*8320|0)+((y?s|4096:I&4095)<<1)>>1]|0)+(b[(c[ja>>2]|0)+(A<<7)+(s<<1)>>1]|0)+(b[(c[ka>>2]|0)+(A<<7)+(s<<1)>>1]|0)|0;t=s+-4e3|0;c[Q>>2]=t;r=c[R>>2]|0;do if((s|0)<=3999){if((r|0)>-1)Oa=158}else{if((r|0)>=0){Oa=158;break}q=q+-1|0}while(0);if((Oa|0)==158)q=q+((s|0)<4e3&1)|0;q=q-((t|0)/2e4|0)|0}Oa=B-((q|0)>0?q:0)|0;Oa=(Oa|0)>1?Oa:1;q=~h;s=0-h|0;r=0-(nf(d,qa,q,s,Oa,1)|0)|0;if((h|0)<(r|0)&(Oa|0)!=(B|0))Oa=163;else Oa=165}else if(!C)if(!D){q=1;Oa=166;break}else{Oa=165;break}else{s=0-h|0;q=~h;Oa=163;break}while(0);if((Oa|0)==163){r=0-(nf(d,qa,q,s,B,1)|0)|0;Oa=165}if((Oa|0)==165){Oa=0;if((r|0)>(h|0)&(xa|(r|0)<(Na|0))){q=0;Oa=166}else q=0}if((Oa|0)==166){Oa=0;c[qa>>2]=Aa;c[Aa>>2]=0;r=0-(Ue(d,qa,aa,0-h|0,B)|0)|0}Ae(d,I);if(a[1181208]&1){h=0;break e}do if(xa){s=c[ea>>2]|0;t=c[L>>2]|0;l:do if((s|0)!=(t|0))while(1){if((c[c[s+20>>2]>>2]|0)==(I|0))break l;s=s+32|0;if((s|0)==(t|0)){s=t;break}}while(0);if(!(q|(r|0)>(h|0))){c[s>>2]=-32001;break}c[s>>2]=r;c[s+8>>2]=c[va>>2];w=s+20|0;v=s+24|0;q=c[w>>2]|0;D=(c[v>>2]|0)-q|0;t=2?D>>2:D;do if(!D)pf(w,1-t|0);else{if(t>>>0<=1)break;c[v>>2]=q+4}while(0);t=c[qa>>2]|0;q=c[t>>2]|0;if(q|0){u=s+28|0;do{s=c[v>>2]|0;if((s|0)==(c[u>>2]|0))af(w,t);else{c[s>>2]=q;c[v>>2]=s+4}t=t+4|0;q=c[t>>2]|0}while((q|0)!=0)}if(!C)break;if((ta|0)!=(c[c[295299]>>2]|0))break;g[N>>3]=+g[N>>3]+1.0}while(0);do if((r|0)>(o|0)){if((r|0)<=(h|0)){o=r;break}if(!xa){k=c[f>>2]|0;q=c[qa>>2]|0;c[k>>2]=I;k=k+4|0;do if(q){o=c[q>>2]|0;if(!o)break;do{q=q+4|0;c[k>>2]=o;k=k+4|0;o=c[q>>2]|0}while((o|0)!=0)}while(0);c[k>>2]=0}if((r|0)<(Na|0)){h=r;k=I;o=r}else{Oa=197;break f}}while(0);if((I|0)==(k|0)){k=I;s=J;break}if((i|0)<32&H){c[Ha+(i<<2)>>2]=I;i=i+1|0;s=J;break}if(!((m|0)<64&F)){s=J;break}c[Ga+(m<<2)>>2]=I;m=m+1|0;s=J}while(0);q=Sd(za,s)|0;if(!q)break;else{I=q;D=l;J=s;B=r}}if((Oa|0)==197){c[Q>>2]=0;k=I;o=r}if(l){do if(!k)if((c[(c[Ja>>2]|0)+64>>2]|0)==0?(d=c[ra>>2]|0,(((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)):0){h=c[la>>2]|0;l=(z((j*29|0)+138|0,j)|0)+-134|0;l=(j|0)>17?0:l;k=(l|0)>-1?l:0-l|0;d=c[f+-68>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[ma>>2]|0)+(h<<7)+(Ea<<1)|0;Ja=b[d>>1]|0;b[d>>1]=l+Ja+((z(k,Ja)|0)/-29952|0)}d=c[f+-108>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[f+-116>>2]|0)+(h<<7)+(Ea<<1)|0;Ja=b[d>>1]|0;b[d>>1]=l+Ja+((z(k,Ja)|0)/-29952|0)}d=c[f+-188>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)==(d&63|0)){k=0;break}f=(c[f+-196>>2]|0)+(h<<7)+(Ea<<1)|0;d=b[f>>1]|0;b[f>>1]=l+d+((z(k,d)|0)/-29952|0);k=0}else k=0;else{m:do if((c[d+5360>>2]|0)==6){Da=(k&61440|0)==36864?64:(6?k>>>6:k)&63;h=k&63;if((c[d+(Da<<2)>>2]&7|0)==6?(3?h>>>3:h)>>>0>(3?Da>>>3:Da)>>>0:0)break;if(!(c[d+(h<<2)>>2]|0))Oa=219}else{l=k&49152;h=l&65535;n:do if(h<<16>>16<0){switch(h<<16>>16){case -32768:break;default:break n}h=k&12288;if((h|0)==4096){Oa=219;break m}h=h&16383;if(h<<16>>16<8192)switch(h<<16>>16){case 4096:break m;default:break n}else switch(h<<16>>16){case 8192:break m;default:break n}}else{switch(h<<16>>16){case 0:break;default:break n}if(!(c[d+((k&63)<<2)>>2]|0)){Oa=219;break m}else break m}while(0);if((l|0)==49152)Oa=219}while(0);if((Oa|0)==219){Ba=((o|0)>(Na+136|0)&1)+j|0;Da=(z((Ba*29|0)+138|0,Ba)|0)+-134|0;qf(d,f,k,Ga,m,(Ba|0)>17?0:Da)}m=j+1|0;m=(z((m*29|0)+138|0,m)|0)+-134|0;m=(j|0)>16?0:m;h=0-m|0;rf(d,k,Ha,i,m);if((c[f+-4>>2]|0)==1?(c[(c[Ja>>2]|0)+64>>2]|0)==0:0){l=c[la>>2]|0;h=(m|0)<1?h:m;d=c[f+-68>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[ma>>2]|0)+(l<<7)+(Ea<<1)|0;Ja=b[d>>1]|0;b[d>>1]=Ja-m+((z(h,Ja)|0)/-29952|0)}d=c[f+-108>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)!=(d&63|0)){d=(c[f+-116>>2]|0)+(l<<7)+(Ea<<1)|0;Ja=b[d>>1]|0;b[d>>1]=Ja-m+((z(h,Ja)|0)/-29952|0)}d=c[f+-188>>2]|0;if((((d&61440|0)==36864?64:(6?d>>>6:d)&63)|0)==(d&63|0))break;f=(c[f+-196>>2]|0)+(l<<7)+(Ea<<1)|0;d=b[f>>1]|0;b[f>>1]=d-m+((z(h,d)|0)/-29952|0)}}while(0);h=(o|0)<32001?o:32001;if(!Fa){l=c[Ka>>2]|0;Oa=239}}else Oa=204}else{k=0;Oa=204}while(0);do if((Oa|0)==204){if(Fa|0){h=(h|0)<32001?h:32001;break}l=c[Ka>>2]|0;if(!Da)if((c[d+5360>>2]|0)==1)h=32e3-l|0;else{i=0;h=0;Oa=242;break}else h=l+-32e3|0;if((h|0)>32001){h=32001;Oa=240}else Oa=239}while(0);if((Oa|0)==239)if((h|0)>31743)Oa=240;else{i=h;h=(h|0)<-31743?l:0;Oa=242}if((Oa|0)==240){m=h;h=h+l|0;Oa=243}else if((Oa|0)==242){m=i;h=i-h|0;Oa=243}if((Oa|0)==243){Rg(n,La,Ma,h,(m|0)<(Na|0)?((k|0)==0?1:3):2,j,k,Ca);h=m}}while(0);j=h;Ia=Pa;return j|0}function Ve(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=Ia;Ia=Ia+96|0;y=z;w=z+80|0;u=z+76|0;h=z+72|0;i=z+68|0;k=z+64|0;l=z+60|0;m=z+56|0;n=z+52|0;o=z+48|0;p=z+44|0;q=z+40|0;r=z+36|0;s=z+32|0;t=z+28|0;v=z+24|0;x=z+20|0;switch(e|0){case 2:{j=c[b>>2]|0;g=j+-32|0;c[b>>2]=g;h=c[a>>2]|0;f=c[h>>2]|0;i=c[g>>2]|0;if((f|0)==(i|0)){if((c[h+4>>2]|0)>=(c[j+-28>>2]|0)){Ia=z;return}}else if((f|0)>=(i|0)){Ia=z;return};c[y>>2]=c[h>>2];c[y+4>>2]=c[h+4>>2];c[y+8>>2]=c[h+8>>2];c[y+12>>2]=c[h+12>>2];c[y+16>>2]=c[h+16>>2];x=h+20|0;u=c[x>>2]|0;e=h+24|0;w=c[e>>2]|0;t=h+28|0;b=c[t>>2]|0;c[t>>2]=0;c[e>>2]=0;c[x>>2]=0;c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];c[h+8>>2]=c[g+8>>2];c[h+12>>2]=c[g+12>>2];c[h+16>>2]=c[g+16>>2];v=j+-12|0;c[x>>2]=c[v>>2];x=j+-8|0;c[e>>2]=c[x>>2];e=j+-4|0;c[t>>2]=c[e>>2];c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[g+12>>2]=c[y+12>>2];c[g+16>>2]=c[y+16>>2];c[v>>2]=u;c[x>>2]=w;c[e>>2]=b;Ia=z;return}case 1:case 0:{Ia=z;return}default:{if((e|0)<1){c[h>>2]=c[a>>2];c[i>>2]=c[b>>2];c[w>>2]=c[h>>2];c[y>>2]=c[i>>2];bf(w,y,d);Ia=z;return}j=1?e>>>1:e;h=c[a>>2]|0;i=h+(j<<5)|0;if((e|0)>(g|0)){c[p>>2]=h;c[q>>2]=i;c[w>>2]=c[p>>2];c[y>>2]=c[q>>2];Ve(w,y,d,j,f,g);c[r>>2]=i;b=c[b>>2]|0;c[s>>2]=b;e=e-j|0;c[w>>2]=c[r>>2];c[y>>2]=c[s>>2];Ve(w,y,d,e,f,g);c[t>>2]=h;c[v>>2]=i;c[x>>2]=b;c[u>>2]=c[t>>2];c[w>>2]=c[v>>2];c[y>>2]=c[x>>2];ef(u,w,y,d,j,e,f,g);Ia=z;return}c[k>>2]=h;c[l>>2]=i;c[w>>2]=c[k>>2];c[y>>2]=c[l>>2];cf(w,y,d,j,f);c[m>>2]=i;c[n>>2]=c[b>>2];b=f+(j<<5)|0;c[w>>2]=c[m>>2];c[y>>2]=c[n>>2];cf(w,y,d,e-j|0,b);c[o>>2]=h;c[y>>2]=c[o>>2];df(f,b,b,f+(e<<5)|0,y,d);if(!f){Ia=z;return}i=0;while(1){h=c[f+20>>2]|0;if(h|0){c[f+24>>2]=h;Jv(h)}i=i+1|0;if((i|0)==(e|0))break;else f=f+32|0}Ia=z;return}}}function We(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;O=Ia;Ia=Ia+192|0;M=O+164|0;l=O+160|0;m=O+176|0;N=O+16|0;n=O;J=N+64|0;L=N+8|0;c[L>>2]=33264;K=N+12|0;c[N>>2]=29052;c[J>>2]=29072;c[N+4>>2]=0;Ol(N+64|0,K);c[N+136>>2]=0;c[N+140>>2]=-1;c[N>>2]=33244;c[J>>2]=33284;c[L>>2]=33264;Tl(K);c[K>>2]=33340;L=N+44|0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[N+60>>2]=24;I=1174512;if(!((c[I>>2]|0)==0&(c[I+4>>2]|0)==0)){h=c[295299]|0;k=c[295300]|0;if((h|0)==(k|0)){i=0;j=0}else{i=0;j=0;do{I=G((c[h>>2]|0)+160|0,0)|0;i=pJ(I|0,E()|0,i|0,j|0)|0;j=E()|0;h=h+4|0}while((h|0)!=(k|0))}}else{I=sk()|0;I=tJ(I|0,E()|0,1e3,0)|0;j=E()|0;i=1174624;i=qJ(I|0,j|0,c[i>>2]|0,c[i+4>>2]|0)|0;j=E()|0}D=pJ(i|0,j|0,1,0)|0;F=E()|0;p=c[d+5348>>2]|0;I=p+5544|0;H=c[p+140>>2]|0;c[n+8>>2]=0;B=n+11|0;a[B>>0]=7;a[n>>0]=a[45136]|0;a[n+1>>0]=a[45137]|0;a[n+2>>0]=a[45138]|0;a[n+3>>0]=a[45139]|0;a[n+4>>0]=a[45140]|0;a[n+5>>0]=a[45141]|0;a[n+6>>0]=a[45142]|0;a[n+7>>0]=0;c[l>>2]=n;rc(M,1181292,n,1183426,l,m);C=~~+sh((c[M>>2]|0)+28|0)>>>0;p=p+5548|0;A=(c[p>>2]|0)-(c[I>>2]|0)|0;A=5?A>>5:A;C=A>>>0>>0?A:C;if((a[B>>0]|0)<0)Jv(c[n>>2]|0);h=c[295299]|0;k=c[295300]|0;if((h|0)!=(k|0)){n=0;o=0;do{B=G((c[h>>2]|0)+160|0,0)|0;n=pJ(B|0,E()|0,n|0,o|0)|0;o=E()|0;h=h+4|0}while((h|0)!=(k|0));h=c[295299]|0;m=c[295300]|0;if((h|0)==(m|0)){m=0;l=0}else{k=0;l=0;do{B=G((c[h>>2]|0)+168|0,0)|0;k=pJ(B|0,E()|0,k|0,l|0)|0;l=E()|0;h=h+4|0}while((h|0)!=(m|0));m=k}}else{m=0;l=0;n=0;o=0}if(!0){h=0;k=0}else{h=(c[p>>2]|0)-(c[I>>2]|0)|0;h=5?h>>5:h;k=0}s=pJ(h|0,k|0,m|0,l|0)|0;t=E()|0;if(C|0){B=(e|0)!=1;x=N+24|0;w=N+28|0;A=N+8|0;y=M+11|0;z=M+4|0;u=vJ(n|0,o|0,1e3,0)|0;v=E()|0;r=(j|0)>0|(j|0)==0&i>>>0>999;q=d+5356|0;p=M+11|0;d=M+4|0;m=0;while(1){if(m>>>0>H>>>0)k=0;else k=(c[(c[I>>2]|0)+(m<<5)>>2]|0)!=-32001;if(B|k){h=c[I>>2]|0;i=k?c[h+(m<<5)>>2]|0:c[h+(m<<5)+4>>2]|0;if(0==0?1:(((i|0)>-1?i:0-i|0)|0)>31871)l=1;else{l=0;i=c[h+(m<<5)+16>>2]|0}h=c[x>>2]|0;j=c[w>>2]|0;if(h>>>0>>0)h=j-h|0;else h=La[c[(c[K>>2]|0)+28>>2]&127](K)|0;if(h|0)Tb(A,44551,1)|0;P=Tb(bm(Tb(Tb(A,42739,4)|0,42744,7)|0,((k^1)<<31>>31)+e|0)|0,42752,10)|0;h=m+1|0;P=Tb(cm(Tb(bm(P,c[(c[I>>2]|0)+(m<<5)+8>>2]|0)|0,42763,9)|0,h)|0,42773,7)|0;nh(M,i);k=a[y>>0]|0;j=k<<24>>24<0;Tb(P,j?c[M>>2]|0:M,j?c[z>>2]|0:k&255)|0;if((a[y>>0]|0)<0)Jv(c[M>>2]|0);if((m|0)==(H|0)&l){P=(i|0)<(g|0)?((i|0)>(f|0)?1183440:42781):42793;Tb(A,P,li(P)|0)|0}l=Tb(em(Tb(A,42805,7)|0,n,o)|0,42813,5)|0;P=wJ(u|0,v|0,D|0,F|0)|0;em(l,P,E()|0)|0;if(r){P=Tb(A,42819,10)|0;bm(P,Vg(1181240)|0)|0}Tb(dm(Tb(em(Tb(A,42830,8)|0,s,t)|0,42839,6)|0,D,F)|0,42846,3)|0;j=c[I>>2]|0;i=c[j+(m<<5)+20>>2]|0;j=c[j+(m<<5)+24>>2]|0;if((i|0)!=(j|0))do{P=c[i>>2]|0;l=Tb(A,49392,1)|0;ih(M,P,(a[q>>0]|0)!=0);P=a[p>>0]|0;m=P<<24>>24<0;Tb(l,m?c[M>>2]|0:M,m?c[d>>2]|0:P&255)|0;if((a[p>>0]|0)<0)Jv(c[M>>2]|0);i=i+4|0}while((i|0)!=(j|0))}else h=m+1|0;if(h>>>0>>0)m=h;else break}}bc(b,K);c[N>>2]=33244;c[J>>2]=33284;c[N+8>>2]=33264;c[K>>2]=33340;if((a[L+11>>0]|0)>=0){Dk(K);Ll(N,33296);yk(J);Ia=O;return}Jv(c[L>>2]|0);Dk(K);Ll(N,33296);yk(J);Ia=O;return}function Xe(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=c[c[295299]>>2]|0;if((a[1174584]|0)==0?hJ(1174584)|0:0){k=sk()|0;k=tJ(k|0,E()|0,1e3,0)|0;l=E()|0;m=1174592;c[m>>2]=k;c[m+4>>2]=l;jJ(1174584)}k=c[d+5544>>2]|0;l=c[k>>2]|0;j=l-(c[k+(b+-1<<5)>>2]|0)|0;j=(j|0)<136?j:136;m=125-(((c[293644]|0)*9|0)/4|0)|0;if(!b){b=c[293645]|0;return b|0}e=1174592;i=l;g=c[e>>2]|0;e=c[e+4>>2]|0;f=0;h=-32001;while(1){d=z(l-i|0,m)|0;n=xJ(g|0,e|0,12)|0;g=n^g;e=(E()|0)^e;n=yJ(g|0,e|0,25)|0;g=n^g;e=(E()|0)^e;n=xJ(g|0,e|0,27)|0;g=n^g;e=(E()|0)^e;d=(z(((z(g,1332534557)|0)>>>0)%(m>>>0)|0,j)|0)+d|0;d=(7?d>>>7:d)+i|0;if((d|0)<(h|0))d=h;else c[293645]=c[c[k+(f<<5)+20>>2]>>2];f=f+1|0;if((f|0)==(b|0))break;i=c[k+(f<<5)>>2]|0;h=d}n=1174592;c[n>>2]=g;c[n+4>>2]=e;n=c[293645]|0;return n|0}function Ye(a){a=a|0;Ze(a);return} +function ae(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0;e=c[a+5352>>2]|0;b=c[e>>2]|0;e=c[e+4>>2]|0;ea=b&16383;da=c[(c[a+5348>>2]|0)+92>>2]|0;fa=da+(ea<<7)|0;ca=fa;if((c[ca>>2]|0)==(b|0)?(c[ca+4>>2]|0)==(e|0):0)return fa|0;f=fa;c[f>>2]=b;c[f+4>>2]=e;f=a+656|0;Y=a+320|0;P=Y;X=a+264|0;R=X;Q=c[R>>2]|0;R=c[R+4>>2]|0;O=Q&c[P>>2];P=R&c[P+4>>2];W=a+328|0;S=W;Q=c[S>>2]&Q;R=c[S+4>>2]&R;S=da+(ea<<7)+80|0;c[S>>2]=0;T=da+(ea<<7)+48|0;ba=T;c[ba>>2]=0;c[ba+4>>2]=0;ba=da+(ea<<7)+16|0;ca=ba;c[ca>>2]=0;c[ca+4>>2]=0;ca=da+(ea<<7)+96|0;c[ca>>2]=255;c[da+(ea<<7)+64>>2]=64;Z=yJ(O|0,P|0,7)|0;e=(E()|0)&2139062143;_=yJ(O|0,P|0,9)|0;e=e|(E()|0)&-16843010;b=da+(ea<<7)+32|0;c[b>>2]=Z&2139062016|_&-16843264;c[b+4>>2]=e;b=O&-1437226411;e=P&-1437226411;_=xJ(b|0,e|0,16)|0;E()|0;b=xJ(b|0,e|0,48)|0;E()|0;b=(d[79264+(_&65535)>>0]|0)+(d[79264+(O&43605)>>0]|0)+(d[79264+(e&65535)>>0]|0)+(d[79264+b>>0]|0)|0;e=da+(ea<<7)+104|0;c[da+(ea<<7)+108>>2]=b;_=c[a+5360>>2]|0;Z=(_|0)==3;if(!Z){c[e>>2]=(c[a+340>>2]|0)-b;if((_|0)==4)if(!(c[a+360>>2]|0)){r=161696;B=c[r>>2]&O;r=c[r+4>>2]&P;q=xJ(B|0,r|0,16)|0;E()|0;A=xJ(B|0,r|0,48)|0;E()|0;A=(d[79264+(q&65535)>>0]|0)+(d[79264+(B&65535)>>0]|0)+(d[79264+(r&65535)>>0]|0)+(d[79264+A>>0]|0)|0;r=161704;B=c[r>>2]&O;r=c[r+4>>2]&P;q=xJ(B|0,r|0,16)|0;E()|0;D=xJ(B|0,r|0,48)|0;E()|0;D=(d[79264+(q&65535)>>0]|0)+(d[79264+(B&65535)>>0]|0)+(d[79264+(r&65535)>>0]|0)+(d[79264+D>>0]|0)|0;r=z(A,2555953)|0;B=z(A,3211264)|0;r=r+32768|0;q=161712;y=c[q>>2]&O;q=c[q+4>>2]&P;s=xJ(y|0,q|0,16)|0;E()|0;G=xJ(y|0,q|0,48)|0;E()|0;G=(d[79264+(s&65535)>>0]|0)+(d[79264+(y&65535)>>0]|0)+(d[79264+(q&65535)>>0]|0)+(d[79264+G>>0]|0)|0;q=z(D,2555953)|0;A=(z(G,A)|0)+1|0;y=z(D,3211264)|0;q=q+32768|0;s=161720;C=c[s>>2]&O;s=c[s+4>>2]&P;t=xJ(C|0,s|0,16)|0;E()|0;I=xJ(C|0,s|0,48)|0;E()|0;I=(d[79264+(t&65535)>>0]|0)+(d[79264+(C&65535)>>0]|0)+(d[79264+(s&65535)>>0]|0)+(d[79264+I>>0]|0)|0;s=z(G,2555953)|0;D=(z(I,D)|0)+1|0;C=z(G,3211264)|0;s=s+32768|0;t=161728;F=c[t>>2]&O;t=c[t+4>>2]&P;u=xJ(F|0,t|0,16)|0;E()|0;K=xJ(F|0,t|0,48)|0;E()|0;K=(d[79264+(u&65535)>>0]|0)+(d[79264+(F&65535)>>0]|0)+(d[79264+(t&65535)>>0]|0)+(d[79264+K>>0]|0)|0;t=z(I,2555953)|0;G=(z(K,G)|0)+1|0;F=z(I,3211264)|0;t=t+32768|0;u=161736;H=c[u>>2]&O;u=c[u+4>>2]&P;v=xJ(H|0,u|0,16)|0;E()|0;M=xJ(H|0,u|0,48)|0;E()|0;M=(d[79264+(v&65535)>>0]|0)+(d[79264+(H&65535)>>0]|0)+(d[79264+(u&65535)>>0]|0)+(d[79264+M>>0]|0)|0;u=z(K,2555953)|0;I=(z(M,I)|0)+1|0;H=z(K,3211264)|0;u=u+32768|0;v=161744;J=c[v>>2]&O;v=c[v+4>>2]&P;w=xJ(J|0,v|0,16)|0;E()|0;L=xJ(J|0,v|0,48)|0;E()|0;L=(d[79264+(w&65535)>>0]|0)+(d[79264+(J&65535)>>0]|0)+(d[79264+(v&65535)>>0]|0)+(d[79264+L>>0]|0)|0;v=z(M,2555953)|0;K=(z(L,K)|0)+1|0;J=z(M,3211264)|0;v=v+32768|0;w=161752;x=c[w>>2]&O;w=c[w+4>>2]&P;N=xJ(x|0,w|0,16)|0;E()|0;b=xJ(x|0,w|0,48)|0;E()|0;b=(d[79264+(N&65535)>>0]|0)+(d[79264+(x&65535)>>0]|0)+(d[79264+(w&65535)>>0]|0)+(d[79264+b>>0]|0)|0;w=z(L,2555953)|0;M=(z(b,M)|0)+1|0;L=z(L,3211264)|0;w=w+32768|0;x=z(b,2555953)|0;b=z(b,3211264)|0;x=x+32768|0;N=1;b=(z((((16?q>>>16:q)>>>0)/(A>>>0)|0)+(16?r>>>16:r)+(((16?s>>>16:s)>>>0)/(D>>>0)|0)+(((16?t>>>16:t)>>>0)/(G>>>0)|0)+(((16?u>>>16:u)>>>0)/(I>>>0)|0)+(((16?v>>>16:v)>>>0)/(K>>>0)|0)+(((16?w>>>16:w)>>>0)/(M>>>0)|0)+(16?x>>>16:x)|0,-65536)|0)-((((16?y>>16:y)|0)/(A|0)|0)+(16?B>>16:B)+(((16?C>>16:C)|0)/(D|0)|0)+(((16?F>>16:F)|0)/(G|0)|0)+(((16?H>>16:H)|0)/(I|0)|0)+(((16?J>>16:J)|0)/(K|0)|0)+(((16?L>>16:L)|0)/(M|0)|0)+(16?b>>16:b))|0}else{N=1;b=0}else{N=0;b=0}}else{N=O&1437226410;b=P&1437226410;M=xJ(N|0,b|0,16)|0;E()|0;N=xJ(N|0,b|0,48)|0;E()|0;c[e>>2]=(d[79264+(M&65535)>>0]|0)+(d[79264+(O&21930)>>0]|0)+(d[79264+(b&65535)>>0]|0)+(d[79264+N>>0]|0);N=0;b=0}e=c[f>>2]|0;if((e|0)!=64){I=~Q;J=~R;M=14048+(_<<2)|0;K=14080+(_<<2)|0;L=14112+(_<<2)|0;G=0;H=0;q=0;g=0;C=0;D=255;F=a+660|0;while(1){f=e&7;D=D&~(1<>2]=D;w=233696+(e<<3)|0;G=c[w>>2]|G;H=c[w+4>>2]|H;w=T;c[w>>2]=G;c[w+4>>2]=H;w=231648+(e<<3)|0;w=c[w>>2]&Q|0?1:(c[w+4>>2]&R|0)!=0;i=232672+(e<<3)|0;h=c[i>>2]&Q;i=c[i+4>>2]&R;k=238816+(e<<3)|0;j=c[k>>2]&Q;k=c[k+4>>2]&R;n=e+8|0;m=238816+(n<<3)|0;l=c[m>>2]&Q;m=c[m+4>>2]&R;if(N&e>>>0<8){A=0;B=0}else{B=161184+(e+-8<<3)|0;A=c[B>>2]&O;B=c[B+4>>2]&P}p=161824+(f<<3)|0;o=c[p>>2]&O;p=c[p+4>>2]&P;v=3?e>>3:e;t=161760+(v<<3)|0;s=o&c[t>>2];t=p&c[t+4>>2];r=N&(v|0)==0;if(r){x=0;y=0}else{y=e+-8|0;y=161760+((3?y>>3:y)<<3)|0;x=c[y>>2]&o;y=c[y+4>>2]&p}u=234208+(n<<3)|0;if((c[u>>2]&O|0)==0?(c[u+4>>2]&P|0)==0:0){u=161184+(n<<3)|0;u=(c[u>>2]|l)&h|0?1:((c[u+4>>2]|m)&i|0)!=0}else u=0;if(((j^h|0)==(l|0)&(k^i|0)==(m|0)?(ga=xJ(x|0,y|0,16)|0,E()|0,ha=xJ(x|0,y|0,48)|0,E()|0,ha=(d[79264+(ga&65535)>>0]|0)+(d[79264+(x&65535)>>0]|0)+(d[79264+(y&65535)>>0]|0)+(d[79264+ha>>0]|0)|0,ga=xJ(j|0,k|0,16)|0,E()|0,f=xJ(j|0,k|0,48)|0,E()|0,(ha|0)>=((d[79264+(j&65535)>>0]|0)+-1+(d[79264+(ga&65535)>>0]|0)+(d[79264+(k&65535)>>0]|0)+(d[79264+f>>0]|0)|0)):0)?(ga=xJ(s|0,t|0,16)|0,E()|0,k=xJ(s|0,t|0,48)|0,E()|0,k=(d[79264+(ga&65535)>>0]|0)+(d[79264+(s&65535)>>0]|0)+(d[79264+(t&65535)>>0]|0)+(d[79264+k>>0]|0)|0,ga=xJ(l|0,m|0,16)|0,E()|0,ha=xJ(l|0,m|0,48)|0,E()|0,k>>>0>=((d[79264+(ga&65535)>>0]|0)+(d[79264+(l&65535)>>0]|0)+(d[79264+(m&65535)>>0]|0)+(d[79264+ha>>0]|0)|0)>>>0):0){ha=161184+(e<<3)|0;h=c[ha>>2]|q;g=c[ha+4>>2]|g;ha=ba;c[ha>>2]=h;c[ha+4>>2]=g}else{ha=161184+(n<<3)|0;if((e|0)>31&((h|0)==(c[ha>>2]|0)?(i|0)==(c[ha+4>>2]|0):0)?(U=yJ(x|0,y|0,8)|0,U=U&I,V=(E()|0)&J,!((U|0)==0&(V|0)==0)):0){j=161184+(e<<3)|0;h=U;i=V;f=q;e=g;do{ha=qa(h|0,i|0,0)|0;E()|0;ga=pJ(h|0,i|0,-1,-1)|0;h=ga&h;i=(E()|0)&i;ha=238816+(ha<<3)|0;ga=c[ha>>2]&Q;ha=c[ha+4>>2]&R;q=pJ(ga|0,ha|0,-1,-1)|0;if((q&ga|0)==0&((E()|0)&ha|0)==0){ha=j;f=c[ha>>2]|f;e=c[ha+4>>2]|e;ha=ba;c[ha>>2]=f;c[ha+4>>2]=e}}while(!((h|0)==0&(i|0)==0));h=f;g=e}else h=q}do if(!r){if(!((x|s|0)==0&(y|t|0)==0)){ga=xJ(x|0,y|0,16)|0;E()|0;ha=xJ(x|0,y|0,48)|0;E()|0;f=C;b=(c[953424+(_*384|0)+((w&1)*192|0)+((((s|0)!=0|(t|0)!=0)&1)*96|0)+((d[79264+(ga&65535)>>0]|0)+(d[79264+(x&65535)>>0]|0)+(d[79264+(y&65535)>>0]|0)+(d[79264+ha>>0]|0)<<5)+(v<<2)>>2]|0)+b|0;break}if((o|0)==0&(p|0)==0){b=b-(c[K>>2]|0)|0;f=C+((w^1)&1)|0;c[S>>2]=f;break}e=C+((w^1)&1)|0;if(u){b=b-(c[L>>2]|0)|0;c[S>>2]=e;f=e}else f=C}else f=C;while(0);if(((A|0)!=0|(B|0)!=0)&(N|(x|0)==0&(y|0)==0))b=b-(c[M>>2]|0)|0;e=c[F>>2]|0;if((e|0)==64)break;else{q=h;C=f;F=F+4|0}}}c[da+(ea<<7)+8>>2]=b;f=a+2704|0;U=W;P=X;O=c[P>>2]|0;P=c[P+4>>2]|0;T=O&c[U>>2];U=P&c[U+4>>2];Q=Y;O=c[Q>>2]&O;P=c[Q+4>>2]&P;Q=da+(ea<<7)+84|0;c[Q>>2]=0;R=da+(ea<<7)+56|0;V=R;c[V>>2]=0;c[V+4>>2]=0;V=da+(ea<<7)+24|0;S=V;c[S>>2]=0;c[S+4>>2]=0;S=da+(ea<<7)+100|0;c[S>>2]=255;c[da+(ea<<7)+68>>2]=64;ga=xJ(T|0,U|0,9)|0;e=(E()|0)&8355711;ha=xJ(T|0,U|0,7)|0;e=e|(E()|0)&16711422;b=da+(ea<<7)+40|0;c[b>>2]=ga&2139062143|ha&-16843010;c[b+4>>2]=e;b=T&-1437226411;e=U&-1437226411;ha=xJ(b|0,e|0,16)|0;E()|0;b=xJ(b|0,e|0,48)|0;E()|0;b=(d[79264+(ha&65535)>>0]|0)+(d[79264+(T&43605)>>0]|0)+(d[79264+(e&65535)>>0]|0)+(d[79264+b>>0]|0)|0;e=da+(ea<<7)+112|0;c[da+(ea<<7)+116>>2]=b;if(!Z){c[e>>2]=(c[a+372>>2]|0)-b;if((_|0)==4)if(!(c[a+392>>2]|0)){x=161696;I=c[x>>2]&T;x=c[x+4>>2]&U;w=xJ(I|0,x|0,16)|0;E()|0;H=xJ(I|0,x|0,48)|0;E()|0;H=(d[79264+(w&65535)>>0]|0)+(d[79264+(I&65535)>>0]|0)+(d[79264+(x&65535)>>0]|0)+(d[79264+H>>0]|0)|0;x=161704;I=c[x>>2]&T;x=c[x+4>>2]&U;w=xJ(I|0,x|0,16)|0;E()|0;K=xJ(I|0,x|0,48)|0;E()|0;K=(d[79264+(w&65535)>>0]|0)+(d[79264+(I&65535)>>0]|0)+(d[79264+(x&65535)>>0]|0)+(d[79264+K>>0]|0)|0;x=z(H,2555953)|0;I=z(H,3211264)|0;x=x+32768|0;w=161712;G=c[w>>2]&T;w=c[w+4>>2]&U;y=xJ(G|0,w|0,16)|0;E()|0;M=xJ(G|0,w|0,48)|0;E()|0;M=(d[79264+(y&65535)>>0]|0)+(d[79264+(G&65535)>>0]|0)+(d[79264+(w&65535)>>0]|0)+(d[79264+M>>0]|0)|0;w=z(K,2555953)|0;H=(z(M,H)|0)+1|0;G=z(K,3211264)|0;w=w+32768|0;y=161720;J=c[y>>2]&T;y=c[y+4>>2]&U;A=xJ(J|0,y|0,16)|0;E()|0;X=xJ(J|0,y|0,48)|0;E()|0;X=(d[79264+(A&65535)>>0]|0)+(d[79264+(J&65535)>>0]|0)+(d[79264+(y&65535)>>0]|0)+(d[79264+X>>0]|0)|0;y=z(M,2555953)|0;K=(z(X,K)|0)+1|0;J=z(M,3211264)|0;y=y+32768|0;A=161728;L=c[A>>2]&T;A=c[A+4>>2]&U;B=xJ(L|0,A|0,16)|0;E()|0;Z=xJ(L|0,A|0,48)|0;E()|0;Z=(d[79264+(B&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(A&65535)>>0]|0)+(d[79264+Z>>0]|0)|0;A=z(X,2555953)|0;M=(z(Z,M)|0)+1|0;L=z(X,3211264)|0;A=A+32768|0;B=161736;W=c[B>>2]&T;B=c[B+4>>2]&U;C=xJ(W|0,B|0,16)|0;E()|0;ha=xJ(W|0,B|0,48)|0;E()|0;ha=(d[79264+(C&65535)>>0]|0)+(d[79264+(W&65535)>>0]|0)+(d[79264+(B&65535)>>0]|0)+(d[79264+ha>>0]|0)|0;B=z(Z,2555953)|0;X=(z(ha,X)|0)+1|0;W=z(Z,3211264)|0;B=B+32768|0;C=161744;Y=c[C>>2]&T;C=c[C+4>>2]&U;D=xJ(Y|0,C|0,16)|0;E()|0;ga=xJ(Y|0,C|0,48)|0;E()|0;ga=(d[79264+(D&65535)>>0]|0)+(d[79264+(Y&65535)>>0]|0)+(d[79264+(C&65535)>>0]|0)+(d[79264+ga>>0]|0)|0;C=z(ha,2555953)|0;Z=(z(ga,Z)|0)+1|0;Y=z(ha,3211264)|0;C=C+32768|0;D=161752;F=c[D>>2]&T;D=c[D+4>>2]&U;N=xJ(F|0,D|0,16)|0;E()|0;b=xJ(F|0,D|0,48)|0;E()|0;b=(d[79264+(N&65535)>>0]|0)+(d[79264+(F&65535)>>0]|0)+(d[79264+(D&65535)>>0]|0)+(d[79264+b>>0]|0)|0;D=z(ga,2555953)|0;ha=(z(b,ha)|0)+1|0;ga=z(ga,3211264)|0;D=D+32768|0;F=z(b,2555953)|0;b=z(b,3211264)|0;F=F+32768|0;N=1;b=(z((((16?w>>>16:w)>>>0)/(H>>>0)|0)+(16?x>>>16:x)+(((16?y>>>16:y)>>>0)/(K>>>0)|0)+(((16?A>>>16:A)>>>0)/(M>>>0)|0)+(((16?B>>>16:B)>>>0)/(X>>>0)|0)+(((16?C>>>16:C)>>>0)/(Z>>>0)|0)+(((16?D>>>16:D)>>>0)/(ha>>>0)|0)+(16?F>>>16:F)|0,-65536)|0)-((((16?G>>16:G)|0)/(H|0)|0)+(16?I>>16:I)+(((16?J>>16:J)|0)/(K|0)|0)+(((16?L>>16:L)|0)/(M|0)|0)+(((16?W>>16:W)|0)/(X|0)|0)+(((16?Y>>16:Y)|0)/(Z|0)|0)+(((16?ga>>16:ga)|0)/(ha|0)|0)+(16?b>>16:b))|0}else{N=1;b=0}else{N=0;b=0}}else{N=T&1437226410;b=U&1437226410;ha=xJ(N|0,b|0,16)|0;E()|0;N=xJ(N|0,b|0,48)|0;E()|0;c[e>>2]=(d[79264+(ha&65535)>>0]|0)+(d[79264+(T&21930)>>0]|0)+(d[79264+(b&65535)>>0]|0)+(d[79264+N>>0]|0);N=0;b=0}e=c[f>>2]|0;if((e|0)==64)e=c[S>>2]|0;else{I=~O;J=~P;M=14048+(_<<2)|0;K=14080+(_<<2)|0;L=14112+(_<<2)|0;o=e;e=255;G=0;H=0;g=0;x=0;D=0;F=a+2708|0;while(1){f=o&7;e=e&~(1<>2]=e;w=234208+(o<<3)|0;G=c[w>>2]|G;H=c[w+4>>2]|H;w=R;c[w>>2]=G;c[w+4>>2]=H;w=232160+(o<<3)|0;w=c[w>>2]&O|0?1:(c[w+4>>2]&P|0)!=0;i=233184+(o<<3)|0;h=c[i>>2]&O;i=c[i+4>>2]&P;k=239328+(o<<3)|0;j=c[k>>2]&O;k=c[k+4>>2]&P;n=o+-8|0;m=239328+(n<<3)|0;l=c[m>>2]&O;m=c[m+4>>2]&P;if(N&(o&-8|0)==56){B=0;C=0}else{C=161184+(o+8<<3)|0;B=c[C>>2]&T;C=c[C+4>>2]&U}q=161824+(f<<3)|0;p=c[q>>2]&T;q=c[q+4>>2]&U;v=3?o>>3:o;t=161760+(v<<3)|0;s=p&c[t>>2];t=q&c[t+4>>2];r=N&(v|0)==7;if(r){y=0;A=0}else{A=o+8|0;A=161760+((3?A>>3:A)<<3)|0;y=c[A>>2]&p;A=c[A+4>>2]&q}ha=233696+(n<<3)|0;if((c[ha>>2]&T|0)==0?(c[ha+4>>2]&U|0)==0:0){u=161184+(n<<3)|0;u=(c[u>>2]|l)&h|0?1:((c[u+4>>2]|m)&i|0)!=0}else u=0;if(((j^h|0)==(l|0)&(k^i|0)==(m|0)?(ga=xJ(y|0,A|0,16)|0,E()|0,a=xJ(y|0,A|0,48)|0,E()|0,a=(d[79264+(ga&65535)>>0]|0)+(d[79264+(y&65535)>>0]|0)+(d[79264+(A&65535)>>0]|0)+(d[79264+a>>0]|0)|0,ga=xJ(j|0,k|0,16)|0,E()|0,ha=xJ(j|0,k|0,48)|0,E()|0,(a|0)>=((d[79264+(j&65535)>>0]|0)+-1+(d[79264+(ga&65535)>>0]|0)+(d[79264+(k&65535)>>0]|0)+(d[79264+ha>>0]|0)|0)):0)?(ga=xJ(s|0,t|0,16)|0,E()|0,a=xJ(s|0,t|0,48)|0,E()|0,a=(d[79264+(ga&65535)>>0]|0)+(d[79264+(s&65535)>>0]|0)+(d[79264+(t&65535)>>0]|0)+(d[79264+a>>0]|0)|0,ga=xJ(l|0,m|0,16)|0,E()|0,ha=xJ(l|0,m|0,48)|0,E()|0,a>>>0>=((d[79264+(ga&65535)>>0]|0)+(d[79264+(l&65535)>>0]|0)+(d[79264+(m&65535)>>0]|0)+(d[79264+ha>>0]|0)|0)>>>0):0){h=161184+(o<<3)|0;g=c[h>>2]|g;h=c[h+4>>2]|x;ha=V;c[ha>>2]=g;c[ha+4>>2]=h}else{ha=161184+(n<<3)|0;if((v^7|0)>3&((h|0)==(c[ha>>2]|0)?(i|0)==(c[ha+4>>2]|0):0)?($=xJ(y|0,A|0,8)|0,$=$&I,aa=(E()|0)&J,!(($|0)==0&(aa|0)==0)):0){j=161184+(o<<3)|0;h=$;i=aa;f=x;do{ha=qa(h|0,i|0,0)|0;E()|0;ga=pJ(h|0,i|0,-1,-1)|0;h=ga&h;i=(E()|0)&i;ha=239328+(ha<<3)|0;ga=c[ha>>2]&O;ha=c[ha+4>>2]&P;a=pJ(ga|0,ha|0,-1,-1)|0;if((a&ga|0)==0&((E()|0)&ha|0)==0){ha=j;g=c[ha>>2]|g;f=c[ha+4>>2]|f;ha=V;c[ha>>2]=g;c[ha+4>>2]=f}}while(!((h|0)==0&(i|0)==0));h=f}else h=x}do if(!r){if(!((y|s|0)==0&(A|t|0)==0)){ga=xJ(y|0,A|0,16)|0;E()|0;ha=xJ(y|0,A|0,48)|0;E()|0;f=D;b=(c[953424+(_*384|0)+((w&1)*192|0)+((((s|0)!=0|(t|0)!=0)&1)*96|0)+((d[79264+(ga&65535)>>0]|0)+(d[79264+(y&65535)>>0]|0)+(d[79264+(A&65535)>>0]|0)+(d[79264+ha>>0]|0)<<5)+((v^7)<<2)>>2]|0)+b|0;break}if((p|0)==0&(q|0)==0){b=b-(c[K>>2]|0)|0;f=D+((w^1)&1)|0;c[Q>>2]=f;break}f=D+((w^1)&1)|0;if(u){b=b-(c[L>>2]|0)|0;c[Q>>2]=f}else f=D}else f=D;while(0);if(((B|0)!=0|(C|0)!=0)&(N|(y|0)==0&(A|0)==0))b=b-(c[M>>2]|0)|0;o=c[F>>2]|0;if((o|0)==64)break;else{x=h;D=f;F=F+4|0}}}c[da+(ea<<7)+12>>2]=b;ca=c[ca>>2]|0;ga=e&ca;ha=xJ(ga|0,((ga|0)<0)<<31>>31|0,48)|0;E()|0;c[da+(ea<<7)+124>>2]=(d[79264+(16?ga>>>16:ga)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+((31?ga>>31:ga)&65535)>>0]|0)+(d[79264+ha>>0]|0);ha=ba;ga=V;ba=e^ca;ca=c[ha>>2]|ba|c[ga>>2];ga=c[ha+4>>2]|((ba|0)<0)<<31>>31|c[ga+4>>2];ba=xJ(ca|0,ga|0,16)|0;E()|0;ha=xJ(ca|0,ga|0,48)|0;E()|0;c[da+(ea<<7)+120>>2]=(d[79264+(ba&65535)>>0]|0)+(d[79264+(ca&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+ha>>0]|0);return fa|0}function be(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;o=s;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;e=o+11|0;a[e>>0]=5;a[o>>0]=a[44986]|0;a[o+1>>0]=a[44987]|0;a[o+2>>0]=a[44988]|0;a[o+3>>0]=a[44989]|0;a[o+4>>0]=a[44990]|0;a[o+5>>0]=0;j=o+12|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;f=j+11|0;a[f>>0]=8;k=j;c[k>>2]=1702259047;c[k+4>>2]=2036430689;a[o+20>>0]=0;k=o+24|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;g=k+11|0;a[g>>0]=6;a[k>>0]=a[44992]|0;a[k+1>>0]=a[44993]|0;a[k+2>>0]=a[44994]|0;a[k+3>>0]=a[44995]|0;a[k+4>>0]=a[44996]|0;a[k+5>>0]=a[44997]|0;a[k+6>>0]=0;l=o+36|0;h=l+11|0;a[h>>0]=10;p=l;q=44999;r=p+10|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[l+10>>0]=0;m=o+48|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=5;a[m>>0]=a[45010]|0;a[m+1>>0]=a[45011]|0;a[m+2>>0]=a[45012]|0;a[m+3>>0]=a[45013]|0;a[m+4>>0]=a[45014]|0;a[m+5>>0]=0;n=o+60|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;b=Gv(16)|0;c[n>>2]=b;c[o+68>>2]=-2147483632;c[o+64>>2]=13;p=b;q=45016;r=p+13|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+13>>0]=0;d=o+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[o+80>>2]=-2147483632;c[o+76>>2]=11;p=b;q=45030;r=p+11|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));a[b+11>>0]=0;b=o+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;r=b+11|0;a[r>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295278]=0;c[295279]=0;c[295280]=0;q=Gv(96)|0;c[295279]=q;c[295278]=q;c[295280]=q+96;Rv(q,o);q=(c[295279]|0)+12|0;c[295279]=q;Rv(q,j);q=(c[295279]|0)+12|0;c[295279]=q;Rv(q,k);q=(c[295279]|0)+12|0;c[295279]=q;Rv(q,l);q=(c[295279]|0)+12|0;c[295279]=q;Rv(q,m);q=(c[295279]|0)+12|0;c[295279]=q;Rv(q,n);q=(c[295279]|0)+12|0;c[295279]=q;Rv(q,d);q=(c[295279]|0)+12|0;c[295279]=q;Rv(q,b);c[295279]=(c[295279]|0)+12;if((a[r>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)<0)Jv(c[l>>2]|0);if((a[g>>0]|0)<0)Jv(c[k>>2]|0);if((a[f>>0]|0)<0)Jv(c[j>>2]|0);if((a[e>>0]|0)>=0){c[295281]=0;c[295282]=0;c[295283]=0;b=Gv(16)|0;c[295281]=b;c[295283]=-2147483632;c[295282]=15;p=b;q=42366;r=p+15|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));r=b+15|0;a[r>>0]=0;Ia=s;return}Jv(c[o>>2]|0);c[295281]=0;c[295282]=0;c[295283]=0;b=Gv(16)|0;c[295281]=b;c[295283]=-2147483632;c[295282]=15;p=b;q=42366;r=p+15|0;do{a[p>>0]=a[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));r=b+15|0;a[r>>0]=0;Ia=s;return}function ce(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=Ia;Ia=Ia+16|0;h=i;Tb(b,42382,36)|0;e=7;while(1){f=e<<3;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+(f<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+((f|1)<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+((f|2)<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+((f|3)<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+((f|4)<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+((f|5)<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+((f|6)<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;g=Tb(b,42426,3)|0;a[h>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+((f|7)<<2)>>2]|0)>>0]|0;Tb(g,h,1)|0;Tb(b,42430,38)|0;if(!e)break;else e=e+-1|0}j=Tb(b,42419,6)|0;de(h,d);g=h+11|0;e=a[g>>0]|0;f=e<<24>>24<0;e=Tb(Tb(j,f?c[h>>2]|0:h,f?c[h+4>>2]|0:e&255)|0,42469,6)|0;f=(c[e>>2]|0)+-12|0;j=e+(c[f>>2]|0)+4|0;c[j>>2]=c[j>>2]&-75|8;j=e+(c[f>>2]|0)+4|0;c[j>>2]=c[j>>2]|16384;c[e+(c[f>>2]|0)+76>>2]=48;c[e+(c[f>>2]|0)+12>>2]=16;d=d+5352|0;f=(c[d>>2]|0)+48|0;f=em(e,c[f>>2]|0,c[f+4>>2]|0)|0;e=(c[f>>2]|0)+-12|0;c[f+(c[e>>2]|0)+76>>2]=32;e=f+(c[e>>2]|0)+4|0;c[e>>2]=c[e>>2]&-75|2;Tb(f,42476,11)|0;if((a[g>>0]|0)<0)Jv(c[h>>2]|0);e=(c[d>>2]|0)+56|0;d=c[e>>2]|0;e=c[e+4>>2]|0;if((d|0)==0&(e|0)==0){Ia=i;return b|0}f=h+11|0;g=h+4|0;do{j=qa(d|0,e|0,0)|0;E()|0;k=pJ(d|0,e|0,-1,-1)|0;d=k&d;e=(E()|0)&e;oh(h,j);j=a[f>>0]|0;k=j<<24>>24<0;Tb(Tb(b,k?c[h>>2]|0:h,k?c[g>>2]|0:j&255)|0,49392,1)|0;if((a[f>>0]|0)<0)Jv(c[h>>2]|0)}while(!((d|0)==0&(e|0)==0));Ia=i;return b|0}function de(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=Ia;Ia=Ia+176|0;o=v+160|0;t=v+24|0;r=v+12|0;s=v;n=t+56|0;p=t+4|0;c[t>>2]=29428;c[n>>2]=29448;Ol(t+56|0,p);c[t+128>>2]=0;c[t+132>>2]=-1;c[t>>2]=33716;c[n>>2]=33736;Tl(p);c[p>>2]=33340;q=t+36|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[t+52>>2]=16;u=d+5360|0;j=d+4560|0;k=7;while(1){i=k<<3;e=0;while(1){if((e|0)>=8)break;f=0;g=e;while(1){if(c[d+(g+i<<2)>>2]|0){m=9;break}f=f+1|0;e=g+1|0;if((g|0)<7)g=e;else{h=0;m=10;break}}if((m|0)==9)if(!f){e=g;m=11}else{h=1;e=g;m=10}if((m|0)==10){m=0;bm(t,f)|0;if(h)m=11}if((m|0)==11){m=0;f=e+i|0;a[o>>0]=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(c[d+(f<<2)>>2]|0)>>0]|0;Tb(t,o,1)|0;if((c[u>>2]|0)==3?(l=j,h=161184+(f<<3)|0,!((c[h>>2]&c[l>>2]|0)==0?(c[h+4>>2]&c[l+4>>2]|0)==0:0)):0)Tb(t,50127,1)|0}if((e|0)<7)e=e+1|0;else break}e=(k|0)!=0;if(e){a[o>>0]=47;Tb(t,o,1)|0}if(e)k=k+-1|0;else break}do if((c[u>>2]|0)==3){a[o>>0]=91;Tb(t,o,1)|0;j=o+11|0;k=o+4|0;i=o+8|0;l=0;while(1){h=l<<3;g=c[d+4496+(l<<5)+20>>2]|0;f=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(h|5)>>0]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;if(g>>>0>4294967279){m=20;break}if(g>>>0<11){a[j>>0]=g;if(!g)e=o;else{e=o;m=24}}else{m=g+16&-16;e=Gv(m)|0;c[o>>2]=e;c[i>>2]=m|-2147483648;c[k>>2]=g;m=24}if((m|0)==24){m=0;DJ(e|0,f|0,g|0)|0}a[e+g>>0]=0;g=a[j>>0]|0;f=g<<24>>24<0;Tb(t,f?c[o>>2]|0:o,f?c[k>>2]|0:g&255)|0;if((a[j>>0]|0)<0)Jv(c[o>>2]|0);g=c[d+4496+(l<<5)+16>>2]|0;f=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(h|4)>>0]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;if(g>>>0>4294967279){m=20;break}if(g>>>0<11){a[j>>0]=g;if(!g)e=o;else{e=o;m=65}}else{m=g+16&-16;e=Gv(m)|0;c[o>>2]=e;c[i>>2]=m|-2147483648;c[k>>2]=g;m=65}if((m|0)==65){m=0;DJ(e|0,f|0,g|0)|0}a[e+g>>0]=0;g=a[j>>0]|0;f=g<<24>>24<0;Tb(t,f?c[o>>2]|0:o,f?c[k>>2]|0:g&255)|0;if((a[j>>0]|0)<0)Jv(c[o>>2]|0);g=c[d+4496+(l<<5)+12>>2]|0;f=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(h|3)>>0]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;if(g>>>0>4294967279){m=20;break}if(g>>>0<11){a[j>>0]=g;if(!g)e=o;else{e=o;m=72}}else{m=g+16&-16;e=Gv(m)|0;c[o>>2]=e;c[i>>2]=m|-2147483648;c[k>>2]=g;m=72}if((m|0)==72){m=0;DJ(e|0,f|0,g|0)|0}a[e+g>>0]=0;g=a[j>>0]|0;f=g<<24>>24<0;Tb(t,f?c[o>>2]|0:o,f?c[k>>2]|0:g&255)|0;if((a[j>>0]|0)<0)Jv(c[o>>2]|0);g=c[d+4496+(l<<5)+8>>2]|0;f=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(h|2)>>0]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;if(g>>>0>4294967279){m=20;break}if(g>>>0<11){a[j>>0]=g;if(!g)e=o;else{e=o;m=79}}else{m=g+16&-16;e=Gv(m)|0;c[o>>2]=e;c[i>>2]=m|-2147483648;c[k>>2]=g;m=79}if((m|0)==79){m=0;DJ(e|0,f|0,g|0)|0}a[e+g>>0]=0;g=a[j>>0]|0;f=g<<24>>24<0;Tb(t,f?c[o>>2]|0:o,f?c[k>>2]|0:g&255)|0;if((a[j>>0]|0)<0)Jv(c[o>>2]|0);g=c[d+4496+(l<<5)+4>>2]|0;f=a[((a[1181135]|0)<0?c[295281]|0:1181124)+(h|1)>>0]|0;c[o>>2]=0;c[o+4>>2]=0;c[o+8>>2]=0;if(g>>>0>4294967279){m=20;break}if(g>>>0<11){a[j>>0]=g;if(!g)e=o;else{e=o;m=86}}else{m=g+16&-16;e=Gv(m)|0;c[o>>2]=e;c[i>>2]=m|-2147483648;c[k>>2]=g;m=86}if((m|0)==86){m=0;DJ(e|0,f|0,g|0)|0}a[e+g>>0]=0;h=a[j>>0]|0;g=h<<24>>24<0;Tb(t,g?c[o>>2]|0:o,g?c[k>>2]|0:h&255)|0;if((a[j>>0]|0)<0)Jv(c[o>>2]|0);if((l+1|0)>>>0<2)l=1;else{m=18;break}}if((m|0)==18){a[o>>0]=93;Tb(t,o,1)|0;break}else if((m|0)==20)Pv(o)}while(0);i=d+5340|0;Tb(t,(c[i>>2]|0)==0?42488:42492,3)|0;j=d+5352|0;e=c[j>>2]|0;f=c[e+24>>2]|0;if(f&1){if(!(a[d+5356>>0]|0))e=75;else e=(c[d+5148>>2]&7)+65&255;a[o>>0]=e;Tb(t,o,1)|0;f=c[j>>2]|0;e=f;f=c[f+24>>2]|0}if(f&2){if(!(a[d+5356>>0]|0))e=81;else e=(c[d+5152>>2]&7)+65&255;a[o>>0]=e;Tb(t,o,1)|0;f=c[j>>2]|0;e=f;f=c[f+24>>2]|0}if(f&4){if(!(a[d+5356>>0]|0))e=107;else e=(c[d+5160>>2]&7)+97&255;a[o>>0]=e;Tb(t,o,1)|0;f=c[j>>2]|0;e=f;f=c[f+24>>2]|0}if(f&8){if(!(a[d+5356>>0]|0))e=113;else e=(c[d+5176>>2]&7)+97&255;a[o>>0]=e;Tb(t,o,1)|0;f=c[j>>2]|0;e=f;f=c[f+24>>2]|0}if(!(f&15)){a[o>>0]=45;Tb(t,o,1)|0;e=c[j>>2]|0}e=c[e+44>>2]|0;if((e|0)==64){g=o+4|0;c[g>>2]=0;c[g+4>>2]=0;g=o+11|0;a[g>>0]=3;a[o>>0]=a[42496]|0;a[o+1>>0]=a[42497]|0;a[o+2>>0]=a[42498]|0;a[o+3>>0]=0;e=3;f=0;h=0}else{oh(s,e);g=hw(s,0,49392)|0;c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;g=ew(r,49392)|0;c[o>>2]=c[g>>2];c[o+4>>2]=c[g+4>>2];c[o+8>>2]=c[g+8>>2];c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;g=o+11|0;e=a[g>>0]|0;f=c[o+4>>2]|0;h=1}m=e<<24>>24<0;Tb(t,m?c[o>>2]|0:o,m?f:e&255)|0;if((a[g>>0]|0)<0)Jv(c[o>>2]|0);if(h){if((a[r+11>>0]|0)<0)Jv(c[r>>2]|0);if((a[s+11>>0]|0)<0)Jv(c[s>>2]|0)}if((c[u>>2]|0)==7){u=Tb(bm(t,3-(c[(c[j>>2]|0)+36>>2]|0)|0)|0,50184,1)|0;Tb(bm(u,3-(c[(c[j>>2]|0)+40>>2]|0)|0)|0,49392,1)|0}u=Tb(bm(t,c[(c[j>>2]|0)+28>>2]|0)|0,49392,1)|0;bm(u,(((c[d+5336>>2]|0)-((c[i>>2]|0)==1&1)|0)/2|0)+1|0)|0;bc(b,p);c[t>>2]=33716;c[n>>2]=33736;c[p>>2]=33340;if((a[q+11>>0]|0)>=0){Dk(p);zl(t,33748);yk(n);Ia=v;return}Jv(c[q>>2]|0);Dk(p);zl(t,33748);yk(n);Ia=v;return}function ee(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=33716;f=b+56|0;c[f>>2]=33736;d=b+4|0;c[d>>2]=33340;e=b+36|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);zl(b,33748);yk(f);return}function fe(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=33716;f=b+56|0;c[f>>2]=33736;d=b+4|0;c[d>>2]=33340;e=b+36|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);zl(b,33748);yk(f);Jv(b);return}function ge(b){b=b|0;var d=0,e=0,f=0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;c[b>>2]=33716;f=b+56|0;c[f>>2]=33736;d=b+4|0;c[d>>2]=33340;e=b+36|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);zl(b,33748);yk(f);return}function he(b){b=b|0;var d=0,e=0,f=0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;c[b>>2]=33716;f=b+56|0;c[f>>2]=33736;d=b+4|0;c[d>>2]=33340;e=b+36|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);zl(b,33748);yk(f);Jv(b);return}function ie(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;a=1070372;b=0;d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=957008+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=957520+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=958032+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=958544+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=959056+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=959568+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=961104+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=961616+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=962128+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=962640+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=963152+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);d=0;do{o=xJ(a|0,b|0,12)|0;o=o^a;n=(E()|0)^b;p=yJ(o|0,n|0,25)|0;o=p^o;n=(E()|0)^n;p=xJ(o|0,n|0,27)|0;a=p^o;b=(E()|0)^n;n=vJ(a|0,b|0,1332534557,625341585)|0;o=E()|0;p=963664+(d<<3)|0;c[p>>2]=n;c[p+4>>2]=o;d=d+1|0}while((d|0)!=64);i=xJ(a|0,b|0,12)|0;i=i^a;a=(E()|0)^b;b=yJ(i|0,a|0,25)|0;b=b^i;a=(E()|0)^a;i=xJ(b|0,a|0,27)|0;b=i^b;a=(E()|0)^a;i=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;o=964688;c[o>>2]=i;c[o+4>>2]=p;o=xJ(b|0,a|0,12)|0;b=o^b;a=(E()|0)^a;o=yJ(b|0,a|0,25)|0;b=o^b;a=(E()|0)^a;o=xJ(b|0,a|0,27)|0;b=o^b;a=(E()|0)^a;o=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;i=964696;c[i>>2]=o;c[i+4>>2]=p;i=xJ(b|0,a|0,12)|0;b=i^b;a=(E()|0)^a;i=yJ(b|0,a|0,25)|0;b=i^b;a=(E()|0)^a;i=xJ(b|0,a|0,27)|0;b=i^b;a=(E()|0)^a;i=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;o=964704;c[o>>2]=i;c[o+4>>2]=p;o=xJ(b|0,a|0,12)|0;b=o^b;a=(E()|0)^a;o=yJ(b|0,a|0,25)|0;b=o^b;a=(E()|0)^a;o=xJ(b|0,a|0,27)|0;b=o^b;a=(E()|0)^a;o=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;i=964712;c[i>>2]=o;c[i+4>>2]=p;i=xJ(b|0,a|0,12)|0;b=i^b;a=(E()|0)^a;i=yJ(b|0,a|0,25)|0;b=i^b;a=(E()|0)^a;i=xJ(b|0,a|0,27)|0;b=i^b;a=(E()|0)^a;i=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;o=964720;c[o>>2]=i;c[o+4>>2]=p;o=xJ(b|0,a|0,12)|0;b=o^b;a=(E()|0)^a;o=yJ(b|0,a|0,25)|0;b=o^b;a=(E()|0)^a;o=xJ(b|0,a|0,27)|0;b=o^b;a=(E()|0)^a;o=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;i=964728;c[i>>2]=o;c[i+4>>2]=p;i=xJ(b|0,a|0,12)|0;b=i^b;a=(E()|0)^a;i=yJ(b|0,a|0,25)|0;b=i^b;a=(E()|0)^a;i=xJ(b|0,a|0,27)|0;b=i^b;a=(E()|0)^a;i=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;o=964736;c[o>>2]=i;c[o+4>>2]=p;o=xJ(b|0,a|0,12)|0;b=o^b;a=(E()|0)^a;o=yJ(b|0,a|0,25)|0;b=o^b;a=(E()|0)^a;o=xJ(b|0,a|0,27)|0;b=o^b;a=(E()|0)^a;o=vJ(b|0,a|0,1332534557,625341585)|0;p=E()|0;i=964744;c[i>>2]=o;c[i+4>>2]=p;i=0;do{h=964752+(i<<3)|0;p=h;c[p>>2]=0;c[p+4>>2]=0;if(i){f=i;g=0;d=0;e=0;do{p=qa(f|0,g|0,0)|0;E()|0;m=pJ(f|0,g|0,-1,-1)|0;f=m&f;g=(E()|0)&g;p=yJ(1,0,p|0)|0;E()|0;p=964752+(p<<3)|0;m=c[p>>2]|0;p=c[p+4>>2]|0;n=(m|0)==0&(p|0)==0;j=xJ(b|0,a|0,12)|0;j=j^b;k=(E()|0)^a;l=yJ(j|0,k|0,25)|0;j=l^j;k=(E()|0)^k;l=xJ(j|0,k|0,27)|0;j=l^j;k=(E()|0)^k;l=vJ(j|0,k|0,1332534557,625341585)|0;o=E()|0;b=n?j:b;a=n?k:a;d=(n?l:m)^d;e=(n?o:p)^e;p=h;c[p>>2]=d;c[p+4>>2]=e}while(!((f|0)==0&(g|0)==0))}i=i+1|0}while((i|0)!=16);o=xJ(b|0,a|0,12)|0;o=o^b;b=(E()|0)^a;a=yJ(o|0,b|0,25)|0;a=a^o;b=(E()|0)^b;o=xJ(a|0,b|0,27)|0;a=o^a;b=(E()|0)^b;o=vJ(a|0,b|0,1332534557,625341585)|0;p=E()|0;d=1174448;c[d>>2]=o;c[d+4>>2]=p;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=1174456;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=964880;c[d>>2]=0;c[d+4>>2]=0;d=964888;c[d>>2]=m;c[d+4>>2]=n;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=964896;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=964904;c[d>>2]=m;c[d+4>>2]=n;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=964912;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=964920;c[d>>2]=m;c[d+4>>2]=n;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=964928;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=964936;c[d>>2]=m;c[d+4>>2]=n;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=967120;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=967128;c[d>>2]=m;c[d+4>>2]=n;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=967136;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=967144;c[d>>2]=m;c[d+4>>2]=n;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=967152;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=967160;c[d>>2]=m;c[d+4>>2]=n;d=xJ(a|0,b|0,12)|0;a=d^a;b=(E()|0)^b;d=yJ(a|0,b|0,25)|0;a=d^a;b=(E()|0)^b;d=xJ(a|0,b|0,27)|0;a=d^a;b=(E()|0)^b;d=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;m=967168;c[m>>2]=d;c[m+4>>2]=n;m=xJ(a|0,b|0,12)|0;a=m^a;b=(E()|0)^b;m=yJ(a|0,b|0,25)|0;a=m^a;b=(E()|0)^b;m=xJ(a|0,b|0,27)|0;a=m^a;b=(E()|0)^b;m=vJ(a|0,b|0,1332534557,625341585)|0;n=E()|0;d=967176;c[d>>2]=m;c[d+4>>2]=n;d=14144;do{n=c[d>>2]|0;m=xJ(a|0,b|0,12)|0;m=m^a;l=(E()|0)^b;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+8|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)+16|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+24|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)+32|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+40|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)+48|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+56|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)+64|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+72|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)+80|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+88|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)+96|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+104|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;m=k^m;l=(E()|0)^l;k=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;i=964944+(n*136|0)+112|0;c[i>>2]=k;c[i+4>>2]=j;i=xJ(m|0,l|0,12)|0;m=i^m;l=(E()|0)^l;i=yJ(m|0,l|0,25)|0;m=i^m;l=(E()|0)^l;i=xJ(m|0,l|0,27)|0;m=i^m;l=(E()|0)^l;i=vJ(m|0,l|0,1332534557,625341585)|0;j=E()|0;k=964944+(n*136|0)+120|0;c[k>>2]=i;c[k+4>>2]=j;k=xJ(m|0,l|0,12)|0;m=k^m;l=(E()|0)^l;k=yJ(m|0,l|0,25)|0;m=k^m;l=(E()|0)^l;k=xJ(m|0,l|0,27)|0;a=k^m;b=(E()|0)^l;l=vJ(a|0,b|0,1332534557,625341585)|0;m=E()|0;n=964944+(n*136|0)+128|0;c[n>>2]=l;c[n+4>>2]=m;d=d+4|0}while((d|0)!=14192);DJ(967184,0,65536)|0;DJ(1032720,0,32768)|0;k=14144;do{h=c[k>>2]|0;l=h&7;m=0;do{a=m;m=m+1|0;if(m>>>0<64){j=234720+(l<<9)+(a<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;n=a<<6;e=956496+(h<<9)+(a<<3)|0;g=m;while(1){f=161184+(g<<3)|0;if(!((c[f>>2]&i|0)==0?(c[f+4>>2]&j|0)==0:0)?(t=e,s=956496+(h<<9)+(g<<3)|0,d=c[t>>2]^o^c[s>>2],s=c[t+4>>2]^p^c[s+4>>2],t=d&8191,f=967184+(t<<3)|0,r=f,q=c[r>>2]|0,r=c[r+4>>2]|0,f,c[f>>2]=d,c[f+4>>2]=s,f=1032720+(t<<2)|0,s=c[f>>2]|0,c[f>>2]=g+n,s|0):0){a=q;b=r;d=s;f=t;do{u=a&8191;x=xJ(a|0,b|0,16)|0;E()|0;f=(f|0)==(u|0)?x&8191:u;u=967184+(f<<3)|0;x=u;w=a;a=c[x>>2]|0;v=b;b=c[x+4>>2]|0;c[u>>2]=w;c[u+4>>2]=v;u=1032720+(f<<2)|0;v=d;d=c[u>>2]|0;c[u>>2]=v}while((d|0)!=0)}if(g>>>0<63)g=g+1|0;else break}}}while((m|0)!=64);k=k+4|0}while((k|0)!=14192);return}function je(b,e,f,g,h,i){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;F=Ia;Ia=Ia+144|0;r=F+142|0;q=F+141|0;D=F+140|0;C=F;B=f&1;y=C+60|0;z=C+8|0;c[C>>2]=29484;c[y>>2]=29504;c[C+4>>2]=0;Ol(C+60|0,z);c[C+132>>2]=0;c[C+136>>2]=-1;c[C>>2]=33772;c[y>>2]=33792;Tl(z);c[z>>2]=33340;A=C+40|0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[A+12>>2]=0;c[C+56>>2]=8;Fc(z,e);DJ(b|0,0,5368)|0;DJ(h|0,0,432)|0;f=b+400|0;e=1024;while(1){c[f>>2]=64;e=e+-1|0;if(!e)break;else f=f+4|0}x=b+5352|0;c[x>>2]=h;c[b+5364>>2]=g;w=b+5360|0;c[w>>2]=(g|0)<8?g:0;p=C+(c[(c[C>>2]|0)+-12>>2]|0)+4|0;c[p>>2]=c[p>>2]&-4097;p=b+256|0;l=b+5344|0;k=b+4560|0;g=56;a:while(1){h=161184+(g+-1<<3)|0;while(1){u=ke(C,D)|0;f=a[D>>0]|0;if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0)break a;e=f&255;if(Wh(e)|0)break a;e=e+-48|0;if(e>>>0<10){v=8;break}if(f<<24>>24==47){v=11;break}f=lw(1181124,f,0)|0;if((f|0)!=-1){v=13;break}e=(c[w>>2]|0)==3;f=a[D>>0]|0;if(!(e&f<<24>>24==126)){if(e&f<<24>>24==91){f=91;break a}}else{s=h;e=k;t=c[e+4>>2]|c[s+4>>2];u=k;c[u>>2]=c[e>>2]|c[s>>2];c[u+4>>2]=t}}if((v|0)==8){v=0;f=e+g|0}else if((v|0)==11){v=0;if((g|0)<16&(c[w>>2]|0)==3){f=47;break}else f=g+-16|0}else if((v|0)==13){v=0;c[b+(g<<2)>>2]=f;s=161184+(g<<3)|0;e=s;h=p;u=c[h+4>>2]|c[e+4>>2];t=p;c[t>>2]=c[h>>2]|c[e>>2];c[t+4>>2]=u;t=b+256+((f&7)<<3)|0;u=s;e=t;h=c[e+4>>2]|c[u+4>>2];c[t>>2]=c[e>>2]|c[u>>2];c[t+4>>2]=h;t=b+320+((3?f>>3:f)<<3)|0;h=t;u=c[h+4>>2]|c[s+4>>2];c[t>>2]=c[h>>2]|c[s>>2];c[t+4>>2]=u;t=b+336+(f<<2)|0;u=c[t>>2]|0;c[t>>2]=u+1;c[b+4568+(g<<2)>>2]=u;c[b+400+(f<<8)+(u<<2)>>2]=g;u=b+336+((f&-8)<<2)|0;c[u>>2]=(c[u>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+(c[1065488+((c[w>>2]|0)*4160|0)+(f*260|0)+(g<<2)>>2]|0);f=g+1|0}g=f}b:do if(!(Wh(f&255)|0))while(1){u=ke(C,D)|0;if(c[u+(c[(c[u>>2]|0)+-12>>2]|0)+16>>2]&5|0)break b;f=a[D>>0]|0;if(Wh(f&255)|0)break b;if(f<<24>>24!=93?(m=lw(1181124,f,0)|0,(m|0)!=-1):0){u=3?m>>3:m;t=b+4496+(u<<5)+((m&7)<<2)|0;c[t>>2]=(c[t>>2]|0)+1;u=b+4496+(u<<5)|0;c[u>>2]=(c[u>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+(c[1077968+(m*260|0)+256>>2]|0)}}while(0);ke(C,D)|0;u=b+5340|0;c[u>>2]=(a[D>>0]|0)!=119&1;ke(C,D)|0;while(1){t=ke(C,D)|0;if(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0)break;k=d[D>>0]|0;if(Wh(k)|0)break;l=(Qj(k)|0)!=0;m=l&1;h=c[w>>2]|0;c:do if((h|0)==4){e=m<<3;f=e|6;if(c[b+336+(f<<2)>>2]|0){o=c[b+400+(f<<8)>>2]|0;n=l?7:0;j=e;v=38}}else{g=l?7:0;j=m<<3;e=j|6;f=b+400+(e<<8)|0;if((h|0)!=1){o=c[f>>2]|0;n=g;v=38;break}f=c[f>>2]|0;if((f|0)==64){o=64;n=g;v=38}else{e=b+400+(e<<8)+4|0;while(1){if(((3?f>>3:f)|0)==(g|0)){o=f;n=g;v=38;break c}f=c[e>>2]|0;if((f|0)==64){o=64;n=g;v=38;break}else e=e+4|0}}}while(0);d:do if((v|0)==38?(v=0,((3?o>>3:o)|0)==(n|0)):0){e=j|4;f=Sj(k)|0;t=f&255;a[D>>0]=t;e:do switch(t<<24>>24){case 75:{f=l?63:7;if((f|0)==(o|0))break d;while(1){if((c[b+(f<<2)>>2]|0)==(e|0))break e;f=f+-1|0;if((f|0)==(o|0))break d}}case 81:{f=l?56:0;if((f|0)==(o|0))break d;while(1){if((c[b+(f<<2)>>2]|0)==(e|0))break e;f=f+1|0;if((f|0)==(o|0))break d}}default:{f=(f&255)+-65|0;if(f>>>0>=8)break d;f=f+(n<<3)|0}}while(0);if((f|0)!=(o|0))le(b,m,o,f)}while(0)}t=ke(C,r)|0;do if(((c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0)==0?((a[r>>0]|0)+-97&255)<8:0)?(t=ke(C,q)|0,(c[t+(c[(c[t>>2]|0)+-12>>2]|0)+16>>2]&5|0)==0):0){s=c[u>>2]|0;t=(s|0)==0;f=a[q>>0]|0;if(t){if(f<<24>>24!=54){v=77;break}}else if(f<<24>>24!=51){v=77;break}g=((f&255)<<3)+-489+(d[r>>0]|0)|0;f=c[x>>2]|0;r=f+44|0;c[r>>2]=g;k=p;j=c[k>>2]|0;k=c[k+4>>2]|0;I=239328+(g<<3)|0;m=b+320|0;h=b+264|0;e=c[h>>2]|0;h=c[h+4>>2]|0;l=e&c[m>>2];m=h&c[m+4>>2];K=238816+(g<<3)|0;o=b+328|0;n=c[o>>2]&e;o=c[o+4>>2]&h;q=235744+(g<<3)|0;J=b+272|0;N=n&c[K>>2]|l&c[I>>2]|c[J>>2]&c[q>>2];q=o&c[K+4>>2]|m&c[I+4>>2]|c[J+4>>2]&c[q+4>>2];J=c[239840+(g*24|0)+16>>2]|0;I=239840+(g*24|0)|0;K=239840+(g*24|0)+8|0;K=vJ(c[I>>2]&j|0,c[I+4>>2]&k|0,c[K>>2]|0,c[K+4>>2]|0)|0;K=xJ(K|0,E()|0,52)|0;E()|0;K=J+(K<<3)|0;J=b+288|0;I=b+296|0;M=c[I>>2]|0;I=c[I+4>>2]|0;N=N|(M|c[J>>2])&c[K>>2];K=q|(I|c[J+4>>2])&c[K+4>>2];J=c[241376+(g*24|0)+16>>2]|0;q=241376+(g*24|0)|0;H=241376+(g*24|0)+8|0;H=vJ(c[q>>2]&j|0,c[q+4>>2]&k|0,c[H>>2]|0,c[H+4>>2]|0)|0;H=xJ(H|0,E()|0,55)|0;E()|0;H=J+(H<<3)|0;J=b+280|0;q=237792+(g<<3)|0;p=c[q>>2]|0;q=c[q+4>>2]|0;G=b+304|0;L=b+320+(s<<3)|0;if(!((c[L>>2]&e&(N|(c[J>>2]|M)&c[H>>2]|c[G>>2]&p)|0)==0?(c[L+4>>2]&h&(K|(c[J+4>>2]|I)&c[H+4>>2]|c[G+4>>2]&q)|0)==0:0)?(N=s^1,M=b+320+(N<<3)|0,N=161184+(g+((N|0)==0?8:-8)<<3)|0,!((c[M>>2]&e&c[N>>2]|0)==0?(c[M+4>>2]&h&c[N+4>>2]|0)==0:0)):0){h=161184+(g<<3)|0;e=c[h>>2]|0;h=c[h+4>>2]|0;if(!((e&j|0)==0&(h&k|0)==0)){c[r>>2]=64;break}if(t){N=yJ(e|0,h|0,8)|0;if(!((N&j|0)==0&((E()|0)&k|0)==0)){c[r>>2]=64;break}N=xJ(e|0,h|0,8)|0;if((n&N|0)==0&(o&(E()|0)|0)==0){c[r>>2]=64;break}}else if((s|0)==1){N=xJ(e|0,h|0,8)|0;if(!((N&j|0)==0&((E()|0)&k|0)==0)){c[r>>2]=64;break}N=yJ(e|0,h|0,8)|0;if((l&N|0)==0&(m&(E()|0)|0)==0){c[r>>2]=64;break}}if((c[w>>2]|0)!=2)break;N=161184+(c[b+400+((s<<3|6)<<8)>>2]<<3)|0;if((c[N>>2]&p|0)==0?(c[N+4>>2]&q|0)==0:0)break;c[r>>2]=64;break}c[r>>2]=64}else v=77;while(0);if((v|0)==77){f=c[x>>2]|0;c[f+44>>2]=64}c[f+36>>2]=0;c[f+40>>2]=0;N=C+(c[(c[C>>2]|0)+-12>>2]|0)+4|0;c[N>>2]=c[N>>2]|4096;ke(C,D)|0;if((c[w>>2]|0)==7?($l(C)|0)==43:0){N=51-(d[D>>0]|0)|0;N=(N|0)<3?N:3;c[(c[x>>2]|0)+36>>2]=(N|0)>0?N:0;ke(ke(C,D)|0,D)|0;N=51-(d[D>>0]|0)|0;N=(N|0)<3?N:3;f=c[x>>2]|0;c[f+40>>2]=(N|0)>0?N:0}else{am(C,a[D>>0]|0)|0;f=c[x>>2]|0}e=C+(c[(c[C>>2]|0)+-12>>2]|0)+4|0;c[e>>2]=c[e>>2]|4096;e=b+5336|0;Zl(Zl(C,f+28|0)|0,e)|0;if((c[w>>2]|0)==7?(N=ke(C,D)|0,(a[D>>0]|0)==43?(c[N+(c[(c[N>>2]|0)+-12>>2]|0)+16>>2]&5|0)==0:0):0){ke(C,D)|0;N=a[D>>0]|0;N=(N&255)>51?3:(N&255)+-48|0;c[(c[x>>2]|0)+36>>2]=(N|0)>0?N:0;ke(ke(C,D)|0,D)|0;N=a[D>>0]|0;N=(N&255)>51?3:(N&255)+-48|0;c[(c[x>>2]|0)+40>>2]=(N|0)>0?N:0}N=(c[e>>2]<<1)+-2|0;c[e>>2]=((N|0)>0?N:0)|(c[u>>2]|0)==1;a[b+5356>>0]=B;c[b+5348>>2]=i;me(b,c[x>>2]|0);c[C>>2]=33772;c[y>>2]=33792;c[z>>2]=33340;if((a[A+11>>0]|0)>=0){Dk(z);pl(C,33804);yk(y);Ia=F;return b|0}Jv(c[A>>2]|0);Dk(z);pl(C,33804);yk(y);Ia=F;return b|0}function ke(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;h=i;Vl(h,b,0);if(!(a[h>>0]|0)){Ia=i;return b|0}f=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;h=f+12|0;g=c[h>>2]|0;if((g|0)==(c[f+16>>2]|0)){f=La[c[(c[f>>2]|0)+40>>2]&127](f)|0;if((f|0)==-1){e=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(e,c[e+16>>2]|6);Ia=i;return b|0}}else{c[h>>2]=g+1;f=d[g>>0]|0}a[e>>0]=f;Ia=i;return b|0}function le(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=(d|0)<(e|0);h=1<<(b<<1|(i^1)&1);g=(c[a+5352>>2]|0)+24|0;c[g>>2]=c[g>>2]|h;g=a+4824+(d<<2)|0;c[g>>2]=c[g>>2]|h;g=a+4824+(e<<2)|0;c[g>>2]=c[g>>2]|h;c[a+5080+(h<<2)>>2]=d;c[a+5144+(h<<2)>>2]=e;g=b*56|0;b=(i?5:3)|g;f=(b|0)>(e|0)?b:e;h=a+5208+(h<<3)|0;b=(b|0)<(e|0)?b:e;while(1){if(!((b|0)==(d|0)|(b|0)==(e|0))){k=161184+(b<<3)|0;l=h;j=c[l+4>>2]|c[k+4>>2];a=h;c[a>>2]=c[l>>2]|c[k>>2];c[a+4>>2]=j}if((b|0)<(f|0))b=b+1|0;else break}a=(i?6:2)|g;b=(a|0)>(d|0)?a:d;a=(a|0)<(d|0)?a:d;while(1){if(!((a|0)==(d|0)|(a|0)==(e|0))){j=161184+(a<<3)|0;i=h;k=c[i+4>>2]|c[j+4>>2];l=h;c[l>>2]=c[i>>2]|c[j>>2];c[l+4>>2]=k}if((a|0)<(b|0))a=a+1|0;else break}return}function me(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;m=a+5360|0;j=964880+(c[m>>2]<<3)|0;k=c[j>>2]|0;j=c[j+4>>2]|0;l=b+8|0;n=l;c[n>>2]=k;c[n+4>>2]=j;n=b+48|0;i=n;c[i>>2]=k;c[i+4>>2]=j;i=1174456;j=c[i+4>>2]|0;k=b;c[k>>2]=c[i>>2];c[k+4>>2]=j;c[b+20>>2]=0;c[b+16>>2]=0;ne(a,b);m=c[m>>2]|0;switch(m|0){case 4:{d=c[a+5340>>2]|0;e=d<<3|6;if(!(c[a+336+(e<<2)>>2]|0)){d=0;e=0}else g=6;break}case 1:{d=0;e=0;break}case 2:{d=c[a+5340>>2]|0;f=d<<3;e=f|6;if((c[a+336+(e<<2)>>2]|0)!=0?(j=237792+(c[a+400+((f^14)<<8)>>2]<<3)|0,i=a+320+(d<<3)|0,k=a+304|0,(c[i>>2]&c[j>>2]&c[k>>2]|0)==0?(c[i+4>>2]&c[j+4>>2]&c[k+4>>2]|0)==0:0):0)g=6;else{d=0;e=0}break}default:{e=c[a+5340>>2]|0;d=e;e=e<<3|6;g=6}}if((g|0)==6){k=c[a+400+(e<<8)>>2]|0;j=a+256|0;q=c[j>>2]|0;j=c[j+4>>2]|0;f=239328+(k<<3)|0;o=a+320|0;h=a+264|0;p=c[h>>2]|0;h=c[h+4>>2]|0;r=238816+(k<<3)|0;i=a+328|0;e=235744+(k<<3)|0;g=a+272|0;p=c[r>>2]&p&c[i>>2]|c[o>>2]&c[f>>2]&p|c[g>>2]&c[e>>2];e=c[r+4>>2]&h&c[i+4>>2]|c[o+4>>2]&c[f+4>>2]&h|c[g+4>>2]&c[e+4>>2];g=c[239840+(k*24|0)+16>>2]|0;h=239840+(k*24|0)|0;f=239840+(k*24|0)+8|0;f=vJ(c[h>>2]&q|0,c[h+4>>2]&j|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=xJ(f|0,E()|0,52)|0;E()|0;f=g+(f<<3)|0;g=a+288|0;h=a+296|0;o=c[h>>2]|0;h=c[h+4>>2]|0;p=p|(o|c[g>>2])&c[f>>2];f=e|(h|c[g+4>>2])&c[f+4>>2];g=c[241376+(k*24|0)+16>>2]|0;e=241376+(k*24|0)|0;i=241376+(k*24|0)+8|0;i=vJ(c[e>>2]&q|0,c[e+4>>2]&j|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,55)|0;E()|0;i=g+(i<<3)|0;g=a+280|0;k=237792+(k<<3)|0;j=a+304|0;e=a+320+((d^1)<<3)|0;d=(p|(c[g>>2]|o)&c[i>>2]|c[j>>2]&c[k>>2])&c[e>>2];e=(f|(c[g+4>>2]|h)&c[i+4>>2]|c[j+4>>2]&c[k+4>>2])&c[e+4>>2]}r=b+56|0;c[r>>2]=d;c[r+4>>2]=e;e=a+256|0;d=c[e>>2]|0;e=c[e+4>>2]|0;if(!((d|0)==0&(e|0)==0)){g=n;f=c[g>>2]|0;g=c[g+4>>2]|0;do{r=qa(d|0,e|0,0)|0;E()|0;q=pJ(d|0,e|0,-1,-1)|0;d=q&d;e=(E()|0)&e;r=956496+(c[a+(r<<2)>>2]<<9)+(r<<3)|0;f=f^c[r>>2];g=g^c[r+4>>2];r=n;c[r>>2]=f;c[r+4>>2]=g}while(!((d|0)==0&(e|0)==0))}d=c[b+44>>2]|0;if((d|0)!=64){p=964688+((d&7)<<3)|0;o=n;q=c[o+4>>2]^c[p+4>>2];r=n;c[r>>2]=c[o>>2]^c[p>>2];c[r+4>>2]=q}if((c[a+5340>>2]|0)==1){f=1174448;r=n;d=c[r>>2]^c[f>>2];f=c[r+4>>2]^c[f+4>>2];r=n;c[r>>2]=d;c[r+4>>2]=f}else{f=n;d=c[f>>2]|0;f=c[f+4>>2]|0}g=964752+(c[b+24>>2]<<3)|0;e=d^c[g>>2];d=f^c[g+4>>2];g=n;c[g>>2]=e;c[g+4>>2]=d;g=a+264|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if(!((f|0)==0&(g|0)==0)){i=b;h=c[i>>2]|0;i=c[i+4>>2]|0;do{r=qa(f|0,g|0,0)|0;E()|0;q=pJ(f|0,g|0,-1,-1)|0;f=q&f;g=(E()|0)&g;r=956496+(c[a+(r<<2)>>2]<<9)+(r<<3)|0;h=h^c[r>>2];i=i^c[r+4>>2];r=b;c[r>>2]=h;c[r+4>>2]=i}while(!((f|0)==0&(g|0)==0))}a:do if((m|0)==3){k=14144;while(1){f=c[k>>2]|0;h=f&7;j=f&255;switch(j&7){case 1:case 6:break;default:{q=z(c[14192+(f<<2)>>2]|0,c[a+336+(f<<2)>>2]|0)|0;r=b+16+((3?f>>3:f)<<2)|0;c[r>>2]=(c[r>>2]|0)+q}}g=c[a+336+(f<<2)>>2]|0;if((g|0)>0){i=0;do{p=956496+(f<<9)+(i<<3)|0;o=l;q=c[o+4>>2]^c[p+4>>2];r=l;c[r>>2]=c[o>>2]^c[p>>2];c[r+4>>2]=q;i=i+1|0}while((i|0)<(g|0))}switch(j&7){case 1:case 6:break;default:{q=3?f>>3:f;r=b+16+(q<<2)|0;c[r>>2]=(z(c[14192+(f<<2)>>2]|0,c[a+4496+(q<<5)+(h<<2)>>2]|0)|0)+(c[r>>2]|0)}}r=964944+(f*136|0)+(c[a+4496+((3?f>>3:f)<<5)+(h<<2)>>2]<<3)|0;e=e^c[r>>2];d=d^c[r+4>>2];r=n;c[r>>2]=e;c[r+4>>2]=d;k=k+4|0;if((k|0)==14192)break a}}else{j=14144;while(1){f=c[j>>2]|0;switch(f&7){case 1:case 6:break;default:{q=z(c[14192+(f<<2)>>2]|0,c[a+336+(f<<2)>>2]|0)|0;r=b+16+((3?f>>3:f)<<2)|0;c[r>>2]=(c[r>>2]|0)+q}}g=c[a+336+(f<<2)>>2]|0;if((g|0)>0){i=l;h=c[i>>2]|0;i=c[i+4>>2]|0;k=0;do{r=956496+(f<<9)+(k<<3)|0;h=h^c[r>>2];i=i^c[r+4>>2];r=l;c[r>>2]=h;c[r+4>>2]=i;k=k+1|0}while((k|0)<(g|0))}j=j+4|0;if((j|0)==14192)break a}}while(0);if((m|0)!=7)return;q=967120+(c[b+36>>2]<<3)|0;o=e^c[q>>2];q=d^c[q+4>>2];p=n;c[p>>2]=o;c[p+4>>2]=q;p=967152+(c[b+40>>2]<<3)|0;q=q^c[p+4>>2];r=n;c[r>>2]=o^c[p>>2];c[r+4>>2]=q;return}function ne(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=c[a+5360>>2]|0;a:do switch(t|0){case 1:{d=b+336|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[d+24>>2]=0;c[d+28>>2]=0;d=b+376|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));return}case 2:{d=c[a+5340>>2]|0;e=d<<3;if(c[a+336+((e|6)<<2)>>2]|0?(r=237792+(c[a+400+((e^14)<<8)>>2]<<3)|0,q=a+320+(d<<3)|0,s=a+304|0,(c[q>>2]&c[r>>2]&c[s>>2]|0)==0?(c[q+4>>2]&c[r+4>>2]&c[s+4>>2]|0)==0:0):0){f=22;break a}s=b+336|0;c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=0;c[s+24>>2]=0;c[s+28>>2]=0;break}case 4:{if((c[a+360>>2]|0)!=0?(h=a+328|0,g=c[h>>2]|0,h=c[h+4>>2]|0,q=c[a+1936>>2]|0,r=b+360|0,p=r,c[p>>2]=0,c[p+4>>2]=0,p=236768+(q<<3)|0,o=a+296|0,i=c[o>>2]|0,o=c[o+4>>2]|0,n=a+288|0,m=236256+(q<<3)|0,j=a+280|0,g=((c[j>>2]|i)&c[m>>2]|(c[n>>2]|i)&c[p>>2])&g,h=((c[j+4>>2]|o)&c[m+4>>2]|(c[n+4>>2]|o)&c[p+4>>2])&h,!((g|0)==0&(h|0)==0)):0){p=a+256|0;o=a+(q<<2)|0;e=0;d=0;m=0;n=0;while(1){j=qa(g|0,h|0,0)|0;E()|0;i=pJ(g|0,h|0,-1,-1)|0;g=i&g;h=(E()|0)&h;i=162016+(q<<9)+(j<<3)|0;u=p;f=c[u>>2]&c[i>>2];i=c[u+4>>2]&c[i+4>>2];if(!((f|0)==0&(i|0)==0)?(u=pJ(f|0,i|0,-1,-1)|0,(u&f|0)==0&((E()|0)&i|0)==0):0){e=f|e;d=i|d;u=c[o>>2]|0;u=a+320+((3?u>>3:u)<<3)|0;if((c[u>>2]&f|0)==0?(c[u+4>>2]&i|0)==0:0){f=m;i=n}else{i=161184+(j<<3)|0;f=c[i>>2]|m;i=c[i+4>>2]|n;u=r;c[u>>2]=f;c[u+4>>2]=i}}else{f=m;i=n}if((g|0)==0&(h|0)==0)break;else{m=f;n=i}}}else{e=0;d=0}o=b+352|0;u=o;c[u>>2]=e;c[u+4>>2]=d;u=b+336|0;c[u>>2]=e;c[u+4>>2]=d;if((c[a+392>>2]|0)!=0?(k=a+320|0,l=c[k>>2]|0,k=c[k+4>>2]|0,s=c[a+3984>>2]|0,u=o,c[u>>2]=0,c[u+4>>2]=0,u=236768+(s<<3)|0,r=a+296|0,m=c[r>>2]|0,r=c[r+4>>2]|0,q=a+288|0,p=236256+(s<<3)|0,n=a+280|0,l=((c[n>>2]|m)&c[p>>2]|(c[q>>2]|m)&c[u>>2])&l,k=((c[n+4>>2]|r)&c[p+4>>2]|(c[q+4>>2]|r)&c[u+4>>2])&k,!((l|0)==0&(k|0)==0)):0){n=a+256|0;m=a+(s<<2)|0;d=0;e=0;i=0;j=0;while(1){f=qa(l|0,k|0,0)|0;E()|0;h=pJ(l|0,k|0,-1,-1)|0;l=h&l;k=(E()|0)&k;h=162016+(s<<9)+(f<<3)|0;u=n;g=c[u>>2]&c[h>>2];h=c[u+4>>2]&c[h+4>>2];if(!((g|0)==0&(h|0)==0)?(u=pJ(g|0,h|0,-1,-1)|0,(u&g|0)==0&((E()|0)&h|0)==0):0){d=g|d;e=h|e;u=c[m>>2]|0;u=a+320+((3?u>>3:u)<<3)|0;if((c[u>>2]&g|0)==0?(c[u+4>>2]&h|0)==0:0){f=i;g=j}else{g=161184+(f<<3)|0;f=c[g>>2]|i;g=c[g+4>>2]|j;u=o;c[u>>2]=f;c[u+4>>2]=g}}else{f=i;g=j}if((l|0)==0&(k|0)==0)break;else{i=f;j=g}}}else{d=0;e=0}f=b+360|0;c[f>>2]=d;c[f+4>>2]=e;f=36;break}default:f=22}while(0);if((f|0)==22){e=a+328|0;d=c[e>>2]|0;e=c[e+4>>2]|0;m=c[a+1936>>2]|0;p=b+360|0;u=p;c[u>>2]=0;c[u+4>>2]=0;u=236768+(m<<3)|0;q=a+296|0;o=q;j=c[o>>2]|0;o=c[o+4>>2]|0;r=a+288|0;n=r;l=236256+(m<<3)|0;s=a+280|0;k=s;d=((c[k>>2]|j)&c[l>>2]|(c[n>>2]|j)&c[u>>2])&d;e=((c[k+4>>2]|o)&c[l+4>>2]|(c[n+4>>2]|o)&c[u+4>>2])&e;if((d|0)==0&(e|0)==0){e=0;d=0}else{o=a+256|0;n=a+(m<<2)|0;l=d;k=e;e=0;d=0;i=0;j=0;while(1){f=qa(l|0,k|0,0)|0;E()|0;h=pJ(l|0,k|0,-1,-1)|0;l=h&l;k=(E()|0)&k;h=162016+(m<<9)+(f<<3)|0;u=o;g=c[u>>2]&c[h>>2];h=c[u+4>>2]&c[h+4>>2];if(!((g|0)==0&(h|0)==0)?(u=pJ(g|0,h|0,-1,-1)|0,(u&g|0)==0&((E()|0)&h|0)==0):0){e=g|e;d=h|d;u=c[n>>2]|0;u=a+320+((3?u>>3:u)<<3)|0;if((c[u>>2]&g|0)==0?(c[u+4>>2]&h|0)==0:0){f=i;g=j}else{g=161184+(f<<3)|0;f=c[g>>2]|i;g=c[g+4>>2]|j;u=p;c[u>>2]=f;c[u+4>>2]=g}}else{f=i;g=j}if((l|0)==0&(k|0)==0)break;else{i=f;j=g}}}o=b+336|0;c[o>>2]=e;c[o+4>>2]=d;e=a+320|0;d=c[e>>2]|0;e=c[e+4>>2]|0;o=c[a+3984>>2]|0;p=b+352|0;u=p;c[u>>2]=0;c[u+4>>2]=0;u=236768+(o<<3)|0;m=c[q>>2]|0;q=c[q+4>>2]|0;n=236256+(o<<3)|0;d=((c[s>>2]|m)&c[n>>2]|(c[r>>2]|m)&c[u>>2])&d;e=((c[s+4>>2]|q)&c[n+4>>2]|(c[r+4>>2]|q)&c[u+4>>2])&e;if((d|0)==0&(e|0)==0){d=0;e=0;f=36}else{n=a+256|0;m=a+(o<<2)|0;l=d;k=e;d=0;e=0;i=0;j=0;while(1){f=qa(l|0,k|0,0)|0;E()|0;h=pJ(l|0,k|0,-1,-1)|0;l=h&l;k=(E()|0)&k;h=162016+(o<<9)+(f<<3)|0;u=n;g=c[u>>2]&c[h>>2];h=c[u+4>>2]&c[h+4>>2];if(!((g|0)==0&(h|0)==0)?(u=pJ(g|0,h|0,-1,-1)|0,(u&g|0)==0&((E()|0)&h|0)==0):0){d=g|d;e=h|e;u=c[m>>2]|0;u=a+320+((3?u>>3:u)<<3)|0;if((c[u>>2]&g|0)==0?(c[u+4>>2]&h|0)==0:0){f=i;g=j}else{g=161184+(f<<3)|0;f=c[g>>2]|i;g=c[g+4>>2]|j;u=p;c[u>>2]=f;c[u+4>>2]=g}}else{f=i;g=j}if((l|0)==0&(k|0)==0){f=36;break}else{i=f;j=g}}}}if((f|0)==36){u=b+344|0;c[u>>2]=d;c[u+4>>2]=e;if((t|0)==4?(c[a+336+((c[a+5340>>2]<<3^14)<<2)>>2]|0)==0:0){d=b+376|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));return}d=c[a+5340>>2]|0}e=d^1;d=c[a+400+((e<<3|6)<<8)>>2]|0;if((t|0)==2&(d|0)==64){d=b+376|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));return}else{u=238816+(e<<9)+(d<<3)|0;r=c[u+4>>2]|0;s=b+376|0;c[s>>2]=c[u>>2];c[s+4>>2]=r;s=235744+(d<<3)|0;r=c[s+4>>2]|0;u=b+384|0;c[u>>2]=c[s>>2];c[u+4>>2]=r;u=a+256|0;r=u;s=c[241376+(d*24|0)+16>>2]|0;q=241376+(d*24|0)|0;a=241376+(d*24|0)+8|0;a=vJ(c[q>>2]&c[r>>2]|0,c[q+4>>2]&c[r+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=xJ(a|0,E()|0,55)|0;E()|0;a=s+(a<<3)|0;s=c[a>>2]|0;a=c[a+4>>2]|0;r=b+392|0;c[r>>2]=s;c[r+4>>2]=a;r=c[239840+(d*24|0)+16>>2]|0;q=239840+(d*24|0)|0;t=239840+(d*24|0)+8|0;t=vJ(c[q>>2]&c[u>>2]|0,c[q+4>>2]&c[u+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=xJ(t|0,E()|0,52)|0;E()|0;t=r+(t<<3)|0;r=c[t>>2]|0;t=c[t+4>>2]|0;u=b+400|0;c[u>>2]=r;c[u+4>>2]=t;u=b+408|0;c[u>>2]=r|s;c[u+4>>2]=t|a;u=b+416|0;c[u>>2]=0;c[u+4>>2]=0;return}}function oe(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=33772;f=b+60|0;c[f>>2]=33792;d=b+8|0;c[d>>2]=33340;e=b+40|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);pl(b,33804);yk(f);return}function pe(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=33772;f=b+60|0;c[f>>2]=33792;d=b+8|0;c[d>>2]=33340;e=b+40|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);pl(b,33804);yk(f);Jv(b);return}function qe(b){b=b|0;var d=0,e=0,f=0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;c[b>>2]=33772;f=b+60|0;c[f>>2]=33792;d=b+8|0;c[d>>2]=33340;e=b+40|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);pl(b,33804);yk(f);return}function re(b){b=b|0;var d=0,e=0,f=0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;c[b>>2]=33772;f=b+60|0;c[f>>2]=33792;d=b+8|0;c[d>>2]=33340;e=b+40|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);pl(b,33804);yk(f);Jv(b);return}function se(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=f;c[o>>2]=0;c[o+4>>2]=0;o=236768+(e<<3)|0;n=a+296|0;j=c[n>>2]|0;n=c[n+4>>2]|0;m=a+288|0;l=236256+(e<<3)|0;k=a+280|0;b=((c[k>>2]|j)&c[l>>2]|(c[m>>2]|j)&c[o>>2])&b;d=((c[k+4>>2]|n)&c[l+4>>2]|(c[m+4>>2]|n)&c[o+4>>2])&d;if((b|0)==0&(d|0)==0){e=0;a=0;D(e|0);return a|0}o=a+256|0;n=a+(e<<2)|0;g=0;h=0;m=b;l=d;b=0;d=0;do{i=qa(m|0,l|0,0)|0;E()|0;k=pJ(m|0,l|0,-1,-1)|0;m=k&m;l=(E()|0)&l;k=162016+(e<<9)+(i<<3)|0;p=o;j=c[p>>2]&c[k>>2];k=c[p+4>>2]&c[k+4>>2];if(!((j|0)==0&(k|0)==0)?(p=pJ(j|0,k|0,-1,-1)|0,(p&j|0)==0&((E()|0)&k|0)==0):0){b=j|b;d=k|d;p=c[n>>2]|0;p=a+320+((3?p>>3:p)<<3)|0;if(!((c[p>>2]&j|0)==0?(c[p+4>>2]&k|0)==0:0)){p=161184+(i<<3)|0;g=g|c[p>>2];h=h|c[p+4>>2];p=f;c[p>>2]=g;c[p+4>>2]=h}}}while(!((m|0)==0&(l|0)==0));D(d|0);return b|0}function te(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=Ia;Ia=Ia+96|0;p=q;o=q+84|0;j=q+72|0;k=q+60|0;l=q+48|0;m=q+36|0;n=q+24|0;Vv(p,d,(lw(d,118,0)|0)+1|0,-1,d);i=p+12|0;Vv(i,d,0,lw(d,118,0)|0,d);h=p+(e*12|0)|0;d=a[h+11>>0]|0;if(d<<24>>24<0){d=c[h>>2]|0;e=d+(c[p+(e*12|0)+4>>2]|0)|0}else{e=h+(d&255)|0;d=h}if((d|0)!=(e|0)){h=d;while(1){a[d>>0]=Uj(a[h>>0]|0)|0;h=h+1|0;if((h|0)==(e|0))break;else d=d+1|0}}zw(n,42640,p);h=a[p+11>>0]|0;fw(n,56-(h<<24>>24<0?c[p+4>>2]|0:h&255)&255);c[m>>2]=c[n>>2];c[m+4>>2]=c[n+4>>2];c[m+8>>2]=c[n+8>>2];c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;h=ew(m,42643)|0;c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];c[l+8>>2]=c[h+8>>2];c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;h=i+11|0;d=a[h>>0]|0;r=d<<24>>24<0;e=p+16|0;i=dw(l,r?c[i>>2]|0:i,r?c[e>>2]|0:d&255)|0;c[k>>2]=c[i>>2];c[k+4>>2]=c[i+4>>2];c[k+8>>2]=c[i+8>>2];c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;i=a[h>>0]|0;fw(k,56-(i<<24>>24<0?c[e>>2]|0:i&255)&255);c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];c[j+8>>2]=c[k+8>>2];c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;i=ew(j,42653)|0;c[o>>2]=c[i>>2];c[o+4>>2]=c[i+4>>2];c[o+8>>2]=c[i+8>>2];c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;if((a[j+11>>0]|0)<0)Jv(c[j>>2]|0);if((a[k+11>>0]|0)<0)Jv(c[k>>2]|0);if((a[l+11>>0]|0)<0)Jv(c[l>>2]|0);if((a[m+11>>0]|0)<0)Jv(c[m>>2]|0);if((a[n+11>>0]|0)<0)Jv(c[n>>2]|0);h=je(b,o,0,f,g,0)|0;if((a[o+11>>0]|0)<0)Jv(c[o>>2]|0);d=p+12|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[p+11>>0]|0)>=0){Ia=q;return h|0}Jv(c[p>>2]|0);Ia=q;return h|0}function ue(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;h=239328+(b<<3)|0;i=a+320|0;f=a+264|0;j=c[f>>2]|0;f=c[f+4>>2]|0;m=238816+(b<<3)|0;k=a+328|0;l=235744+(b<<3)|0;g=a+272|0;j=c[m>>2]&j&c[k>>2]|c[i>>2]&c[h>>2]&j|c[g>>2]&c[l>>2];l=c[m+4>>2]&f&c[k+4>>2]|c[i+4>>2]&c[h+4>>2]&f|c[g+4>>2]&c[l+4>>2];g=c[239840+(b*24|0)+16>>2]|0;f=239840+(b*24|0)|0;h=239840+(b*24|0)+8|0;h=vJ(c[f>>2]&d|0,c[f+4>>2]&e|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=a+288|0;f=a+296|0;i=c[f>>2]|0;f=c[f+4>>2]|0;j=j|(i|c[g>>2])&c[h>>2];h=l|(f|c[g+4>>2])&c[h+4>>2];g=c[241376+(b*24|0)+16>>2]|0;l=241376+(b*24|0)|0;k=241376+(b*24|0)+8|0;d=vJ(c[l>>2]&d|0,c[l+4>>2]&e|0,c[k>>2]|0,c[k+4>>2]|0)|0;d=xJ(d|0,E()|0,55)|0;E()|0;d=g+(d<<3)|0;g=a+280|0;b=237792+(b<<3)|0;e=a+304|0;a=j|(c[g>>2]|i)&c[d>>2]|c[e>>2]&c[b>>2];D(h|(c[g+4>>2]|f)&c[d+4>>2]|c[e+4>>2]&c[b+4>>2]|0);return a|0}function ve(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0;k=c[a+5340>>2]|0;g=(b&61440|0)==36864;h=6?b>>>6:b;A=g?64:h&63;i=c[a+5360>>2]|0;a:do switch(i|0){case 6:{if(we(a,b)|0){a=0;return a|0}else f=0;break}case 4:{if(!(c[a+336+((k<<3|6)<<2)>>2]|0)){a=1;return a|0}else f=0;break}case 2:{n=c[a+400+((k<<3|6)<<8)>>2]|0;j=b&63;m=k^1;l=c[a+400+((m<<3|6)<<8)>>2]|0;e=237792+(l<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;if((c[a+(A<<2)>>2]&7|0)==6){t=161184+(j<<3)|0;if((c[t>>2]&d|0)==0?(c[t+4>>2]&e|0)==0:0){f=1;break a}else d=1;return d|0}t=161184+(n<<3)|0;if(!((c[t>>2]&d|0)==0?(c[t+4>>2]&e|0)==0:0)){a=1;return a|0}t=b&49152;d=(t|0)==32768;b:do if((t|0)==49152?1:(c[a+(j<<2)>>2]|0)==0){if(!d){f=1;break a}d=b&12288;e=d&16383;if(e<<16>>16<8192)switch(e<<16>>16){case 4096:{f=1;break a}default:{f=11;break b}}else switch(e<<16>>16){case 8192:{f=1;break a}default:{f=11;break b}}}else if(d){d=b&12288;f=11}else h=j;while(0);c:do if((f|0)==11){d=d&16383;if(d<<16>>16<8192)switch(d<<16>>16){case 4096:{h=j;break c}default:{}}else switch(d<<16>>16){case 8192:{h=j;break c}default:{}}h=A&120|b&7}while(0);g=237792+(j<<3)|0;f=a+256|0;d=c[f>>2]|0;f=c[f+4>>2]|0;z=a+264|0;e=(c[z>>2]^d)&c[g>>2];g=(c[z+4>>2]^f)&c[g+4>>2];z=161184+(l<<3)|0;if(!((c[z>>2]&e|0)==0?(c[z+4>>2]&g|0)==0:0)){a=1;return a|0}z=161184+(h<<3)|0;h=161184+(A<<3)|0;i=(c[z>>2]|e|c[h>>2])^d;h=(c[z+4>>2]|g|c[h+4>>2])^f;A=(c[a+5352>>2]|0)+56|0;if(!((c[A>>2]&i|0)==0?(c[A+4>>2]&h|0)==0:0)){a=0;return a|0}g=c[239840+(n*24|0)+16>>2]|0;e=239840+(n*24|0)|0;z=239840+(n*24|0)+8|0;z=xJ(vJ(c[e>>2]&i|0,c[e+4>>2]&h|0,c[z>>2]|0,c[z+4>>2]|0)|0,E()|0,52)|0;E()|0;z=g+(z<<3)|0;g=a+320+(m<<3)|0;e=a+296|0;d=c[e>>2]|0;e=c[e+4>>2]|0;A=a+288|0;f=c[g>>2]&i;g=c[g+4>>2]&h;if(!((f&c[z>>2]&(c[A>>2]|d)|0)==0?(g&c[z+4>>2]&(c[A+4>>2]|e)|0)==0:0)){a=0;return a|0}z=c[241376+(n*24|0)+16>>2]|0;y=241376+(n*24|0)|0;A=241376+(n*24|0)+8|0;A=xJ(vJ(c[y>>2]&i|0,c[y+4>>2]&h|0,c[A>>2]|0,c[A+4>>2]|0)|0,E()|0,55)|0;E()|0;A=z+(A<<3)|0;a=a+280|0;a=(f&c[A>>2]&(c[a>>2]|d)|0)==0?(g&c[A+4>>2]&(c[a+4>>2]|e)|0)==0:0;return a|0}case 1:{a=1;return a|0}default:f=0}while(0);e=b&49152;d:do if((e|0)==32768){d=b&12288;if(d<<16>>16<8192)switch(d<<16>>16){case 4096:break d;default:{}}else switch(d<<16>>16){case 8192:break d;default:{}}j=c[a+400+((k<<3|6)<<8)>>2]|0;z=b&63;e=a+256|0;d=161184+(A<<3)|0;i=161184+(z-((k|0)==0?8:-8)<<3)|0;z=161184+(z<<3)|0;h=c[z>>2]|c[d>>2]^c[e>>2]^c[i>>2];i=c[z+4>>2]|c[d+4>>2]^c[e+4>>2]^c[i+4>>2];e=c[239840+(j*24|0)+16>>2]|0;d=239840+(j*24|0)|0;z=239840+(j*24|0)+8|0;z=vJ(c[d>>2]&h|0,c[d+4>>2]&i|0,c[z>>2]|0,c[z+4>>2]|0)|0;z=xJ(z|0,E()|0,52)|0;E()|0;z=e+(z<<3)|0;e=a+320+((k^1)<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;g=a+296|0;f=c[g>>2]|0;g=c[g+4>>2]|0;A=a+288|0;if(!((d&c[z>>2]&(c[A>>2]|f)|0)==0?(e&c[z+4>>2]&(c[A+4>>2]|g)|0)==0:0)){a=0;return a|0}z=c[241376+(j*24|0)+16>>2]|0;y=241376+(j*24|0)|0;A=241376+(j*24|0)+8|0;A=vJ(c[y>>2]&h|0,c[y+4>>2]&i|0,c[A>>2]|0,c[A+4>>2]|0)|0;A=xJ(A|0,E()|0,55)|0;E()|0;A=z+(A<<3)|0;a=a+280|0;a=(c[A>>2]&d&(c[a>>2]|f)|0)==0?(c[A+4>>2]&e&(c[a+4>>2]|g)|0)==0:0;return a|0}while(0);if(g&(i|0)==3){if(!(c[a+4496+(k<<5)+((h&7)<<2)>>2]|0)){a=0;return a|0}a=(c[a+((b&63)<<2)>>2]|0)==0;return a|0}d=c[a+(A<<2)>>2]|0;if(((f?!((e|0)==49152|(d&7|0)!=6):0)?(u=b&63,t=237792+(c[a+400+((k<<3^14)<<8)>>2]<<3)|0,s=a+320+(k<<3)|0,x=a+304|0,w=c[x>>2]|0,x=c[x+4>>2]|0,!((c[s>>2]&c[t>>2]&w|0)==0?(c[s+4>>2]&c[t+4>>2]&x|0)==0:0)):0)?(v=k^1,t=237792+(c[a+400+((v<<3|6)<<8)>>2]<<3)|0,z=161184+(u<<3)|0,y=c[z>>2]|0,z=c[z+4>>2]|0,(y&c[t>>2]|0)==0?(z&c[t+4>>2]|0)==0:0):0){g=a+256|0;f=c[g>>2]|0;g=c[g+4>>2]|0;h=239328+(u<<3)|0;j=a+320|0;D=a+264|0;H=c[D>>2]|0;D=c[D+4>>2]|0;l=238816+(u<<3)|0;i=a+328|0;n=235744+(u<<3)|0;F=a+272|0;I=c[F>>2]|0;F=c[F+4>>2]|0;G=c[l>>2]&H&c[i>>2]|c[j>>2]&c[h>>2]&H|I&c[n>>2];n=c[l+4>>2]&D&c[i+4>>2]|c[j+4>>2]&c[h+4>>2]&D|F&c[n+4>>2];h=c[239840+(u*24|0)+16>>2]|0;j=239840+(u*24|0)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;l=239840+(u*24|0)+8|0;k=c[l>>2]|0;l=c[l+4>>2]|0;C=vJ(i&f|0,j&g|0,k|0,l|0)|0;C=xJ(C|0,E()|0,52)|0;E()|0;C=h+(C<<3)|0;m=a+288|0;t=a+296|0;s=c[t>>2]|0;t=c[t+4>>2]|0;b=s|c[m>>2];m=t|c[m+4>>2];G=G|b&c[C>>2];C=n|m&c[C+4>>2];n=c[241376+(u*24|0)+16>>2]|0;p=241376+(u*24|0)|0;o=c[p>>2]|0;p=c[p+4>>2]|0;r=241376+(u*24|0)+8|0;q=c[r>>2]|0;r=c[r+4>>2]|0;B=vJ(o&f|0,p&g|0,q|0,r|0)|0;B=xJ(B|0,E()|0,55)|0;E()|0;B=n+(B<<3)|0;e=a+280|0;s=c[e>>2]|s;t=c[e+4>>2]|t;u=237792+(u<<3)|0;e=a+320+(v<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;if(!((d&(I|H)&(G|s&c[B>>2]|c[u>>2]&w)|0)==0?(e&(F|D)&(C|t&c[B+4>>2]|c[u+4>>2]&x)|0)==0:0)){I=0;return I|0}H=161184+(A<<3)|0;F=c[H>>2]^f|y;H=c[H+4>>2]^g|z;I=vJ(F&i|0,H&j|0,k|0,l|0)|0;I=xJ(I|0,E()|0,52)|0;E()|0;I=h+(I<<3)|0;G=c[I>>2]&b;I=c[I+4>>2]&m;H=vJ(F&o|0,H&p|0,q|0,r|0)|0;H=xJ(H|0,E()|0,55)|0;E()|0;H=n+(H<<3)|0;I=((c[H>>2]&s|G)&d|0)==0?((c[H+4>>2]&t|I)&e|0)==0:0;return I|0}if((d&7|0)==6){if((e|0)==49152){I=1;return I|0}H=b&63;G=a+256|0;y=c[G>>2]|0;G=c[G+4>>2]|0;B=239328+(H<<3)|0;A=a+320|0;D=a+264|0;z=c[D>>2]|0;D=c[D+4>>2]|0;x=238816+(H<<3)|0;F=a+328|0;I=235744+(H<<3)|0;C=a+272|0;z=c[x>>2]&z&c[F>>2]|c[A>>2]&c[B>>2]&z|c[C>>2]&c[I>>2];I=c[x+4>>2]&D&c[F+4>>2]|c[A+4>>2]&c[B+4>>2]&D|c[C+4>>2]&c[I+4>>2];C=c[239840+(H*24|0)+16>>2]|0;D=239840+(H*24|0)|0;B=239840+(H*24|0)+8|0;B=vJ(c[D>>2]&y|0,c[D+4>>2]&G|0,c[B>>2]|0,c[B+4>>2]|0)|0;B=xJ(B|0,E()|0,52)|0;E()|0;B=C+(B<<3)|0;C=a+288|0;D=a+296|0;A=c[D>>2]|0;D=c[D+4>>2]|0;z=z|(A|c[C>>2])&c[B>>2];B=I|(D|c[C+4>>2])&c[B+4>>2];C=c[241376+(H*24|0)+16>>2]|0;I=241376+(H*24|0)|0;F=241376+(H*24|0)+8|0;F=vJ(c[I>>2]&y|0,c[I+4>>2]&G|0,c[F>>2]|0,c[F+4>>2]|0)|0;F=xJ(F|0,E()|0,55)|0;E()|0;F=C+(F<<3)|0;C=a+280|0;H=237792+(H<<3)|0;G=a+304|0;I=a+320+((k^1)<<3)|0;I=((z|(c[C>>2]|A)&c[F>>2]|c[G>>2]&c[H>>2])&c[I>>2]|0)==0?((B|(c[C+4>>2]|D)&c[F+4>>2]|c[G+4>>2]&c[H+4>>2])&c[I+4>>2]|0)==0:0;return I|0}else{I=(c[a+5352>>2]|0)+336+(k<<3)|0;H=161184+(A<<3)|0;if((c[H>>2]&c[I>>2]|0)==0?(c[H+4>>2]&c[I+4>>2]|0)==0:0){I=1;return I|0}I=194784+(A<<9)+((b&63)<<3)|0;H=161184+(c[a+400+((k<<3|6)<<8)>>2]<<3)|0;I=c[H>>2]&c[I>>2]|0?1:(c[H+4>>2]&c[I+4>>2]|0)!=0;return I|0}return 0}function we(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;o=b&61440;d=(o|0)==36864;e=6?b>>>6:b;r=d?64:e&63;q=b&63;a:do switch(c[a+5360>>2]|0){case 3:{if(d){a=(c[a+5352>>2]|0)+368+((e&7)<<3)|0;r=161184+(q<<3)|0;a=c[r>>2]&c[a>>2]|0?1:(c[r+4>>2]&c[a+4>>2]|0)!=0;return a|0}break}case 4:{if(!(c[a+336+((c[a+5340>>2]<<3^14)<<2)>>2]|0)){a=0;return a|0}break}case 2:{m=c[a+5340>>2]|0;d=m<<3;n=c[a+400+((d^14)<<8)>>2]|0;k=237792+(n<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;e=b&49152;l=(e|0)==32768;if((e|0)==49152){l=161184+(c[a+400+((d|6)<<8)>>2]<<3)|0;if((c[l>>2]&j|0)==0?(c[l+4>>2]&k|0)==0:0)break a;if(((3?n>>3:n)|0)==(m*7|0))break a;b=161184+((m*56|(q>>>0>r>>>0?6:2))<<3)|0;if(!((c[b>>2]&j|0)==0?(c[b+4>>2]&k|0)==0:0)){a=0;return a|0}g=a+256|0;e=c[g>>2]|0;g=c[g+4>>2]|0;l=239328+(n<<3)|0;i=a+320|0;o=a+264|0;h=c[o>>2]|0;o=c[o+4>>2]|0;d=238816+(n<<3)|0;p=a+328|0;f=235744+(n<<3)|0;b=a+272|0;h=c[d>>2]&h&c[p>>2]|c[i>>2]&c[l>>2]&h|c[b>>2]&c[f>>2];f=c[d+4>>2]&o&c[p+4>>2]|c[i+4>>2]&c[l+4>>2]&o|c[b+4>>2]&c[f+4>>2];b=c[239840+(n*24|0)+16>>2]|0;o=239840+(n*24|0)|0;l=239840+(n*24|0)+8|0;l=vJ(c[o>>2]&e|0,c[o+4>>2]&g|0,c[l>>2]|0,c[l+4>>2]|0)|0;l=xJ(l|0,E()|0,52)|0;E()|0;l=b+(l<<3)|0;b=a+288|0;o=a+296|0;i=c[o>>2]|0;o=c[o+4>>2]|0;h=h|(i|c[b>>2])&c[l>>2];l=f|(o|c[b+4>>2])&c[l+4>>2];b=c[241376+(n*24|0)+16>>2]|0;f=241376+(n*24|0)|0;p=241376+(n*24|0)+8|0;p=vJ(c[f>>2]&e|0,c[f+4>>2]&g|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=xJ(p|0,E()|0,55)|0;E()|0;p=b+(p<<3)|0;n=a+280|0;b=a+304|0;m=a+320+(m<<3)|0;r=161184+(r<<3)|0;a=161184+(q<<3)|0;a=(c[r>>2]^c[m>>2]^c[a>>2])&(h|(c[n>>2]|i)&c[p>>2]|c[b>>2]&j)|0?1:((c[r+4>>2]^c[m+4>>2]^c[a+4>>2])&(l|(c[n+4>>2]|o)&c[p+4>>2]|c[b+4>>2]&k)|0)!=0;return a|0}e=(c[a+(r<<2)>>2]&7|0)==6;if(e)d=q;else d=c[a+400+((d|6)<<8)>>2]|0;d=161184+(d<<3)|0;if(!((c[d>>2]&j|0)==0?(c[d+4>>2]&k|0)==0:0)){a=0;return a|0}if(e?(g=a+320+(m<<3)|0,f=c[g>>2]|0,g=c[g+4>>2]|0,i=a+304|0,h=c[i>>2]|0,i=c[i+4>>2]|0,!((f&j&h|0)==0&(g&k&i|0)==0)):0){l=a+256|0;r=161184+(r<<3)|0;e=c[r>>2]|0;r=c[r+4>>2]|0;x=161184+(q<<3)|0;z=e^c[l>>2]^c[x>>2];x=r^c[l+4>>2]^c[x+4>>2];l=239328+(n<<3)|0;w=a+320|0;o=a+264|0;u=c[o>>2]|0;o=c[o+4>>2]|0;v=c[w>>2]&c[l>>2]&u;l=c[w+4>>2]&c[l+4>>2]&o;w=238816+(n<<3)|0;m=a+328|0;u=c[w>>2]&u&c[m>>2];m=c[w+4>>2]&o&c[m+4>>2];o=235744+(n<<3)|0;w=a+272|0;t=c[w>>2]&c[o>>2];o=c[w+4>>2]&c[o+4>>2];w=c[239840+(n*24|0)+16>>2]|0;q=239840+(n*24|0)|0;p=239840+(n*24|0)+8|0;p=vJ(c[q>>2]&z|0,c[q+4>>2]&x|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=xJ(p|0,E()|0,52)|0;E()|0;p=w+(p<<3)|0;w=a+288|0;q=a+296|0;d=c[q>>2]|0;q=c[q+4>>2]|0;s=(d|c[w>>2])&c[p>>2];p=(q|c[w+4>>2])&c[p+4>>2];w=c[241376+(n*24|0)+16>>2]|0;y=241376+(n*24|0)|0;b=241376+(n*24|0)+8|0;b=vJ(c[y>>2]&z|0,c[y+4>>2]&x|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=xJ(b|0,E()|0,55)|0;E()|0;b=w+(b<<3)|0;a=a+280|0;a=(v|h&j|u|t|s|(c[a>>2]|d)&c[b>>2])&(e^f)|0?1:((l|i&k|m|o|p|(c[a+4>>2]|q)&c[b+4>>2])&(r^g)|0)!=0;return a|0}b:do if(!(c[a+(q<<2)>>2]|0)){if(!l)break a;d=b&12288;if(d<<16>>16<8192)switch(d<<16>>16){case 4096:break a;default:break b}else switch(d<<16>>16){case 8192:break a;default:break b}}while(0);d=161184+(q<<3)|0;e=c[d>>2]|0;d=c[d+4>>2]|0;if(!((e&j|0)==0&(d&k|0)==0)){z=0;return z|0}j=237792+(q<<3)|0;h=a+256|0;g=c[h>>2]|0;h=c[h+4>>2]|0;z=a+264|0;i=(c[z>>2]^g)&c[j>>2];j=(c[z+4>>2]^h)&c[j+4>>2];c:do if(l){f=b&12288;if(f<<16>>16<8192)switch(f<<16>>16){case 4096:break c;default:{}}else switch(f<<16>>16){case 8192:break c;default:{}}d=161184+((r&120|b&7)<<3)|0;e=c[d>>2]|0;d=c[d+4>>2]|0}while(0);b=e|i;v=d|j;u=161184+(r<<3)|0;q=c[u>>2]|0;u=c[u+4>>2]|0;o=(q|b)^g;t=(u|v)^h;w=c[239840+(n*24|0)+16>>2]|0;x=239840+(n*24|0)|0;z=239840+(n*24|0)+8|0;z=xJ(vJ(c[x>>2]&o|0,c[x+4>>2]&t|0,c[z>>2]|0,c[z+4>>2]|0)|0,E()|0,52)|0;E()|0;z=w+(z<<3)|0;w=a+288|0;x=a+296|0;r=c[x>>2]|0;x=c[x+4>>2]|0;s=(r|c[w>>2])&c[z>>2];z=(x|c[w+4>>2])&c[z+4>>2];w=c[241376+(n*24|0)+16>>2]|0;p=241376+(n*24|0)|0;y=241376+(n*24|0)+8|0;y=xJ(vJ(c[p>>2]&o|0,c[p+4>>2]&t|0,c[y>>2]|0,c[y+4>>2]|0)|0,E()|0,55)|0;E()|0;y=w+(y<<3)|0;w=a+280|0;t=a+320+(m<<3)|0;z=(c[t>>2]^q)&~b&((c[w>>2]|r)&c[y>>2]|s)|0?1:((c[t+4>>2]^u)&~v&((c[w+4>>2]|x)&c[y+4>>2]|z)|0)!=0;return z|0}case 1:{z=0;return z|0}default:{}}while(0);d=c[a+5352>>2]|0;z=d+368+((c[a+(r<<2)>>2]&7)<<3)|0;j=161184+(q<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;if(!((i&c[z>>2]|0)==0?(j&c[z+4>>2]|0)==0:0)){z=1;return z|0}f=c[a+5340>>2]|0;m=f^1;z=d+336+(m<<3)|0;l=161184+(r<<3)|0;k=c[l>>2]|0;l=c[l+4>>2]|0;if(!((k&c[z>>2]|0)==0?(l&c[z+4>>2]|0)==0:0)?(z=194784+(r<<9)+(q<<3)|0,y=161184+(c[a+400+((m<<3|6)<<8)>>2]<<3)|0,(c[y>>2]&c[z>>2]|0)==0?(c[y+4>>2]&c[z+4>>2]|0)==0:0):0){z=1;return z|0}d=b&49152;d:do if((d|0)==32768){e=b&12288;if(e<<16>>16<8192)switch(e<<16>>16){case 4096:{d=4096;break d}default:{p=30;break d}}switch(e<<16>>16){case 8192:break;default:{p=30;break d}}d=16384}else p=30;while(0);switch(((14?d>>>14:d)|d<<18)&2147483647|0){case 3:{h=q>>>0>r>>>0;f=f*56|0;g=f|(h?5:3);z=236768+(g<<3)|0;e=161184+(c[a+400+((m<<3|6)<<8)>>2]<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;if((d&c[z>>2]|0)==0?(e&c[z+4>>2]|0)==0:0){z=0;return z|0}v=a+256|0;w=161184+(g<<3)|0;x=161184+((f|(h?6:2))<<3)|0;y=c[239840+(g*24|0)+16>>2]|0;u=239840+(g*24|0)|0;z=239840+(g*24|0)+8|0;z=xJ(vJ(c[u>>2]&(k^i^c[v>>2]|c[w>>2]|c[x>>2])|0,c[u+4>>2]&(l^j^c[v+4>>2]|c[w+4>>2]|c[x+4>>2])|0,c[z>>2]|0,c[z+4>>2]|0)|0,E()|0,52)|0;E()|0;z=y+(z<<3)|0;z=d&c[z>>2]|0?1:(e&c[z+4>>2]|0)!=0;return z|0}case 1:{f=(o|0)==40960?6:((12?b>>>12:b)&3)+2|0;d=a+256|0;e=c[d>>2]^k;d=c[d+4>>2]^l;switch(f&7){case 3:{z=c[241376+(q*24|0)+16>>2]|0;x=241376+(q*24|0)|0;y=241376+(q*24|0)+8|0;e=xJ(vJ(c[x>>2]&e|0,c[x+4>>2]&d|0,c[y>>2]|0,c[y+4>>2]|0)|0,E()|0,55)|0;E()|0;e=z+(e<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;break}case 4:{z=c[239840+(q*24|0)+16>>2]|0;x=239840+(q*24|0)|0;y=239840+(q*24|0)+8|0;e=xJ(vJ(c[x>>2]&e|0,c[x+4>>2]&d|0,c[y>>2]|0,c[y+4>>2]|0)|0,E()|0,52)|0;E()|0;e=z+(e<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;break}case 5:{y=c[241376+(q*24|0)+16>>2]|0;x=241376+(q*24|0)|0;z=241376+(q*24|0)+8|0;z=xJ(vJ(c[x>>2]&e|0,c[x+4>>2]&d|0,c[z>>2]|0,c[z+4>>2]|0)|0,E()|0,55)|0;E()|0;z=y+(z<<3)|0;y=c[z>>2]|0;z=c[z+4>>2]|0;x=c[239840+(q*24|0)+16>>2]|0;v=239840+(q*24|0)|0;w=239840+(q*24|0)+8|0;e=xJ(vJ(c[v>>2]&e|0,c[v+4>>2]&d|0,c[w>>2]|0,c[w+4>>2]|0)|0,E()|0,52)|0;E()|0;e=x+(e<<3)|0;d=c[e>>2]|y;e=c[e+4>>2]|z;break}default:{e=234720+(f<<9)+(q<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0}}z=161184+(c[a+400+((m<<3|6)<<8)>>2]<<3)|0;z=c[z>>2]&d|0?1:(c[z+4>>2]&e|0)!=0;return z|0}case 2:{v=a+256|0;r=161184+((r&120|b&7)<<3)|0;q=c[v>>2]^k^c[r>>2]|i;r=c[v+4>>2]^l^c[r+4>>2]|j;v=c[a+400+((m<<3|6)<<8)>>2]|0;w=c[239840+(v*24|0)+16>>2]|0;s=239840+(v*24|0)|0;x=239840+(v*24|0)+8|0;x=xJ(vJ(c[s>>2]&q|0,c[s+4>>2]&r|0,c[x>>2]|0,c[x+4>>2]|0)|0,E()|0,52)|0;E()|0;x=w+(x<<3)|0;w=a+320+(f<<3)|0;s=c[w>>2]|0;w=c[w+4>>2]|0;y=a+296|0;t=c[y>>2]|0;y=c[y+4>>2]|0;z=a+288|0;u=s&c[x>>2]&(c[z>>2]|t);z=w&c[x+4>>2]&(c[z+4>>2]|y);x=c[241376+(v*24|0)+16>>2]|0;b=241376+(v*24|0)|0;v=241376+(v*24|0)+8|0;v=xJ(vJ(c[b>>2]&q|0,c[b+4>>2]&r|0,c[v>>2]|0,c[v+4>>2]|0)|0,E()|0,55)|0;E()|0;v=x+(v<<3)|0;x=a+280|0;z=c[v>>2]&s&(c[x>>2]|t)|u|0?1:(c[v+4>>2]&w&(c[x+4>>2]|y)|z|0)!=0;return z|0}default:{z=0;return z|0}}return 0}function xe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=Ia;Ia=Ia+4112|0;d=u;n=a+5360|0;p=b&61440;o=(p|0)==36864;if(o&(c[n>>2]|0)!=3){a=0;Ia=u;return a|0}t=c[a+5340>>2]|0;e=6?b>>>6:b;f=e&63;r=o?64:f;s=b&63;if(o)q=e&15;else q=c[a+(f<<2)>>2]|0;if(Zb(a)|0){a=0;Ia=u;return a|0}a:do switch(c[n>>2]|0){case 2:{if(!((q|0)!=0&((3?q>>3:q)|0)==(t|0))){a=0;Ia=u;return a|0}e=b&49152;b:do if((e|0)==49152?1:(c[a+(s<<2)>>2]|0)==0){if((e|0)!=32768){f=29;break a}f=b&12288;if(f<<16>>16<8192)switch(f<<16>>16){case 4096:{f=30;break a}default:break b}else switch(f<<16>>16){case 8192:{f=30;break a}default:break b}}while(0);h=q&7;if((h|0)==6){a=0;Ia=u;return a|0}m=c[a+400+((t<<3|6)<<8)>>2]|0;l=a+320+(t<<3)|0;g=161184+(s<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if(!((f&c[l>>2]|0)==0?(g&c[l+4>>2]|0)==0:0)){a=0;Ia=u;return a|0}l=237792+(m<<3)|0;if(!((c[l>>2]&f|0)==0?(c[l+4>>2]&g|0)==0:0)){a=0;Ia=u;return a|0}l=t^1;i=c[a+400+((l<<3|6)<<8)>>2]|0;k=237792+(i<<3)|0;j=161184+(m<<3)|0;if((c[j>>2]&c[k>>2]|0)==0?(c[j+4>>2]&c[k+4>>2]|0)==0:0){if((h|0)==1?((r^b)&7|0)==0:0){a=0;Ia=u;return a|0}c:do if((e|0)==32768){f=b&12288;if(f<<16>>16<8192)switch(f<<16>>16){case 4096:{g=s;break c}default:{}}else switch(f<<16>>16){case 8192:{g=s;break c}default:{}}g=r&120|b&7}else g=s;while(0);h=237792+(s<<3)|0;f=c[h>>2]|0;h=c[h+4>>2]|0;k=161184+(i<<3)|0;if((c[k>>2]&f|0)==0?(c[k+4>>2]&h|0)==0:0){j=a+256|0;k=c[j>>2]|0;j=c[j+4>>2]|0;v=a+264|0;g=161184+(g<<3)|0;i=161184+(r<<3)|0;k=((c[v>>2]^k)&f|c[g>>2]|c[i>>2])^k;j=((c[v+4>>2]^j)&h|c[g+4>>2]|c[i+4>>2])^j;i=(c[a+5352>>2]|0)+56|0;if(!((k&c[i>>2]|0)==0?(j&c[i+4>>2]|0)==0:0)){v=0;Ia=u;return v|0}i=c[239840+(m*24|0)+16>>2]|0;g=239840+(m*24|0)|0;w=239840+(m*24|0)+8|0;w=vJ(c[g>>2]&k|0,c[g+4>>2]&j|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=xJ(w|0,E()|0,52)|0;E()|0;w=i+(w<<3)|0;i=a+320+(l<<3)|0;g=a+296|0;f=c[g>>2]|0;g=c[g+4>>2]|0;v=a+288|0;h=c[i>>2]&k;i=c[i+4>>2]&j;if(!((h&c[w>>2]&(c[v>>2]|f)|0)==0?(i&c[w+4>>2]&(c[v+4>>2]|g)|0)==0:0)){w=0;Ia=u;return w|0}w=c[241376+(m*24|0)+16>>2]|0;l=241376+(m*24|0)|0;v=241376+(m*24|0)+8|0;v=vJ(c[l>>2]&k|0,c[l+4>>2]&j|0,c[v>>2]|0,c[v+4>>2]|0)|0;v=xJ(v|0,E()|0,55)|0;E()|0;v=w+(v<<3)|0;w=a+280|0;if(!((h&c[v>>2]&(c[w>>2]|f)|0)==0?(i&c[v+4>>2]&(c[w+4>>2]|g)|0)==0:0)){w=0;Ia=u;return w|0}else f=29}else f=29}else f=29;break}case 1:{e=b&49152;if((e|0)==49152?1:(c[a+(s<<2)>>2]|0)==0){d:do if((e|0)==32768){f=b&12288;if(f<<16>>16<8192)switch(f<<16>>16){case 4096:break d;default:{f=30;break a}}else switch(f<<16>>16){case 8192:break d;default:{f=30;break a}}}while(0);if(id(a)|0){w=0;Ia=u;return w|0}else f=29}else f=29;break}default:{e=b&49152;f=29}}while(0);e:do if((f|0)==29){e=e&65535;if(e<<16>>16<0)switch(e<<16>>16){case -32768:{f=30;break e}default:{f=31;break e}}else switch(e<<16>>16){case 0:{i=0;break e}default:{f=31;break e}}}while(0);if((f|0)==30)if((b&12288|0)==4096)i=1;else f=31;if((f|0)==31){e=Nd(a,d)|0;c[d+4096>>2]=e;f:do if((d|0)!=(e|0))while(1){if((c[d>>2]|0)==(b|0))break f;d=d+8|0;if((d|0)==(e|0)){d=e;break}}while(0);w=(d|0)!=(e|0);Ia=u;return w|0}l=c[n>>2]|0;d=o&(l|0)==3;if(d){if(!((q|0)!=0&((3?q>>3:q)|0)==(t|0))){w=0;Ia=u;return w|0}if(!(c[a+4496+(t<<5)+((q&7)<<2)>>2]|0)){w=0;Ia=u;return w|0}if(c[a+(s<<2)>>2]|0){w=0;Ia=u;return w|0}}else if(!(((3?q>>3:q)|0)==(t|0)&(((p|0)==40960|(b&12288|0)!=0|(q|0)==0)^1))){w=0;Ia=u;return w|0}w=a+320+(t<<3)|0;k=161184+(s<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;if(!((j&c[w>>2]|0)==0?(k&c[w+4>>2]|0)==0:0)){w=0;Ia=u;return w|0}g:do if(!d){h=q&7;do if((h|0)==1){e=t*7|0;if(((3?s>>>3:s)|0)==(e^7|0)){w=0;Ia=u;return w|0}v=238816+(t<<9)+(r<<3)|0;w=a+320+((t^1)<<3)|0;if((c[v>>2]&j&c[w>>2]|0)==0?(c[v+4>>2]&k&c[w+4>>2]|0)==0:0){d=(t|0)==0?8:-8;if((d+r|0)==(s|0)?(c[a+(s<<2)>>2]|0)==0:0)break;if(((d<<1)+r|0)!=(s|0)){w=0;Ia=u;return w|0}w=3?r>>>3:r;if((w|0)!=(e^1|0)?!((w|0)==(e|0)&(l|0)==4):0){w=0;Ia=u;return w|0}if(c[a+(s<<2)>>2]|0){w=0;Ia=u;return w|0}if(c[a+(s-d<<2)>>2]|0){w=0;Ia=u;return w|0}}}else{e=a+256|0;d=c[e>>2]|0;e=c[e+4>>2]|0;switch(q&7){case 3:{w=c[241376+(r*24|0)+16>>2]|0;p=241376+(r*24|0)|0;v=241376+(r*24|0)+8|0;e=xJ(vJ(c[p>>2]&d|0,c[p+4>>2]&e|0,c[v>>2]|0,c[v+4>>2]|0)|0,E()|0,55)|0;E()|0;e=w+(e<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;break}case 4:{w=c[239840+(r*24|0)+16>>2]|0;p=239840+(r*24|0)|0;v=239840+(r*24|0)+8|0;e=xJ(vJ(c[p>>2]&d|0,c[p+4>>2]&e|0,c[v>>2]|0,c[v+4>>2]|0)|0,E()|0,52)|0;E()|0;e=w+(e<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;break}case 5:{v=c[241376+(r*24|0)+16>>2]|0;p=241376+(r*24|0)|0;w=241376+(r*24|0)+8|0;w=xJ(vJ(c[p>>2]&d|0,c[p+4>>2]&e|0,c[w>>2]|0,c[w+4>>2]|0)|0,E()|0,55)|0;E()|0;w=v+(w<<3)|0;v=c[w>>2]|0;w=c[w+4>>2]|0;p=c[239840+(r*24|0)+16>>2]|0;n=239840+(r*24|0)|0;o=239840+(r*24|0)+8|0;e=xJ(vJ(c[n>>2]&d|0,c[n+4>>2]&e|0,c[o>>2]|0,c[o+4>>2]|0)|0,E()|0,52)|0;E()|0;e=p+(e<<3)|0;d=c[e>>2]|v;e=c[e+4>>2]|w;break}default:{e=234720+(h<<9)+(r<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0}}if((d&j|0)==0&(e&k|0)==0){w=0;Ia=u;return w|0}}while(0);if((l|0)==2){d=t<<3;g=237792+(c[a+400+((d^14)<<8)>>2]<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if((h|0)==6){d=j;e=k}else{e=161184+(c[a+400+((d|6)<<8)>>2]<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0}if(!((d&f|0)==0&(e&g|0)==0)){w=1;Ia=u;return w|0}h:do if(!(c[a+(s<<2)>>2]|0)){if(!i)break g;d=b&12288;if(d<<16>>16<8192)switch(d<<16>>16){case 4096:break g;default:break h}else switch(d<<16>>16){case 8192:break g;default:break h}}while(0);if(!((f&j|0)==0&(g&k|0)==0)){w=1;Ia=u;return w|0}}}while(0);g=(c[a+5352>>2]|0)+56|0;f=c[g>>2]|0;g=c[g+4>>2]|0;do if(!((f|0)==0&(g|0)==0)){if((q&7|0)==6){v=a+256|0;p=161184+(r<<3)|0;m=c[p>>2]^c[v>>2];v=c[p+4>>2]^c[v+4>>2];p=239328+(s<<3)|0;o=a+320|0;b=a+264|0;n=c[b>>2]|0;b=c[b+4>>2]|0;l=238816+(s<<3)|0;r=a+328|0;w=235744+(s<<3)|0;q=a+272|0;n=c[l>>2]&n&c[r>>2]|c[o>>2]&c[p>>2]&n|c[q>>2]&c[w>>2];w=c[l+4>>2]&b&c[r+4>>2]|c[o+4>>2]&c[p+4>>2]&b|c[q+4>>2]&c[w+4>>2];q=c[239840+(s*24|0)+16>>2]|0;b=239840+(s*24|0)|0;p=239840+(s*24|0)+8|0;p=vJ(c[b>>2]&m|0,c[b+4>>2]&v|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=xJ(p|0,E()|0,52)|0;E()|0;p=q+(p<<3)|0;q=a+288|0;b=a+296|0;o=c[b>>2]|0;b=c[b+4>>2]|0;n=n|(o|c[q>>2])&c[p>>2];p=w|(b|c[q+4>>2])&c[p+4>>2];q=c[241376+(s*24|0)+16>>2]|0;w=241376+(s*24|0)|0;r=241376+(s*24|0)+8|0;r=vJ(c[w>>2]&m|0,c[w+4>>2]&v|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=xJ(r|0,E()|0,55)|0;E()|0;r=q+(r<<3)|0;q=a+280|0;v=237792+(s<<3)|0;s=a+304|0;w=a+320+((t^1)<<3)|0;if(((n|(c[q>>2]|o)&c[r>>2]|c[s>>2]&c[v>>2])&c[w>>2]|0)==0?((p|(c[q+4>>2]|b)&c[r+4>>2]|c[s+4>>2]&c[v+4>>2])&c[w+4>>2]|0)==0:0)break;else d=0;Ia=u;return d|0}w=pJ(f|0,g|0,-1,-1)|0;if(!((w&f|0)==0&((E()|0)&g|0)==0)){w=0;Ia=u;return w|0}e=qa(f|0,g|0,0)|0;E()|0;d=t<<3|6;if((l|0)==1?(c[a+336+(d<<2)>>2]|0)==0:0)d=64;else d=c[a+400+(d<<8)>>2]|0;w=162016+(e<<9)+(d<<3)|0;if(((c[w>>2]|f)&j|0)==0?((c[w+4>>2]|g)&k|0)==0:0){w=0;Ia=u;return w|0}}while(0);w=1;Ia=u;return w|0} +function Ld(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0;Od=b+5360|0;B=c[Od>>2]|0;if((B|0)==1){b=d;return b|0}C=(B|0)==4;do if(C){e=c[b+5340>>2]|0;if(!(c[b+336+((e<<3^14)<<2)>>2]|0)){b=d;return b|0}}else if((B|0)==6){b=d;return b|0}else{e=c[b+5340>>2]|0;break}while(0);m=e^1;Nd=b+5352|0;Ld=c[Nd>>2]|0;o=Ld+336+(m<<3)|0;y=b+320+(e<<3)|0;n=c[y>>2]&c[o>>2];o=c[y+4>>2]&c[o+4>>2];a:do if(!((n|0)==0&(o|0)==0)){w=b+256|0;v=c[w>>2]|0;w=c[w+4>>2]|0;x=~v;y=~w;t=b+400+((m<<3|6)<<8)|0;while(1){while(1){q=qa(n|0,o|0,0)|0;E()|0;m=pJ(n|0,o|0,-1,-1)|0;n=m&n;o=(E()|0)&o;m=c[b+(q<<2)>>2]|0;r=m&7;if((r|0)!=1)break;if((n|0)==0&(o|0)==0)break a}switch(m&7){case 3:{z=c[241376+(q*24|0)+16>>2]|0;Md=241376+(q*24|0)|0;A=241376+(q*24|0)+8|0;A=xJ(vJ(c[Md>>2]&v|0,c[Md+4>>2]&w|0,c[A>>2]|0,c[A+4>>2]|0)|0,E()|0,55)|0;E()|0;A=z+(A<<3)|0;z=c[A>>2]|0;A=c[A+4>>2]|0;Md=15;break}case 4:{z=c[239840+(q*24|0)+16>>2]|0;Md=239840+(q*24|0)|0;A=239840+(q*24|0)+8|0;A=xJ(vJ(c[Md>>2]&v|0,c[Md+4>>2]&w|0,c[A>>2]|0,c[A+4>>2]|0)|0,E()|0,52)|0;E()|0;A=z+(A<<3)|0;z=c[A>>2]|0;A=c[A+4>>2]|0;Md=15;break}case 5:{z=c[241376+(q*24|0)+16>>2]|0;s=241376+(q*24|0)|0;A=241376+(q*24|0)+8|0;A=xJ(vJ(c[s>>2]&v|0,c[s+4>>2]&w|0,c[A>>2]|0,c[A+4>>2]|0)|0,E()|0,55)|0;E()|0;A=z+(A<<3)|0;z=c[A>>2]|0;A=c[A+4>>2]|0;s=c[239840+(q*24|0)+16>>2]|0;r=239840+(q*24|0)|0;Md=239840+(q*24|0)+8|0;Md=xJ(vJ(c[r>>2]&v|0,c[r+4>>2]&w|0,c[Md>>2]|0,c[Md+4>>2]|0)|0,E()|0,52)|0;E()|0;Md=s+(Md<<3)|0;z=c[Md>>2]|z;A=c[Md+4>>2]|A;Md=15;break}default:{p=234720+(r<<9)+(q<<3)|0;m=c[p>>2]&x;p=c[p+4>>2]&y;if((r|0)==6){s=237280+(c[t>>2]<<3)|0;u=m&~c[s>>2];p=p&~c[s+4>>2]}else u=m}}if((Md|0)==15){Md=0;u=z&x;p=A&y}if(!((u|0)==0&(p|0)==0)){s=q<<6;q=u;r=p;m=d;while(1){Pd=qa(q|0,r|0,0)|0;E()|0;d=pJ(q|0,r|0,-1,-1)|0;q=d&q;r=(E()|0)&r;d=m+8|0;c[m>>2]=s+Pd;if((q|0)==0&(r|0)==0)break;else m=d}}if((n|0)==0&(o|0)==0)break a}}while(0);switch(B|0){case 2:{B=b+256|0;A=B;z=c[A>>2]|0;A=c[A+4>>2]|0;x=~z;y=~A;if(!e){h=b+320|0;n=b+264|0;f=c[n>>2]&c[h>>2];h=c[n+4>>2]&c[h+4>>2];n=h&16711680;h=h&-16711681;v=b+328|0;s=v;r=c[s>>2]|0;s=c[s+4>>2]|0;u=b+1936|0;t=c[u>>2]|0;m=237792+(t<<3)|0;l=r&~c[m>>2];m=s&~c[m+4>>2];e=yJ(f|0,h|0,8)|0;e=e&x;i=(E()|0)&y;q=yJ(e|0,i|0,8)|0;E()|0;w=b+3984|0;o=c[w>>2]|0;j=239328+(o<<3)|0;g=c[j>>2]|0;e=g&e;i=c[j+4>>2]&i;j=x&-16777216;g=q&j&g;q=Ld+344|0;p=c[q>>2]|0;q=c[q+4>>2]|0;f=p&f;h=q&h;if((f|0)==0&(h|0)==0){h=i;f=0}else{Pd=yJ(f|0,h|0,8)|0;f=(E()|0)&y;h=161696+((o&7)<<3)|0;Pd=Pd&x&~c[h>>2];h=f&~c[h+4>>2];f=yJ(Pd|0,h|0,8)|0;E()|0;e=Pd|e;h=h|i;g=f&j|g;f=0}if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(Pd|-512)+(Pd<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|-1024)+(Pd<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!(0==0&(n|0)==0)){e=yJ(0,n|0,9)|0;e=l&e;i=m&(E()|0);yJ(0,n|0,7)|0;h=(E()|0)&2130706432&m;g=yJ(0,n|0,8)|0;g=g&x;f=(E()|0)&y;if(!((e|0)==0&(i|0)==0)){m=161184+(o<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;j=e;do{e=qa(j|0,i|0,0)|0;E()|0;Pd=pJ(j|0,i|0,-1,-1)|0;j=Pd&j;i=(E()|0)&i;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&l|0)==0?(c[Pd+4>>2]&m|0)==0:0)){c[d>>2]=e+15808+(e<<6);d=d+8|0}}while(!((j|0)==0&(i|0)==0))}if(!(0==0&(h|0)==0)){j=161184+(o<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;l=0;do{e=qa(l|0,h|0,0)|0;E()|0;Pd=pJ(l|0,h|0,-1,-1)|0;l=Pd&l;h=(E()|0)&h;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&i|0)==0?(c[Pd+4>>2]&j|0)==0:0)){c[d>>2]=e+15936+(e<<6);d=d+8|0}}while(!((l|0)==0&(h|0)==0))}if(!((g|0)==0&(f|0)==0)){i=161184+(o<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{e=qa(g|0,f|0,0)|0;E()|0;Pd=pJ(g|0,f|0,-1,-1)|0;g=Pd&g;f=(E()|0)&f;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){c[d>>2]=(e|15872)+(e<<6);d=d+8|0}}while(!((g|0)==0&(f|0)==0))}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0)?(Pd=235744+(e<<3)|0,P=j,O=c[Pd>>2]&x&c[P>>2],P=c[Pd+4>>2]&y&c[P+4>>2],!((O|0)==0&(P|0)==0)):0){i=e<<6;g=O;h=P;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+392|0;j=c[l>>2]&x;l=c[l+4>>2]&y;n=B;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0):0)?(ca=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,da=241376+(e*24|0)+8|0,da=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[da>>2]|0,c[da+4>>2]|0)|0,da=xJ(da|0,E()|0,55)|0,E()|0,da=ca+(da<<3)|0,ca=c[da>>2]&j,da=c[da+4>>2]&l,!((ca|0)==0&(da|0)==0)):0){i=e<<6;g=ca;h=da;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+400|0;j=c[l>>2]&x;l=c[l+4>>2]&y;n=B;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236768+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0):0)?(oa=c[239840+(e*24|0)+16>>2]|0,Pd=239840+(e*24|0)|0,pa=239840+(e*24|0)+8|0,pa=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[pa>>2]|0,c[pa+4>>2]|0)|0,pa=xJ(pa|0,E()|0,52)|0,E()|0,pa=oa+(pa<<3)|0,oa=c[pa>>2]&j,pa=c[pa+4>>2]&l,!((oa|0)==0&(pa|0)==0)):0){i=e<<6;g=oa;h=pa;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+408|0;n=c[j>>2]&x;j=c[j+4>>2]&y;m=B;l=c[m>>2]|0;m=c[m+4>>2]|0;i=f;do{Pd=237280+(e<<3)|0;if((!((c[Pd>>2]&n|0)==0?(c[Pd+4>>2]&j|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0):0)?(Da=c[239840+(e*24|0)+16>>2]|0,Kd=239840+(e*24|0)|0,Ea=239840+(e*24|0)+8|0,Ea=vJ(c[Kd>>2]&l|0,c[Kd+4>>2]&m|0,c[Ea>>2]|0,c[Ea+4>>2]|0)|0,Ea=xJ(Ea|0,E()|0,52)|0,E()|0,Ea=Da+(Ea<<3)|0,Da=c[Ea>>2]|0,Ea=c[Ea+4>>2]|0,Kd=c[241376+(e*24|0)+16>>2]|0,Jd=241376+(e*24|0)|0,Pd=241376+(e*24|0)+8|0,Pd=vJ(c[Jd>>2]&l|0,c[Jd+4>>2]&m|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0,Pd=xJ(Pd|0,E()|0,55)|0,E()|0,Pd=Kd+(Pd<<3)|0,Da=(c[Pd>>2]|Da)&n,Ea=(c[Pd+4>>2]|Ea)&j,!((Da|0)==0&(Ea|0)==0)):0){h=e<<6;f=Da;g=Ea;e=d;while(1){Pd=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=h+Pd;if((f|0)==0&(g|0)==0)break;else e=d}}i=i+4|0;e=c[i>>2]|0}while((e|0)!=64)}e=c[Ld+24>>2]|0;if(!(e&3)){Pd=d;return Pd|0}Pd=b+5216|0;e=(e&1|0)==0|(c[Pd>>2]&z|0?1:(c[Pd+4>>2]&A|0)!=0);if(!(a[b+5356>>0]|0)){b:do if(e)k=d;else{i=c[b+5148>>2]|0;if((t|0)==6)e=384;else{h=b+392|0;g=161184+(t<<3)|0;f=2;e=6;while(1){Pd=237792+(((f|0)==1&(c[h>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Md=161184+(e<<3)|0;if(((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Md=g,Pd=ue(b,e,c[Md>>2]^c[Pd>>2],c[Md+4>>2]^c[Pd+4>>2])|0,!((Pd&r|0)==0&((E()|0)&s|0)==0)):0){k=d;break b}e=e+-1|0;if((e|0)==(t|0))break;f=c[Od>>2]|0}e=t<<6}e=i+49152+e|0;if(!(we(b,e)|0)){k=d;break}c[d>>2]=e;k=d+8|0}while(0);Pd=B;Md=b+5224|0;if(!((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)){Pd=k;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=k;return Pd|0}j=c[Od>>2]|0;do if((j|0)==1){if(c[b+360>>2]|0){Md=132;break}dc=c[b+5152>>2]|0;fc=64;Md=133}else Md=132;while(0);if((Md|0)==132){e=c[u>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2){tb=f;vb=2}else{dc=f;fc=e;Md=133}}c:do if((Md|0)==133){h=v;g=c[h>>2]|0;h=c[h+4>>2]|0;d=b+392|0;i=161184+(fc<<3)|0;f=j;e=2;while(1){Pd=237792+(((f|0)==1&(c[d>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Nd=161184+(e<<3)|0;if(((c[Nd>>2]&c[Pd>>2]|0)==0?(c[Nd+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Nd=i,Pd=ue(b,e,c[Nd>>2]^c[Pd>>2],c[Nd+4>>2]^c[Pd+4>>2])|0,!((Pd&g|0)==0&((E()|0)&h|0)==0)):0)break;e=e+1|0;if((e|0)==(fc|0)){tb=dc;vb=fc;break c}f=c[Od>>2]|0}return k|0}while(0);e=tb+49152+(vb<<6)|0;if(!(we(b,e)|0)){Pd=k;return Pd|0}c[k>>2]=e;Pd=k+8|0;return Pd|0}d:do if(!e){i=c[b+5148>>2]|0;if((t|0)>=6)if((t|0)==6){La=z;Ma=A;Na=r;Oa=s;Xa=384}else{cb=1;Md=84}else{cb=-1;Md=84}if((Md|0)==84){h=b+392|0;g=161184+(t<<3)|0;f=2;e=6;while(1){Pd=237792+(((f|0)==1&(c[h>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Md=161184+(e<<3)|0;if(((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Md=g,Pd=ue(b,e,c[Md>>2]^c[Pd>>2],c[Md+4>>2]^c[Pd+4>>2])|0,!((Pd&r|0)==0&((E()|0)&s|0)==0)):0)break d;e=e+cb|0;if((e|0)==(t|0))break;f=c[Od>>2]|0}Ma=B;Oa=v;La=c[Ma>>2]|0;Ma=c[Ma+4>>2]|0;Na=c[Oa>>2]|0;Oa=c[Oa+4>>2]|0;Xa=t<<6}Md=161184+(i<<3)|0;Pd=c[6e4]|0;Kd=239984;Ld=239992;Ld=vJ(c[Kd>>2]&(c[Md>>2]^La)|0,c[Kd+4>>2]&(c[Md+4>>2]^Ma)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&Na&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&Oa&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0)){if((c[Od>>2]|0)==1?(c[b+392>>2]|0)==0:0)e=64;else e=c[w>>2]|0;Pd=237792+(e<<3)|0;Md=161232;if((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)break}e=i+49152+Xa|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);l=B;j=c[l>>2]|0;l=c[l+4>>2]|0;Pd=b+5224|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=d;return Pd|0}f=c[Od>>2]|0;do if((f|0)==1){if(c[b+360>>2]|0){Md=102;break}Lc=v;Gc=c[b+5152>>2]|0;Kc=c[Lc>>2]|0;Lc=c[Lc+4>>2]|0;Mc=1;Tc=64;Md=104}else Md=102;while(0);do if((Md|0)==102){e=c[u>>2]|0;g=c[b+5152>>2]|0;i=v;h=c[i>>2]|0;i=c[i+4>>2]|0;if((e|0)<2){Gc=g;Kc=h;Lc=i;Mc=-1;Tc=e;Md=104;break}if((e|0)==2){hc=h;ic=i;Wc=g;Nc=j;Oc=l;Xc=2}else{Gc=g;Kc=h;Lc=i;Mc=1;Tc=e;Md=104}}while(0);do if((Md|0)==104){h=b+392|0;g=161184+(Tc<<3)|0;e=2;while(1){Pd=237792+(((f|0)==1&(c[h>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Nd=161184+(e<<3)|0;if(((c[Nd>>2]&c[Pd>>2]|0)==0?(c[Nd+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Nd=g,Pd=ue(b,e,c[Nd>>2]^c[Pd>>2],c[Nd+4>>2]^c[Pd+4>>2])|0,!((Pd&Kc|0)==0&((E()|0)&Lc|0)==0)):0){k=d;Md=932;break}e=e+Mc|0;if((e|0)==(Tc|0)){Md=109;break}f=c[Od>>2]|0}if((Md|0)==109){Oc=B;ic=v;hc=c[ic>>2]|0;ic=c[ic+4>>2]|0;Wc=Gc;Nc=c[Oc>>2]|0;Oc=c[Oc+4>>2]|0;Xc=Tc;break}else if((Md|0)==932)return k|0}while(0);Nd=161184+(Wc<<3)|0;Pd=c[59976]|0;Ld=239888;Md=239896;Md=vJ(c[Ld>>2]&(c[Nd>>2]^Nc)|0,c[Ld+4>>2]&(c[Nd+4>>2]^Oc)|0,c[Md>>2]|0,c[Md+4>>2]|0)|0;Md=xJ(Md|0,E()|0,52)|0;E()|0;Md=Pd+(Md<<3)|0;Pd=b+288|0;Nd=b+296|0;do if(!((c[Md>>2]&hc&(c[Nd>>2]|c[Pd>>2])|0)==0?(c[Md+4>>2]&ic&(c[Nd+4>>2]|c[Pd+4>>2])|0)==0:0)){if((c[Od>>2]|0)==1?(c[b+392>>2]|0)==0:0)e=64;else e=c[w>>2]|0;Pd=237792+(e<<3)|0;Od=161200;if((c[Od>>2]&c[Pd>>2]|0)==0?(c[Od+4>>2]&c[Pd+4>>2]|0)==0:0)k=d;else break;return k|0}while(0);e=Wc+49152+(Xc<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}else{h=b+328|0;n=b+264|0;g=c[n>>2]&c[h>>2];h=c[n+4>>2]&c[h+4>>2];n=g&65280;g=g&-65281;v=b+320|0;s=v;r=c[s>>2]|0;s=c[s+4>>2]|0;u=b+3984|0;t=c[u>>2]|0;l=237792+(t<<3)|0;m=r&~c[l>>2];l=s&~c[l+4>>2];e=xJ(g|0,h|0,8)|0;e=e&x;i=(E()|0)&y;xJ(e|0,i|0,8)|0;q=E()|0;w=b+1936|0;o=c[w>>2]|0;j=238816+(o<<3)|0;f=c[j+4>>2]|0;e=c[j>>2]&e;i=f&i;j=y&255;f=q&j&f;q=Ld+336|0;p=c[q>>2]|0;q=c[q+4>>2]|0;g=p&g;h=q&h;if((g|0)==0&(h|0)==0){h=i;g=0}else{g=xJ(g|0,h|0,8)|0;Pd=(E()|0)&y;h=161696+((o&7)<<3)|0;g=g&x&~c[h>>2];h=Pd&~c[h+4>>2];xJ(g|0,h|0,8)|0;e=g|e;h=h|i;g=0;f=(E()|0)&j|f}if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(Pd|512)+(Pd<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|1024)+(Pd<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((n|0)==0&0==0)){e=xJ(n|0,0,9)|0;e=m&e;i=l&(E()|0);h=xJ(n|0,0,7)|0;E()|0;h=h&254&m;g=xJ(n|0,0,8)|0;g=g&x;f=(E()|0)&y;if(!((e|0)==0&(i|0)==0)){m=161184+(o<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;j=e;do{e=qa(j|0,i|0,0)|0;E()|0;Pd=pJ(j|0,i|0,-1,-1)|0;j=Pd&j;i=(E()|0)&i;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&l|0)==0?(c[Pd+4>>2]&m|0)==0:0)){c[d>>2]=e+16960+(e<<6);d=d+8|0}}while(!((j|0)==0&(i|0)==0))}if(!((h|0)==0&0==0)){l=161184+(o<<3)|0;j=c[l>>2]|0;l=c[l+4>>2]|0;i=0;do{e=qa(h|0,i|0,0)|0;E()|0;Pd=pJ(h|0,i|0,-1,-1)|0;h=Pd&h;i=(E()|0)&i;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){c[d>>2]=e+16832+(e<<6);d=d+8|0}}while(!((h|0)==0&(i|0)==0))}if(!((g|0)==0&(f|0)==0)){i=161184+(o<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{e=qa(g|0,f|0,0)|0;E()|0;Pd=pJ(g|0,f|0,-1,-1)|0;g=Pd&g;f=(E()|0)&f;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){c[d>>2]=(e|16896)+(e<<6);d=d+8|0}}while(!((g|0)==0&(f|0)==0))}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0)?(Pd=235744+(e<<3)|0,N=j,M=c[Pd>>2]&x&c[N>>2],N=c[Pd+4>>2]&y&c[N+4>>2],!((M|0)==0&(N|0)==0)):0){i=e<<6;g=M;h=N;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+392|0;j=c[l>>2]&x;l=c[l+4>>2]&y;n=B;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0):0)?(aa=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,ba=241376+(e*24|0)+8|0,ba=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[ba>>2]|0,c[ba+4>>2]|0)|0,ba=xJ(ba|0,E()|0,55)|0,E()|0,ba=aa+(ba<<3)|0,aa=c[ba>>2]&j,ba=c[ba+4>>2]&l,!((aa|0)==0&(ba|0)==0)):0){i=e<<6;g=aa;h=ba;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+400|0;j=c[l>>2]&x;l=c[l+4>>2]&y;n=B;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236768+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0):0)?(ma=c[239840+(e*24|0)+16>>2]|0,Pd=239840+(e*24|0)|0,na=239840+(e*24|0)+8|0,na=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[na>>2]|0,c[na+4>>2]|0)|0,na=xJ(na|0,E()|0,52)|0,E()|0,na=ma+(na<<3)|0,ma=c[na>>2]&j,na=c[na+4>>2]&l,!((ma|0)==0&(na|0)==0)):0){i=e<<6;g=ma;h=na;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+408|0;n=c[j>>2]&x;j=c[j+4>>2]&y;m=B;l=c[m>>2]|0;m=c[m+4>>2]|0;i=f;do{Pd=237280+(e<<3)|0;if((!((c[Pd>>2]&n|0)==0?(c[Pd+4>>2]&j|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0):0)?(Ba=c[239840+(e*24|0)+16>>2]|0,Kd=239840+(e*24|0)|0,Ca=239840+(e*24|0)+8|0,Ca=vJ(c[Kd>>2]&l|0,c[Kd+4>>2]&m|0,c[Ca>>2]|0,c[Ca+4>>2]|0)|0,Ca=xJ(Ca|0,E()|0,52)|0,E()|0,Ca=Ba+(Ca<<3)|0,Ba=c[Ca>>2]|0,Ca=c[Ca+4>>2]|0,Kd=c[241376+(e*24|0)+16>>2]|0,Jd=241376+(e*24|0)|0,Pd=241376+(e*24|0)+8|0,Pd=vJ(c[Jd>>2]&l|0,c[Jd+4>>2]&m|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0,Pd=xJ(Pd|0,E()|0,55)|0,E()|0,Pd=Kd+(Pd<<3)|0,Ba=(c[Pd>>2]|Ba)&n,Ca=(c[Pd+4>>2]|Ca)&j,!((Ba|0)==0&(Ca|0)==0)):0){h=e<<6;f=Ba;g=Ca;e=d;while(1){Pd=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=h+Pd;if((f|0)==0&(g|0)==0)break;else e=d}}i=i+4|0;e=c[i>>2]|0}while((e|0)!=64)}e=c[Ld+24>>2]|0;if(!(e&12)){Pd=d;return Pd|0}Pd=b+5240|0;e=(e&4|0)==0|(c[Pd>>2]&z|0?1:(c[Pd+4>>2]&A|0)!=0);if(!(a[b+5356>>0]|0)){e:do if(e)k=d;else{i=c[b+5160>>2]|0;if((t|0)==62)e=3968;else{h=b+360|0;g=161184+(t<<3)|0;f=2;e=62;while(1){Pd=237792+(((f|0)==1&(c[h>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Md=161184+(e<<3)|0;if(((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Md=g,Pd=ue(b,e,c[Md>>2]^c[Pd>>2],c[Md+4>>2]^c[Pd+4>>2])|0,!((Pd&r|0)==0&((E()|0)&s|0)==0)):0){k=d;break e}e=e+-1|0;if((e|0)==(t|0))break;f=c[Od>>2]|0}e=t<<6}e=i+49152+e|0;if(!(we(b,e)|0)){k=d;break}c[d>>2]=e;k=d+8|0}while(0);Pd=B;Md=b+5272|0;if(!((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)){Pd=k;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=k;return Pd|0}j=c[Od>>2]|0;do if((j|0)==1){if(c[b+392>>2]|0){Md=248;break}ec=c[b+5176>>2]|0;gc=64;Md=249}else Md=248;while(0);if((Md|0)==248){e=c[u>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58){ub=f;wb=58}else{ec=f;gc=e;Md=249}}f:do if((Md|0)==249){h=v;g=c[h>>2]|0;h=c[h+4>>2]|0;d=b+360|0;i=161184+(gc<<3)|0;f=j;e=58;while(1){Pd=237792+(((f|0)==1&(c[d>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Nd=161184+(e<<3)|0;if(((c[Nd>>2]&c[Pd>>2]|0)==0?(c[Nd+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Nd=i,Pd=ue(b,e,c[Nd>>2]^c[Pd>>2],c[Nd+4>>2]^c[Pd+4>>2])|0,!((Pd&g|0)==0&((E()|0)&h|0)==0)):0)break;e=e+1|0;if((e|0)==(gc|0)){ub=ec;wb=gc;break f}f=c[Od>>2]|0}return k|0}while(0);e=ub+49152+(wb<<6)|0;if(!(we(b,e)|0)){Pd=k;return Pd|0}c[k>>2]=e;Pd=k+8|0;return Pd|0}g:do if(!e){i=c[b+5160>>2]|0;if((t|0)>=62)if((t|0)==62){Ha=z;Ia=A;Ja=r;Ka=s;Ya=3968}else{bb=1;Md=200}else{bb=-1;Md=200}if((Md|0)==200){h=b+360|0;g=161184+(t<<3)|0;f=2;e=62;while(1){Pd=237792+(((f|0)==1&(c[h>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Md=161184+(e<<3)|0;if(((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Md=g,Pd=ue(b,e,c[Md>>2]^c[Pd>>2],c[Md+4>>2]^c[Pd+4>>2])|0,!((Pd&r|0)==0&((E()|0)&s|0)==0)):0)break g;e=e+bb|0;if((e|0)==(t|0))break;f=c[Od>>2]|0}Ia=B;Ka=v;Ha=c[Ia>>2]|0;Ia=c[Ia+4>>2]|0;Ja=c[Ka>>2]|0;Ka=c[Ka+4>>2]|0;Ya=t<<6}Md=161184+(i<<3)|0;Pd=c[60336]|0;Kd=241328;Ld=241336;Ld=vJ(c[Kd>>2]&(c[Md>>2]^Ha)|0,c[Kd+4>>2]&(c[Md+4>>2]^Ia)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&Ja&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&Ka&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0)){if((c[Od>>2]|0)==1?(c[b+360>>2]|0)==0:0)e=64;else e=c[w>>2]|0;Pd=237792+(e<<3)|0;Md=161680;if((c[Md>>2]&c[Pd>>2]|0)==0?(c[Md+4>>2]&c[Pd+4>>2]|0)==0:0)break}e=i+49152+Ya|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);l=B;j=c[l>>2]|0;l=c[l+4>>2]|0;Pd=b+5272|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=d;return Pd|0}f=c[Od>>2]|0;do if((f|0)==1){if(c[b+392>>2]|0){Md=218;break}kc=v;jc=c[kc>>2]|0;kc=c[kc+4>>2]|0;lc=1;Hc=c[b+5176>>2]|0;Uc=64;Md=220}else Md=218;while(0);do if((Md|0)==218){e=c[u>>2]|0;g=c[b+5176>>2]|0;i=v;h=c[i>>2]|0;i=c[i+4>>2]|0;if((e|0)<58){jc=h;kc=i;lc=-1;Hc=g;Uc=e;Md=220;break}if((e|0)==58){Vc=g;mc=j;nc=l;oc=h;pc=i;Yc=58}else{jc=h;kc=i;lc=1;Hc=g;Uc=e;Md=220}}while(0);do if((Md|0)==220){h=b+360|0;g=161184+(Uc<<3)|0;e=58;while(1){Pd=237792+(((f|0)==1&(c[h>>2]|0)==0?64:c[w>>2]|0)<<3)|0;Nd=161184+(e<<3)|0;if(((c[Nd>>2]&c[Pd>>2]|0)==0?(c[Nd+4>>2]&c[Pd+4>>2]|0)==0:0)?(Pd=B,Nd=g,Pd=ue(b,e,c[Nd>>2]^c[Pd>>2],c[Nd+4>>2]^c[Pd+4>>2])|0,!((Pd&jc|0)==0&((E()|0)&kc|0)==0)):0){k=d;Md=932;break}e=e+lc|0;if((e|0)==(Uc|0)){Md=225;break}f=c[Od>>2]|0}if((Md|0)==225){nc=B;pc=v;Vc=Hc;mc=c[nc>>2]|0;nc=c[nc+4>>2]|0;oc=c[pc>>2]|0;pc=c[pc+4>>2]|0;Yc=Uc;break}else if((Md|0)==932)return k|0}while(0);Nd=161184+(Vc<<3)|0;Pd=c[60312]|0;Ld=241232;Md=241240;Md=vJ(c[Ld>>2]&(c[Nd>>2]^mc)|0,c[Ld+4>>2]&(c[Nd+4>>2]^nc)|0,c[Md>>2]|0,c[Md+4>>2]|0)|0;Md=xJ(Md|0,E()|0,52)|0;E()|0;Md=Pd+(Md<<3)|0;Pd=b+288|0;Nd=b+296|0;do if(!((c[Md>>2]&oc&(c[Nd>>2]|c[Pd>>2])|0)==0?(c[Md+4>>2]&pc&(c[Nd+4>>2]|c[Pd+4>>2])|0)==0:0)){if((c[Od>>2]|0)==1?(c[b+360>>2]|0)==0:0)e=64;else e=c[w>>2]|0;Pd=237792+(e<<3)|0;Od=161648;if((c[Od>>2]&c[Pd>>2]|0)==0?(c[Od+4>>2]&c[Pd+4>>2]|0)==0:0)k=d;else break;return k|0}while(0);e=Vc+49152+(Yc<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}}case 3:{I=b+256|0;C=I;B=c[C>>2]|0;C=c[C+4>>2]|0;z=~B;A=~C;if(!e){o=b+320|0;r=b+264|0;m=c[r>>2]&c[o>>2];o=c[r+4>>2]&c[o+4>>2];r=o&16711680;o=o&-16711681;y=b+328|0;x=y;w=c[x>>2]|0;x=c[x+4>>2]|0;e=yJ(m|0,o|0,8)|0;e=e&z;q=(E()|0)&A;n=yJ(e|0,q|0,8)|0;E()|0;t=c[b+3984>>2]|0;p=239328+(t<<3)|0;v=c[p>>2]|0;e=e&v;p=q&c[p+4>>2];q=z&-16777216;n=v&q&n;v=Ld+344|0;u=c[v>>2]|0;v=c[v+4>>2]|0;m=u&m;o=v&o;if((m|0)==0&(o|0)==0){o=p;m=0}else{Pd=yJ(m|0,o|0,8)|0;m=(E()|0)&A;o=161696+((t&7)<<3)|0;Pd=Pd&z&~c[o>>2];o=m&~c[o+4>>2];m=yJ(Pd|0,o|0,8)|0;E()|0;e=Pd|e;o=o|p;n=m&q|n;m=0}if(!((e|0)==0&(o|0)==0)){p=e;e=d;while(1){Pd=qa(p|0,o|0,0)|0;E()|0;d=pJ(p|0,o|0,-1,-1)|0;p=d&p;o=(E()|0)&o;d=e+8|0;c[e>>2]=(Pd|-512)+(Pd<<6);if((p|0)==0&(o|0)==0)break;else e=d}}if(!((n|0)==0&(m|0)==0)){e=d;while(1){Pd=qa(n|0,m|0,0)|0;E()|0;d=pJ(n|0,m|0,-1,-1)|0;n=d&n;m=(E()|0)&m;d=e+8|0;c[e>>2]=(Pd|-1024)+(Pd<<6);if((n|0)==0&(m|0)==0)break;else e=d}}if(!(0==0&(r|0)==0)){e=yJ(0,r|0,9)|0;e=e&w;o=(E()|0)&x;yJ(0,r|0,7)|0;s=x&2130706432&(E()|0);n=yJ(0,r|0,8)|0;n=n&z;m=(E()|0)&A;if(!((e|0)==0&(o|0)==0)){r=161184+(t<<3)|0;q=c[r>>2]|0;r=c[r+4>>2]|0;p=o;do{o=qa(e|0,p|0,0)|0;E()|0;Pd=pJ(e|0,p|0,-1,-1)|0;e=Pd&e;p=(E()|0)&p;Pd=235744+(o<<3)|0;if(!((c[Pd>>2]&q|0)==0?(c[Pd+4>>2]&r|0)==0:0)){c[d>>2]=o+15808+(o<<6);d=d+8|0}}while(!((e|0)==0&(p|0)==0))}if(!(0==0&(s|0)==0)){q=161184+(t<<3)|0;p=c[q>>2]|0;q=c[q+4>>2]|0;r=0;o=s;do{e=qa(r|0,o|0,0)|0;E()|0;Pd=pJ(r|0,o|0,-1,-1)|0;r=Pd&r;o=(E()|0)&o;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&p|0)==0?(c[Pd+4>>2]&q|0)==0:0)){c[d>>2]=e+15936+(e<<6);d=d+8|0}}while(!((r|0)==0&(o|0)==0))}if(!((n|0)==0&(m|0)==0)){p=161184+(t<<3)|0;o=c[p>>2]|0;p=c[p+4>>2]|0;do{e=qa(n|0,m|0,0)|0;E()|0;Pd=pJ(n|0,m|0,-1,-1)|0;n=Pd&n;m=(E()|0)&m;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0)){c[d>>2]=(e|15872)+(e<<6);d=d+8|0}}while(!((n|0)==0&(m|0)==0))}}m=b+912|0;e=c[m>>2]|0;if((e|0)!=64){q=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&u|0)==0?(c[Pd+4>>2]&v|0)==0:0)?(Pd=235744+(e<<3)|0,F=q,D=c[Pd>>2]&z&c[F>>2],F=c[Pd+4>>2]&A&c[F+4>>2],!((D|0)==0&(F|0)==0)):0){p=e<<6;n=D;o=F;e=d;while(1){Pd=qa(n|0,o|0,0)|0;E()|0;d=pJ(n|0,o|0,-1,-1)|0;n=d&n;o=(E()|0)&o;d=e+8|0;c[e>>2]=p+Pd;if((n|0)==0&(o|0)==0)break;else e=d}}m=m+4|0;e=c[m>>2]|0}while((e|0)!=64)}m=b+1168|0;e=c[m>>2]|0;if((e|0)!=64){r=Ld+392|0;q=c[r>>2]&z;r=c[r+4>>2]&A;t=I;s=c[t>>2]|0;t=c[t+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&q|0)==0?(c[Pd+4>>2]&r|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&u|0)==0?(c[Pd+4>>2]&v|0)==0:0):0)?(U=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,V=241376+(e*24|0)+8|0,V=vJ(c[Pd>>2]&s|0,c[Pd+4>>2]&t|0,c[V>>2]|0,c[V+4>>2]|0)|0,V=xJ(V|0,E()|0,55)|0,E()|0,V=U+(V<<3)|0,U=c[V>>2]&q,V=c[V+4>>2]&r,!((U|0)==0&(V|0)==0)):0){p=e<<6;n=U;o=V;e=d;while(1){Pd=qa(n|0,o|0,0)|0;E()|0;d=pJ(n|0,o|0,-1,-1)|0;n=d&n;o=(E()|0)&o;d=e+8|0;c[e>>2]=p+Pd;if((n|0)==0&(o|0)==0)break;else e=d}}m=m+4|0;e=c[m>>2]|0}while((e|0)!=64)}m=b+1424|0;e=c[m>>2]|0;if((e|0)!=64){r=Ld+400|0;q=c[r>>2]&z;r=c[r+4>>2]&A;t=I;s=c[t>>2]|0;t=c[t+4>>2]|0;do{Pd=236768+(e<<3)|0;if((!((c[Pd>>2]&q|0)==0?(c[Pd+4>>2]&r|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&u|0)==0?(c[Pd+4>>2]&v|0)==0:0):0)?(ia=c[239840+(e*24|0)+16>>2]|0,Pd=239840+(e*24|0)|0,ja=239840+(e*24|0)+8|0,ja=vJ(c[Pd>>2]&s|0,c[Pd+4>>2]&t|0,c[ja>>2]|0,c[ja+4>>2]|0)|0,ja=xJ(ja|0,E()|0,52)|0,E()|0,ja=ia+(ja<<3)|0,ia=c[ja>>2]&q,ja=c[ja+4>>2]&r,!((ia|0)==0&(ja|0)==0)):0){p=e<<6;n=ia;o=ja;e=d;while(1){Pd=qa(n|0,o|0,0)|0;E()|0;d=pJ(n|0,o|0,-1,-1)|0;n=d&n;o=(E()|0)&o;d=e+8|0;c[e>>2]=p+Pd;if((n|0)==0&(o|0)==0)break;else e=d}}m=m+4|0;e=c[m>>2]|0}while((e|0)!=64)}m=b+1680|0;e=c[m>>2]|0;if((e|0)!=64){r=Ld+408|0;q=c[r>>2]&z;r=c[r+4>>2]&A;t=I;s=c[t>>2]|0;t=c[t+4>>2]|0;do{Pd=237280+(e<<3)|0;if((!((c[Pd>>2]&q|0)==0?(c[Pd+4>>2]&r|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&u|0)==0?(c[Pd+4>>2]&v|0)==0:0):0)?(va=c[239840+(e*24|0)+16>>2]|0,Kd=239840+(e*24|0)|0,wa=239840+(e*24|0)+8|0,wa=vJ(c[Kd>>2]&s|0,c[Kd+4>>2]&t|0,c[wa>>2]|0,c[wa+4>>2]|0)|0,wa=xJ(wa|0,E()|0,52)|0,E()|0,wa=va+(wa<<3)|0,va=c[wa>>2]|0,wa=c[wa+4>>2]|0,Kd=c[241376+(e*24|0)+16>>2]|0,Id=241376+(e*24|0)|0,Pd=241376+(e*24|0)+8|0,Pd=vJ(c[Id>>2]&s|0,c[Id+4>>2]&t|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0,Pd=xJ(Pd|0,E()|0,55)|0,E()|0,Pd=Kd+(Pd<<3)|0,va=(c[Pd>>2]|va)&q,wa=(c[Pd+4>>2]|wa)&r,!((va|0)==0&(wa|0)==0)):0){p=e<<6;n=va;o=wa;e=d;while(1){Pd=qa(n|0,o|0,0)|0;E()|0;d=pJ(n|0,o|0,-1,-1)|0;n=d&n;o=(E()|0)&o;d=e+8|0;c[e>>2]=p+Pd;if((n|0)==0&(o|0)==0)break;else e=d}}m=m+4|0;e=c[m>>2]|0}while((e|0)!=64)}do if(c[b+4496>>2]|0){if((c[b+4500>>2]|0)!=0?(j=Ld+376|0,l=z&-256&c[j>>2],j=A&16777215&c[j+4>>2],!((l|0)==0&(j|0)==0)):0){e=d;while(1){Pd=qa(l|0,j|0,0)|0;E()|0;d=pJ(l|0,j|0,-1,-1)|0;l=d&l;j=(E()|0)&j;d=e+8|0;c[e>>2]=(Pd|36864)+64;if((l|0)==0&(j|0)==0)break;else e=d}}if((c[b+4504>>2]|0)!=0?(h=Ld+384|0,i=c[h>>2]&z,h=c[h+4>>2]&A,!((i|0)==0&(h|0)==0)):0){e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=Pd|36992;if((i|0)==0&(h|0)==0)break;else e=d}}do if(c[b+4508>>2]|0){h=Ld+392|0;e=c[h>>2]&z;h=c[h+4>>2]&A;if((e|0)==0&(h|0)==0)break;i=d;while(1){Pd=qa(e|0,h|0,0)|0;E()|0;d=pJ(e|0,h|0,-1,-1)|0;e=d&e;h=(E()|0)&h;d=i+8|0;c[i>>2]=(Pd|36864)+192;if((e|0)==0&(h|0)==0)break;else i=d}}while(0);do if(c[b+4512>>2]|0){h=Ld+400|0;e=c[h>>2]&z;h=c[h+4>>2]&A;if((e|0)==0&(h|0)==0)break;i=d;while(1){Pd=qa(e|0,h|0,0)|0;E()|0;d=pJ(e|0,h|0,-1,-1)|0;e=d&e;h=(E()|0)&h;d=i+8|0;c[i>>2]=Pd|37120;if((e|0)==0&(h|0)==0)break;else i=d}}while(0);if(!(c[b+4516>>2]|0))break;h=Ld+408|0;e=c[h>>2]&z;h=c[h+4>>2]&A;if((e|0)==0&(h|0)==0)break;i=d;while(1){Pd=qa(e|0,h|0,0)|0;E()|0;d=pJ(e|0,h|0,-1,-1)|0;e=d&e;h=(E()|0)&h;d=i+8|0;c[i>>2]=(Pd|36864)+320;if((e|0)==0&(h|0)==0)break;else i=d}}while(0);e=c[Ld+24>>2]|0;if(!(e&3)){Pd=d;return Pd|0}Pd=b+5216|0;e=(e&1|0)==0|(c[Pd>>2]&B|0?1:(c[Pd+4>>2]&C|0)!=0);if(!(a[b+5356>>0]|0)){h:do if(!e){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{Pd=ue(b,6,B,C)|0;if(!((Pd&w|0)==0&((E()|0)&x|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;Pd=I;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&w|0)==0&((E()|0)&x|0)==0)e=e+-1|0;else break h}e=f<<6}e=g+49152+e|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);i=I;h=c[i>>2]|0;i=c[i+4>>2]|0;Pd=b+5224|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+360>>2]|0){Md=373;break}ld=c[b+5152>>2]|0;nd=64;Md=374}else Md=373;while(0);if((Md|0)==373){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2){hd=f;jd=2}else{ld=f;nd=e;Md=374}}i:do if((Md|0)==374){g=y;f=c[g>>2]|0;g=c[g+4>>2]|0;Pd=ue(b,2,h,i)|0;if(!((Pd&f|0)==0&((E()|0)&g|0)==0)){Pd=d;return Pd|0}e=3;while(1){if((e|0)==(nd|0)){hd=ld;jd=nd;break i}Pd=I;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&f|0)==0&((E()|0)&g|0)==0)e=e+1|0;else{k=d;break}}return k|0}while(0);e=hd+49152+(jd<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}j:do if(!e){h=c[b+1936>>2]|0;i=c[b+5148>>2]|0;if((h|0)>=6)if((h|0)==6){f=B;g=C;Zc=w;_c=x;cd=384}else{fd=1;Md=338}else{fd=-1;Md=338}if((Md|0)==338){f=B;g=C;e=6;do{Pd=ue(b,e,f,g)|0;e=e+fd|0;if(!((Pd&w|0)==0&((E()|0)&x|0)==0))break j;g=I;f=c[g>>2]|0;g=c[g+4>>2]|0}while((e|0)!=(h|0));_c=y;Zc=c[_c>>2]|0;_c=c[_c+4>>2]|0;cd=h<<6}Md=161184+(i<<3)|0;Pd=c[6e4]|0;Kd=239984;Ld=239992;Ld=vJ(c[Kd>>2]&(c[Md>>2]^f)|0,c[Kd+4>>2]&(c[Md+4>>2]^g)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&Zc&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&_c&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0))break;e=i+49152+cd|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);f=I;g=c[f>>2]|0;f=c[f+4>>2]|0;Pd=b+5224|0;if(!((c[Pd>>2]&g|0)==0?(c[Pd+4>>2]&f|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+360>>2]|0){Md=350;break}qd=y;pd=c[qd>>2]|0;qd=c[qd+4>>2]|0;rd=1;Fd=c[b+5152>>2]|0;Hd=64;Md=352}else Md=350;while(0);do if((Md|0)==350){e=c[b+1936>>2]|0;h=c[b+5152>>2]|0;j=y;i=c[j>>2]|0;j=c[j+4>>2]|0;if((e|0)<2){pd=i;qd=j;rd=-1;Fd=h;Hd=e;Md=352;break}if((e|0)==2){sd=h;td=g;ud=f;vd=i;wd=j;Jd=2}else{pd=i;qd=j;rd=1;Fd=h;Hd=e;Md=352}}while(0);do if((Md|0)==352){e=2;while(1){Pd=ue(b,e,g,f)|0;e=e+rd|0;if(!((Pd&pd|0)==0&((E()|0)&qd|0)==0)){k=d;Md=932;break}f=I;g=c[f>>2]|0;f=c[f+4>>2]|0;if((e|0)==(Hd|0)){Md=355;break}}if((Md|0)==355){wd=y;sd=Fd;td=g;ud=f;vd=c[wd>>2]|0;wd=c[wd+4>>2]|0;Jd=Hd;break}else if((Md|0)==932)return k|0}while(0);Od=161184+(sd<<3)|0;Pd=c[59976]|0;Md=239888;Nd=239896;Nd=vJ(c[Md>>2]&(c[Od>>2]^td)|0,c[Md+4>>2]&(c[Od+4>>2]^ud)|0,c[Nd>>2]|0,c[Nd+4>>2]|0)|0;Nd=xJ(Nd|0,E()|0,52)|0;E()|0;Nd=Pd+(Nd<<3)|0;Pd=b+288|0;Od=b+296|0;if(!((c[Nd>>2]&vd&(c[Od>>2]|c[Pd>>2])|0)==0?(c[Nd+4>>2]&wd&(c[Od+4>>2]|c[Pd+4>>2])|0)==0:0)){Pd=d;return Pd|0}e=sd+49152+(Jd<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}else{h=b+328|0;l=b+264|0;g=c[l>>2]&c[h>>2];h=c[l+4>>2]&c[h+4>>2];l=g&65280;g=g&-65281;s=b+320|0;r=s;q=c[r>>2]|0;r=c[r+4>>2]|0;j=xJ(g|0,h|0,8)|0;j=j&z;i=(E()|0)&A;xJ(j|0,i|0,8)|0;f=E()|0;n=c[b+1936>>2]|0;e=238816+(n<<3)|0;p=c[e+4>>2]|0;e=j&c[e>>2];i=i&p;j=A&255;f=p&j&f;p=Ld+336|0;o=c[p>>2]|0;p=c[p+4>>2]|0;g=o&g;h=p&h;if((g|0)==0&(h|0)==0){h=i;g=0}else{g=xJ(g|0,h|0,8)|0;Pd=(E()|0)&A;h=161696+((n&7)<<3)|0;g=g&z&~c[h>>2];h=Pd&~c[h+4>>2];xJ(g|0,h|0,8)|0;e=g|e;h=h|i;g=0;f=(E()|0)&j|f}if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(Pd|512)+(Pd<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|1024)+(Pd<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((l|0)==0&0==0)){e=xJ(l|0,0,9)|0;e=e&q;h=(E()|0)&r;m=xJ(l|0,0,7)|0;E()|0;m=q&254&m;g=xJ(l|0,0,8)|0;g=g&z;f=(E()|0)&A;if(!((e|0)==0&(h|0)==0)){l=161184+(n<<3)|0;j=c[l>>2]|0;l=c[l+4>>2]|0;i=h;do{h=qa(e|0,i|0,0)|0;E()|0;Pd=pJ(e|0,i|0,-1,-1)|0;e=Pd&e;i=(E()|0)&i;Pd=235744+(h<<3)|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){c[d>>2]=h+16960+(h<<6);d=d+8|0}}while(!((e|0)==0&(i|0)==0))}if(!((m|0)==0&0==0)){l=161184+(n<<3)|0;j=c[l>>2]|0;l=c[l+4>>2]|0;h=m;i=0;do{e=qa(h|0,i|0,0)|0;E()|0;Pd=pJ(h|0,i|0,-1,-1)|0;h=Pd&h;i=(E()|0)&i;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){c[d>>2]=e+16832+(e<<6);d=d+8|0}}while(!((h|0)==0&(i|0)==0))}if(!((g|0)==0&(f|0)==0)){i=161184+(n<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{e=qa(g|0,f|0,0)|0;E()|0;Pd=pJ(g|0,f|0,-1,-1)|0;g=Pd&g;f=(E()|0)&f;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){c[d>>2]=(e|16896)+(e<<6);d=d+8|0}}while(!((g|0)==0&(f|0)==0))}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0)?(Pd=235744+(e<<3)|0,H=j,G=c[Pd>>2]&z&c[H>>2],H=c[Pd+4>>2]&A&c[H+4>>2],!((G|0)==0&(H|0)==0)):0){i=e<<6;g=G;h=H;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+392|0;j=c[l>>2]&z;l=c[l+4>>2]&A;n=I;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(W=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,X=241376+(e*24|0)+8|0,X=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[X>>2]|0,c[X+4>>2]|0)|0,X=xJ(X|0,E()|0,55)|0,E()|0,X=W+(X<<3)|0,W=c[X>>2]&j,X=c[X+4>>2]&l,!((W|0)==0&(X|0)==0)):0){i=e<<6;g=W;h=X;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+400|0;j=c[l>>2]&z;l=c[l+4>>2]&A;n=I;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236768+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(ka=c[239840+(e*24|0)+16>>2]|0,Pd=239840+(e*24|0)|0,la=239840+(e*24|0)+8|0,la=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[la>>2]|0,c[la+4>>2]|0)|0,la=xJ(la|0,E()|0,52)|0,E()|0,la=ka+(la<<3)|0,ka=c[la>>2]&j,la=c[la+4>>2]&l,!((ka|0)==0&(la|0)==0)):0){i=e<<6;g=ka;h=la;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+408|0;j=c[l>>2]&z;l=c[l+4>>2]&A;n=I;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=237280+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(xa=c[239840+(e*24|0)+16>>2]|0,Jd=239840+(e*24|0)|0,ya=239840+(e*24|0)+8|0,ya=vJ(c[Jd>>2]&m|0,c[Jd+4>>2]&n|0,c[ya>>2]|0,c[ya+4>>2]|0)|0,ya=xJ(ya|0,E()|0,52)|0,E()|0,ya=xa+(ya<<3)|0,xa=c[ya>>2]|0,ya=c[ya+4>>2]|0,Jd=c[241376+(e*24|0)+16>>2]|0,Hd=241376+(e*24|0)|0,Pd=241376+(e*24|0)+8|0,Pd=vJ(c[Hd>>2]&m|0,c[Hd+4>>2]&n|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0,Pd=xJ(Pd|0,E()|0,55)|0,E()|0,Pd=Jd+(Pd<<3)|0,xa=(c[Pd>>2]|xa)&j,ya=(c[Pd+4>>2]|ya)&l,!((xa|0)==0&(ya|0)==0)):0){i=e<<6;g=xa;h=ya;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}do if(c[b+4528>>2]|0){if((c[b+4532>>2]|0)!=0?(Aa=Ld+376|0,za=z&-256&c[Aa>>2],Aa=A&16777215&c[Aa+4>>2],!((za|0)==0&(Aa|0)==0)):0){g=za;f=Aa;e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|36864)+576;if((g|0)==0&(f|0)==0)break;else e=d}}if((c[b+4536>>2]|0)!=0?(Ga=Ld+384|0,Fa=c[Ga>>2]&z,Ga=c[Ga+4>>2]&A,!((Fa|0)==0&(Ga|0)==0)):0){g=Fa;f=Ga;e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=Pd|37504;if((g|0)==0&(f|0)==0)break;else e=d}}do if(c[b+4540>>2]|0){f=Ld+392|0;e=c[f>>2]&z;f=c[f+4>>2]&A;if((e|0)==0&(f|0)==0)break;g=d;while(1){Pd=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(Pd|36864)+704;if((e|0)==0&(f|0)==0)break;else g=d}}while(0);do if(c[b+4544>>2]|0){f=Ld+400|0;e=c[f>>2]&z;f=c[f+4>>2]&A;if((e|0)==0&(f|0)==0)break;g=d;while(1){Pd=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=Pd|37632;if((e|0)==0&(f|0)==0)break;else g=d}}while(0);if(!(c[b+4548>>2]|0))break;f=Ld+408|0;e=c[f>>2]&z;f=c[f+4>>2]&A;if((e|0)==0&(f|0)==0)break;g=d;while(1){Pd=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(Pd|36864)+832;if((e|0)==0&(f|0)==0)break;else g=d}}while(0);e=c[Ld+24>>2]|0;if(!(e&12)){Pd=d;return Pd|0}Pd=b+5240|0;e=(e&4|0)==0|(c[Pd>>2]&B|0?1:(c[Pd+4>>2]&C|0)!=0);if(!(a[b+5356>>0]|0)){k:do if(!e){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{Pd=ue(b,62,B,C)|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;Pd=I;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&q|0)==0&((E()|0)&r|0)==0)e=e+-1|0;else break k}e=f<<6}e=g+49152+e|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);i=I;h=c[i>>2]|0;i=c[i+4>>2]|0;Pd=b+5272|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+392>>2]|0){Md=496;break}md=c[b+5176>>2]|0;od=64;Md=497}else Md=496;while(0);if((Md|0)==496){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58){id=f;kd=58}else{md=f;od=e;Md=497}}l:do if((Md|0)==497){g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;Pd=ue(b,58,h,i)|0;if(!((Pd&f|0)==0&((E()|0)&g|0)==0)){Pd=d;return Pd|0}e=59;while(1){if((e|0)==(od|0)){id=md;kd=od;break l}Pd=I;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&f|0)==0&((E()|0)&g|0)==0)e=e+1|0;else{k=d;break}}return k|0}while(0);e=id+49152+(kd<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}m:do if(!e){h=c[b+3984>>2]|0;i=c[b+5160>>2]|0;if((h|0)>=62)if((h|0)==62){ed=B;$c=C;ad=q;bd=r;dd=3968}else{gd=1;Md=461}else{gd=-1;Md=461}if((Md|0)==461){f=B;g=C;e=62;do{Pd=ue(b,e,f,g)|0;e=e+gd|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break m;g=I;f=c[g>>2]|0;g=c[g+4>>2]|0}while((e|0)!=(h|0));bd=s;ed=f;$c=g;ad=c[bd>>2]|0;bd=c[bd+4>>2]|0;dd=h<<6}Md=161184+(i<<3)|0;Pd=c[60336]|0;Jd=241328;Ld=241336;Ld=vJ(c[Jd>>2]&(c[Md>>2]^ed)|0,c[Jd+4>>2]&(c[Md+4>>2]^$c)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&ad&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&bd&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0))break;e=i+49152+dd|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);f=I;g=c[f>>2]|0;f=c[f+4>>2]|0;Pd=b+5272|0;if(!((c[Pd>>2]&g|0)==0?(c[Pd+4>>2]&f|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+392>>2]|0){Md=473;break}yd=s;xd=c[yd>>2]|0;yd=c[yd+4>>2]|0;zd=1;Gd=c[b+5176>>2]|0;Id=64;Md=475}else Md=473;while(0);do if((Md|0)==473){e=c[b+3984>>2]|0;h=c[b+5176>>2]|0;j=s;i=c[j>>2]|0;j=c[j+4>>2]|0;if((e|0)<58){xd=i;yd=j;zd=-1;Gd=h;Id=e;Md=475;break}if((e|0)==58){Ad=h;Bd=g;Cd=f;Dd=i;Ed=j;Kd=58}else{xd=i;yd=j;zd=1;Gd=h;Id=e;Md=475}}while(0);do if((Md|0)==475){e=58;while(1){Pd=ue(b,e,g,f)|0;e=e+zd|0;if(!((Pd&xd|0)==0&((E()|0)&yd|0)==0)){k=d;Md=932;break}f=I;g=c[f>>2]|0;f=c[f+4>>2]|0;if((e|0)==(Id|0)){Md=478;break}}if((Md|0)==478){Ed=s;Ad=Gd;Bd=g;Cd=f;Dd=c[Ed>>2]|0;Ed=c[Ed+4>>2]|0;Kd=Id;break}else if((Md|0)==932)return k|0}while(0);Od=161184+(Ad<<3)|0;Pd=c[60312]|0;Md=241232;Nd=241240;Nd=vJ(c[Md>>2]&(c[Od>>2]^Bd)|0,c[Md+4>>2]&(c[Od+4>>2]^Cd)|0,c[Nd>>2]|0,c[Nd+4>>2]|0)|0;Nd=xJ(Nd|0,E()|0,52)|0;E()|0;Nd=Pd+(Nd<<3)|0;Pd=b+288|0;Od=b+296|0;if(!((c[Nd>>2]&Dd&(c[Od>>2]|c[Pd>>2])|0)==0?(c[Nd+4>>2]&Ed&(c[Od+4>>2]|c[Pd+4>>2])|0)==0:0)){Pd=d;return Pd|0}e=Ad+49152+(Kd<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}}default:{e=(e|0)==0;x=b+256|0;w=x;v=c[w>>2]|0;w=c[w+4>>2]|0;t=~v;u=~w;if(!C)if(e){h=b+320|0;l=b+264|0;f=c[l>>2]&c[h>>2];h=c[l+4>>2]&c[h+4>>2];l=h&16711680;h=h&-16711681;s=b+328|0;r=s;q=c[r>>2]|0;r=c[r+4>>2]|0;e=yJ(f|0,h|0,8)|0;e=e&t;j=(E()|0)&u;g=yJ(e|0,j|0,8)|0;E()|0;n=c[b+3984>>2]|0;i=239328+(n<<3)|0;p=c[i>>2]|0;e=e&p;i=j&c[i+4>>2];j=t&-16777216;g=p&j&g;p=Ld+344|0;o=c[p>>2]|0;p=c[p+4>>2]|0;f=o&f;h=p&h;if((f|0)==0&(h|0)==0){h=i;f=0}else{Pd=yJ(f|0,h|0,8)|0;f=(E()|0)&u;h=161696+((n&7)<<3)|0;Pd=Pd&t&~c[h>>2];h=f&~c[h+4>>2];f=yJ(Pd|0,h|0,8)|0;E()|0;e=Pd|e;h=h|i;g=f&j|g;f=0}if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(Pd|-512)+(Pd<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|-1024)+(Pd<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!(0==0&(l|0)==0)){e=yJ(0,l|0,9)|0;e=e&q;h=(E()|0)&r;yJ(0,l|0,7)|0;m=r&2130706432&(E()|0);g=yJ(0,l|0,8)|0;g=g&t;f=(E()|0)&u;if(!((e|0)==0&(h|0)==0)){l=161184+(n<<3)|0;j=c[l>>2]|0;l=c[l+4>>2]|0;i=h;do{h=qa(e|0,i|0,0)|0;E()|0;Pd=pJ(e|0,i|0,-1,-1)|0;e=Pd&e;i=(E()|0)&i;Pd=235744+(h<<3)|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){c[d>>2]=h+15808+(h<<6);d=d+8|0}}while(!((e|0)==0&(i|0)==0))}if(!(0==0&(m|0)==0)){j=161184+(n<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;l=0;h=m;do{e=qa(l|0,h|0,0)|0;E()|0;Pd=pJ(l|0,h|0,-1,-1)|0;l=Pd&l;h=(E()|0)&h;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&i|0)==0?(c[Pd+4>>2]&j|0)==0:0)){c[d>>2]=e+15936+(e<<6);d=d+8|0}}while(!((l|0)==0&(h|0)==0))}if(!((g|0)==0&(f|0)==0)){i=161184+(n<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{e=qa(g|0,f|0,0)|0;E()|0;Pd=pJ(g|0,f|0,-1,-1)|0;g=Pd&g;f=(E()|0)&f;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){c[d>>2]=(e|15872)+(e<<6);d=d+8|0}}while(!((g|0)==0&(f|0)==0))}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0)?(Pd=235744+(e<<3)|0,J=j,I=c[Pd>>2]&t&c[J>>2],J=c[Pd+4>>2]&u&c[J+4>>2],!((I|0)==0&(J|0)==0)):0){i=e<<6;g=I;h=J;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+392|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(Y=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,Z=241376+(e*24|0)+8|0,Z=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[Z>>2]|0,c[Z+4>>2]|0)|0,Z=xJ(Z|0,E()|0,55)|0,E()|0,Z=Y+(Z<<3)|0,Y=c[Z>>2]&j,Z=c[Z+4>>2]&l,!((Y|0)==0&(Z|0)==0)):0){i=e<<6;g=Y;h=Z;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+400|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236768+(e<<3)|0;do if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0){g=c[239840+(e*24|0)+16>>2]|0;Pd=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&j;h=c[h+4>>2]&l;if((g|0)==0&(h|0)==0)break;i=e<<6;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}while(0);f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+408|0;n=c[j>>2]&t;j=c[j+4>>2]&u;m=x;l=c[m>>2]|0;m=c[m+4>>2]|0;i=f;do{Pd=237280+(e<<3)|0;do if(!((c[Pd>>2]&n|0)==0?(c[Pd+4>>2]&j|0)==0:0)){Pd=161184+(e<<3)|0;if(!((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0))break;f=c[239840+(e*24|0)+16>>2]|0;Kd=239840+(e*24|0)|0;g=239840+(e*24|0)+8|0;g=vJ(c[Kd>>2]&l|0,c[Kd+4>>2]&m|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;Kd=c[241376+(e*24|0)+16>>2]|0;Jd=241376+(e*24|0)|0;Pd=241376+(e*24|0)+8|0;Pd=vJ(c[Jd>>2]&l|0,c[Jd+4>>2]&m|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;Pd=xJ(Pd|0,E()|0,55)|0;E()|0;Pd=Kd+(Pd<<3)|0;f=(c[Pd>>2]|f)&n;g=(c[Pd+4>>2]|g)&j;if((f|0)==0&(g|0)==0)break;h=e<<6;e=d;while(1){Pd=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=h+Pd;if((f|0)==0&(g|0)==0)break;else e=d}}while(0);i=i+4|0;e=c[i>>2]|0}while((e|0)!=64)}e=c[Ld+24>>2]|0;if(!(e&3)){Pd=d;return Pd|0}Pd=b+5216|0;e=(e&1|0)==0|(c[Pd>>2]&v|0?1:(c[Pd+4>>2]&w|0)!=0);if(!(a[b+5356>>0]|0)){n:do if(!e){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{Pd=ue(b,6,v,w)|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&q|0)==0&((E()|0)&r|0)==0)e=e+-1|0;else break n}e=f<<6}e=g+49152+e|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);i=x;h=c[i>>2]|0;i=c[i+4>>2]|0;Pd=b+5224|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+360>>2]|0){Md=823;break}xb=c[b+5152>>2]|0;Ab=64;Md=824}else Md=823;while(0);if((Md|0)==823){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2){pb=f;sb=2}else{xb=f;Ab=e;Md=824}}o:do if((Md|0)==824){g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;Pd=ue(b,2,h,i)|0;if(!((Pd&f|0)==0&((E()|0)&g|0)==0)){Pd=d;return Pd|0}e=3;while(1){if((e|0)==(Ab|0)){pb=xb;sb=Ab;break o}Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&f|0)==0&((E()|0)&g|0)==0)e=e+1|0;else{k=d;break}}return k|0}while(0);e=pb+49152+(sb<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}p:do if(!e){h=c[b+1936>>2]|0;i=c[b+5148>>2]|0;if((h|0)>=6)if((h|0)==6){Za=v;Pa=w;Qa=q;Ra=r;Wa=384}else{$a=1;Md=788}else{$a=-1;Md=788}if((Md|0)==788){f=v;g=w;e=6;do{Pd=ue(b,e,f,g)|0;e=e+$a|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break p;g=x;f=c[g>>2]|0;g=c[g+4>>2]|0}while((e|0)!=(h|0));Ra=s;Za=f;Pa=g;Qa=c[Ra>>2]|0;Ra=c[Ra+4>>2]|0;Wa=h<<6}Md=161184+(i<<3)|0;Pd=c[6e4]|0;Kd=239984;Ld=239992;Ld=vJ(c[Kd>>2]&(c[Md>>2]^Za)|0,c[Kd+4>>2]&(c[Md+4>>2]^Pa)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&Qa&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&Ra&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0))break;e=i+49152+Wa|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;Pd=b+5224|0;if(!((c[Pd>>2]&g|0)==0?(c[Pd+4>>2]&f|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+360>>2]|0){Md=800;break}Gb=s;Fb=c[Gb>>2]|0;Gb=c[Gb+4>>2]|0;Hb=1;Vb=c[b+5152>>2]|0;Yb=64;Md=802}else Md=800;while(0);do if((Md|0)==800){e=c[b+1936>>2]|0;h=c[b+5152>>2]|0;j=s;i=c[j>>2]|0;j=c[j+4>>2]|0;if((e|0)<2){Fb=i;Gb=j;Hb=-1;Vb=h;Yb=e;Md=802;break}if((e|0)==2){Ib=h;Jb=g;Kb=f;Lb=i;Mb=j;_b=2}else{Fb=i;Gb=j;Hb=1;Vb=h;Yb=e;Md=802}}while(0);do if((Md|0)==802){e=2;while(1){Pd=ue(b,e,g,f)|0;e=e+Hb|0;if(!((Pd&Fb|0)==0&((E()|0)&Gb|0)==0)){k=d;Md=932;break}f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;if((e|0)==(Yb|0)){Md=805;break}}if((Md|0)==805){Mb=s;Ib=Vb;Jb=g;Kb=f;Lb=c[Mb>>2]|0;Mb=c[Mb+4>>2]|0;_b=Yb;break}else if((Md|0)==932)return k|0}while(0);Od=161184+(Ib<<3)|0;Pd=c[59976]|0;Md=239888;Nd=239896;Nd=vJ(c[Md>>2]&(c[Od>>2]^Jb)|0,c[Md+4>>2]&(c[Od+4>>2]^Kb)|0,c[Nd>>2]|0,c[Nd+4>>2]|0)|0;Nd=xJ(Nd|0,E()|0,52)|0;E()|0;Nd=Pd+(Nd<<3)|0;Pd=b+288|0;Od=b+296|0;if(!((c[Nd>>2]&Lb&(c[Od>>2]|c[Pd>>2])|0)==0?(c[Nd+4>>2]&Mb&(c[Od+4>>2]|c[Pd+4>>2])|0)==0:0)){Pd=d;return Pd|0}e=Ib+49152+(_b<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}else{h=b+328|0;l=b+264|0;g=c[l>>2]&c[h>>2];h=c[l+4>>2]&c[h+4>>2];l=g&65280;g=g&-65281;s=b+320|0;r=s;q=c[r>>2]|0;r=c[r+4>>2]|0;j=xJ(g|0,h|0,8)|0;j=j&t;i=(E()|0)&u;xJ(j|0,i|0,8)|0;f=E()|0;n=c[b+1936>>2]|0;e=238816+(n<<3)|0;p=c[e+4>>2]|0;e=j&c[e>>2];i=i&p;j=u&255;f=p&j&f;p=Ld+336|0;o=c[p>>2]|0;p=c[p+4>>2]|0;g=o&g;h=p&h;if((g|0)==0&(h|0)==0){h=i;g=0}else{g=xJ(g|0,h|0,8)|0;Pd=(E()|0)&u;h=161696+((n&7)<<3)|0;g=g&t&~c[h>>2];h=Pd&~c[h+4>>2];xJ(g|0,h|0,8)|0;e=g|e;h=h|i;g=0;f=(E()|0)&j|f}if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(Pd|512)+(Pd<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|1024)+(Pd<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((l|0)==0&0==0)){e=xJ(l|0,0,9)|0;e=e&q;h=(E()|0)&r;m=xJ(l|0,0,7)|0;E()|0;m=q&254&m;g=xJ(l|0,0,8)|0;g=g&t;f=(E()|0)&u;if(!((e|0)==0&(h|0)==0)){l=161184+(n<<3)|0;j=c[l>>2]|0;l=c[l+4>>2]|0;i=h;do{h=qa(e|0,i|0,0)|0;E()|0;Pd=pJ(e|0,i|0,-1,-1)|0;e=Pd&e;i=(E()|0)&i;Pd=235744+(h<<3)|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){c[d>>2]=h+16960+(h<<6);d=d+8|0}}while(!((e|0)==0&(i|0)==0))}if(!((m|0)==0&0==0)){l=161184+(n<<3)|0;j=c[l>>2]|0;l=c[l+4>>2]|0;h=m;i=0;do{e=qa(h|0,i|0,0)|0;E()|0;Pd=pJ(h|0,i|0,-1,-1)|0;h=Pd&h;i=(E()|0)&i;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){c[d>>2]=e+16832+(e<<6);d=d+8|0}}while(!((h|0)==0&(i|0)==0))}if(!((g|0)==0&(f|0)==0)){i=161184+(n<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{e=qa(g|0,f|0,0)|0;E()|0;Pd=pJ(g|0,f|0,-1,-1)|0;g=Pd&g;f=(E()|0)&f;Pd=235744+(e<<3)|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){c[d>>2]=(e|16896)+(e<<6);d=d+8|0}}while(!((g|0)==0&(f|0)==0))}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0)?(Pd=235744+(e<<3)|0,L=j,K=c[Pd>>2]&t&c[L>>2],L=c[Pd+4>>2]&u&c[L+4>>2],!((K|0)==0&(L|0)==0)):0){i=e<<6;g=K;h=L;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+392|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(_=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,$=241376+(e*24|0)+8|0,$=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[$>>2]|0,c[$+4>>2]|0)|0,$=xJ($|0,E()|0,55)|0,E()|0,$=_+($<<3)|0,_=c[$>>2]&j,$=c[$+4>>2]&l,!((_|0)==0&($|0)==0)):0){i=e<<6;g=_;h=$;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+400|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236768+(e<<3)|0;do if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0){g=c[239840+(e*24|0)+16>>2]|0;Pd=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&j;h=c[h+4>>2]&l;if((g|0)==0&(h|0)==0)break;i=e<<6;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}while(0);f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+408|0;n=c[j>>2]&t;j=c[j+4>>2]&u;m=x;l=c[m>>2]|0;m=c[m+4>>2]|0;i=f;do{Pd=237280+(e<<3)|0;do if(!((c[Pd>>2]&n|0)==0?(c[Pd+4>>2]&j|0)==0:0)){Pd=161184+(e<<3)|0;if(!((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0))break;f=c[239840+(e*24|0)+16>>2]|0;Kd=239840+(e*24|0)|0;g=239840+(e*24|0)+8|0;g=vJ(c[Kd>>2]&l|0,c[Kd+4>>2]&m|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;Kd=c[241376+(e*24|0)+16>>2]|0;Jd=241376+(e*24|0)|0;Pd=241376+(e*24|0)+8|0;Pd=vJ(c[Jd>>2]&l|0,c[Jd+4>>2]&m|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;Pd=xJ(Pd|0,E()|0,55)|0;E()|0;Pd=Kd+(Pd<<3)|0;f=(c[Pd>>2]|f)&n;g=(c[Pd+4>>2]|g)&j;if((f|0)==0&(g|0)==0)break;h=e<<6;e=d;while(1){Pd=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=h+Pd;if((f|0)==0&(g|0)==0)break;else e=d}}while(0);i=i+4|0;e=c[i>>2]|0}while((e|0)!=64)}e=c[Ld+24>>2]|0;if(!(e&12)){Pd=d;return Pd|0}Pd=b+5240|0;e=(e&4|0)==0|(c[Pd>>2]&v|0?1:(c[Pd+4>>2]&w|0)!=0);if(!(a[b+5356>>0]|0)){q:do if(!e){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{Pd=ue(b,62,v,w)|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&q|0)==0&((E()|0)&r|0)==0)e=e+-1|0;else break q}e=f<<6}e=g+49152+e|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);i=x;h=c[i>>2]|0;i=c[i+4>>2]|0;Pd=b+5272|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+392>>2]|0){Md=925;break}yb=c[b+5176>>2]|0;zb=64;Md=926}else Md=925;while(0);if((Md|0)==925){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58){qb=f;rb=58}else{yb=f;zb=e;Md=926}}r:do if((Md|0)==926){g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;Pd=ue(b,58,h,i)|0;if(!((Pd&f|0)==0&((E()|0)&g|0)==0)){Pd=d;return Pd|0}e=59;while(1){if((e|0)==(zb|0)){qb=yb;rb=zb;break r}Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&f|0)==0&((E()|0)&g|0)==0)e=e+1|0;else{k=d;break}}return k|0}while(0);e=qb+49152+(rb<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}s:do if(!e){h=c[b+3984>>2]|0;i=c[b+5160>>2]|0;if((h|0)>=62)if((h|0)==62){_a=v;Sa=w;Ta=q;Ua=r;Va=3968}else{ab=1;Md=890}else{ab=-1;Md=890}if((Md|0)==890){f=v;g=w;e=62;do{Pd=ue(b,e,f,g)|0;e=e+ab|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break s;g=x;f=c[g>>2]|0;g=c[g+4>>2]|0}while((e|0)!=(h|0));Ua=s;_a=f;Sa=g;Ta=c[Ua>>2]|0;Ua=c[Ua+4>>2]|0;Va=h<<6}Md=161184+(i<<3)|0;Pd=c[60336]|0;Kd=241328;Ld=241336;Ld=vJ(c[Kd>>2]&(c[Md>>2]^_a)|0,c[Kd+4>>2]&(c[Md+4>>2]^Sa)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&Ta&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&Ua&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0))break;e=i+49152+Va|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;Pd=b+5272|0;if(!((c[Pd>>2]&g|0)==0?(c[Pd+4>>2]&f|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+392>>2]|0){Md=902;break}Ob=s;Nb=c[Ob>>2]|0;Ob=c[Ob+4>>2]|0;Pb=1;Wb=c[b+5176>>2]|0;Xb=64;Md=904}else Md=902;while(0);do if((Md|0)==902){e=c[b+3984>>2]|0;h=c[b+5176>>2]|0;j=s;i=c[j>>2]|0;j=c[j+4>>2]|0;if((e|0)<58){Nb=i;Ob=j;Pb=-1;Wb=h;Xb=e;Md=904;break}if((e|0)==58){Qb=h;Rb=g;Sb=f;Tb=i;Ub=j;Zb=58}else{Nb=i;Ob=j;Pb=1;Wb=h;Xb=e;Md=904}}while(0);do if((Md|0)==904){e=58;while(1){Pd=ue(b,e,g,f)|0;e=e+Pb|0;if(!((Pd&Nb|0)==0&((E()|0)&Ob|0)==0)){k=d;Md=932;break}f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;if((e|0)==(Xb|0)){Md=907;break}}if((Md|0)==907){Ub=s;Qb=Wb;Rb=g;Sb=f;Tb=c[Ub>>2]|0;Ub=c[Ub+4>>2]|0;Zb=Xb;break}else if((Md|0)==932)return k|0}while(0);Od=161184+(Qb<<3)|0;Pd=c[60312]|0;Md=241232;Nd=241240;Nd=vJ(c[Md>>2]&(c[Od>>2]^Rb)|0,c[Md+4>>2]&(c[Od+4>>2]^Sb)|0,c[Nd>>2]|0,c[Nd+4>>2]|0)|0;Nd=xJ(Nd|0,E()|0,52)|0;E()|0;Nd=Pd+(Nd<<3)|0;Pd=b+288|0;Od=b+296|0;if(!((c[Nd>>2]&Tb&(c[Od>>2]|c[Pd>>2])|0)==0?(c[Nd+4>>2]&Ub&(c[Od+4>>2]|c[Pd+4>>2])|0)==0:0)){Pd=d;return Pd|0}e=Qb+49152+(Zb<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}if(e){i=b+320|0;l=b+264|0;h=c[l>>2]&c[i>>2];i=c[l+4>>2]&c[i+4>>2];l=i&16711680;i=i&-16711681;s=b+328|0;r=s;q=c[r>>2]|0;r=c[r+4>>2]|0;f=yJ(h|0,i|0,8)|0;f=f&t;o=(E()|0)&u;g=yJ(f|0,o|0,8)|0;E()|0;m=b+3984|0;e=c[m>>2]|0;j=239328+(e<<3)|0;p=c[j>>2]|0;f=f&p;j=o&c[j+4>>2];g=t&-65536&p&g;p=Ld+344|0;o=c[p>>2]|0;p=c[p+4>>2]|0;h=o&h;i=p&i;if((h|0)==0&(i|0)==0){e=f;h=j;f=0}else{Kd=yJ(h|0,i|0,8)|0;Pd=(E()|0)&u;h=161696+((e&7)<<3)|0;e=Kd&t&~c[h>>2];h=Pd&~c[h+4>>2];Pd=yJ(e|0,h|0,8)|0;E()|0;e=e|f;h=h|j;g=t&-16777216&Pd|g;f=0}if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(Pd|-512)+(Pd<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|-1024)+(Pd<<6);if((g|0)==0&(f|0)==0)break;else e=d}}t:do if(!(0==0&(l|0)==0)){i=yJ(0,l|0,9)|0;i=i&q;h=(E()|0)&r;yJ(0,l|0,7)|0;g=r&2130706432&(E()|0);f=yJ(0,l|0,8)|0;f=f&t;e=(E()|0)&u;n=(c[b+392>>2]|0)==0?64:c[m>>2]|0;u:do if(!((i|0)==0&(h|0)==0)){if((n|0)==64)while(1){Pd=pJ(i|0,h|0,-1,-1)|0;i=Pd&i;h=(E()|0)&h;if((i|0)==0&(h|0)==0)break u}m=161184+(n<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;do{j=qa(i|0,h|0,0)|0;E()|0;Pd=pJ(i|0,h|0,-1,-1)|0;i=Pd&i;h=(E()|0)&h;Pd=235744+(j<<3)|0;if(!((c[Pd>>2]&l|0)==0?(c[Pd+4>>2]&m|0)==0:0)){c[d>>2]=j+15808+(j<<6);d=d+8|0}}while(!((i|0)==0&(h|0)==0))}while(0);v:do if(!(0==0&(g|0)==0)){if((n|0)==64){h=0;while(1){Pd=pJ(h|0,g|0,-1,-1)|0;h=Pd&h;g=(E()|0)&g;if((h|0)==0&(g|0)==0)break v}}j=161184+(n<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;l=0;do{h=qa(l|0,g|0,0)|0;E()|0;Pd=pJ(l|0,g|0,-1,-1)|0;l=Pd&l;g=(E()|0)&g;Pd=235744+(h<<3)|0;if(!((c[Pd>>2]&i|0)==0?(c[Pd+4>>2]&j|0)==0:0)){c[d>>2]=h+15936+(h<<6);d=d+8|0}}while(!((l|0)==0&(g|0)==0))}while(0);if(!((f|0)==0&(e|0)==0)){if((n|0)==64)while(1){Pd=pJ(f|0,e|0,-1,-1)|0;f=Pd&f;e=(E()|0)&e;if((f|0)==0&(e|0)==0)break t}i=161184+(n<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{g=qa(f|0,e|0,0)|0;E()|0;Pd=pJ(f|0,e|0,-1,-1)|0;f=Pd&f;e=(E()|0)&e;Pd=235744+(g<<3)|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){c[d>>2]=(g|15872)+(g<<6);d=d+8|0}}while(!((f|0)==0&(e|0)==0))}}while(0);f=b+912|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0)?(Pd=235744+(e<<3)|0,R=j,Q=c[Pd>>2]&t&c[R>>2],R=c[Pd+4>>2]&u&c[R+4>>2],!((Q|0)==0&(R|0)==0)):0){i=e<<6;g=Q;h=R;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+392|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(ea=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,fa=241376+(e*24|0)+8|0,fa=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[fa>>2]|0,c[fa+4>>2]|0)|0,fa=xJ(fa|0,E()|0,55)|0,E()|0,fa=ea+(fa<<3)|0,ea=c[fa>>2]&j,fa=c[fa+4>>2]&l,!((ea|0)==0&(fa|0)==0)):0){i=e<<6;g=ea;h=fa;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+400|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236768+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(ra=c[239840+(e*24|0)+16>>2]|0,Pd=239840+(e*24|0)|0,sa=239840+(e*24|0)+8|0,sa=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[sa>>2]|0,c[sa+4>>2]|0)|0,sa=xJ(sa|0,E()|0,52)|0,E()|0,sa=ra+(sa<<3)|0,ra=c[sa>>2]&j,sa=c[sa+4>>2]&l,!((ra|0)==0&(sa|0)==0)):0){i=e<<6;g=ra;h=sa;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+408|0;n=c[j>>2]&t;j=c[j+4>>2]&u;m=x;l=c[m>>2]|0;m=c[m+4>>2]|0;i=f;do{Pd=237280+(e<<3)|0;do if(!((c[Pd>>2]&n|0)==0?(c[Pd+4>>2]&j|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0){f=c[239840+(e*24|0)+16>>2]|0;Kd=239840+(e*24|0)|0;g=239840+(e*24|0)+8|0;g=vJ(c[Kd>>2]&l|0,c[Kd+4>>2]&m|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;Kd=c[241376+(e*24|0)+16>>2]|0;Jd=241376+(e*24|0)|0;Pd=241376+(e*24|0)+8|0;Pd=vJ(c[Jd>>2]&l|0,c[Jd+4>>2]&m|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;Pd=xJ(Pd|0,E()|0,55)|0;E()|0;Pd=Kd+(Pd<<3)|0;f=(c[Pd>>2]|f)&n;g=(c[Pd+4>>2]|g)&j;if((f|0)==0&(g|0)==0)break;h=e<<6;e=d;while(1){Pd=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=h+Pd;if((f|0)==0&(g|0)==0)break;else e=d}}while(0);i=i+4|0;e=c[i>>2]|0}while((e|0)!=64)}e=c[Ld+24>>2]|0;if(!(e&3)){Pd=d;return Pd|0}Pd=b+5216|0;e=(e&1|0)==0|(c[Pd>>2]&v|0?1:(c[Pd+4>>2]&w|0)!=0);if(!(a[b+5356>>0]|0)){w:do if(!e){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{Pd=ue(b,6,v,w)|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&q|0)==0&((E()|0)&r|0)==0)e=e+-1|0;else break w}e=f<<6}e=g+49152+e|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);i=x;h=c[i>>2]|0;i=c[i+4>>2]|0;Pd=b+5224|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+360>>2]|0){Md=609;break}$b=c[b+5152>>2]|0;bc=64;Md=610}else Md=609;while(0);if((Md|0)==609){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2){Bb=f;Db=2}else{$b=f;bc=e;Md=610}}x:do if((Md|0)==610){g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;Pd=ue(b,2,h,i)|0;if(!((Pd&f|0)==0&((E()|0)&g|0)==0)){Pd=d;return Pd|0}e=3;while(1){if((e|0)==(bc|0)){Bb=$b;Db=bc;break x}Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&f|0)==0&((E()|0)&g|0)==0)e=e+1|0;else{k=d;break}}return k|0}while(0);e=Bb+49152+(Db<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}y:do if(!e){h=c[b+1936>>2]|0;i=c[b+5148>>2]|0;if((h|0)>=6)if((h|0)==6){lb=v;db=w;eb=q;fb=r;kb=384}else{nb=1;Md=574}else{nb=-1;Md=574}if((Md|0)==574){f=v;g=w;e=6;do{Pd=ue(b,e,f,g)|0;e=e+nb|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break y;g=x;f=c[g>>2]|0;g=c[g+4>>2]|0}while((e|0)!=(h|0));fb=s;lb=f;db=g;eb=c[fb>>2]|0;fb=c[fb+4>>2]|0;kb=h<<6}Md=161184+(i<<3)|0;Pd=c[6e4]|0;Kd=239984;Ld=239992;Ld=vJ(c[Kd>>2]&(c[Md>>2]^lb)|0,c[Kd+4>>2]&(c[Md+4>>2]^db)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&eb&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&fb&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0))break;e=i+49152+kb|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;Pd=b+5224|0;if(!((c[Pd>>2]&g|0)==0?(c[Pd+4>>2]&f|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&2)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+360>>2]|0){Md=586;break}rc=s;qc=c[rc>>2]|0;rc=c[rc+4>>2]|0;sc=1;Ic=c[b+5152>>2]|0;Pc=64;Md=588}else Md=586;while(0);do if((Md|0)==586){e=c[b+1936>>2]|0;h=c[b+5152>>2]|0;j=s;i=c[j>>2]|0;j=c[j+4>>2]|0;if((e|0)<2){qc=i;rc=j;sc=-1;Ic=h;Pc=e;Md=588;break}if((e|0)==2){tc=h;uc=g;vc=f;wc=i;xc=j;Rc=2}else{qc=i;rc=j;sc=1;Ic=h;Pc=e;Md=588}}while(0);do if((Md|0)==588){e=2;while(1){Pd=ue(b,e,g,f)|0;e=e+sc|0;if(!((Pd&qc|0)==0&((E()|0)&rc|0)==0)){k=d;Md=932;break}f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;if((e|0)==(Pc|0)){Md=591;break}}if((Md|0)==591){xc=s;tc=Ic;uc=g;vc=f;wc=c[xc>>2]|0;xc=c[xc+4>>2]|0;Rc=Pc;break}else if((Md|0)==932)return k|0}while(0);Od=161184+(tc<<3)|0;Pd=c[59976]|0;Md=239888;Nd=239896;Nd=vJ(c[Md>>2]&(c[Od>>2]^uc)|0,c[Md+4>>2]&(c[Od+4>>2]^vc)|0,c[Nd>>2]|0,c[Nd+4>>2]|0)|0;Nd=xJ(Nd|0,E()|0,52)|0;E()|0;Nd=Pd+(Nd<<3)|0;Pd=b+288|0;Od=b+296|0;if(!((c[Nd>>2]&wc&(c[Od>>2]|c[Pd>>2])|0)==0?(c[Nd+4>>2]&xc&(c[Od+4>>2]|c[Pd+4>>2])|0)==0:0)){Pd=d;return Pd|0}e=tc+49152+(Rc<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}else{i=b+328|0;l=b+264|0;h=c[l>>2]&c[i>>2];i=c[l+4>>2]&c[i+4>>2];l=h&65280;h=h&-65281;s=b+320|0;r=s;q=c[r>>2]|0;r=c[r+4>>2]|0;o=xJ(h|0,i|0,8)|0;o=o&t;j=(E()|0)&u;xJ(o|0,j|0,8)|0;f=E()|0;m=b+1936|0;e=c[m>>2]|0;g=238816+(e<<3)|0;p=c[g+4>>2]|0;g=o&c[g>>2];j=j&p;f=u&65535&p&f;p=Ld+336|0;o=c[p>>2]|0;p=c[p+4>>2]|0;h=o&h;i=p&i;if((h|0)==0&(i|0)==0){e=g;h=j;g=0}else{Kd=xJ(h|0,i|0,8)|0;Pd=(E()|0)&u;h=161696+((e&7)<<3)|0;e=Kd&t&~c[h>>2];h=Pd&~c[h+4>>2];xJ(e|0,h|0,8)|0;e=e|g;h=h|j;g=0;f=u&255&(E()|0)|f}if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){Pd=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(Pd|512)+(Pd<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){Pd=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(Pd|1024)+(Pd<<6);if((g|0)==0&(f|0)==0)break;else e=d}}z:do if(!((l|0)==0&0==0)){i=xJ(l|0,0,9)|0;i=i&q;h=(E()|0)&r;g=xJ(l|0,0,7)|0;E()|0;g=q&254&g;f=xJ(l|0,0,8)|0;f=f&t;e=(E()|0)&u;n=(c[b+360>>2]|0)==0?64:c[m>>2]|0;A:do if(!((i|0)==0&(h|0)==0)){if((n|0)==64)while(1){Pd=pJ(i|0,h|0,-1,-1)|0;i=Pd&i;h=(E()|0)&h;if((i|0)==0&(h|0)==0)break A}m=161184+(n<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;do{j=qa(i|0,h|0,0)|0;E()|0;Pd=pJ(i|0,h|0,-1,-1)|0;i=Pd&i;h=(E()|0)&h;Pd=235744+(j<<3)|0;if(!((c[Pd>>2]&l|0)==0?(c[Pd+4>>2]&m|0)==0:0)){c[d>>2]=j+16960+(j<<6);d=d+8|0}}while(!((i|0)==0&(h|0)==0))}while(0);B:do if(!((g|0)==0&0==0)){if((n|0)==64){h=0;while(1){Pd=pJ(g|0,h|0,-1,-1)|0;g=Pd&g;h=(E()|0)&h;if((g|0)==0&(h|0)==0)break B}}l=161184+(n<<3)|0;j=c[l>>2]|0;l=c[l+4>>2]|0;i=0;do{h=qa(g|0,i|0,0)|0;E()|0;Pd=pJ(g|0,i|0,-1,-1)|0;g=Pd&g;i=(E()|0)&i;Pd=235744+(h<<3)|0;if(!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)){c[d>>2]=h+16832+(h<<6);d=d+8|0}}while(!((g|0)==0&(i|0)==0))}while(0);if(!((f|0)==0&(e|0)==0)){if((n|0)==64)while(1){Pd=pJ(f|0,e|0,-1,-1)|0;f=Pd&f;e=(E()|0)&e;if((f|0)==0&(e|0)==0)break z}i=161184+(n<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;do{g=qa(f|0,e|0,0)|0;E()|0;Pd=pJ(f|0,e|0,-1,-1)|0;f=Pd&f;e=(E()|0)&e;Pd=235744+(g<<3)|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){c[d>>2]=(g|16896)+(g<<6);d=d+8|0}}while(!((f|0)==0&(e|0)==0))}}while(0);f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+384|0;do{Pd=161184+(e<<3)|0;if(((c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0)?(Pd=235744+(e<<3)|0,T=j,S=c[Pd>>2]&t&c[T>>2],T=c[Pd+4>>2]&u&c[T+4>>2],!((S|0)==0&(T|0)==0)):0){i=e<<6;g=S;h=T;e=d;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+Pd;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+392|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236256+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(ga=c[241376+(e*24|0)+16>>2]|0,Pd=241376+(e*24|0)|0,ha=241376+(e*24|0)+8|0,ha=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[ha>>2]|0,c[ha+4>>2]|0)|0,ha=xJ(ha|0,E()|0,55)|0,E()|0,ha=ga+(ha<<3)|0,ga=c[ha>>2]&j,ha=c[ha+4>>2]&l,!((ga|0)==0&(ha|0)==0)):0){i=e<<6;g=ga;h=ha;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;e=pJ(g|0,h|0,-1,-1)|0;g=e&g;h=(E()|0)&h;e=d+8|0;c[d>>2]=i+Pd;if((g|0)==0&(h|0)==0){d=e;break}else d=e}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64){l=Ld+400|0;j=c[l>>2]&t;l=c[l+4>>2]&u;n=x;m=c[n>>2]|0;n=c[n+4>>2]|0;do{Pd=236768+(e<<3)|0;if((!((c[Pd>>2]&j|0)==0?(c[Pd+4>>2]&l|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0)?(ta=c[239840+(e*24|0)+16>>2]|0,Pd=239840+(e*24|0)|0,ua=239840+(e*24|0)+8|0,ua=vJ(c[Pd>>2]&m|0,c[Pd+4>>2]&n|0,c[ua>>2]|0,c[ua+4>>2]|0)|0,ua=xJ(ua|0,E()|0,52)|0,E()|0,ua=ta+(ua<<3)|0,ta=c[ua>>2]&j,ua=c[ua+4>>2]&l,!((ta|0)==0&(ua|0)==0)):0){i=e<<6;g=ta;h=ua;while(1){Pd=qa(g|0,h|0,0)|0;E()|0;e=pJ(g|0,h|0,-1,-1)|0;g=e&g;h=(E()|0)&h;e=d+8|0;c[d>>2]=i+Pd;if((g|0)==0&(h|0)==0){d=e;break}else d=e}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64){j=Ld+408|0;n=c[j>>2]&t;j=c[j+4>>2]&u;m=x;l=c[m>>2]|0;m=c[m+4>>2]|0;i=f;do{Pd=237280+(e<<3)|0;do if(!((c[Pd>>2]&n|0)==0?(c[Pd+4>>2]&j|0)==0:0)?(Pd=161184+(e<<3)|0,(c[Pd>>2]&o|0)==0?(c[Pd+4>>2]&p|0)==0:0):0){f=c[239840+(e*24|0)+16>>2]|0;Kd=239840+(e*24|0)|0;g=239840+(e*24|0)+8|0;g=vJ(c[Kd>>2]&l|0,c[Kd+4>>2]&m|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;Kd=c[241376+(e*24|0)+16>>2]|0;Jd=241376+(e*24|0)|0;Pd=241376+(e*24|0)+8|0;Pd=vJ(c[Jd>>2]&l|0,c[Jd+4>>2]&m|0,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;Pd=xJ(Pd|0,E()|0,55)|0;E()|0;Pd=Kd+(Pd<<3)|0;f=(c[Pd>>2]|f)&n;g=(c[Pd+4>>2]|g)&j;if((f|0)==0&(g|0)==0)break;h=e<<6;while(1){Pd=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+Pd;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}while(0);i=i+4|0;e=c[i>>2]|0}while((e|0)!=64)}e=c[Ld+24>>2]|0;if(!(e&12)){Pd=d;return Pd|0}Pd=b+5240|0;e=(e&4|0)==0|(c[Pd>>2]&v|0?1:(c[Pd+4>>2]&w|0)!=0);if(!(a[b+5356>>0]|0)){C:do if(!e){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{Pd=ue(b,62,v,w)|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&q|0)==0&((E()|0)&r|0)==0)e=e+-1|0;else break C}e=f<<6}e=g+49152+e|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);i=x;h=c[i>>2]|0;i=c[i+4>>2]|0;Pd=b+5272|0;if(!((c[Pd>>2]&h|0)==0?(c[Pd+4>>2]&i|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+392>>2]|0){Md=720;break}ac=c[b+5176>>2]|0;cc=64;Md=721}else Md=720;while(0);if((Md|0)==720){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58){Cb=f;Eb=58}else{ac=f;cc=e;Md=721}}D:do if((Md|0)==721){g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;Pd=ue(b,58,h,i)|0;if(!((Pd&f|0)==0&((E()|0)&g|0)==0)){Pd=d;return Pd|0}e=59;while(1){if((e|0)==(cc|0)){Cb=ac;Eb=cc;break D}Pd=x;Pd=ue(b,e,c[Pd>>2]|0,c[Pd+4>>2]|0)|0;if((Pd&f|0)==0&((E()|0)&g|0)==0)e=e+1|0;else{k=d;break}}return k|0}while(0);e=Cb+49152+(Eb<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}E:do if(!e){h=c[b+3984>>2]|0;i=c[b+5160>>2]|0;if((h|0)>=62)if((h|0)==62){mb=v;gb=w;hb=q;ib=r;jb=3968}else{ob=1;Md=685}else{ob=-1;Md=685}if((Md|0)==685){f=v;g=w;e=62;do{Pd=ue(b,e,f,g)|0;e=e+ob|0;if(!((Pd&q|0)==0&((E()|0)&r|0)==0))break E;g=x;f=c[g>>2]|0;g=c[g+4>>2]|0}while((e|0)!=(h|0));ib=s;mb=f;gb=g;hb=c[ib>>2]|0;ib=c[ib+4>>2]|0;jb=h<<6}Md=161184+(i<<3)|0;Pd=c[60336]|0;Kd=241328;Ld=241336;Ld=vJ(c[Kd>>2]&(c[Md>>2]^mb)|0,c[Kd+4>>2]&(c[Md+4>>2]^gb)|0,c[Ld>>2]|0,c[Ld+4>>2]|0)|0;Ld=xJ(Ld|0,E()|0,52)|0;E()|0;Ld=Pd+(Ld<<3)|0;Pd=b+288|0;Md=b+296|0;if(!((c[Ld>>2]&hb&(c[Md>>2]|c[Pd>>2])|0)==0?(c[Ld+4>>2]&ib&(c[Md+4>>2]|c[Pd+4>>2])|0)==0:0))break;e=i+49152+jb|0;if(!(we(b,e)|0))break;c[d>>2]=e;d=d+8|0}while(0);f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;Pd=b+5272|0;if(!((c[Pd>>2]&g|0)==0?(c[Pd+4>>2]&f|0)==0:0)){Pd=d;return Pd|0}if(!(c[(c[Nd>>2]|0)+24>>2]&8)){Pd=d;return Pd|0}do if((c[Od>>2]|0)==1){if(c[b+392>>2]|0){Md=697;break}zc=s;yc=c[zc>>2]|0;zc=c[zc+4>>2]|0;Ac=1;Jc=c[b+5176>>2]|0;Qc=64;Md=699}else Md=697;while(0);do if((Md|0)==697){e=c[b+3984>>2]|0;h=c[b+5176>>2]|0;j=s;i=c[j>>2]|0;j=c[j+4>>2]|0;if((e|0)<58){yc=i;zc=j;Ac=-1;Jc=h;Qc=e;Md=699;break}if((e|0)==58){Bc=h;Cc=g;Dc=f;Ec=i;Fc=j;Sc=58}else{yc=i;zc=j;Ac=1;Jc=h;Qc=e;Md=699}}while(0);do if((Md|0)==699){e=58;while(1){Pd=ue(b,e,g,f)|0;e=e+Ac|0;if(!((Pd&yc|0)==0&((E()|0)&zc|0)==0)){k=d;Md=932;break}f=x;g=c[f>>2]|0;f=c[f+4>>2]|0;if((e|0)==(Qc|0)){Md=702;break}}if((Md|0)==702){Fc=s;Bc=Jc;Cc=g;Dc=f;Ec=c[Fc>>2]|0;Fc=c[Fc+4>>2]|0;Sc=Qc;break}else if((Md|0)==932)return k|0}while(0);Od=161184+(Bc<<3)|0;Pd=c[60312]|0;Md=241232;Nd=241240;Nd=vJ(c[Md>>2]&(c[Od>>2]^Cc)|0,c[Md+4>>2]&(c[Od+4>>2]^Dc)|0,c[Nd>>2]|0,c[Nd+4>>2]|0)|0;Nd=xJ(Nd|0,E()|0,52)|0;E()|0;Nd=Pd+(Nd<<3)|0;Pd=b+288|0;Od=b+296|0;if(!((c[Nd>>2]&Ec&(c[Od>>2]|c[Pd>>2])|0)==0?(c[Nd+4>>2]&Fc&(c[Od+4>>2]|c[Pd+4>>2])|0)==0:0)){Pd=d;return Pd|0}e=Bc+49152+(Sc<<6)|0;if(!(we(b,e)|0)){Pd=d;return Pd|0}c[d>>2]=e;Pd=d+8|0;return Pd|0}}}return 0} +function ac(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0;La=Ia;Ia=Ia+16|0;ua=La;Ka=Zb(c[e>>2]|0)|0;f=c[e>>2]|0;if(Ka){Ka=_b(f,0,0)|0;Ia=La;return Ka|0}h=Cc(f)|0;Ka=e+4|0;c[Ka>>2]=h;f=c[h+8>>2]|0;g=c[e>>2]|0;if(f|0){Ka=Na[c[(c[f>>2]|0)+8>>2]&127](f,g)|0;Ia=La;return Ka|0}sa=((b[h+20>>1]|0)*65537|0)+(c[g+5344>>2]|0)+(c[(c[g+5348>>2]|0)+2139836>>2]|0)|0;ja=ae(g)|0;Ja=e+8|0;c[Ja>>2]=ja;sa=sa+((c[ja+8>>2]|0)-(c[ja+12>>2]|0))|0;f=sa<<16;ra=sa+32768|0;f=((16?ra>>16:ra)+(16?f>>16:f)|0)/2|0;ra=c[e>>2]|0;pa=c[ra+5360>>2]|0;if((pa|0)==0?(i=0-f|0,(((f|0)>-1?f:i)|0)>1500):0){Ia=La;return ((c[ra+5340>>2]|0)==0?f:i)|0}la=ra+320|0;h=la;f=c[h>>2]|0;h=c[h+4>>2]|0;na=ra+264|0;i=na;oa=c[i>>2]&f;i=c[i+4>>2]&h;ma=ra+256|0;g=ma;g=xJ(c[g>>2]|0,c[g+4>>2]|0,8)|0;g=oa&(g|16776960);i=i&(E()|0);oa=(pa|0)==1;a:do if(oa){j=e+16|0;c[j>>2]=-1;c[j+4>>2]=-1;j=e+88|0;g=j;c[g>>2]=0;c[g+4>>2]=0;g=la;Ga=ra+304|0;f=c[Ga>>2]&c[g>>2];g=c[Ga+4>>2]&c[g+4>>2];if((f|0)==0&(g|0)==0){h=0;i=0;f=-1;g=-1}else{h=0;i=0;do{Ga=qa(f|0,g|0,0)|0;E()|0;Fa=pJ(f|0,g|0,-1,-1)|0;f=Fa&f;g=(E()|0)&g;Ga=237792+(Ga<<3)|0;h=c[Ga>>2]|h;i=c[Ga+4>>2]|i;Ga=j;c[Ga>>2]=h;c[Ga+4>>2]=i}while(!((f|0)==0&(g|0)==0));f=-1;g=-1}}else{j=(pa|0)==4;if(j?(c[ra+360>>2]|0)==0:0){Ga=ja+40|0;f=~(c[Ga>>2]|g);g=~(c[Ga+4>>2]|i);Ga=e+16|0;c[Ga>>2]=f;c[Ga+4>>2]=g}else Z=15;do if((Z|0)==15){Ga=ra+304|0;Fa=ra+296|0;Ea=ja+40|0;f=~(c[Ea>>2]|g|(c[Fa>>2]|c[Ga>>2])&f);g=~(c[Ea+4>>2]|i|(c[Fa+4>>2]|c[Ga+4>>2])&h);Ga=e+16|0;c[Ga>>2]=f;c[Ga+4>>2]=g;if(j?(c[ra+360>>2]|0)==0:0)break;i=237792+(c[ra+1936>>2]<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;Ga=e+88|0;c[Ga>>2]=h;c[Ga+4>>2]=i;break a}while(0);h=e+88|0;c[h>>2]=0;c[h+4>>2]=0;h=0;i=0}while(0);r=ja+32|0;ea=r;da=c[ea>>2]|0;ea=c[ea+4>>2]|0;Ea=e+48|0;w=Ea;c[w>>2]=da;c[w+4>>2]=ea;w=da|h;y=ea|i;Ga=e+40|0;C=Ga;c[C>>2]=w;c[C+4>>2]=y;C=da&h;x=ea&i;Aa=e+168|0;ta=Aa;c[ta>>2]=C;c[ta+4>>2]=x;ta=e+204|0;c[ta>>2]=0;va=e+184|0;Fa=va;c[Fa>>2]=0;c[Fa+4>>2]=0;do if(!oa){if((pa|0)==4?(c[ra+360>>2]|0)==0:0){F=0;j=0;k=0;break}if((c[(c[ra+5352>>2]|0)+20>>2]|0)>=2071){Fa=va;c[Fa>>2]=h;c[Fa+4>>2]=i;Fa=c[ra+1936>>2]|0;Da=Fa>>>0<8;j=yJ(h|0,i|0,8)|0;k=E()|0;j=h|(Da?j:0);k=i|(Da?k:0);Da=va;c[Da>>2]=j;c[Da+4>>2]=k;switch(Fa&7){case 7:{j=(xJ(j|0,k|0,1)|0)&2139062143|j;k=(E()|0)&2139062143|k;Z=26;break}case 0:{j=(yJ(j|0,k|0,1)|0)&-16843010|j;k=(E()|0)&-16843010|k;Z=26;break}default:{}}if((Z|0)==26){Fa=va;c[Fa>>2]=j;c[Fa+4>>2]=k}Fa=ja+40|0;Da=c[Fa>>2]&j;Fa=c[Fa+4>>2]&k;Ca=xJ(Da|0,Fa|0,16)|0;E()|0;F=xJ(Da|0,Fa|0,48)|0;E()|0;F=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Fa&65535)>>0]|0)+(d[79264+F>>0]|0)|0;c[ta>>2]=F;c[e+212>>2]=0;c[e+220>>2]=0}else{F=0;j=0;k=0}}else{F=0;j=0;k=0}while(0);ka=ra+328|0;n=ka;l=c[n>>2]|0;n=c[n+4>>2]|0;o=na;Fa=c[o>>2]&l;o=c[o+4>>2]&n;m=ma;m=yJ(c[m>>2]|0,c[m+4>>2]|0,8)|0;m=Fa&m;o=o&(E()|0|16776960);b:do if(oa){p=e+24|0;c[p>>2]=-1;c[p+4>>2]=-1;p=e+152|0;m=p;c[m>>2]=0;c[m+4>>2]=0;m=ka;Fa=ra+304|0;l=c[Fa>>2]&c[m>>2];m=c[Fa+4>>2]&c[m+4>>2];if((l|0)==0&(m|0)==0){n=0;o=0;l=-1;m=-1}else{n=0;o=0;do{Fa=qa(l|0,m|0,0)|0;E()|0;Da=pJ(l|0,m|0,-1,-1)|0;l=Da&l;m=(E()|0)&m;Fa=237792+(Fa<<3)|0;n=c[Fa>>2]|n;o=c[Fa+4>>2]|o;Fa=p;c[Fa>>2]=n;c[Fa+4>>2]=o}while(!((l|0)==0&(m|0)==0));l=-1;m=-1}}else{p=(pa|0)==4;if(p?(c[ra+392>>2]|0)==0:0){Fa=r;l=~(c[Fa>>2]|m);m=~(c[Fa+4>>2]|o);Fa=e+24|0;c[Fa>>2]=l;c[Fa+4>>2]=m}else Z=35;do if((Z|0)==35){Fa=ra+304|0;Da=ra+296|0;Ca=r;l=~(c[Ca>>2]|m|(c[Da>>2]|c[Fa>>2])&l);m=~(c[Ca+4>>2]|o|(c[Da+4>>2]|c[Fa+4>>2])&n);Fa=e+24|0;c[Fa>>2]=l;c[Fa+4>>2]=m;if(p?(c[ra+392>>2]|0)==0:0)break;o=237792+(c[ra+3984>>2]<<3)|0;n=c[o>>2]|0;o=c[o+4>>2]|0;Fa=e+152|0;c[Fa>>2]=n;c[Fa+4>>2]=o;break b}while(0);n=e+152|0;c[n>>2]=0;c[n+4>>2]=0;n=0;o=0}while(0);ga=ja+40|0;fa=c[ga>>2]|0;ga=c[ga+4>>2]|0;Da=e+112|0;B=Da;c[B>>2]=fa;c[B+4>>2]=ga;B=fa|n;X=ga|o;Fa=e+104|0;V=Fa;c[V>>2]=B;c[V+4>>2]=X;V=fa&n;W=ga&o;Ca=e+176|0;wa=Ca;c[wa>>2]=V;c[wa+4>>2]=W;wa=e+200|0;c[wa>>2]=0;ya=e+192|0;Ba=ya;c[Ba>>2]=0;c[Ba+4>>2]=0;do if(!oa){if((pa|0)==4?(c[ra+392>>2]|0)==0:0){p=0;q=0;r=0;break}if((c[(c[ra+5352>>2]|0)+16>>2]|0)>=2071){Ba=ya;c[Ba>>2]=n;c[Ba+4>>2]=o;Ba=c[ra+3984>>2]|0;za=(Ba&-8|0)==56;p=xJ(n|0,o|0,8)|0;q=E()|0;p=n|(za?p:0);q=o|(za?q:0);za=ya;c[za>>2]=p;c[za+4>>2]=q;switch(Ba&7){case 7:{p=(xJ(p|0,q|0,1)|0)&2139062143|p;q=(E()|0)&2139062143|q;Z=46;break}case 0:{p=(yJ(p|0,q|0,1)|0)&-16843010|p;q=(E()|0)&-16843010|q;Z=46;break}default:{}}if((Z|0)==46){Ba=ya;c[Ba>>2]=p;c[Ba+4>>2]=q}Ba=r;za=c[Ba>>2]&p;Ba=c[Ba+4>>2]&q;xa=xJ(za|0,Ba|0,16)|0;E()|0;r=xJ(za|0,Ba|0,48)|0;E()|0;r=(d[79264+(xa&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+r>>0]|0)|0;c[wa>>2]=r;c[e+208>>2]=0;c[e+216>>2]=0}else{p=0;q=0;r=0}}else{p=0;q=0;r=0}while(0);za=e+56|0;s=za;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+912>>2]|0;c:do if((s|0)==64){ca=C;ia=0}else{S=e+32|0;P=e+208|0;Q=e+216|0;M=ra+360|0;R=ra+1936|0;N=(c[ra+5352>>2]|0)+336|0;O=2704+(pa<<5)+8|0;K=ja+56|0;G=0;D=0;A=ra+916|0;L=0;while(1){if(oa)break;I=D;J=A;d:while(1){u=235744+(s<<3)|0;t=c[u>>2]|0;u=c[u+4>>2]|0;Ba=N;D=161184+(s<<3)|0;xa=D;if(!((c[xa>>2]&c[Ba>>2]|0)==0?(c[xa+4>>2]&c[Ba+4>>2]|0)==0:0)){Ba=194784+(c[R>>2]<<9)+(s<<3)|0;t=c[Ba>>2]&t;u=c[Ba+4>>2]&u}H=C|w&t;x=x|y&u;Ba=Aa;c[Ba>>2]=H;c[Ba+4>>2]=x;G=t|G;I=u|I;Ba=za;c[Ba>>2]=G;c[Ba+4>>2]=I;w=w|t;y=y|u;Ba=Ga;c[Ba>>2]=w;c[Ba+4>>2]=y;if(!((p&t|0)==0&(q&u|0)==0)){r=r+1|0;c[wa>>2]=r;c[P>>2]=(c[P>>2]|0)+(c[O>>2]|0);ia=n&t;xa=o&u;ha=xJ(ia|0,xa|0,16)|0;E()|0;Ba=xJ(ia|0,xa|0,48)|0;E()|0;c[Q>>2]=(d[79264+(ha&65535)>>0]|0)+(d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+Ba>>0]|0)+(c[Q>>2]|0)}ia=f&t;xa=g&u;ha=xJ(ia|0,xa|0,16)|0;E()|0;Ba=xJ(ia|0,xa|0,48)|0;E()|0;c[S>>2]=(c[S>>2]|0)+(c[2960+(pa<<9)+((d[79264+(ha&65535)>>0]|0)+(d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+Ba>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[M>>2]|0)break d;break}default:break d}s=c[J>>2]|0;if((s|0)==64){ca=H;ia=L;break c}else{C=H;J=J+4|0}}A=K;v=c[A>>2]&-16777216^-16777216;A=c[A+4>>2]&65535^65535;C=c[D>>2]|0;D=c[D+4>>2]|0;if((v&C|0)==0&(A&D|0)==0){Ba=la;v=v&t&~c[Ba>>2];t=A&u&~c[Ba+4>>2];if((v|0)==0&(t|0)==0)t=L;else t=(c[7056+((((v&da|0)!=0|(t&ea|0)!=0)&1)<<2)>>2]|0)+L|0}else t=(c[7056+((((C&da|0)!=0|(D&ea|0)!=0)&1)<<2)>>2]<<1)+L|0;Ba=na;Ba=xJ(c[Ba>>2]|0,c[Ba+4>>2]|0,8)|0;Ba=(Ba&C|0)==0&((E()|0)&D|0)==0;t=(Ba?t:t+16|0)+(z(c[144800+(s<<8)+(c[R>>2]<<2)>>2]|0,-458758)|0)|0;s=c[J>>2]|0;if((s|0)==64){ca=H;ia=t;break c}else{C=H;D=I;A=J+4|0;L=t}}while(1){v=235744+(s<<3)|0;t=c[v>>2]|0;v=c[v+4>>2]|0;Ba=N;xa=161184+(s<<3)|0;if(!((c[xa>>2]&c[Ba>>2]|0)==0?(c[xa+4>>2]&c[Ba+4>>2]|0)==0:0)){if(!(c[M>>2]|0))u=64;else u=c[R>>2]|0;Ba=194784+(u<<9)+(s<<3)|0;t=c[Ba>>2]&t;v=c[Ba+4>>2]&v}u=C|w&t;x=x|y&v;Ba=Aa;c[Ba>>2]=u;c[Ba+4>>2]=x;G=t|G;D=v|D;Ba=za;c[Ba>>2]=G;c[Ba+4>>2]=D;w=w|t;y=y|v;Ba=Ga;c[Ba>>2]=w;c[Ba+4>>2]=y;if(!((p&t|0)==0&(q&v|0)==0)){r=r+1|0;c[wa>>2]=r;c[P>>2]=(c[P>>2]|0)+(c[O>>2]|0);ia=n&t;xa=o&v;ha=xJ(ia|0,xa|0,16)|0;E()|0;Ba=xJ(ia|0,xa|0,48)|0;E()|0;c[Q>>2]=(d[79264+(ha&65535)>>0]|0)+(d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+Ba>>0]|0)+(c[Q>>2]|0)}xa=f&t;Ba=g&v;ia=xJ(xa|0,Ba|0,16)|0;E()|0;s=xJ(xa|0,Ba|0,48)|0;E()|0;c[S>>2]=(c[S>>2]|0)+(c[3472+((d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+s>>0]|0)<<2)>>2]|0);s=c[A>>2]|0;if((s|0)==64){ca=u;ia=L;break}else{C=u;A=A+4|0}}}while(0);c[238276]=ia;Ba=e+120|0;s=Ba;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+2960>>2]|0;e:do if((s|0)==64){u=F;A=V;C=W;D=X;ha=0}else{U=e+36|0;R=e+212|0;S=e+220|0;O=ra+392|0;T=ra+3984|0;P=(c[ra+5352>>2]|0)+344|0;Q=2704+(pa<<5)+8|0;M=ja+48|0;A=V;C=W;D=X;I=0;H=0;G=ra+2964|0;N=0;while(1){if(oa)break;K=H;L=G;f:while(1){u=235744+(s<<3)|0;t=c[u>>2]|0;u=c[u+4>>2]|0;xa=P;G=161184+(s<<3)|0;ha=G;if(!((c[ha>>2]&c[xa>>2]|0)==0?(c[ha+4>>2]&c[xa+4>>2]|0)==0:0)){xa=194784+(c[T>>2]<<9)+(s<<3)|0;t=c[xa>>2]&t;u=c[xa+4>>2]&u}A=A|B&t;C=C|D&u;xa=Ca;c[xa>>2]=A;c[xa+4>>2]=C;I=t|I;K=u|K;xa=Ba;c[xa>>2]=I;c[xa+4>>2]=K;B=B|t;D=D|u;xa=Fa;c[xa>>2]=B;c[xa+4>>2]=D;if((j&t|0)==0&(k&u|0)==0)J=F;else{J=F+1|0;c[ta>>2]=J;c[R>>2]=(c[R>>2]|0)+(c[Q>>2]|0);ba=h&t;ha=i&u;aa=xJ(ba|0,ha|0,16)|0;E()|0;xa=xJ(ba|0,ha|0,48)|0;E()|0;c[S>>2]=(d[79264+(aa&65535)>>0]|0)+(d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+xa>>0]|0)+(c[S>>2]|0)}ba=l&t;ha=m&u;aa=xJ(ba|0,ha|0,16)|0;E()|0;xa=xJ(ba|0,ha|0,48)|0;E()|0;c[U>>2]=(c[U>>2]|0)+(c[2960+(pa<<9)+((d[79264+(aa&65535)>>0]|0)+(d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+xa>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[O>>2]|0)break f;break}default:break f}s=c[L>>2]|0;if((s|0)==64){u=J;ha=N;break e}else{F=J;L=L+4|0}}F=M;v=c[F>>2]&-65536^-65536;F=c[F+4>>2]&255^255;H=G;G=c[H>>2]|0;H=c[H+4>>2]|0;if((v&G|0)==0&(F&H|0)==0){xa=ka;v=v&t&~c[xa>>2];t=F&u&~c[xa+4>>2];if((v|0)==0&(t|0)==0)t=N;else t=(c[7056+((((v&fa|0)!=0|(t&ga|0)!=0)&1)<<2)>>2]|0)+N|0}else t=(c[7056+((((G&fa|0)!=0|(H&ga|0)!=0)&1)<<2)>>2]<<1)+N|0;xa=na;xa=yJ(c[xa>>2]|0,c[xa+4>>2]|0,8)|0;xa=(xa&G|0)==0&((E()|0)&H|0)==0;t=(xa?t:t+16|0)+(z(c[144800+(s<<8)+(c[T>>2]<<2)>>2]|0,-458758)|0)|0;s=c[L>>2]|0;if((s|0)==64){u=J;ha=t;break e}else{F=J;H=K;G=L+4|0;N=t}}while(1){v=235744+(s<<3)|0;t=c[v>>2]|0;v=c[v+4>>2]|0;xa=P;ha=161184+(s<<3)|0;if(!((c[ha>>2]&c[xa>>2]|0)==0?(c[ha+4>>2]&c[xa+4>>2]|0)==0:0)){if(!(c[O>>2]|0))u=64;else u=c[T>>2]|0;xa=194784+(u<<9)+(s<<3)|0;t=c[xa>>2]&t;v=c[xa+4>>2]&v}A=A|B&t;C=C|D&v;xa=Ca;c[xa>>2]=A;c[xa+4>>2]=C;I=t|I;H=v|H;xa=Ba;c[xa>>2]=I;c[xa+4>>2]=H;B=B|t;D=D|v;xa=Fa;c[xa>>2]=B;c[xa+4>>2]=D;if((j&t|0)==0&(k&v|0)==0)u=F;else{u=F+1|0;c[ta>>2]=u;c[R>>2]=(c[R>>2]|0)+(c[Q>>2]|0);ba=h&t;ha=i&v;aa=xJ(ba|0,ha|0,16)|0;E()|0;xa=xJ(ba|0,ha|0,48)|0;E()|0;c[S>>2]=(d[79264+(aa&65535)>>0]|0)+(d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+xa>>0]|0)+(c[S>>2]|0)}ha=l&t;xa=m&v;ba=xJ(ha|0,xa|0,16)|0;E()|0;s=xJ(ha|0,xa|0,48)|0;E()|0;c[U>>2]=(c[U>>2]|0)+(c[3472+((d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+s>>0]|0)<<2)>>2]|0);s=c[G>>2]|0;if((s|0)==64){ha=N;break}else{F=u;G=G+4|0}}}while(0);c[238277]=ha;xa=e+64|0;s=xa;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+1168>>2]|0;g:do if((s|0)==64){ba=ca;ca=0}else{W=ra+296|0;aa=e+32|0;Z=e+208|0;_=e+216|0;U=ra+360|0;$=ra+1936|0;ba=ra+5356|0;V=(c[ra+5352>>2]|0)+336|0;Y=2704+(pa<<5)+12|0;X=ja+56|0;H=ca;t=0;F=0;G=ra+1172|0;v=0;while(1){R=t;S=F;T=G;h:while(1){t=ma;ca=W;N=c[241376+(s*24|0)+16>>2]|0;P=241376+(s*24|0)|0;I=P;O=241376+(s*24|0)+8|0;G=O;G=vJ(c[I>>2]&(c[ca>>2]^c[t>>2])|0,c[I+4>>2]&(c[ca+4>>2]^c[t+4>>2])|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=N+(G<<3)|0;t=c[G>>2]|0;G=c[G+4>>2]|0;ca=V;I=161184+(s<<3)|0;Q=I;if(!((c[Q>>2]&c[ca>>2]|0)==0?(c[Q+4>>2]&c[ca+4>>2]|0)==0:0)){if(oa?(c[U>>2]|0)==0:0)F=64;else F=c[$>>2]|0;ca=194784+(F<<9)+(s<<3)|0;t=c[ca>>2]&t;G=c[ca+4>>2]&G}Q=H|w&t;x=x|y&G;ca=Aa;c[ca>>2]=Q;c[ca+4>>2]=x;R=t|R;S=G|S;ca=xa;c[ca>>2]=R;c[ca+4>>2]=S;w=w|t;y=y|G;ca=Ga;c[ca>>2]=w;c[ca+4>>2]=y;if(!((p&t|0)==0&(q&G|0)==0)){r=r+1|0;c[wa>>2]=r;c[Z>>2]=(c[Z>>2]|0)+(c[Y>>2]|0);L=n&t;M=o&G;K=xJ(L|0,M|0,16)|0;E()|0;ca=xJ(L|0,M|0,48)|0;E()|0;c[_>>2]=(d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ca>>0]|0)+(c[_>>2]|0)}L=f&t;M=g&G;K=xJ(L|0,M|0,16)|0;E()|0;ca=xJ(L|0,M|0,48)|0;E()|0;c[aa>>2]=(c[aa>>2]|0)+(c[2960+(pa<<9)+128+((d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ca>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[U>>2]|0)break h;break}default:break h}s=c[T>>2]|0;if((s|0)==64){ba=Q;ca=v;break g}else{H=Q;T=T+4|0}}H=X;F=c[H>>2]&-16777216^-16777216;H=c[H+4>>2]&65535^65535;M=I;L=c[M>>2]|0;M=c[M+4>>2]|0;if((F&L|0)==0&(H&M|0)==0){K=la;I=c[K>>2]|0;K=c[K+4>>2]|0;J=F&t&~I;F=H&G&~K;if((J|0)==0&(F|0)==0){G=I;t=K}else{G=I;t=K;v=(c[7064+((((J&da|0)!=0|(F&ea|0)!=0)&1)<<2)>>2]|0)+v|0}}else{t=la;G=c[t>>2]|0;t=c[t+4>>2]|0;v=(c[7064+((((L&da|0)!=0|(M&ea|0)!=0)&1)<<2)>>2]<<1)+v|0}K=na;J=c[K>>2]|0;K=c[K+4>>2]|0;H=xJ(J|0,K|0,8)|0;H=(H&L|0)==0&((E()|0)&M|0)==0;H=(H?v:v+16|0)+(z(c[144800+(s<<8)+(c[$>>2]<<2)>>2]|0,-458758)|0)|0;I=ma;I=xJ(c[I>>2]|0,c[I+4>>2]|0,8)|0;I=J&G&I;ca=K&t&(E()|0);L=c[ja+104+((((L&-1437226411|0)!=0|(M&-1437226411|0)!=0)&1)<<2)>>2]|0;v=I&1010580540;ca=ca&3947580;M=xJ(v|0,ca|0,16)|0;E()|0;v=xJ(v|0,ca|0,48)|0;E()|0;v=H+(z(z(L,-524291)|0,(d[79264+(I&15420)>>0]|0)+1+(d[79264+(M&65535)>>0]|0)+(d[79264+(ca&65535)>>0]|0)+(d[79264+v>>0]|0)|0)|0)|0;ca=O;ca=vJ(c[P>>2]&J|0,c[P+4>>2]&K|0,c[ca>>2]|0,c[ca+4>>2]|0)|0;ca=xJ(ca|0,E()|0,55)|0;E()|0;ca=N+(ca<<3)|0;P=c[ca>>2]&402653184;ca=c[ca+4>>2]&24;O=pJ(P|0,ca|0,-1,31)|0;ca=(O&P|0)==0&((E()|0)&ca|0)==0;v=ca?v:v+44|0;i:do if(a[ba>>0]|0){switch(s|0){case 7:case 0:break;default:break i}t=(s&7|0)==0?9:7;s=t+s|0;if((c[ra+(s<<2)>>2]|0)==1){if(!(c[ra+(s+8<<2)>>2]|0))s=(c[ra+(s+t<<2)>>2]|0)==1?6553700:3276850;else s=13107400;v=v-s|0}}while(0);s=c[T>>2]|0;if((s|0)==64){ba=Q;ca=v;break}else{H=Q;t=R;F=S;G=T+4|0}}}while(0);c[238278]=ca;da=e+128|0;s=da;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+3216>>2]|0;j:do if((s|0)==64){t=C;X=0}else{V=ra+296|0;$=e+36|0;Y=e+212|0;Z=e+220|0;T=ra+392|0;_=ra+3984|0;aa=ra+5356|0;U=(c[ra+5352>>2]|0)+344|0;X=2704+(pa<<5)+12|0;W=ja+48|0;t=0;F=0;G=ra+3220|0;v=0;while(1){Q=t;R=F;S=G;k:while(1){t=ma;ea=V;N=c[241376+(s*24|0)+16>>2]|0;P=241376+(s*24|0)|0;I=P;O=241376+(s*24|0)+8|0;G=O;G=vJ(c[I>>2]&(c[ea>>2]^c[t>>2])|0,c[I+4>>2]&(c[ea+4>>2]^c[t+4>>2])|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=N+(G<<3)|0;t=c[G>>2]|0;G=c[G+4>>2]|0;ea=U;I=161184+(s<<3)|0;M=I;if(!((c[M>>2]&c[ea>>2]|0)==0?(c[M+4>>2]&c[ea+4>>2]|0)==0:0)){if(oa?(c[T>>2]|0)==0:0)F=64;else F=c[_>>2]|0;ea=194784+(F<<9)+(s<<3)|0;t=c[ea>>2]&t;G=c[ea+4>>2]&G}A=A|B&t;C=C|D&G;ea=Ca;c[ea>>2]=A;c[ea+4>>2]=C;Q=t|Q;R=G|R;ea=da;c[ea>>2]=Q;c[ea+4>>2]=R;B=B|t;D=D|G;ea=Fa;c[ea>>2]=B;c[ea+4>>2]=D;if(!((j&t|0)==0&(k&G|0)==0)){u=u+1|0;c[ta>>2]=u;c[Y>>2]=(c[Y>>2]|0)+(c[X>>2]|0);L=h&t;M=i&G;K=xJ(L|0,M|0,16)|0;E()|0;ea=xJ(L|0,M|0,48)|0;E()|0;c[Z>>2]=(d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ea>>0]|0)+(c[Z>>2]|0)}L=l&t;M=m&G;K=xJ(L|0,M|0,16)|0;E()|0;ea=xJ(L|0,M|0,48)|0;E()|0;c[$>>2]=(c[$>>2]|0)+(c[2960+(pa<<9)+128+((d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ea>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[T>>2]|0)break k;break}default:break k}s=c[S>>2]|0;if((s|0)==64){t=C;X=v;break j}else S=S+4|0}H=W;F=c[H>>2]&-65536^-65536;H=c[H+4>>2]&255^255;M=I;L=c[M>>2]|0;M=c[M+4>>2]|0;if((F&L|0)==0&(H&M|0)==0){K=ka;I=c[K>>2]|0;K=c[K+4>>2]|0;J=F&t&~I;F=H&G&~K;if((J|0)==0&(F|0)==0){G=I;t=K}else{G=I;t=K;v=(c[7064+((((J&fa|0)!=0|(F&ga|0)!=0)&1)<<2)>>2]|0)+v|0}}else{t=ka;G=c[t>>2]|0;t=c[t+4>>2]|0;v=(c[7064+((((L&fa|0)!=0|(M&ga|0)!=0)&1)<<2)>>2]<<1)+v|0}K=na;J=c[K>>2]|0;K=c[K+4>>2]|0;H=yJ(J|0,K|0,8)|0;H=(H&L|0)==0&((E()|0)&M|0)==0;H=(H?v:v+16|0)+(z(c[144800+(s<<8)+(c[_>>2]<<2)>>2]|0,-458758)|0)|0;I=ma;I=yJ(c[I>>2]|0,c[I+4>>2]|0,8)|0;I=J&G&I;ea=K&t&(E()|0);L=c[ja+112+((((L&-1437226411|0)!=0|(M&-1437226411|0)!=0)&1)<<2)>>2]|0;v=I&1010580480;ea=ea&1010580540;M=xJ(v|0,ea|0,16)|0;E()|0;v=xJ(v|0,ea|0,48)|0;E()|0;v=H+(z(z(L,-524291)|0,(d[79264+(I&15360)>>0]|0)+1+(d[79264+(M&65535)>>0]|0)+(d[79264+(ea&65535)>>0]|0)+(d[79264+v>>0]|0)|0)|0)|0;ea=O;ea=vJ(c[P>>2]&J|0,c[P+4>>2]&K|0,c[ea>>2]|0,c[ea+4>>2]|0)|0;ea=xJ(ea|0,E()|0,55)|0;E()|0;ea=N+(ea<<3)|0;P=c[ea>>2]&402653184;ea=c[ea+4>>2]&24;O=pJ(P|0,ea|0,-1,31)|0;ea=(O&P|0)==0&((E()|0)&ea|0)==0;v=ea?v:v+44|0;l:do if(a[aa>>0]|0){switch(s|0){case 63:case 56:break;default:break l}t=(s&7|0)==0?-7:-9;s=t+s|0;if((c[ra+(s<<2)>>2]|0)==9){if(!(c[ra+(s+-8<<2)>>2]|0))s=(c[ra+(s+t<<2)>>2]|0)==9?6553700:3276850;else s=13107400;v=v-s|0}}while(0);s=c[S>>2]|0;if((s|0)==64){t=C;X=v;break}else{t=Q;F=R;G=S+4|0}}}while(0);c[238279]=X;aa=e+72|0;s=aa;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+1424>>2]|0;m:do if((s|0)==64)C=0;else{M=ra+296|0;Q=ra+288|0;V=e+32|0;S=e+208|0;T=e+216|0;P=ra+360|0;U=ra+1936|0;W=c[ra+5352>>2]|0;L=W+336|0;W=W+24|0;R=2704+(pa<<5)+16|0;O=ja+96|0;N=ja+100|0;H=ba;v=0;F=0;G=ra+1428|0;I=0;while(1){J=v;K=F;n:while(1){ea=ma;ba=M;ga=la;fa=Q;v=c[239840+(s*24|0)+16>>2]|0;$=239840+(s*24|0)|0;C=239840+(s*24|0)+8|0;C=vJ(c[$>>2]&(c[ba>>2]^c[ea>>2]^c[fa>>2]&c[ga>>2])|0,c[$+4>>2]&(c[ba+4>>2]^c[ea+4>>2]^c[fa+4>>2]&c[ga+4>>2])|0,c[C>>2]|0,c[C+4>>2]|0)|0;C=xJ(C|0,E()|0,52)|0;E()|0;C=v+(C<<3)|0;v=c[C>>2]|0;C=c[C+4>>2]|0;ga=L;fa=161184+(s<<3)|0;if(!((c[fa>>2]&c[ga>>2]|0)==0?(c[fa+4>>2]&c[ga+4>>2]|0)==0:0)){if(oa?(c[P>>2]|0)==0:0)F=64;else F=c[U>>2]|0;ga=194784+(F<<9)+(s<<3)|0;v=c[ga>>2]&v;C=c[ga+4>>2]&C}H=H|w&v;x=x|y&C;ga=Aa;c[ga>>2]=H;c[ga+4>>2]=x;J=v|J;K=C|K;ga=aa;c[ga>>2]=J;c[ga+4>>2]=K;w=w|v;y=y|C;ga=Ga;c[ga>>2]=w;c[ga+4>>2]=y;if(!((p&v|0)==0&(q&C|0)==0)){r=r+1|0;c[wa>>2]=r;c[S>>2]=(c[S>>2]|0)+(c[R>>2]|0);ea=n&v;fa=o&C;ba=xJ(ea|0,fa|0,16)|0;E()|0;ga=xJ(ea|0,fa|0,48)|0;E()|0;c[T>>2]=(d[79264+(ba&65535)>>0]|0)+(d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+ga>>0]|0)+(c[T>>2]|0)}fa=f&v;ga=g&C;ea=xJ(fa|0,ga|0,16)|0;E()|0;F=xJ(fa|0,ga|0,48)|0;E()|0;F=(d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+F>>0]|0)|0;c[V>>2]=(c[V>>2]|0)+(c[2960+(pa<<9)+256+(F<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[P>>2]|0)break n;break}default:break n}s=c[G>>2]|0;if((s|0)==64){C=I;break m}else G=G+4|0}if((s|0)>31){ea=ka;C=na;ga=236768+(s<<3)|0;fa=c[C>>2]&c[ea>>2]&c[ga>>2];ga=c[C+4>>2]&c[ea+4>>2]&c[ga+4>>2];ea=xJ(fa|0,ga|0,16)|0;E()|0;C=xJ(fa|0,ga|0,48)|0;E()|0;C=(z((d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+C>>0]|0)|0,1835018)|0)+I|0}else C=I;s=s&7;v=1<>2]&v)){if(F>>>0<4?(ga=c[U>>2]&7,!(ga>>>0<4^s>>>0>>0)):0){ga=(z(F,-22)|0)+327778|0;C=C-(z((c[W>>2]&3|0)==0?2:1,ga)|0)|0}}else C=(c[33224+(((c[N>>2]&v|0)!=0&1)<<2)>>2]|0)+C|0;s=c[G>>2]|0;if((s|0)==64)break;else{v=J;F=K;G=G+4|0;I=C}}}while(0);c[238280]=C;ba=e+136|0;f=ba;c[f>>2]=0;c[f+4>>2]=0;f=c[ra+3472>>2]|0;o:do if((f|0)==64)x=0;else{F=ra+296|0;I=ra+288|0;N=e+36|0;K=e+212|0;L=e+220|0;H=ra+392|0;M=ra+3984|0;O=c[ra+5352>>2]|0;y=O+344|0;O=O+24|0;J=2704+(pa<<5)+16|0;G=ja+100|0;x=ja+96|0;p=u;o=B;g=D;q=0;r=0;s=ra+3476|0;u=0;while(1){v=o;w=g;p:while(1){fa=ma;ea=F;ja=ka;ga=I;g=c[239840+(f*24|0)+16>>2]|0;$=239840+(f*24|0)|0;n=239840+(f*24|0)+8|0;n=vJ(c[$>>2]&(c[ea>>2]^c[fa>>2]^c[ga>>2]&c[ja>>2])|0,c[$+4>>2]&(c[ea+4>>2]^c[fa+4>>2]^c[ga+4>>2]&c[ja+4>>2])|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=xJ(n|0,E()|0,52)|0;E()|0;n=g+(n<<3)|0;g=c[n>>2]|0;n=c[n+4>>2]|0;ja=y;ga=161184+(f<<3)|0;if(!((c[ga>>2]&c[ja>>2]|0)==0?(c[ga+4>>2]&c[ja+4>>2]|0)==0:0)){if(oa?(c[H>>2]|0)==0:0)o=64;else o=c[M>>2]|0;ja=194784+(o<<9)+(f<<3)|0;g=c[ja>>2]&g;n=c[ja+4>>2]&n}A=A|v&g;t=t|w&n;ja=Ca;c[ja>>2]=A;c[ja+4>>2]=t;q=g|q;r=n|r;ja=ba;c[ja>>2]=q;c[ja+4>>2]=r;v=v|g;w=w|n;ja=Fa;c[ja>>2]=v;c[ja+4>>2]=w;if(!((j&g|0)==0&(k&n|0)==0)){p=p+1|0;c[ta>>2]=p;c[K>>2]=(c[K>>2]|0)+(c[J>>2]|0);fa=h&g;ga=i&n;ea=xJ(fa|0,ga|0,16)|0;E()|0;ja=xJ(fa|0,ga|0,48)|0;E()|0;c[L>>2]=(d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+ja>>0]|0)+(c[L>>2]|0)}ga=l&g;ja=m&n;fa=xJ(ga|0,ja|0,16)|0;E()|0;o=xJ(ga|0,ja|0,48)|0;E()|0;o=(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+(ja&65535)>>0]|0)+(d[79264+o>>0]|0)|0;c[N>>2]=(c[N>>2]|0)+(c[2960+(pa<<9)+256+(o<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[H>>2]|0)break p;break}default:break p}f=c[s>>2]|0;if((f|0)==64){x=u;break o}else s=s+4|0}if(((3?f>>3:f)^7|0)>3){fa=la;n=na;ja=236768+(f<<3)|0;ga=c[n>>2]&c[fa>>2]&c[ja>>2];ja=c[n+4>>2]&c[fa+4>>2]&c[ja+4>>2];fa=xJ(ga|0,ja|0,16)|0;E()|0;n=xJ(ga|0,ja|0,48)|0;E()|0;n=(z((d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+(ja&65535)>>0]|0)+(d[79264+n>>0]|0)|0,1835018)|0)+u|0}else n=u;f=f&7;g=1<>2]&g)){if(o>>>0<4?(ja=c[M>>2]&7,!(ja>>>0<4^f>>>0>>0)):0){ja=(z(o,-22)|0)+327778|0;n=n-(z((c[O>>2]&12|0)==0?2:1,ja)|0)|0}}else n=(c[33224+(((c[x>>2]&g|0)!=0&1)<<2)>>2]|0)+n|0;f=c[s>>2]|0;if((f|0)==64){x=n;break}else{o=v;g=w;s=s+4|0;u=n}}}while(0);c[238281]=x;_=e+80|0;f=_;c[f>>2]=0;c[f+4>>2]=0;f=c[ra+1680>>2]|0;q:do if((f|0)==64){i=ra;w=0}else{u=e+16|0;v=e+32|0;r=e+208|0;s=e+152|0;t=e+216|0;i=ra;h=ra+1684|0;g=0;while(1){m=i+256|0;o=(c[i+5352>>2]|0)+336|0;q=i+5360|0;n=i+360|0;p=i+1936|0;r:while(1){oa=m;ma=c[oa>>2]|0;oa=c[oa+4>>2]|0;j=c[239840+(f*24|0)+16>>2]|0;pa=239840+(f*24|0)|0;k=239840+(f*24|0)+8|0;k=vJ(c[pa>>2]&ma|0,c[pa+4>>2]&oa|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=xJ(k|0,E()|0,52)|0;E()|0;k=j+(k<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;pa=c[241376+(f*24|0)+16>>2]|0;na=241376+(f*24|0)|0;ra=241376+(f*24|0)+8|0;ra=vJ(c[na>>2]&ma|0,c[na+4>>2]&oa|0,c[ra>>2]|0,c[ra+4>>2]|0)|0;ra=xJ(ra|0,E()|0,55)|0;E()|0;ra=pa+(ra<<3)|0;j=c[ra>>2]|j;k=c[ra+4>>2]|k;ra=o;pa=161184+(f<<3)|0;if(!((c[pa>>2]&c[ra>>2]|0)==0?(c[pa+4>>2]&c[ra+4>>2]|0)==0:0)){if((c[q>>2]|0)==1?(c[n>>2]|0)==0:0)l=64;else l=c[p>>2]|0;ra=194784+(l<<9)+(f<<3)|0;j=c[ra>>2]&j;k=c[ra+4>>2]&k}pa=Ga;oa=c[pa>>2]|0;pa=c[pa+4>>2]|0;ra=Aa;na=c[ra+4>>2]|pa&k;ma=Aa;c[ma>>2]=c[ra>>2]|oa&j;c[ma+4>>2]=na;ma=_;na=c[ma+4>>2]|k;ra=_;c[ra>>2]=c[ma>>2]|j;c[ra+4>>2]=na;ra=Ga;c[ra>>2]=oa|j;c[ra+4>>2]=pa|k;ra=ya;if((c[ra>>2]&j|0)==0?(c[ra+4>>2]&k|0)==0:0)l=c[q>>2]|0;else{c[wa>>2]=(c[wa>>2]|0)+1;l=c[q>>2]|0;c[r>>2]=(c[r>>2]|0)+(c[2704+(l<<5)+20>>2]|0);pa=s;oa=c[pa>>2]&j;pa=c[pa+4>>2]&k;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[t>>2]=(d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)+(c[t>>2]|0)}pa=u;oa=c[pa>>2]&j;pa=c[pa+4>>2]&k;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[v>>2]=(c[v>>2]|0)+(c[2960+(l<<9)+384+((d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)<<2)>>2]|0);switch(l|0){case 1:break;case 4:{if(c[n>>2]|0)break r;break}default:break r}f=c[h>>2]|0;if((f|0)==64){w=g;break q}else h=h+4|0}ra=i+328|0;pa=i+288|0;oa=i+280|0;f=se(i,(c[oa>>2]|c[pa>>2])&c[ra>>2],(c[oa+4>>2]|c[pa+4>>2])&c[ra+4>>2],f,ua)|0;f=(f|0)==0&(E()|0)==0;g=f?g:g+-655411|0;f=c[h>>2]|0;if((f|0)==64)break;i=c[e>>2]|0;h=h+4|0}i=c[e>>2]|0;w=g}while(0);c[238282]=w;$=e+144|0;f=$;c[f>>2]=0;c[f+4>>2]=0;f=c[i+3728>>2]|0;s:do if((f|0)==64){h=i;f=0}else{u=e+24|0;v=e+36|0;r=e+212|0;s=e+88|0;t=e+220|0;h=i;g=f;i=i+3732|0;f=0;while(1){m=h+256|0;o=(c[h+5352>>2]|0)+344|0;q=h+5360|0;n=h+392|0;p=h+3984|0;t:while(1){oa=m;ma=c[oa>>2]|0;oa=c[oa+4>>2]|0;j=c[239840+(g*24|0)+16>>2]|0;pa=239840+(g*24|0)|0;k=239840+(g*24|0)+8|0;k=vJ(c[pa>>2]&ma|0,c[pa+4>>2]&oa|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=xJ(k|0,E()|0,52)|0;E()|0;k=j+(k<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;pa=c[241376+(g*24|0)+16>>2]|0;na=241376+(g*24|0)|0;ra=241376+(g*24|0)+8|0;ra=vJ(c[na>>2]&ma|0,c[na+4>>2]&oa|0,c[ra>>2]|0,c[ra+4>>2]|0)|0;ra=xJ(ra|0,E()|0,55)|0;E()|0;ra=pa+(ra<<3)|0;j=c[ra>>2]|j;k=c[ra+4>>2]|k;ra=o;pa=161184+(g<<3)|0;if(!((c[pa>>2]&c[ra>>2]|0)==0?(c[pa+4>>2]&c[ra+4>>2]|0)==0:0)){if((c[q>>2]|0)==1?(c[n>>2]|0)==0:0)l=64;else l=c[p>>2]|0;ra=194784+(l<<9)+(g<<3)|0;j=c[ra>>2]&j;k=c[ra+4>>2]&k}pa=Fa;oa=c[pa>>2]|0;pa=c[pa+4>>2]|0;ra=Ca;na=c[ra+4>>2]|pa&k;ma=Ca;c[ma>>2]=c[ra>>2]|oa&j;c[ma+4>>2]=na;ma=$;na=c[ma+4>>2]|k;ra=$;c[ra>>2]=c[ma>>2]|j;c[ra+4>>2]=na;ra=Fa;c[ra>>2]=oa|j;c[ra+4>>2]=pa|k;ra=va;if((c[ra>>2]&j|0)==0?(c[ra+4>>2]&k|0)==0:0)l=c[q>>2]|0;else{c[ta>>2]=(c[ta>>2]|0)+1;l=c[q>>2]|0;c[r>>2]=(c[r>>2]|0)+(c[2704+(l<<5)+20>>2]|0);pa=s;oa=c[pa>>2]&j;pa=c[pa+4>>2]&k;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[t>>2]=(d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)+(c[t>>2]|0)}pa=u;oa=c[pa>>2]&j;pa=c[pa+4>>2]&k;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[v>>2]=(c[v>>2]|0)+(c[2960+(l<<9)+384+((d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)<<2)>>2]|0);switch(l|0){case 1:break;case 4:{if(c[n>>2]|0)break t;break}default:break t}g=c[i>>2]|0;if((g|0)==64)break s;else i=i+4|0}ra=h+320|0;pa=h+288|0;oa=h+280|0;g=se(h,(c[oa>>2]|c[pa>>2])&c[ra>>2],(c[oa+4>>2]|c[pa+4>>2])&c[ra+4>>2],g,ua)|0;g=(g|0)==0&(E()|0)==0;f=g?f:f+-655411|0;g=c[i>>2]|0;if((g|0)==64)break;h=c[e>>2]|0;i=i+4|0}h=c[e>>2]|0}while(0);c[238283]=f;f=ia+sa-ha+ca-X+C-x+w-f|0;g=c[h+5360>>2]|0;u:do if((g|0)!=3){i=e+32|0;j=e+36|0;f=(c[i>>2]|0)-(c[j>>2]|0)+f|0;switch(g|0){case 6:case 1:{k=f;f=0;Z=269;break u}case 4:break;default:{k=f;W=j;Z=224;break u}}if(!(c[h+360>>2]|0)){p=4;g=f;f=0;Z=270}else{k=f;W=j;Z=224}}else{ra=Da;ua=Ba;Z=da;i=ba;oa=h+256|0;pa=c[oa>>2]|0;oa=c[oa+4>>2]|0;i=~(c[ra+4>>2]|c[ua+4>>2]|c[Z+4>>2]|c[i+4>>2]|oa);Z=xJ(0,i|0,48)|0;E()|0;ua=d[79264]<<1;Z=z(ua+(d[79264+(i&65535)>>0]|0)+(d[79264+Z>>0]|0)|0,1966110)|0;i=e+32|0;Z=Z+(c[i>>2]|0)|0;c[i>>2]=Z;ra=Ea;sa=za;k=xa;W=aa;W=~(pa|c[ra>>2]|c[sa>>2]|c[k>>2]|c[W>>2]);k=xJ(W|0,0,16)|0;E()|0;k=z(ua+(d[79264+(W&65535)>>0]|0)+(d[79264+(k&65535)>>0]|0)|0,1966110)|0;W=e+36|0;k=k+(c[W>>2]|0)|0;c[W>>2]=k;k=Z+f-k|0;Z=224}while(0);if((Z|0)==224){C=c[h+1936>>2]|0;f=c[Ja>>2]|0;if((c[f+64>>2]|0)==(C|0)?(c[f+88>>2]|0)==(c[(c[h+5352>>2]|0)+24>>2]&3|0):0){V=g;f=c[f+72>>2]|0}else{ua=Xd(f,h)|0;c[f+72>>2]=ua;h=c[e>>2]|0;V=c[h+5360>>2]|0;f=ua}T=7072+((C&7)<<3)|0;S=c[T>>2]|0;T=c[T+4>>2]|0;j=e+40|0;P=Fa;O=c[P>>2]|0;P=c[P+4>>2]|0;sa=O&S;ra=P&T;ua=ra&255;l=e+168|0;r=Ca;p=c[r>>2]|0;r=c[r+4>>2]|0;L=sa&p;U=ua&r;ra=xJ(sa|0,ra|0,16)|0;E()|0;sa=d[79264+(sa&65535)>>0]|0;ra=d[79264+(ra&65535)>>0]|0;ua=d[79264+(ua&65535)>>0]|0;R=d[79264]|0;K=xJ(L|0,U|0,16)|0;E()|0;U=ra+sa+ua+(d[79264+(L&65535)>>0]|0)+(R<<1)+(d[79264+(K&65535)>>0]|0)+(d[79264+(U&65535)>>0]|0)|0;K=c[ta>>2]|0;R=(V|0)==3;L=c[h+388>>2]|0;if(R)g=(c[h+4548>>2]|0)+L|0;else g=L;do if((K|0)>(1-g|0)){Q=(V|0)==2;if(Q){ua=h+328|0;m=h+304|0;o=j;n=c[o>>2]|0;o=c[o+4>>2]|0;N=e+88|0;M=c[N>>2]|0;N=c[N+4>>2]|0;w=_;v=c[w>>2]|0;w=c[w+4>>2]|0;s=l;q=c[s>>2]|0;s=c[s+4>>2]|0;g=M|~n|v&~q;j=c[ua>>2]&~c[m>>2]|O;l=N|~o|w&~s;m=c[ua+4>>2]&~c[m+4>>2]|P}else{s=l;q=c[s>>2]|0;s=c[s+4>>2]|0;o=j;n=c[o>>2]|0;o=c[o+4>>2]|0;N=e+88|0;M=c[N>>2]|0;N=c[N+4>>2]|0;w=_;v=c[w>>2]|0;w=c[w+4>>2]|0;g=O&~q;j=M|~n|v;l=P&~s;m=N|~o|w}H=g&j;D=l&m;do if(R){if(!(c[h+4548>>2]|0)){l=0;m=0;break}m=h+256|0;l=H&~c[m>>2];m=D&~c[m+4>>2]}else{l=0;m=0}while(0);B=h+328|0;A=c[B>>2]|0;B=c[B+4>>2]|0;t=~A;u=~B;j=(H&p|~n)&t|(Q?M:0);g=(D&r|~o)&u|(Q?N:0);J=h+320|0;I=c[J>>2]|0;J=c[J+4>>2]|0;y=(j|O&~q&(M|v))&~I;x=(g|P&~s&(N|w))&~J;G=h+256|0;F=c[G>>2]|0;G=c[G+4>>2]|0;ua=h+296|0;sa=c[ua>>2]&I^F;ua=c[ua+4>>2]&J^G;n=c[239840+(C*24|0)+16>>2]|0;p=239840+(C*24|0)|0;o=239840+(C*24|0)+8|0;o=vJ(c[p>>2]&sa|0,c[p+4>>2]&ua|0,c[o>>2]|0,c[o+4>>2]|0)|0;o=xJ(o|0,E()|0,52)|0;E()|0;o=n+(o<<3)|0;n=c[o>>2]|0;o=c[o+4>>2]|0;p=c[241376+(C*24|0)+16>>2]|0;ta=241376+(C*24|0)|0;r=241376+(C*24|0)+8|0;r=vJ(c[ta>>2]&sa|0,c[ta+4>>2]&ua|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=xJ(r|0,E()|0,55)|0;E()|0;r=p+(r<<3)|0;p=c[r>>2]|0;r=c[r+4>>2]|0;ua=$;m=((j&~v&(p|n)&(c[ua>>2]|l)|0)==0?(g&~w&(r|o)&(c[ua+4>>2]|m)|0)==0:0)?0:780;v=(V|0)==7;if(v){s=(c[(c[h+5352>>2]|0)+40>>2]|0)==0;t=s?j:t;s=s?g:u}else{t=j;s=g}if(R){l=(c[h+4544>>2]|0)==0;g=l?0:~F;l=l?0:~G}else{g=0;l=0}ua=ba;j=c[ua>>2]|0;ua=c[ua+4>>2]|0;q=((j&t|g&y)&n|0)==0?((ua&s|l&x)&o|0)==0:0;j=q?(j|g)&n:0;g=q?(ua|l)&o:0;q=q?m:m+880|0;if(R){o=(c[h+4540>>2]|0)==0;m=o?0:~F;o=o?0:~G}else{m=0;o=0}n=da;l=c[n>>2]|0;n=c[n+4>>2]|0;if(((l&t|m&y)&p|0)==0?((n&s|o&x)&r|0)==0:0){j=(l|m)&p|j;g=(n|o)&r|g}else q=q+435|0;o=235744+(C<<3)|0;l=c[o>>2]|0;o=c[o+4>>2]|0;if(R){r=(c[h+4536>>2]|0)==0;n=r?0:~F;r=r?0:~G}else{n=0;r=0}p=Ba;m=c[p>>2]|0;p=c[p+4>>2]|0;if(((m&t|n&y)&l|0)==0?((p&s|r&x)&o|0)==0:0){j=(m|n)&l|j;g=(p|r)&o|g}else q=q+790|0;do if(R){p=238816+(C<<3)|0;n=c[p>>2]|0;p=c[p+4>>2]|0;r=(c[h+4532>>2]|0)==0;ta=~F;ua=~G;o=r?0:ta;r=r?0:ua;m=Da;l=c[m>>2]&I;m=c[m+4>>2]&J;sa=h+264|0;sa=xJ(c[sa>>2]&A|0,c[sa+4>>2]&B|0,8)|0;l=sa&ta|l;m=(E()|0)&ua|m;if(((l&t|o&y)&n|0)==0?((m&s|r&x)&p|0)==0:0){j=(l|o)&n|j;g=(m|r)&p|g;break}else{q=q+435|0;break}}while(0);ta=e+24|0;ua=c[ta>>2]&j;ta=c[ta+4>>2]&g;n=z(c[e+212>>2]|0,K)|0;o=z(c[e+220>>2]|0,c[7136+(V<<5)>>2]|0)|0;l=c[7136+(V<<5)+4>>2]|0;p=va;va=c[p>>2]&H;p=c[p+4>>2]&D;j=xJ(va|0,p|0,16)|0;E()|0;m=xJ(va|0,p|0,48)|0;E()|0;l=z((d[79264+(j&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(p&65535)>>0]|0)+(d[79264+m>>0]|0)|0,l)|0;m=c[7136+(V<<5)+8>>2]|0;p=c[h+5352>>2]|0;va=p+336|0;ua=c[va>>2]|ua;va=c[va+4>>2]|ta;ta=xJ(ua|0,va|0,16)|0;E()|0;j=xJ(ua|0,va|0,48)|0;E()|0;m=z((d[79264+(ta&65535)>>0]|0)+(d[79264+(ua&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+j>>0]|0)|0,m)|0;j=(z(z(U,U)|0,c[7136+(V<<5)+12>>2]|0)|0)/4|0;if(R)g=(c[h+4548>>2]|0)+L|0;else g=L;ua=f<<16;ua=(z(c[7136+(V<<5)+20>>2]|0,16?ua>>16:ua)|0)/8|0;va=(c[W>>2]|0)-(c[i>>2]|0)<<16;g=n+q+o+l+m+j+((g|0)==0?c[7136+(V<<5)+16>>2]|0:0)+ua+(c[7136+(V<<5)+24>>2]|0)+(16?va>>16:va)|0;if(R)g=((c[h+4528>>2]|0)*79|0)+g+(c[h+4532>>2]<<4)+((c[h+4536>>2]|0)*200|0)+((c[h+4540>>2]|0)*61|0)+((c[h+4544>>2]|0)*138|0)+((c[h+4548>>2]|0)*152|0)|0;if(Q){ua=237792+(c[h+1936>>2]<<3)|0;sa=I&O&c[ua>>2];ua=J&P&c[ua+4>>2];va=xJ(sa|0,ua|0,16)|0;E()|0;ta=xJ(sa|0,ua|0,48)|0;E()|0;g=(((d[79264+(va&65535)>>0]|0)+(d[79264+(sa&65535)>>0]|0)+(d[79264+(ua&65535)>>0]|0)+(d[79264+ta>>0]|0)|0)*883|0)+g|0;ta=F&M;ua=G&N;sa=xJ(ta|0,ua|0,16)|0;E()|0;va=xJ(ta|0,ua|0,48)|0;E()|0;f=(z((d[79264+(sa&65535)>>0]|0)+(d[79264+(ta&65535)>>0]|0)+(d[79264+(ua&65535)>>0]|0)+(d[79264+va>>0]|0)|0,-6553700)|0)+f|0}if((g|0)<=0)break;if(v)j=(z(c[7392+(c[p+40>>2]<<2)>>2]|0,g)|0)/256|0;else j=g;g=z(j,j)|0;g=Q&g>>>0>10362879?2529:12?g>>>12:g;do if(R){if(c[h+5340>>2]|0)break;g=g-((g>>>0)/10|0)|0}while(0);va=R&(g|0)>2529?2529:g;va=v&(va|0)>2529?2529:va;f=f-va+(z(((z(va,c[7136+(V<<5)+28>>2]|0)|0)/256|0)+((j|0)/16|0)|0,-65536)|0)|0}while(0);g=h+264|0;f=(((c[g>>2]&S|0)==0?(c[g+4>>2]&T|0)==0:0)?f+-6160402|0:f)-(z(c[7408+(V<<2)>>2]|0,U)|0)|0;c[238284]=f;g=V;j=W;Z=269}if((Z|0)==269)switch(g|0){case 6:case 1:{p=g;g=0;Z=316;break}case 4:{p=g;g=k;Z=270;break}default:{p=g;l=g;Y=i;X=j;Z=271}}if((Z|0)==270)if(!(c[h+392>>2]|0)){p=4;Z=333}else{l=4;k=g;Y=i;X=j;Z=271}if((Z|0)==271){F=c[h+3984>>2]|0;g=c[Ja>>2]|0;if((c[g+68>>2]|0)==(F|0)?(c[g+92>>2]|0)==(c[(c[h+5352>>2]|0)+24>>2]&12|0):0)g=c[g+76>>2]|0;else{va=Zd(g,h)|0;c[g+76>>2]=va;h=c[e>>2]|0;l=c[h+5360>>2]|0;p=l;g=va}V=7072+((F&7)<<3)|0;U=c[V>>2]|0;V=c[V+4>>2]|0;R=Ga;Q=c[R>>2]|0;R=c[R+4>>2]|0;N=Q&U;va=R&V;ua=N&-16777216;s=Aa;r=c[s>>2]|0;s=c[s+4>>2]|0;W=ua&r;K=va&s;ua=xJ(ua|0,va|0,16)|0;E()|0;N=xJ(N|0,va|0,48)|0;E()|0;ta=d[79264]|0;ua=d[79264+(ua&65535)>>0]|0;va=d[79264+(va&65535)>>0]|0;N=d[79264+N>>0]|0;T=xJ(W|0,K|0,16)|0;E()|0;W=xJ(W|0,K|0,48)|0;E()|0;W=(ta<<1)+ua+va+N+(d[79264+(T&65535)>>0]|0)+(d[79264+(K&65535)>>0]|0)+(d[79264+W>>0]|0)|0;K=c[wa>>2]|0;T=(l|0)==3;N=c[h+356>>2]|0;if(T)i=(c[h+4516>>2]|0)+N|0;else i=N;do if((K|0)>(1-i|0)){S=(l|0)==2;if(S){wa=h+320|0;n=h+304|0;q=Fa;o=c[q>>2]|0;q=c[q+4>>2]|0;P=e+152|0;O=c[P>>2]|0;P=c[P+4>>2]|0;y=$;x=c[y>>2]|0;y=c[y+4>>2]|0;u=Ca;t=c[u>>2]|0;u=c[u+4>>2]|0;i=O|~o|x&~t;j=c[wa>>2]&~c[n>>2]|Q;m=P|~q|y&~u;n=c[wa+4>>2]&~c[n+4>>2]|R}else{u=Ca;t=c[u>>2]|0;u=c[u+4>>2]|0;q=Fa;o=c[q>>2]|0;q=c[q+4>>2]|0;P=e+152|0;O=c[P>>2]|0;P=c[P+4>>2]|0;y=$;x=c[y>>2]|0;y=c[y+4>>2]|0;i=Q&~t;j=O|~o|x;m=R&~u;n=P|~q|y}J=i&j;G=m&n;do if(T){if(!(c[h+4516>>2]|0)){m=0;n=0;break}n=h+256|0;m=J&~c[n>>2];n=G&~c[n+4>>2]}else{m=0;n=0}while(0);D=h+320|0;C=c[D>>2]|0;D=c[D+4>>2]|0;v=~C;w=~D;j=(J&r|~o)&v|(S?O:0);i=(G&s|~q)&w|(S?P:0);M=h+328|0;L=c[M>>2]|0;M=c[M+4>>2]|0;B=(j|Q&~t&(O|x))&~L;A=(i|R&~u&(P|y))&~M;I=h+256|0;H=c[I>>2]|0;I=c[I+4>>2]|0;wa=h+296|0;ua=c[wa>>2]&L^H;wa=c[wa+4>>2]&M^I;o=c[239840+(F*24|0)+16>>2]|0;r=239840+(F*24|0)|0;q=239840+(F*24|0)+8|0;q=vJ(c[r>>2]&ua|0,c[r+4>>2]&wa|0,c[q>>2]|0,c[q+4>>2]|0)|0;q=xJ(q|0,E()|0,52)|0;E()|0;q=o+(q<<3)|0;o=c[q>>2]|0;q=c[q+4>>2]|0;r=c[241376+(F*24|0)+16>>2]|0;va=241376+(F*24|0)|0;t=241376+(F*24|0)+8|0;t=vJ(c[va>>2]&ua|0,c[va+4>>2]&wa|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=xJ(t|0,E()|0,55)|0;E()|0;t=r+(t<<3)|0;r=c[t>>2]|0;t=c[t+4>>2]|0;wa=_;n=((j&~x&(r|o)&(c[wa>>2]|m)|0)==0?(i&~y&(t|q)&(c[wa+4>>2]|n)|0)==0:0)?0:780;x=(l|0)==7;if(x){u=(c[(c[h+5352>>2]|0)+36>>2]|0)==0;v=u?j:v;u=u?i:w}else{v=j;u=i}if(T){m=(c[h+4512>>2]|0)==0;i=m?0:~H;m=m?0:~I}else{i=0;m=0}wa=aa;j=c[wa>>2]|0;wa=c[wa+4>>2]|0;s=((j&v|i&B)&o|0)==0?((wa&u|m&A)&q|0)==0:0;j=s?(j|i)&o:0;i=s?(wa|m)&q:0;s=s?n:n+880|0;if(T){q=(c[h+4508>>2]|0)==0;n=q?0:~H;q=q?0:~I}else{n=0;q=0}o=xa;m=c[o>>2]|0;o=c[o+4>>2]|0;if(((m&v|n&B)&r|0)==0?((o&u|q&A)&t|0)==0:0){j=(m|n)&r|j;i=(o|q)&t|i}else s=s+435|0;q=235744+(F<<3)|0;m=c[q>>2]|0;q=c[q+4>>2]|0;if(T){t=(c[h+4504>>2]|0)==0;o=t?0:~H;t=t?0:~I}else{o=0;t=0}r=za;n=c[r>>2]|0;r=c[r+4>>2]|0;if(((n&v|o&B)&m|0)==0?((r&u|t&A)&q|0)==0:0){j=(n|o)&m|j;i=(r|t)&q|i}else s=s+790|0;do if(T){r=239328+(F<<3)|0;o=c[r>>2]|0;r=c[r+4>>2]|0;t=(c[h+4500>>2]|0)==0;va=~H;wa=~I;q=t?0:va;t=t?0:wa;n=Ea;m=c[n>>2]&L;n=c[n+4>>2]&M;ua=h+264|0;ua=yJ(c[ua>>2]&C|0,c[ua+4>>2]&D|0,8)|0;m=ua&va|m;n=(E()|0)&wa|n;if(((m&v|q&B)&o|0)==0?((n&u|t&A)&r|0)==0:0){j=(m|q)&o|j;i=(n|t)&r|i;break}else{s=s+435|0;break}}while(0);va=e+16|0;wa=c[va>>2]&j;va=c[va+4>>2]&i;o=z(c[e+208>>2]|0,K)|0;q=z(c[e+216>>2]|0,c[7136+(l<<5)>>2]|0)|0;m=c[7136+(l<<5)+4>>2]|0;r=ya;ya=c[r>>2]&J;r=c[r+4>>2]&G;j=xJ(ya|0,r|0,16)|0;E()|0;n=xJ(ya|0,r|0,48)|0;E()|0;m=z((d[79264+(j&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+(r&65535)>>0]|0)+(d[79264+n>>0]|0)|0,m)|0;n=c[7136+(l<<5)+8>>2]|0;r=c[h+5352>>2]|0;ya=r+344|0;wa=c[ya>>2]|wa;ya=c[ya+4>>2]|va;va=xJ(wa|0,ya|0,16)|0;E()|0;j=xJ(wa|0,ya|0,48)|0;E()|0;n=z((d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+j>>0]|0)|0,n)|0;j=(z(z(W,W)|0,c[7136+(l<<5)+12>>2]|0)|0)/4|0;if(T)i=(c[h+4516>>2]|0)+N|0;else i=N;wa=g<<16;wa=(z(c[7136+(l<<5)+20>>2]|0,16?wa>>16:wa)|0)/8|0;ya=(c[Y>>2]|0)-(c[X>>2]|0)<<16;i=o+s+q+m+n+j+((i|0)==0?c[7136+(l<<5)+16>>2]|0:0)+wa+(c[7136+(l<<5)+24>>2]|0)+(16?ya>>16:ya)|0;if(T)i=((c[h+4496>>2]|0)*79|0)+i+(c[h+4500>>2]<<4)+((c[h+4504>>2]|0)*200|0)+((c[h+4508>>2]|0)*61|0)+((c[h+4512>>2]|0)*138|0)+((c[h+4516>>2]|0)*152|0)|0;if(S){wa=237792+(c[h+3984>>2]<<3)|0;ua=L&Q&c[wa>>2];wa=M&R&c[wa+4>>2];ya=xJ(ua|0,wa|0,16)|0;E()|0;va=xJ(ua|0,wa|0,48)|0;E()|0;i=(((d[79264+(ya&65535)>>0]|0)+(d[79264+(ua&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+va>>0]|0)|0)*883|0)+i|0;va=H&O;wa=I&P;ua=xJ(va|0,wa|0,16)|0;E()|0;ya=xJ(va|0,wa|0,48)|0;E()|0;g=(z((d[79264+(ua&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+ya>>0]|0)|0,-6553700)|0)+g|0}if((i|0)<=0)break;if(x)j=(z(c[7392+(c[r+36>>2]<<2)>>2]|0,i)|0)/256|0;else j=i;i=z(j,j)|0;i=S&i>>>0>10362879?2529:12?i>>>12:i;do if(T){if((c[h+5340>>2]|0)!=1)break;i=i-((i>>>0)/10|0)|0}while(0);ya=T&(i|0)>2529?2529:i;ya=x&(ya|0)>2529?2529:ya;g=g-ya+(z(((z(ya,c[7136+(l<<5)+28>>2]|0)|0)/256|0)+((j|0)/16|0)|0,-65536)|0)|0}while(0);i=h+264|0;g=(((c[i>>2]&U|0)==0?(c[i+4>>2]&V|0)==0:0)?g+-6160402|0:g)-(z(c[7408+(l<<2)>>2]|0,W)|0)|0;c[238285]=g;i=Y;j=X;Z=316}v:do if((Z|0)==316){f=f-g|0;switch(p|0){case 1:break;case 2:{o=h+328|0;m=c[o>>2]|0;o=c[o+4>>2]|0;B=Ga;y=c[B>>2]|0;B=c[B+4>>2]|0;l=e+88|0;g=y&m&~c[l>>2];l=B&o&~c[l+4>>2];if((g|0)==0&(l|0)==0){c[238294]=0;A=h+320|0;r=c[A>>2]|0;A=c[A+4>>2]|0;C=k;x=i;w=j;Z=377;break v}G=h+256|0;F=c[G>>2]|0;G=c[G+4>>2]|0;x=h+264|0;w=c[x>>2]|0;x=c[x+4>>2]|0;u=w^F;v=x^G;A=h+320|0;r=c[A>>2]|0;A=c[A+4>>2]|0;D=h+296|0;C=c[D>>2]|0;D=c[D+4>>2]|0;t=0;while(1){s=qa(g|0,l|0,0)|0;E()|0;za=pJ(g|0,l|0,-1,-1)|0;g=za&g;l=(E()|0)&l;za=237792+(s<<3)|0;s=161184+(s<<3)|0;q=c[s>>2]|0;s=c[s+4>>2]|0;ya=c[za>>2]&u|q;za=c[za+4>>2]&v|s;va=ya&m;wa=za&o;ra=xJ(va|0,wa|0,16)|0;E()|0;ua=xJ(va|0,wa|0,48)|0;E()|0;sa=d[79264+(va&65535)>>0]|0;ra=d[79264+(ra&65535)>>0]|0;ta=d[79264+(wa&65535)>>0]|0;ua=d[79264+ua>>0]|0;ya=ya&r;za=za&A;xa=xJ(ya|0,za|0,16)|0;E()|0;n=xJ(ya|0,za|0,48)|0;E()|0;n=ra+sa+ta+ua+(((va&C|0)==0&(wa&D|0)==0)<<31>>31)-(d[79264+(ya&65535)>>0]|0)-(d[79264+(xa&65535)>>0]|0)-(d[79264+(za&65535)>>0]|0)-(d[79264+n>>0]|0)|0;if(!((ya&C|0)==0&(za&D|0)==0?(ya=_,za=Aa,(c[ya>>2]&q&~c[za>>2]|0)==0?(c[ya+4>>2]&s&~c[za+4>>2]|0)==0:0):0))n=n+-1|0;za=z(n,5242960)|0;t=((za|0)>0?za:0)+t|0;if((g|0)==0&(l|0)==0){g=t;Z=366;break v}}}default:{g=k;Z=333;break v}}O=Ga;N=c[O>>2]|0;O=c[O+4>>2]|0;o=h+328|0;m=c[o>>2]|0;o=c[o+4>>2]|0;L=m&N;M=o&O;v=Fa;u=c[v>>2]|0;v=c[v+4>>2]|0;K=h+320|0;r=c[K>>2]|0;K=c[K+4>>2]|0;I=(r&u|0)!=0|(K&v|0)!=0;do if((L|0)==0&(M|0)==0){q=za;t=xa;x=aa;C=_;B=e+88|0;l=Aa;D=c[C>>2]|0;A=c[B>>2]|0;C=c[C+4>>2]|0;B=c[B+4>>2]|0;y=c[x>>2]|0;x=c[x+4>>2]|0;w=c[t>>2]|0;t=c[t+4>>2]|0;s=c[q>>2]|0;q=c[q+4>>2]|0;p=~c[l>>2];l=~c[l+4>>2];g=0;Z=325}else{J=Aa;p=~c[J>>2];J=~c[J+4>>2];G=I&1;H=((L&u|0)!=0|(M&v|0)!=0)&1;F=7440+(G<<6)+(H<<5)|0;l=Ea;g=c[l>>2]&m;l=c[l+4>>2]&o;do if((g&p|0)==0&(l&J|0)==0){if((g|0)==0&(l|0)==0){n=0;break}n=0-(c[F>>2]|0)|0}else n=0-(c[7440+(G<<6)+(H<<5)+4>>2]|0)|0;while(0);q=za;s=c[q>>2]|0;q=c[q+4>>2]|0;g=s&m;l=q&o;do if((g&p|0)==0&(l&J|0)==0){if((g|0)==0&(l|0)==0)break;n=n-(c[F>>2]|0)|0}else n=n-(c[7440+(G<<6)+(H<<5)+8>>2]|0)|0;while(0);t=xa;w=c[t>>2]|0;t=c[t+4>>2]|0;g=w&m;l=t&o;do if((g&p|0)==0&(l&J|0)==0){if((g|0)==0&(l|0)==0)break;n=n-(c[F>>2]|0)|0}else n=n-(c[7440+(G<<6)+(H<<5)+12>>2]|0)|0;while(0);x=aa;y=c[x>>2]|0;x=c[x+4>>2]|0;g=y&m;l=x&o;if((g&p|0)==0&(l&J|0)==0){if(!((g|0)==0&(l|0)==0)){g=F;Z=355}}else{g=7440+(G<<6)+(H<<5)+16|0;Z=355}if((Z|0)==355)n=n-(c[g>>2]|0)|0;C=_;D=c[C>>2]|0;C=c[C+4>>2]|0;g=D&m;l=C&o;do if((g&p|0)==0&(l&J|0)==0){if((g|0)==0&(l|0)==0)break;n=n-(c[F>>2]|0)|0}else n=n-(c[7440+(G<<6)+(H<<5)+20>>2]|0)|0;while(0);B=e+88|0;A=c[B>>2]|0;B=c[B+4>>2]|0;g=A&m;l=B&o;do if((g&p|0)==0&(l&J|0)==0){if((g|0)==0&(l|0)==0)break;n=n-(c[F>>2]|0)|0}else n=n-(c[7440+(G<<6)+(H<<5)+24>>2]|0)|0;while(0);if(!I)break;l=J;g=(z(c[h+336>>2]|0,-8061047)|0)+n|0;Z=325}while(0);if((Z|0)==325){n=h+264|0;ya=c[n>>2]&r;n=c[n+4>>2]&K;va=yJ(ya|0,n|0,8)|0;E()|0;Aa=h+256|0;za=~c[Aa>>2];Aa=~c[Aa+4>>2];n=yJ(za&16711680&va|ya|0,n|0,8)|0;n=n&za;ya=(E()|0)&Aa;za=(D|A|y|w|s)&za;Aa=(C|B|x|t|q)&Aa;va=(n|za)&u;wa=(ya|Aa)&v;ua=xJ(va|0,wa|0,16)|0;E()|0;xa=xJ(va|0,wa|0,48)|0;E()|0;xa=(z((d[79264+(ua&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+xa>>0]|0)|0,13304e3)|0)+g|0;za=(n&~N|za&p)&u;Aa=(ya&~O|Aa&l)&v;ya=xJ(za|0,Aa|0,16)|0;E()|0;n=xJ(za|0,Aa|0,48)|0;E()|0;n=xa+(z((d[79264+(ya&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+n>>0]|0)|0,21103003)|0)|0}c[238294]=n;p=L;l=M;B=O;C=k;f=n+f|0;L=j;Z=368}while(0);if((Z|0)==333){o=h+328|0;m=c[o>>2]|0;o=c[o+4>>2]|0;x=h+264|0;w=c[x>>2]|0;x=c[x+4>>2]|0;q=~w;r=~x;I=m&q;J=o&r;C=Da;A=c[C>>2]|0;C=c[C+4>>2]|0;F=Ca;D=c[F>>2]|0;F=c[F+4>>2]|0;N=Aa;M=c[N>>2]|0;N=c[N+4>>2]|0;k=D&~M|A;l=F&~N|C;O=~k;P=~l;B=Ga;y=c[B>>2]|0;B=c[B+4>>2]|0;s=y&m&O;t=B&o&P;H=Fa;G=c[H>>2]|0;H=c[H+4>>2]|0;u=~G;v=~H;K=y|u;L=B|v;k=s|k&I;l=t|l&J;if((k|0)==0&(l|0)==0)k=0;else{ya=za;wa=xa;k=(c[wa>>2]|c[ya>>2])&k;l=(c[wa+4>>2]|c[ya+4>>2])&l;if((k|0)==0&(l|0)==0)k=0;else{n=k;k=0;do{ya=qa(n|0,l|0,0)|0;E()|0;wa=pJ(n|0,l|0,-1,-1)|0;n=wa&n;l=(E()|0)&l;wa=c[h+(ya<<2)>>2]&7;k=(c[7568+(wa<<2)>>2]|0)+k+((wa|0)==1?0:((3?ya>>>3:ya)^7)*196622|0)|0}while(!((n|0)==0&(l|0)==0))}n=aa;l=c[n>>2]&s;n=c[n+4>>2]&t;if(!((l|0)==0&(n|0)==0))do{ya=qa(l|0,n|0,0)|0;E()|0;wa=pJ(l|0,n|0,-1,-1)|0;l=wa&l;n=(E()|0)&n;wa=c[h+(ya<<2)>>2]&7;k=(c[7600+(wa<<2)>>2]|0)+k+((wa|0)==1?0:((3?ya>>>3:ya)^7)*196622|0)|0}while(!((l|0)==0&(n|0)==0));ua=e+88|0;ua=((c[ua>>2]&s|0)==0?(c[ua+4>>2]&t|0)==0:0)?k:k+5505045|0;va=s&u;ya=t&v;k=xJ(va|0,ya|0,16)|0;E()|0;wa=xJ(va|0,ya|0,48)|0;E()|0;ua=(z((d[79264+(k&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+wa>>0]|0)|0,2228286)|0)+ua|0;wa=G&q&s;ya=H&r&t;va=xJ(wa|0,ya|0,16)|0;E()|0;k=xJ(wa|0,ya|0,48)|0;E()|0;k=ua+(((d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+k>>0]|0)|0)*393228|0)|0}n=~A;l=~C;ya=~D&n&y&G;r=~F&l&B&H;D=xJ(ya|0,r|0,16)|0;E()|0;A=xJ(ya|0,r|0,48)|0;E()|0;k=(((d[79264+(D&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+(r&65535)>>0]|0)+(d[79264+A>>0]|0)|0)*393223|0)+k|0;A=h+320|0;r=c[A>>2]|0;A=c[A+4>>2]|0;ya=h+288|0;D=h+296|0;C=c[D>>2]|0;D=c[D+4>>2]|0;if(!(((C|c[ya>>2])&r|0)==0?((D|c[ya+4>>2])&A|0)==0:0))k=(z(c[(c[Ja>>2]|0)+84>>2]|0,1310734)|0)+k|0;va=r&w;wa=A&x;ta=yJ(va|0,wa|0,8)|0;ua=E()|0;G=h+256|0;F=c[G>>2]|0;G=c[G+4>>2]|0;sa=~F;ta=ta&sa;ua=ua&~G;ya=yJ(ta|0,ua|0,8)|0;E()|0;ta=K&n&(sa&-16777216&ya|ta);ua=L&l&ua;ya=yJ(ta|0,ua|0,7)|0;l=(E()|0)&2139062143;ua=yJ(ta|0,ua|0,9)|0;ua=(ya&2139029504|ua&-16908288)&m;l=(l|(E()|0)&-16843010)&o;ya=xJ(ua|0,l|0,16)|0;E()|0;ua=xJ(ua|0,l|0,48)|0;E()|0;ua=(z((d[79264+(ya&65535)>>0]|0)+(d[79264]|0)+(d[79264+(l&65535)>>0]|0)+(d[79264+ua>>0]|0)|0,2752560)|0)+k|0;l=va&K;wa=wa&L;va=yJ(l|0,wa|0,7)|0;ya=(E()|0)&2139062143;wa=yJ(l|0,wa|0,9)|0;wa=(va&2139062016|wa&-16843264)&I;ya=(ya|(E()|0)&-16843010)&J;va=xJ(wa|0,ya|0,16)|0;E()|0;l=xJ(wa|0,ya|0,48)|0;E()|0;l=ua+(z((d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+l>>0]|0)|0,6488233)|0)|0;if((c[h+388>>2]|0)==1){Z=c[h+3728>>2]|0;k=e+16|0;ua=c[k>>2]&O;k=c[k+4>>2]&P;va=za;za=235744+(Z<<3)|0;ya=ua&c[va>>2]&c[za>>2];za=k&c[va+4>>2]&c[za+4>>2];va=xJ(ya|0,za|0,16)|0;E()|0;wa=xJ(ya|0,za|0,48)|0;E()|0;wa=(((d[79264+(va&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+wa>>0]|0)|0)*786452|0)+l|0;za=xa;ya=c[za>>2]|0;za=c[za+4>>2]|0;va=c[241376+(Z*24|0)+16>>2]|0;ta=241376+(Z*24|0)|0;xa=241376+(Z*24|0)+8|0;xa=vJ(c[ta>>2]&F|0,c[ta+4>>2]&G|0,c[xa>>2]|0,c[xa+4>>2]|0)|0;xa=xJ(xa|0,E()|0,55)|0;E()|0;xa=va+(xa<<3)|0;ya=c[xa>>2]&ya;za=c[xa+4>>2]&za;xa=aa;va=c[xa>>2]|0;xa=c[xa+4>>2]|0;ta=c[239840+(Z*24|0)+16>>2]|0;sa=239840+(Z*24|0)|0;Z=239840+(Z*24|0)+8|0;Z=vJ(c[sa>>2]&F|0,c[sa+4>>2]&G|0,c[Z>>2]|0,c[Z+4>>2]|0)|0;Z=xJ(Z|0,E()|0,52)|0;E()|0;Z=ta+(Z<<3)|0;ya=ua&M&(c[Z>>2]&va|ya);za=k&N&(c[Z+4>>2]&xa|za);xa=xJ(ya|0,za|0,16)|0;E()|0;Z=xJ(ya|0,za|0,48)|0;E()|0;k=g;g=wa+(z((d[79264+(xa&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+Z>>0]|0)|0,1376305)|0)|0;Z=366}else{k=g;g=l;Z=366}}w:do if((Z|0)==366){c[238294]=g;f=g+f|0;switch(p|0){case 2:{C=k;x=i;w=j;Z=377;break w}case 1:{v=Fa;u=c[v>>2]|0;K=A;v=c[v+4>>2]|0;p=m&y;l=o&B;N=y;C=k;L=j;Z=368;break w}default:{}}I=~w;J=~x;U=r&I;V=A&J;L=Ea;K=c[L>>2]|0;L=c[L+4>>2]|0;N=Aa;M=c[N>>2]|0;N=c[N+4>>2]|0;R=Ca;Q=c[R>>2]|0;R=c[R+4>>2]|0;g=M&~Q|K;l=N&~R|L;S=~g;T=~l;v=Fa;u=c[v>>2]|0;v=c[v+4>>2]|0;q=u&r&S;s=v&A&T;t=~y;H=~B;O=u|t;P=v|H;g=q|g&U;l=s|l&V;if((g|0)==0&(l|0)==0)g=0;else{Ca=Ba;Aa=da;g=(c[Aa>>2]|c[Ca>>2])&g;l=(c[Aa+4>>2]|c[Ca+4>>2])&l;if((g|0)==0&(l|0)==0)g=0;else{n=g;g=0;do{Ca=qa(n|0,l|0,0)|0;E()|0;Aa=pJ(n|0,l|0,-1,-1)|0;n=Aa&n;l=(E()|0)&l;Aa=c[h+(Ca<<2)>>2]&7;g=(c[7568+(Aa<<2)>>2]|0)+g+((Aa|0)==1?0:(3?Ca>>>3:Ca)*196622|0)|0}while(!((n|0)==0&(l|0)==0))}n=ba;l=c[n>>2]&q;n=c[n+4>>2]&s;if(!((l|0)==0&(n|0)==0))do{Ca=qa(l|0,n|0,0)|0;E()|0;Aa=pJ(l|0,n|0,-1,-1)|0;l=Aa&l;n=(E()|0)&n;Aa=c[h+(Ca<<2)>>2]&7;g=(c[7600+(Aa<<2)>>2]|0)+g+((Aa|0)==1?0:(3?Ca>>>3:Ca)*196622|0)|0}while(!((l|0)==0&(n|0)==0));ya=e+152|0;ya=((c[ya>>2]&q|0)==0?(c[ya+4>>2]&s|0)==0:0)?g:g+5505045|0;za=q&t;Ca=s&H;g=xJ(za|0,Ca|0,16)|0;E()|0;Aa=xJ(za|0,Ca|0,48)|0;E()|0;ya=(z((d[79264+(g&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+Aa>>0]|0)|0,2228286)|0)+ya|0;Aa=y&I&q;Ca=B&J&s;za=xJ(Aa|0,Ca|0,16)|0;E()|0;g=xJ(Aa|0,Ca|0,48)|0;E()|0;g=ya+(((d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0)*393228|0)|0}n=~K;l=~L;za=~M&n&u&y;Aa=~N&l&v&B;ya=xJ(za|0,Aa|0,16)|0;E()|0;Ca=xJ(za|0,Aa|0,48)|0;E()|0;g=(((d[79264+(ya&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+Ca>>0]|0)|0)*393223|0)+g|0;Ca=h+288|0;if(!(((C|c[Ca>>2])&m|0)==0?((D|c[Ca+4>>2])&o|0)==0:0))g=(z(c[(c[Ja>>2]|0)+80>>2]|0,1310734)|0)+g|0;za=m&w;Aa=o&x;wa=xJ(za|0,Aa|0,8)|0;xa=~G;wa=wa&~F;Ca=(E()|0)&xa;xJ(wa|0,Ca|0,8)|0;wa=O&n&wa;Ca=P&l&(xa&255&(E()|0)|Ca);xa=xJ(wa|0,Ca|0,9)|0;ya=(E()|0)&32639;Ca=xJ(wa|0,Ca|0,7)|0;Ca=(xa&2139062143|Ca&-16843010)&r;ya=(ya|(E()|0)&65278)&A;xa=xJ(Ca|0,ya|0,16)|0;E()|0;ya=(z((d[79264+(xa&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264]|0)|0,2752560)|0)+g|0;g=za&O;Aa=Aa&P;za=xJ(g|0,Aa|0,9)|0;Ca=(E()|0)&8355711;Aa=xJ(g|0,Aa|0,7)|0;Aa=(za&2139062143|Aa&-16843010)&U;Ca=(Ca|(E()|0)&16711422)&V;za=xJ(Aa|0,Ca|0,16)|0;E()|0;g=xJ(Aa|0,Ca|0,48)|0;E()|0;g=ya+(z((d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0,6488233)|0)|0;if((c[h+356>>2]|0)==1){wa=c[h+1680>>2]|0;C=e+24|0;ya=c[C>>2]&S;C=c[C+4>>2]&T;x=Ba;Ca=235744+(wa<<3)|0;Ba=ya&c[x>>2]&c[Ca>>2];Ca=C&c[x+4>>2]&c[Ca+4>>2];x=xJ(Ba|0,Ca|0,16)|0;E()|0;za=xJ(Ba|0,Ca|0,48)|0;E()|0;za=(((d[79264+(x&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+za>>0]|0)|0)*786452|0)+g|0;Ca=da;Ba=c[Ca>>2]|0;Ca=c[Ca+4>>2]|0;x=c[241376+(wa*24|0)+16>>2]|0;T=241376+(wa*24|0)|0;Aa=241376+(wa*24|0)+8|0;Aa=vJ(c[T>>2]&F|0,c[T+4>>2]&G|0,c[Aa>>2]|0,c[Aa+4>>2]|0)|0;Aa=xJ(Aa|0,E()|0,55)|0;E()|0;Aa=x+(Aa<<3)|0;Ba=c[Aa>>2]&Ba;Ca=c[Aa+4>>2]&Ca;Aa=ba;x=c[Aa>>2]|0;Aa=c[Aa+4>>2]|0;T=c[239840+(wa*24|0)+16>>2]|0;xa=239840+(wa*24|0)|0;g=239840+(wa*24|0)+8|0;g=vJ(c[xa>>2]&F|0,c[xa+4>>2]&G|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=T+(g<<3)|0;Ba=ya&Q&(c[g>>2]&x|Ba);Ca=C&R&(c[g+4>>2]&Aa|Ca);Aa=xJ(Ba|0,Ca|0,16)|0;E()|0;g=xJ(Ba|0,Ca|0,48)|0;E()|0;C=k;x=i;T=j;g=za+(z((d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0,1376305)|0)|0}else{C=k;x=i;T=j}}while(0);do if((Z|0)==368){g=r&u;j=K&v;H=(p|0)!=0|(l|0)!=0;if((g|0)==0&(j|0)==0){l=Ba;p=da;s=ba;y=$;x=e+152|0;j=Ca;A=c[y>>2]|0;w=c[x>>2]|0;y=c[y+4>>2]|0;x=c[x+4>>2]|0;t=c[s>>2]|0;s=c[s+4>>2]|0;q=c[p>>2]|0;p=c[p+4>>2]|0;n=c[l>>2]|0;l=c[l+4>>2]|0;k=~c[j>>2];j=~c[j+4>>2];g=0}else{J=Ca;I=~c[J>>2];J=~c[J+4>>2];G=H&1;F=((g&N|0)!=0|(j&B|0)!=0)&1;D=7440+(G<<6)+(F<<5)|0;j=Da;g=c[j>>2]&r;j=c[j+4>>2]&K;do if((g&I|0)==0&(j&J|0)==0){if((g|0)==0&(j|0)==0){g=0;break}g=0-(c[D>>2]|0)|0}else g=0-(c[7440+(G<<6)+(F<<5)+4>>2]|0)|0;while(0);l=Ba;n=c[l>>2]|0;l=c[l+4>>2]|0;j=n&r;k=l&K;do if((j&I|0)==0&(k&J|0)==0){if((j|0)==0&(k|0)==0)break;g=g-(c[D>>2]|0)|0}else g=g-(c[7440+(G<<6)+(F<<5)+8>>2]|0)|0;while(0);p=da;q=c[p>>2]|0;p=c[p+4>>2]|0;j=q&r;k=p&K;do if((j&I|0)==0&(k&J|0)==0){if((j|0)==0&(k|0)==0)break;g=g-(c[D>>2]|0)|0}else g=g-(c[7440+(G<<6)+(F<<5)+12>>2]|0)|0;while(0);s=ba;t=c[s>>2]|0;s=c[s+4>>2]|0;j=t&r;k=s&K;if((j&I|0)==0&(k&J|0)==0){if(!((j|0)==0&(k|0)==0)){j=D;Z=405}}else{j=7440+(G<<6)+(F<<5)+16|0;Z=405}if((Z|0)==405)g=g-(c[j>>2]|0)|0;y=$;A=c[y>>2]|0;y=c[y+4>>2]|0;j=A&r;k=y&K;do if((j&I|0)==0&(k&J|0)==0){if((j|0)==0&(k|0)==0)break;g=g-(c[D>>2]|0)|0}else g=g-(c[7440+(G<<6)+(F<<5)+20>>2]|0)|0;while(0);x=e+152|0;w=c[x>>2]|0;x=c[x+4>>2]|0;j=w&r;k=x&K;do if((j&I|0)==0&(k&J|0)==0){if((j|0)==0&(k|0)==0)break;g=g-(c[D>>2]|0)|0}else g=g-(c[7440+(G<<6)+(F<<5)+24>>2]|0)|0;while(0);if(!H){p=1;A=K;y=N;x=i;T=L;break}k=I;j=J;g=(z(c[h+368>>2]|0,-8061047)|0)+g|0}T=h+264|0;za=c[T>>2]&m;T=c[T+4>>2]&o;xJ(za|0,T|0,8)|0;Aa=E()|0;Ca=h+256|0;Ba=~c[Ca>>2];Ca=~c[Ca+4>>2];T=xJ(za|0,Ca&65280&Aa|T|0,8)|0;T=T&Ba;Aa=(E()|0)&Ca;Ba=(A|w|t|q|n)&Ba;Ca=(y|x|s|p|l)&Ca;A=(T|Ba)&N;p=(Aa|Ca)&B;y=xJ(A|0,p|0,16)|0;E()|0;za=xJ(A|0,p|0,48)|0;E()|0;za=(z((d[79264+(y&65535)>>0]|0)+(d[79264+(A&65535)>>0]|0)+(d[79264+(p&65535)>>0]|0)+(d[79264+za>>0]|0)|0,13304e3)|0)+g|0;Ba=(T&~u|Ba&k)&N;Ca=(Aa&~v|Ca&j)&B;Aa=xJ(Ba|0,Ca|0,16)|0;E()|0;g=xJ(Ba|0,Ca|0,48)|0;E()|0;p=1;A=K;y=N;x=i;T=L;g=za+(z((d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0,21103003)|0)|0}else if((Z|0)==377){v=Fa;u=c[v>>2]|0;v=c[v+4>>2]|0;i=e+152|0;g=u&r&~c[i>>2];i=v&A&~c[i+4>>2];if((g|0)==0&(i|0)==0){p=2;T=w;g=0}else{q=h+256|0;t=h+264|0;p=c[t>>2]^c[q>>2];q=c[t+4>>2]^c[q+4>>2];t=h+296|0;s=c[t>>2]|0;t=c[t+4>>2]|0;n=g;g=0;do{l=qa(n|0,i|0,0)|0;E()|0;Ba=pJ(n|0,i|0,-1,-1)|0;n=Ba&n;i=(E()|0)&i;Ba=237792+(l<<3)|0;l=161184+(l<<3)|0;k=c[l>>2]|0;l=c[l+4>>2]|0;Aa=c[Ba>>2]&p|k;Ba=c[Ba+4>>2]&q|l;xa=Aa&r;ya=Ba&A;ta=xJ(xa|0,ya|0,16)|0;E()|0;wa=xJ(xa|0,ya|0,48)|0;E()|0;ua=d[79264+(xa&65535)>>0]|0;ta=d[79264+(ta&65535)>>0]|0;va=d[79264+(ya&65535)>>0]|0;wa=d[79264+wa>>0]|0;Aa=Aa&m;Ba=Ba&o;za=xJ(Aa|0,Ba|0,16)|0;E()|0;j=xJ(Aa|0,Ba|0,48)|0;E()|0;j=ta+ua+va+wa+(((xa&s|0)==0&(ya&t|0)==0)<<31>>31)-(d[79264+(Aa&65535)>>0]|0)-(d[79264+(za&65535)>>0]|0)-(d[79264+(Ba&65535)>>0]|0)-(d[79264+j>>0]|0)|0;if(!((Aa&s|0)==0&(Ba&t|0)==0?(Aa=$,Ba=Ca,(c[Aa>>2]&k&~c[Ba>>2]|0)==0?(c[Aa+4>>2]&l&~c[Ba+4>>2]|0)==0:0):0))j=j+-1|0;Ba=z(j,5242960)|0;g=((Ba|0)>0?Ba:0)+g|0}while(!((n|0)==0&(i|0)==0));p=2;T=w}}while(0);c[238295]=g;R=f-g|0;S=c[Ja>>2]|0;g=S+16|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if((f|0)==0&(g|0)==0)f=0;else{P=(p|0)==4;Q=(p|0)==2;I=h+360|0;L=h+264|0;K=h+288|0;M=h+296|0;J=h+256|0;O=h+3984|0;N=h+1936|0;G=u|m;H=v|o;F=f;f=0;do{D=qa(F|0,g|0,0)|0;E()|0;k=pJ(F|0,g|0,-1,-1)|0;F=k&F;g=(E()|0)&g;k=3?D>>>3:D;i=c[7632+(p<<5)+(k<<2)>>2]|0;do if(D>>>0>23){w=k+-2|0;w=(z(w,w)|0)+2|0;t=D+8|0;x:do switch(p|0){case 4:if(!(c[I>>2]|0)){Ca=c[144800+(c[O>>2]<<8)+(t<<2)>>2]|0;i=(z(w*327680|0,(Ca|0)<5?Ca:5)|0)+i|0;break x}else{i=(w*983040|0)+i|0;break x}case 1:break;default:{j=c[144800+(c[O>>2]<<8)+(t<<2)>>2]|0;j=((j|0)<5?j:5)*5|0;if(Q){i=(z(w<<16,j)|0)+i|0;break x}l=c[N>>2]|0;Ca=c[144800+(l<<8)+(t<<2)>>2]|0;n=w<<16;i=(z(j-(((Ca|0)<5?Ca:5)<<1)|0,n)|0)+i|0;if((k|0)==6)break x;Ca=c[144800+(l<<8)+(D+16<<2)>>2]|0;i=i-(z((Ca|0)<5?Ca:5,n)|0)|0}}while(0);if(c[h+(t<<2)>>2]|0){n=t;break}n=231648+(D<<3)|0;l=c[n>>2]|0;n=c[n+4>>2]|0;s=232160+(D<<3)|0;Ca=K;q=M;j=(c[q>>2]|c[Ca>>2])&c[s>>2];s=(c[q+4>>2]|c[Ca+4>>2])&c[s+4>>2];Ca=J;q=c[239840+(D*24|0)+16>>2]|0;Ba=239840+(D*24|0)|0;k=239840+(D*24|0)+8|0;k=vJ(c[Ba>>2]&c[Ca>>2]|0,c[Ba+4>>2]&c[Ca+4>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=xJ(k|0,E()|0,52)|0;E()|0;k=q+(k<<3)|0;j=j&c[k>>2];k=s&c[k+4>>2];s=(r&j|0)==0&(A&k|0)==0;q=l&(s?y:-1);s=n&(s?B:-1);k=(m&j|0)==0&(o&k|0)==0;j=l&(k?G:-1);k=n&(k?H:-1);if((j|0)==0&(k|0)==0)j=20;else{Ca=161184+(t<<3)|0;j=((c[Ca>>2]&j|0)==0?(c[Ca+4>>2]&k|0)==0:0)?9:0}if((q|0)==(l|0)&(s|0)==(n|0))j=j+6|0;else{Ca=161184+(t<<3)|0;j=((c[Ca>>2]&q|0)==0?(c[Ca+4>>2]&s|0)==0:0)?j:j+4|0}n=t;i=(z(w*65537|0,j)|0)+i|0}else n=D+8|0;while(0);do if(P){if(c[I>>2]|0){Z=437;break}k=L;j=c[k>>2]|0;k=c[k+4>>2]|0;l=231648}else Z=437;while(0);if((Z|0)==437){Z=0;k=L;j=c[k>>2]|0;k=c[k+4>>2]|0;l=232672}Ca=l+(n<<3)|0;if(!(((j&m&c[Ca>>2]|0)==0?(k&o&c[Ca+4>>2]|0)==0:0)?(Ca=231648+(D<<3)|0,(c[Ca>>2]&j|0)==0?(c[Ca+4>>2]&k|0)==0:0):0)){Ca=i<<16;i=i+32768|0;i=((((16?i>>16:i)|0)/2|0)<<16)+(((16?Ca>>16:Ca)|0)/2|0)|0}f=i+f+(c[7888+((D&7)<<2)>>2]|0)|0}while(!((F|0)==0&(g|0)==0))}c[238296]=f;P=R+f|0;g=S+24|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if((f|0)==0&(g|0)==0)f=0;else{N=(p|0)==4;O=(p|0)==2;G=h+392|0;J=h+264|0;I=h+288|0;K=h+296|0;H=h+256|0;M=h+1936|0;L=h+3984|0;F=y|r;D=B|A;B=f;f=0;do{y=qa(B|0,g|0,0)|0;E()|0;n=pJ(B|0,g|0,-1,-1)|0;B=n&B;g=(E()|0)&g;n=(3?y>>>3:y)^7;i=c[7632+(p<<5)+(n<<2)>>2]|0;do if(n>>>0>2){w=n+-2|0;w=(z(w,w)|0)+2|0;t=y+-8|0;y:do switch(p|0){case 4:if(!(c[G>>2]|0)){Ca=c[144800+(c[M>>2]<<8)+(t<<2)>>2]|0;i=(z(w*327680|0,(Ca|0)<5?Ca:5)|0)+i|0;break y}else{i=(w*983040|0)+i|0;break y}case 1:break;default:{j=c[144800+(c[M>>2]<<8)+(t<<2)>>2]|0;j=((j|0)<5?j:5)*5|0;if(O){i=(z(w<<16,j)|0)+i|0;break y}k=c[L>>2]|0;Ca=c[144800+(k<<8)+(t<<2)>>2]|0;l=w<<16;i=(z(j-(((Ca|0)<5?Ca:5)<<1)|0,l)|0)+i|0;if((n|0)==6)break y;Ca=c[144800+(k<<8)+(y+-16<<2)>>2]|0;i=i-(z((Ca|0)<5?Ca:5,l)|0)|0}}while(0);if(c[h+(t<<2)>>2]|0){n=t;break}n=232160+(y<<3)|0;l=c[n>>2]|0;n=c[n+4>>2]|0;s=231648+(y<<3)|0;Ca=I;q=K;j=(c[q>>2]|c[Ca>>2])&c[s>>2];s=(c[q+4>>2]|c[Ca+4>>2])&c[s+4>>2];Ca=H;q=c[239840+(y*24|0)+16>>2]|0;Ba=239840+(y*24|0)|0;k=239840+(y*24|0)+8|0;k=vJ(c[Ba>>2]&c[Ca>>2]|0,c[Ba+4>>2]&c[Ca+4>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=xJ(k|0,E()|0,52)|0;E()|0;k=q+(k<<3)|0;j=j&c[k>>2];k=s&c[k+4>>2];s=(m&j|0)==0&(o&k|0)==0;q=l&(s?u:-1);s=n&(s?v:-1);k=(r&j|0)==0&(A&k|0)==0;j=l&(k?F:-1);k=n&(k?D:-1);if((j|0)==0&(k|0)==0)j=20;else{Ca=161184+(t<<3)|0;j=((c[Ca>>2]&j|0)==0?(c[Ca+4>>2]&k|0)==0:0)?9:0}if((q|0)==(l|0)&(s|0)==(n|0))j=j+6|0;else{Ca=161184+(t<<3)|0;j=((c[Ca>>2]&q|0)==0?(c[Ca+4>>2]&s|0)==0:0)?j:j+4|0}n=t;i=(z(w*65537|0,j)|0)+i|0}else n=y+-8|0;while(0);do if(N){if(c[G>>2]|0){Z=464;break}k=J;j=c[k>>2]|0;k=c[k+4>>2]|0;l=231648}else Z=464;while(0);if((Z|0)==464){Z=0;k=J;j=c[k>>2]|0;k=c[k+4>>2]|0;l=232672}Ca=l+512+(n<<3)|0;if(!(((j&r&c[Ca>>2]|0)==0?(k&A&c[Ca+4>>2]|0)==0:0)?(Ca=232160+(y<<3)|0,(c[Ca>>2]&j|0)==0?(c[Ca+4>>2]&k|0)==0:0):0)){Ca=i<<16;i=i+32768|0;i=((((16?i>>16:i)|0)/2|0)<<16)+(((16?Ca>>16:Ca)|0)/2|0)|0}f=i+f+(c[7888+((y&7)<<2)>>2]|0)|0}while(!((B|0)==0&(g|0)==0))}c[238297]=f;g=P-f|0;y=c[h+5352>>2]|0;if(((c[y+20>>2]|0)+(c[y+16>>2]|0)|0)<(c[7920+(p<<2)>>2]|0))f=0;else{q=h+264|0;n=c[q>>2]|0;q=c[q+4>>2]|0;l=n&r;j=q&A;i=Da;i=(l&1010580480^1010580480)&~c[i>>2];w=xJ(l|0,j|0,8)|0;l=w|l;j=E()|0|j;w=xJ(l|0,j|0,16)|0;E()|0|j;j=xJ(i|0,0,16)|0;E()|0;j=(d[79264+(j&65535)>>0]|0)+(d[79264+(i&65535)>>0]|0)|0;k=d[79264]|0;i=(w|l)&i;l=xJ(i|0,0,16)|0;E()|0;w=(p|0)==3;f=c[h+336>>2]|0;if(w)f=(c[h+4496>>2]|0)+f|0;v=c[S+124>>2]<<1;f=f-v|0;f=(z(z(f,j+(d[79264+(i&65535)>>0]|0)+(k<<2)+(d[79264+(l&65535)>>0]|0)|0)|0,f)|0)/16|0;u=(p|0)==5;if(u){s=k*3|0;t=s;s=(z(s+(d[79264+(l&6144)>>0]|0)|0,13566115)|0)+f|0}else{t=k*3|0;s=f}c[238298]=s;l=n&m;i=q&o;n=Ea;n=(i&3947580^3947580)&~c[n+4>>2];k=yJ(l|0,i|0,8)|0;l=k|l;i=E()|0|i;k=yJ(l|0,i|0,16)|0;i=E()|0|i;l=xJ(0,n|0,48)|0;E()|0;k=d[79264+(n&65535)>>0]|0;l=d[79264+l>>0]|0;n=i&n;i=xJ(0,n|0,16)|0;E()|0;j=xJ(0,n|0,48)|0;E()|0;f=c[h+368>>2]|0;if(w)f=(c[h+4528>>2]|0)+f|0;f=f-v|0;f=(z(z(f,t+k+l+(d[79264+(i&65535)>>0]|0)+(d[79264+(n&65535)>>0]|0)+(d[79264+j>>0]|0)|0)|0,f)|0)/16|0;if(u)f=(z(t+(d[79264+(n&24)>>0]|0)|0,13566115)|0)+f|0;c[238299]=f;g=s+g|0}f=g-f+C|0;z:do switch(p|0){case 0:{Z=559;break}case 4:{if(c[h+392>>2]|0){t=A;n=0;Z=503;break z}Ea=h+288|0;t=h+296|0;s=c[t>>2]&r;t=c[t+4>>2]&A;if((s|c[Ea>>2]&r|0)==0?(t|c[Ea+4>>2]&A|0)==0:0){t=A;n=0;Z=503;break z}Da=_;Ca=aa;Ea=161816;if(((c[Ca>>2]|c[Da>>2])&c[Ea>>2]|0)==0?((c[Ca+4>>2]|c[Da+4>>2])&c[Ea+4>>2]|0)==0:0){n=h+264|0;l=c[n>>2]&m;n=c[n+4>>2]&o;q=8;i=0;while(1){Ea=161696+(i<<3)|0;Da=c[Ea>>2]&l;Ea=c[Ea+4>>2]&n;Ca=xJ(Da|0,Ea|0,16)|0;E()|0;k=xJ(Da|0,Ea|0,48)|0;E()|0;k=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+k>>0]|0)|0;do if(!i){g=0;Z=488}else{Ea=161696+(i+-1<<3)|0;Da=c[Ea>>2]&l;Ea=c[Ea+4>>2]&n;Ca=xJ(Da|0,Ea|0,16)|0;E()|0;g=xJ(Da|0,Ea|0,48)|0;E()|0;g=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+g>>0]|0)|0;g=k>>>0>>0?k:g;if(i>>>0<7){Z=488;break}j=i+1|0;i=g;g=0}while(0);if((Z|0)==488){Z=0;j=i+1|0;i=161696+(j<<3)|0;Da=c[i>>2]&l;i=c[i+4>>2]&n;Ca=xJ(Da|0,i|0,16)|0;E()|0;Ea=xJ(Da|0,i|0,48)|0;E()|0;Ea=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(i&65535)>>0]|0)+(d[79264+Ea>>0]|0)|0;i=g;g=k>>>0>>0?k:Ea}Ea=i+g|0;q=(Ea|0)<(q|0)?Ea:q;if((j|0)==8)break;else i=j}g=q+1|0}else g=1;Ea=c[h+372>>2]|0;n=z(Ea,3997767)|0;Ea=z(Ea,4653056)|0;n=n+32768|0;Ea=((((16?n>>16:n)|0)/(g|0)|0)<<16)+(((16?Ea>>16:Ea)|0)/(g|0)|0)|0;n=(s|0)==0&(t|0)==0?4:2;Z=Ea<<16;Ea=Ea+32768|0;n=((((16?Ea>>16:Ea)|0)/(n|0)|0)<<16)+(((16?Z>>16:Z)|0)/(n|0)|0)|0;Z=492;break}default:{n=0;Z=492}}while(0);A:do if((Z|0)==492){if((p|0)!=5){t=A;Z=503;break}Ea=y+344|0;if((m&c[Ea>>2]|0)==0?(o&c[Ea+4>>2]|0)==0:0){g=402653184;i=24;j=5;while(1){k=qa(g|0,i|0,0)|0;E()|0;q=pJ(g|0,i|0,-1,-1)|0;q=q&g;r=(E()|0)&i;if((j|0)==1?(c[h+360>>2]|0)==0:0)g=64;else g=c[h+1936>>2]|0;p=c[144800+(g<<8)+(k<<2)>>2]|0;Ea=Fa;g=161184+(k<<3)|0;j=g;i=c[j>>2]|0;j=c[j+4>>2]|0;if((i&c[Ea>>2]|0)==0?(j&c[Ea+4>>2]|0)==0:0)g=0;else{Ca=h+256|0;Ca=ue(h,k,c[Ca>>2]|0,c[Ca+4>>2]|0)|0;Da=E()|0;h=c[e>>2]|0;o=h+328|0;m=c[o>>2]|0;o=c[o+4>>2]|0;Ca=m&Ca;Da=o&Da;Ba=xJ(Ca|0,Da|0,16)|0;E()|0;Ea=xJ(Ca|0,Da|0,48)|0;E()|0;j=g;i=c[j>>2]|0;j=c[j+4>>2]|0;g=(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+Ea>>0]|0)|0}l=h+320|0;k=c[l>>2]|0;l=c[l+4>>2]|0;Aa=k&i;Ba=l&j;Ea=h+264|0;Ca=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=yJ(Aa&Ca|0,Ba&Ea|0,8)|0;Ea=p+-1+g+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&m&Da|0)!=0|(Ea&o&(E()|0)|0)!=0)&1)|0;n=(c[7952+(((Ea|0)<5?Ea:5)<<2)>>2]|0)+n|0;if((q|0)==0&(r|0)==0){r=k;t=l;Z=503;break A}g=q;i=r;j=c[h+5360>>2]|0}}ua=c[144800+(c[h+1936>>2]<<8)+108>>2]|0;va=h+256|0;va=ue(h,27,c[va>>2]|0,c[va+4>>2]|0)|0;xa=E()|0;h=c[e>>2]|0;i=h+328|0;Ca=c[i>>2]|0;i=c[i+4>>2]|0;va=Ca&va;xa=i&xa;wa=xJ(va|0,xa|0,16)|0;E()|0;ya=xJ(va|0,xa|0,48)|0;E()|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+ya>>0]|0;Aa=h+320|0;Ea=161400;za=c[Ea>>2]&c[Aa>>2];Aa=c[Ea+4>>2]&c[Aa+4>>2];Ea=h+264|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=yJ(za&Ba|0,Aa&Ea|0,8)|0;i=ua+-1+va+wa+xa+ya+(((za|0)!=0|(Aa|0)!=0)&1)+(((Ba&Ca&Da|0)!=0|(Ea&i&(E()|0)|0)!=0)&1)|0;i=(c[7952+(((i|0)<5?i:5)<<2)>>2]|0)+n|0;if((c[h+5360>>2]|0)==1?(c[h+360>>2]|0)==0:0)g=64;else g=c[h+1936>>2]|0;ta=c[144800+(g<<8)+112>>2]|0;ua=h+256|0;ua=ue(h,28,c[ua>>2]|0,c[ua+4>>2]|0)|0;wa=E()|0;h=c[e>>2]|0;Ea=h+328|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;ua=Ba&ua;wa=Ea&wa;va=xJ(ua|0,wa|0,16)|0;E()|0;xa=xJ(ua|0,wa|0,48)|0;E()|0;ua=d[79264+(ua&65535)>>0]|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+xa>>0]|0;za=h+320|0;Da=161408;ya=c[Da>>2]&c[za>>2];za=c[Da+4>>2]&c[za+4>>2];Da=h+264|0;Aa=c[Da>>2]|0;Da=c[Da+4>>2]|0;Ca=yJ(ya&Aa|0,za&Da|0,8)|0;Ea=ta+-1+ua+va+wa+xa+(((ya|0)!=0|(za|0)!=0)&1)+(((Aa&Ba&Ca|0)!=0|(Da&Ea&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Ea|0)<5?Ea:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+360>>2]|0)==0:0)g=64;else g=c[h+1936>>2]|0;ta=c[144800+(g<<8)+140>>2]|0;ua=h+256|0;ua=ue(h,35,c[ua>>2]|0,c[ua+4>>2]|0)|0;wa=E()|0;h=c[e>>2]|0;Ea=h+328|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;ua=Ba&ua;wa=Ea&wa;va=xJ(ua|0,wa|0,16)|0;E()|0;xa=xJ(ua|0,wa|0,48)|0;E()|0;ua=d[79264+(ua&65535)>>0]|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+xa>>0]|0;za=h+320|0;Da=161464;ya=c[Da>>2]&c[za>>2];za=c[Da+4>>2]&c[za+4>>2];Da=h+264|0;Aa=c[Da>>2]|0;Da=c[Da+4>>2]|0;Ca=yJ(ya&Aa|0,za&Da|0,8)|0;Ea=ta+-1+ua+va+wa+xa+(((ya|0)!=0|(za|0)!=0)&1)+(((Aa&Ba&Ca|0)!=0|(Da&Ea&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Ea|0)<5?Ea:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+360>>2]|0)==0:0)g=64;else g=c[h+1936>>2]|0;va=c[144800+(g<<8)+144>>2]|0;wa=h+256|0;wa=ue(h,36,c[wa>>2]|0,c[wa+4>>2]|0)|0;ya=E()|0;h=c[e>>2]|0;n=h+328|0;Da=c[n>>2]|0;n=c[n+4>>2]|0;wa=Da&wa;ya=n&ya;xa=xJ(wa|0,ya|0,16)|0;E()|0;za=xJ(wa|0,ya|0,48)|0;E()|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+(ya&65535)>>0]|0;za=d[79264+za>>0]|0;t=h+320|0;r=c[t>>2]|0;t=c[t+4>>2]|0;Ba=161472;Aa=c[Ba>>2]&r;Ba=c[Ba+4>>2]&t;Z=h+264|0;Ca=c[Z>>2]|0;Z=c[Z+4>>2]|0;Ea=yJ(Aa&Ca|0,Ba&Z|0,8)|0;n=va+-1+wa+xa+ya+za+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&Da&Ea|0)!=0|(Z&n&(E()|0)|0)!=0)&1)|0;n=i+(c[7952+(((n|0)<5?n:5)<<2)>>2]|0)|0;Z=503}while(0);B:do if((Z|0)==503){s=c[h+5360>>2]|0;if((s|0)==6){l=c[h+1936>>2]|0;m=3?l>>3:l;g=m^7;if((l|0)<56){j=Fa;i=~c[j>>2];j=~c[j+4>>2];k=m;do{Fa=k;k=k+1|0;Da=161760+(k<<3)|0;Ea=227552+(l<<6)+(k-m<<3)|0;g=g+(((c[Da>>2]&i&c[Ea>>2]|0)==0?(c[Da+4>>2]&j&c[Ea+4>>2]|0)==0:0)&1)|0}while((Fa|0)<6)}n=(c[7984+(((g|0)<7?g:7)<<2)>>2]|0)+n|0}C:do if((s|0)==7){n=(c[8016+(c[(c[h+5352>>2]|0)+36>>2]<<2)>>2]|0)+n|0;c[238302]=n;o=h;g=0}else{c[238302]=n;if((s|0)==4){if(c[h+360>>2]|0){o=h;g=0;break}Fa=h+328|0;Da=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=h+288|0;q=h+296|0;p=c[q>>2]&Da;q=c[q+4>>2]&Fa;if((p|c[Ea>>2]&Da|0)==0?(q|c[Ea+4>>2]&Fa|0)==0:0){o=h;g=0;break}Ea=$;Da=ba;Fa=161760;if(((c[Da>>2]|c[Ea>>2])&c[Fa>>2]|0)==0?((c[Da+4>>2]|c[Ea+4>>2])&c[Fa+4>>2]|0)==0:0){m=h+264|0;l=c[m>>2]&r;m=c[m+4>>2]&t;o=8;i=0;while(1){Fa=161696+(i<<3)|0;Ea=c[Fa>>2]&l;Fa=c[Fa+4>>2]&m;Da=xJ(Ea|0,Fa|0,16)|0;E()|0;k=xJ(Ea|0,Fa|0,48)|0;E()|0;k=(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+(Fa&65535)>>0]|0)+(d[79264+k>>0]|0)|0;do if(!i){g=0;Z=527}else{Fa=161696+(i+-1<<3)|0;Ea=c[Fa>>2]&l;Fa=c[Fa+4>>2]&m;Da=xJ(Ea|0,Fa|0,16)|0;E()|0;g=xJ(Ea|0,Fa|0,48)|0;E()|0;g=(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+(Fa&65535)>>0]|0)+(d[79264+g>>0]|0)|0;g=k>>>0>>0?k:g;if(i>>>0<7){Z=527;break}j=i+1|0;i=g;g=0}while(0);if((Z|0)==527){Z=0;j=i+1|0;i=161696+(j<<3)|0;Ea=c[i>>2]&l;i=c[i+4>>2]&m;Da=xJ(Ea|0,i|0,16)|0;E()|0;Fa=xJ(Ea|0,i|0,48)|0;E()|0;Fa=(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+(i&65535)>>0]|0)+(d[79264+Fa>>0]|0)|0;i=g;g=k>>>0>>0?k:Fa}Fa=i+g|0;o=(Fa|0)<(o|0)?Fa:o;if((j|0)==8)break;else i=j}g=o+1|0}else g=1;Ea=c[h+340>>2]|0;Fa=z(Ea,3997767)|0;Ea=z(Ea,4653056)|0;Fa=Fa+32768|0;Ea=((((16?Fa>>16:Fa)|0)/(g|0)|0)<<16)+(((16?Ea>>16:Ea)|0)/(g|0)|0)|0;g=(p|0)==0&(q|0)==0?4:2;Fa=Ea<<16;Ea=Ea+32768|0;g=((((16?Ea>>16:Ea)|0)/(g|0)|0)<<16)+(((16?Fa>>16:Fa)|0)/(g|0)|0)|0}else g=0;if((s|0)!=5){o=h;break}Fa=(c[h+5352>>2]|0)+336|0;if((r&c[Fa>>2]|0)==0?(t&c[Fa+4>>2]|0)==0:0){i=402653184;j=24;k=5;m=t;while(1){l=qa(i|0,j|0,0)|0;E()|0;p=pJ(i|0,j|0,-1,-1)|0;p=p&i;q=(E()|0)&j;if((k|0)==1?(c[h+392>>2]|0)==0:0)i=64;else i=c[h+3984>>2]|0;o=c[144800+(i<<8)+(l<<2)>>2]|0;Fa=Ga;i=161184+(l<<3)|0;k=i;j=c[k>>2]|0;k=c[k+4>>2]|0;if((j&c[Fa>>2]|0)==0?(k&c[Fa+4>>2]|0)==0:0){l=r;i=0}else{Da=h+256|0;Da=ue(h,l,c[Da>>2]|0,c[Da+4>>2]|0)|0;Ea=E()|0;h=c[e>>2]|0;m=h+320|0;l=c[m>>2]|0;m=c[m+4>>2]|0;Da=l&Da;Ea=m&Ea;Ca=xJ(Da|0,Ea|0,16)|0;E()|0;Fa=xJ(Da|0,Ea|0,48)|0;E()|0;k=i;j=c[k>>2]|0;k=c[k+4>>2]|0;i=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+Fa>>0]|0)|0}Ca=h+328|0;Ba=c[Ca>>2]&j;Ca=c[Ca+4>>2]&k;Fa=h+264|0;Da=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=xJ(Ba&Da|0,Ca&Fa|0,8)|0;Fa=o+-1+i+(((Ba|0)!=0|(Ca|0)!=0)&1)+(((Da&l&Ea|0)!=0|(Fa&m&(E()|0)|0)!=0)&1)|0;g=(c[7952+(((Fa|0)<5?Fa:5)<<2)>>2]|0)+g|0;if((p|0)==0&(q|0)==0){o=h;break C}i=p;j=q;k=c[h+5360>>2]|0;r=l}}va=c[144800+(c[h+3984>>2]<<8)+108>>2]|0;wa=h+256|0;wa=ue(h,27,c[wa>>2]|0,c[wa+4>>2]|0)|0;ya=E()|0;h=c[e>>2]|0;i=h+320|0;Da=c[i>>2]|0;i=c[i+4>>2]|0;wa=Da&wa;ya=i&ya;xa=xJ(wa|0,ya|0,16)|0;E()|0;za=xJ(wa|0,ya|0,48)|0;E()|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+(ya&65535)>>0]|0;za=d[79264+za>>0]|0;Ba=h+328|0;Fa=161400;Aa=c[Fa>>2]&c[Ba>>2];Ba=c[Fa+4>>2]&c[Ba+4>>2];Fa=h+264|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=xJ(Aa&Ca|0,Ba&Fa|0,8)|0;i=va+-1+wa+xa+ya+za+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&Da&Ea|0)!=0|(Fa&i&(E()|0)|0)!=0)&1)|0;i=(c[7952+(((i|0)<5?i:5)<<2)>>2]|0)+g|0;if((c[h+5360>>2]|0)==1?(c[h+392>>2]|0)==0:0)g=64;else g=c[h+3984>>2]|0;ua=c[144800+(g<<8)+112>>2]|0;va=h+256|0;va=ue(h,28,c[va>>2]|0,c[va+4>>2]|0)|0;xa=E()|0;h=c[e>>2]|0;Fa=h+320|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;va=Ca&va;xa=Fa&xa;wa=xJ(va|0,xa|0,16)|0;E()|0;ya=xJ(va|0,xa|0,48)|0;E()|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+ya>>0]|0;Aa=h+328|0;Ea=161408;za=c[Ea>>2]&c[Aa>>2];Aa=c[Ea+4>>2]&c[Aa+4>>2];Ea=h+264|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=xJ(za&Ba|0,Aa&Ea|0,8)|0;Fa=ua+-1+va+wa+xa+ya+(((za|0)!=0|(Aa|0)!=0)&1)+(((Ba&Ca&Da|0)!=0|(Ea&Fa&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Fa|0)<5?Fa:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+392>>2]|0)==0:0)g=64;else g=c[h+3984>>2]|0;ua=c[144800+(g<<8)+140>>2]|0;va=h+256|0;va=ue(h,35,c[va>>2]|0,c[va+4>>2]|0)|0;xa=E()|0;h=c[e>>2]|0;Fa=h+320|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;va=Ca&va;xa=Fa&xa;wa=xJ(va|0,xa|0,16)|0;E()|0;ya=xJ(va|0,xa|0,48)|0;E()|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+ya>>0]|0;Aa=h+328|0;Ea=161464;za=c[Ea>>2]&c[Aa>>2];Aa=c[Ea+4>>2]&c[Aa+4>>2];Ea=h+264|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=xJ(za&Ba|0,Aa&Ea|0,8)|0;Fa=ua+-1+va+wa+xa+ya+(((za|0)!=0|(Aa|0)!=0)&1)+(((Ba&Ca&Da|0)!=0|(Ea&Fa&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Fa|0)<5?Fa:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+392>>2]|0)==0:0)g=64;else g=c[h+3984>>2]|0;va=c[144800+(g<<8)+144>>2]|0;wa=h+256|0;wa=ue(h,36,c[wa>>2]|0,c[wa+4>>2]|0)|0;ya=E()|0;o=c[e>>2]|0;g=o+320|0;Da=c[g>>2]|0;g=c[g+4>>2]|0;wa=Da&wa;ya=g&ya;xa=xJ(wa|0,ya|0,16)|0;E()|0;za=xJ(wa|0,ya|0,48)|0;E()|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+(ya&65535)>>0]|0;za=d[79264+za>>0]|0;Ba=o+328|0;Fa=161472;Aa=c[Fa>>2]&c[Ba>>2];Ba=c[Fa+4>>2]&c[Ba+4>>2];Fa=o+264|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=xJ(Aa&Ca|0,Ba&Fa|0,8)|0;g=va+-1+wa+xa+ya+za+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&Da&Ea|0)!=0|(Fa&g&(E()|0)|0)!=0)&1)|0;g=i+(c[7952+(((g|0)<5?g:5)<<2)>>2]|0)|0}while(0);p=c[o+5360>>2]|0;if((p|0)==6){l=c[o+3984>>2]|0;m=3?l>>3:l;h=m^7;if((l|0)<56){j=Ga;i=~c[j>>2];j=~c[j+4>>2];k=m;do{Ga=k;k=k+1|0;Ea=161760+(k<<3)|0;Fa=227552+(l<<6)+(k-m<<3)|0;h=h+(((c[Ea>>2]&i&c[Fa>>2]|0)==0?(c[Ea+4>>2]&j&c[Fa+4>>2]|0)==0:0)&1)|0}while((Ga|0)<6)}g=(c[7984+(((h|0)<7?h:7)<<2)>>2]|0)+g|0}if((p|0)==7){Z=(c[8016+(c[(c[o+5352>>2]|0)+40>>2]<<2)>>2]|0)+g|0;c[238303]=Z;h=o;p=7;f=n+f-Z|0;Z=559;break}else{c[238303]=g;f=n+f-g|0;switch(p|0){case 4:case 1:{h=o;g=0;break B}default:{h=o;Z=559;break B}}}}while(0);if((Z|0)==559){m=f+32768|0;m=16?m>>16:m;n=c[h+1936>>2]|0;o=c[h+3984>>2]|0;k=n&7;l=o&7;n=3?n>>3:n;o=3?o>>3:o;j=h+264|0;i=c[j>>2]|0;j=c[j+4>>2]|0;g=c[h+340>>2]|0;if((p|0)==3)g=(c[h+372>>2]|0)+g+(c[h+4532>>2]<<1)|0;else g=(c[h+372>>2]|0)+g|0;Ga=c[h+5352>>2]|0;g=(c[(c[Ja>>2]|0)+120>>2]<<3)+-118+((i&252645135|0)==0&(j&252645135|0)==0?0:(((i&-252645136|0)!=0|(j&-252645136|0)!=0)&1)<<4)+(((k>>>0>>0?l-k|0:k-l|0)-((n|0)<(o|0)?o-n|0:n-o|0)+g|0)*12|0)+((c[Ga+20>>2]|0)==(0-(c[Ga+16>>2]|0)|0)?48:0)|0;Ga=0-((m|0)>-1?m:0-m|0)|0;g=z((g|0)<(Ga|0)?Ga:g,((f|0)>32767&1)-(31?m>>>31:m)<<16)|0;c[238300]=g;c[238301]=0}k=g+f|0;l=k+32768|0;l=16?l>>16:l;j=(k|0)<32768&1;f=c[Ka>>2]|0;g=c[f+12+(j<<2)>>2]|0;if((g|0)!=0?(Ha=Na[c[(c[g>>2]|0)+8>>2]&127](g,h)|0,(Ha|0)!=255):0)f=Ha;else f=d[f+22+j>>0]|0;h=c[e>>2]|0;i=c[h+5360>>2]|0;D:do switch(i|0){case 2:break;case 4:{g=j^1;if(c[h+336+((g<<3|6)<<2)>>2]|0){Z=569;break D}f=(c[(c[h+5352>>2]|0)+16+(g<<2)>>2]|0)>2528?10:f;break}default:Z=569}while(0);E:do if((Z|0)==569){if((f|0)!=64)break;do if((c[h+348>>2]|0)==1){if((c[h+380>>2]|0)!=1){g=7;break}g=c[h+3216>>2]^c[h+1168>>2];g=(((3?g>>>3:g)^g)&1|0)==0;do if(!g){f=c[h+5352>>2]|0;if((c[f+16>>2]|0)!=830)break;if((c[f+20>>2]|0)!=830)break;f=(c[(c[Ja>>2]|0)+120>>2]<<2)+8|0;break E}while(0);g=g?7:2}else g=7;while(0);f=c[h+336+((j<<3|1)<<2)>>2]|0;if((i|0)==3)f=(c[h+4496+(j<<5)+4>>2]|0)+f|0;f=(z(f,g)|0)+40|0;f=(f|0)<64?f:64}while(0);Ha=k<<16;e=c[Ka>>2]|0;Ka=c[e+24>>2]|0;Ka=(((z(z(f,l)|0,128-Ka|0)|0)/64|0)+(z(Ka,16?Ha>>16:Ha)|0)|0)/128|0;c[238288]=c[h+5344>>2];c[238289]=0;c[238290]=(b[e+20>>1]|0)*65537;c[238291]=0;e=c[Ja>>2]|0;Ja=c[e+12>>2]|0;c[238274]=c[e+8>>2];c[238275]=Ja;Ja=c[T>>2]|0;c[238292]=c[x>>2];c[238293]=Ja;c[238304]=k;c[238305]=0;Ka=((c[h+5340>>2]|0)==0?Ka:0-Ka|0)+(c[23568+(i<<2)>>2]|0)|0;Ia=La;return Ka|0} +function Yb(e){e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ja=0,Ka=0,La=0;La=Ia;Ia=Ia+16|0;ua=La;Ka=Zb(c[e>>2]|0)|0;f=c[e>>2]|0;if(Ka){Ka=_b(f,0,0)|0;Ia=La;return Ka|0}h=Cc(f)|0;Ka=e+4|0;c[Ka>>2]=h;f=c[h+8>>2]|0;g=c[e>>2]|0;if(f|0){Ka=Na[c[(c[f>>2]|0)+8>>2]&127](f,g)|0;Ia=La;return Ka|0}sa=((b[h+20>>1]|0)*65537|0)+(c[g+5344>>2]|0)+(c[(c[g+5348>>2]|0)+2139836>>2]|0)|0;ja=ae(g)|0;Ja=e+8|0;c[Ja>>2]=ja;sa=sa+((c[ja+8>>2]|0)-(c[ja+12>>2]|0))|0;f=sa<<16;ra=sa+32768|0;f=((16?ra>>16:ra)+(16?f>>16:f)|0)/2|0;ra=c[e>>2]|0;pa=c[ra+5360>>2]|0;if((pa|0)==0?(i=0-f|0,(((f|0)>-1?f:i)|0)>1500):0){Ia=La;return ((c[ra+5340>>2]|0)==0?f:i)|0}la=ra+320|0;h=la;f=c[h>>2]|0;h=c[h+4>>2]|0;na=ra+264|0;i=na;oa=c[i>>2]&f;i=c[i+4>>2]&h;ma=ra+256|0;g=ma;g=xJ(c[g>>2]|0,c[g+4>>2]|0,8)|0;g=oa&(g|16776960);i=i&(E()|0);oa=(pa|0)==1;a:do if(oa){j=e+16|0;c[j>>2]=-1;c[j+4>>2]=-1;j=e+88|0;g=j;c[g>>2]=0;c[g+4>>2]=0;g=la;Ga=ra+304|0;f=c[Ga>>2]&c[g>>2];g=c[Ga+4>>2]&c[g+4>>2];if((f|0)==0&(g|0)==0){h=0;i=0;f=-1;g=-1}else{h=0;i=0;do{Ga=qa(f|0,g|0,0)|0;E()|0;Fa=pJ(f|0,g|0,-1,-1)|0;f=Fa&f;g=(E()|0)&g;Ga=237792+(Ga<<3)|0;h=c[Ga>>2]|h;i=c[Ga+4>>2]|i;Ga=j;c[Ga>>2]=h;c[Ga+4>>2]=i}while(!((f|0)==0&(g|0)==0));f=-1;g=-1}}else{j=(pa|0)==4;if(j?(c[ra+360>>2]|0)==0:0){Ga=ja+40|0;f=~(c[Ga>>2]|g);g=~(c[Ga+4>>2]|i);Ga=e+16|0;c[Ga>>2]=f;c[Ga+4>>2]=g}else U=15;do if((U|0)==15){Ga=ra+304|0;Fa=ra+296|0;Ea=ja+40|0;f=~(c[Ea>>2]|g|(c[Fa>>2]|c[Ga>>2])&f);g=~(c[Ea+4>>2]|i|(c[Fa+4>>2]|c[Ga+4>>2])&h);Ga=e+16|0;c[Ga>>2]=f;c[Ga+4>>2]=g;if(j?(c[ra+360>>2]|0)==0:0)break;i=237792+(c[ra+1936>>2]<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;Ga=e+88|0;c[Ga>>2]=h;c[Ga+4>>2]=i;break a}while(0);h=e+88|0;c[h>>2]=0;c[h+4>>2]=0;h=0;i=0}while(0);r=ja+32|0;ea=r;da=c[ea>>2]|0;ea=c[ea+4>>2]|0;Ea=e+48|0;w=Ea;c[w>>2]=da;c[w+4>>2]=ea;w=da|h;y=ea|i;Ga=e+40|0;C=Ga;c[C>>2]=w;c[C+4>>2]=y;C=da&h;x=ea&i;Aa=e+168|0;ta=Aa;c[ta>>2]=C;c[ta+4>>2]=x;ta=e+204|0;c[ta>>2]=0;va=e+184|0;Fa=va;c[Fa>>2]=0;c[Fa+4>>2]=0;do if(!oa){if((pa|0)==4?(c[ra+360>>2]|0)==0:0){F=0;j=0;k=0;break}if((c[(c[ra+5352>>2]|0)+20>>2]|0)>=2071){Fa=va;c[Fa>>2]=h;c[Fa+4>>2]=i;Fa=c[ra+1936>>2]|0;Da=Fa>>>0<8;j=yJ(h|0,i|0,8)|0;k=E()|0;j=h|(Da?j:0);k=i|(Da?k:0);Da=va;c[Da>>2]=j;c[Da+4>>2]=k;switch(Fa&7){case 7:{j=(xJ(j|0,k|0,1)|0)&2139062143|j;k=(E()|0)&2139062143|k;U=26;break}case 0:{j=(yJ(j|0,k|0,1)|0)&-16843010|j;k=(E()|0)&-16843010|k;U=26;break}default:{}}if((U|0)==26){Fa=va;c[Fa>>2]=j;c[Fa+4>>2]=k}Fa=ja+40|0;Da=c[Fa>>2]&j;Fa=c[Fa+4>>2]&k;Ca=xJ(Da|0,Fa|0,16)|0;E()|0;F=xJ(Da|0,Fa|0,48)|0;E()|0;F=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Fa&65535)>>0]|0)+(d[79264+F>>0]|0)|0;c[ta>>2]=F;c[e+212>>2]=0;c[e+220>>2]=0}else{F=0;j=0;k=0}}else{F=0;j=0;k=0}while(0);ka=ra+328|0;n=ka;l=c[n>>2]|0;n=c[n+4>>2]|0;o=na;Fa=c[o>>2]&l;o=c[o+4>>2]&n;m=ma;m=yJ(c[m>>2]|0,c[m+4>>2]|0,8)|0;m=Fa&m;o=o&(E()|0|16776960);b:do if(oa){p=e+24|0;c[p>>2]=-1;c[p+4>>2]=-1;p=e+152|0;m=p;c[m>>2]=0;c[m+4>>2]=0;m=ka;Fa=ra+304|0;l=c[Fa>>2]&c[m>>2];m=c[Fa+4>>2]&c[m+4>>2];if((l|0)==0&(m|0)==0){n=0;o=0;l=-1;m=-1}else{n=0;o=0;do{Fa=qa(l|0,m|0,0)|0;E()|0;Da=pJ(l|0,m|0,-1,-1)|0;l=Da&l;m=(E()|0)&m;Fa=237792+(Fa<<3)|0;n=c[Fa>>2]|n;o=c[Fa+4>>2]|o;Fa=p;c[Fa>>2]=n;c[Fa+4>>2]=o}while(!((l|0)==0&(m|0)==0));l=-1;m=-1}}else{p=(pa|0)==4;if(p?(c[ra+392>>2]|0)==0:0){Fa=r;l=~(c[Fa>>2]|m);m=~(c[Fa+4>>2]|o);Fa=e+24|0;c[Fa>>2]=l;c[Fa+4>>2]=m}else U=35;do if((U|0)==35){Fa=ra+304|0;Da=ra+296|0;Ca=r;l=~(c[Ca>>2]|m|(c[Da>>2]|c[Fa>>2])&l);m=~(c[Ca+4>>2]|o|(c[Da+4>>2]|c[Fa+4>>2])&n);Fa=e+24|0;c[Fa>>2]=l;c[Fa+4>>2]=m;if(p?(c[ra+392>>2]|0)==0:0)break;o=237792+(c[ra+3984>>2]<<3)|0;n=c[o>>2]|0;o=c[o+4>>2]|0;Fa=e+152|0;c[Fa>>2]=n;c[Fa+4>>2]=o;break b}while(0);n=e+152|0;c[n>>2]=0;c[n+4>>2]=0;n=0;o=0}while(0);ga=ja+40|0;fa=c[ga>>2]|0;ga=c[ga+4>>2]|0;Da=e+112|0;B=Da;c[B>>2]=fa;c[B+4>>2]=ga;B=fa|n;X=ga|o;Fa=e+104|0;V=Fa;c[V>>2]=B;c[V+4>>2]=X;V=fa&n;W=ga&o;Ca=e+176|0;wa=Ca;c[wa>>2]=V;c[wa+4>>2]=W;wa=e+200|0;c[wa>>2]=0;ya=e+192|0;Ba=ya;c[Ba>>2]=0;c[Ba+4>>2]=0;do if(!oa){if((pa|0)==4?(c[ra+392>>2]|0)==0:0){p=0;q=0;r=0;break}if((c[(c[ra+5352>>2]|0)+16>>2]|0)>=2071){Ba=ya;c[Ba>>2]=n;c[Ba+4>>2]=o;Ba=c[ra+3984>>2]|0;za=(Ba&-8|0)==56;p=xJ(n|0,o|0,8)|0;q=E()|0;p=n|(za?p:0);q=o|(za?q:0);za=ya;c[za>>2]=p;c[za+4>>2]=q;switch(Ba&7){case 7:{p=(xJ(p|0,q|0,1)|0)&2139062143|p;q=(E()|0)&2139062143|q;U=46;break}case 0:{p=(yJ(p|0,q|0,1)|0)&-16843010|p;q=(E()|0)&-16843010|q;U=46;break}default:{}}if((U|0)==46){Ba=ya;c[Ba>>2]=p;c[Ba+4>>2]=q}Ba=r;za=c[Ba>>2]&p;Ba=c[Ba+4>>2]&q;xa=xJ(za|0,Ba|0,16)|0;E()|0;r=xJ(za|0,Ba|0,48)|0;E()|0;r=(d[79264+(xa&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+r>>0]|0)|0;c[wa>>2]=r;c[e+208>>2]=0;c[e+216>>2]=0}else{p=0;q=0;r=0}}else{p=0;q=0;r=0}while(0);za=e+56|0;s=za;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+912>>2]|0;c:do if((s|0)==64){ca=C;ia=0}else{S=e+32|0;P=e+208|0;Q=e+216|0;M=ra+360|0;R=ra+1936|0;N=(c[ra+5352>>2]|0)+336|0;O=2704+(pa<<5)+8|0;K=ja+56|0;G=0;D=0;A=ra+916|0;L=0;while(1){if(oa)break;I=D;J=A;d:while(1){u=235744+(s<<3)|0;t=c[u>>2]|0;u=c[u+4>>2]|0;Ba=N;D=161184+(s<<3)|0;xa=D;if(!((c[xa>>2]&c[Ba>>2]|0)==0?(c[xa+4>>2]&c[Ba+4>>2]|0)==0:0)){Ba=194784+(c[R>>2]<<9)+(s<<3)|0;t=c[Ba>>2]&t;u=c[Ba+4>>2]&u}H=C|w&t;x=x|y&u;Ba=Aa;c[Ba>>2]=H;c[Ba+4>>2]=x;G=t|G;I=u|I;Ba=za;c[Ba>>2]=G;c[Ba+4>>2]=I;w=w|t;y=y|u;Ba=Ga;c[Ba>>2]=w;c[Ba+4>>2]=y;if(!((p&t|0)==0&(q&u|0)==0)){r=r+1|0;c[wa>>2]=r;c[P>>2]=(c[P>>2]|0)+(c[O>>2]|0);ia=n&t;xa=o&u;ha=xJ(ia|0,xa|0,16)|0;E()|0;Ba=xJ(ia|0,xa|0,48)|0;E()|0;c[Q>>2]=(d[79264+(ha&65535)>>0]|0)+(d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+Ba>>0]|0)+(c[Q>>2]|0)}ia=f&t;xa=g&u;ha=xJ(ia|0,xa|0,16)|0;E()|0;Ba=xJ(ia|0,xa|0,48)|0;E()|0;c[S>>2]=(c[S>>2]|0)+(c[2960+(pa<<9)+((d[79264+(ha&65535)>>0]|0)+(d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+Ba>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[M>>2]|0)break d;break}default:break d}s=c[J>>2]|0;if((s|0)==64){ca=H;ia=L;break c}else{C=H;J=J+4|0}}A=K;v=c[A>>2]&-16777216^-16777216;A=c[A+4>>2]&65535^65535;C=c[D>>2]|0;D=c[D+4>>2]|0;if((v&C|0)==0&(A&D|0)==0){Ba=la;v=v&t&~c[Ba>>2];t=A&u&~c[Ba+4>>2];if((v|0)==0&(t|0)==0)t=L;else t=(c[7056+((((v&da|0)!=0|(t&ea|0)!=0)&1)<<2)>>2]|0)+L|0}else t=(c[7056+((((C&da|0)!=0|(D&ea|0)!=0)&1)<<2)>>2]<<1)+L|0;Ba=na;Ba=xJ(c[Ba>>2]|0,c[Ba+4>>2]|0,8)|0;Ba=(Ba&C|0)==0&((E()|0)&D|0)==0;t=(Ba?t:t+16|0)+(z(c[144800+(s<<8)+(c[R>>2]<<2)>>2]|0,-458758)|0)|0;s=c[J>>2]|0;if((s|0)==64){ca=H;ia=t;break c}else{C=H;D=I;A=J+4|0;L=t}}while(1){v=235744+(s<<3)|0;t=c[v>>2]|0;v=c[v+4>>2]|0;Ba=N;xa=161184+(s<<3)|0;if(!((c[xa>>2]&c[Ba>>2]|0)==0?(c[xa+4>>2]&c[Ba+4>>2]|0)==0:0)){if(!(c[M>>2]|0))u=64;else u=c[R>>2]|0;Ba=194784+(u<<9)+(s<<3)|0;t=c[Ba>>2]&t;v=c[Ba+4>>2]&v}u=C|w&t;x=x|y&v;Ba=Aa;c[Ba>>2]=u;c[Ba+4>>2]=x;G=t|G;D=v|D;Ba=za;c[Ba>>2]=G;c[Ba+4>>2]=D;w=w|t;y=y|v;Ba=Ga;c[Ba>>2]=w;c[Ba+4>>2]=y;if(!((p&t|0)==0&(q&v|0)==0)){r=r+1|0;c[wa>>2]=r;c[P>>2]=(c[P>>2]|0)+(c[O>>2]|0);ia=n&t;xa=o&v;ha=xJ(ia|0,xa|0,16)|0;E()|0;Ba=xJ(ia|0,xa|0,48)|0;E()|0;c[Q>>2]=(d[79264+(ha&65535)>>0]|0)+(d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+Ba>>0]|0)+(c[Q>>2]|0)}xa=f&t;Ba=g&v;ia=xJ(xa|0,Ba|0,16)|0;E()|0;s=xJ(xa|0,Ba|0,48)|0;E()|0;c[S>>2]=(c[S>>2]|0)+(c[3472+((d[79264+(ia&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+s>>0]|0)<<2)>>2]|0);s=c[A>>2]|0;if((s|0)==64){ca=u;ia=L;break}else{C=u;A=A+4|0}}}while(0);Ba=e+120|0;s=Ba;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+2960>>2]|0;e:do if((s|0)==64){u=F;A=V;C=W;D=X;ha=0}else{U=e+36|0;R=e+212|0;S=e+220|0;O=ra+392|0;T=ra+3984|0;P=(c[ra+5352>>2]|0)+344|0;Q=2704+(pa<<5)+8|0;M=ja+48|0;A=V;C=W;D=X;I=0;H=0;G=ra+2964|0;N=0;while(1){if(oa)break;K=H;L=G;f:while(1){u=235744+(s<<3)|0;t=c[u>>2]|0;u=c[u+4>>2]|0;xa=P;G=161184+(s<<3)|0;ha=G;if(!((c[ha>>2]&c[xa>>2]|0)==0?(c[ha+4>>2]&c[xa+4>>2]|0)==0:0)){xa=194784+(c[T>>2]<<9)+(s<<3)|0;t=c[xa>>2]&t;u=c[xa+4>>2]&u}A=A|B&t;C=C|D&u;xa=Ca;c[xa>>2]=A;c[xa+4>>2]=C;I=t|I;K=u|K;xa=Ba;c[xa>>2]=I;c[xa+4>>2]=K;B=B|t;D=D|u;xa=Fa;c[xa>>2]=B;c[xa+4>>2]=D;if((j&t|0)==0&(k&u|0)==0)J=F;else{J=F+1|0;c[ta>>2]=J;c[R>>2]=(c[R>>2]|0)+(c[Q>>2]|0);ba=h&t;ha=i&u;aa=xJ(ba|0,ha|0,16)|0;E()|0;xa=xJ(ba|0,ha|0,48)|0;E()|0;c[S>>2]=(d[79264+(aa&65535)>>0]|0)+(d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+xa>>0]|0)+(c[S>>2]|0)}ba=l&t;ha=m&u;aa=xJ(ba|0,ha|0,16)|0;E()|0;xa=xJ(ba|0,ha|0,48)|0;E()|0;c[U>>2]=(c[U>>2]|0)+(c[2960+(pa<<9)+((d[79264+(aa&65535)>>0]|0)+(d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+xa>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[O>>2]|0)break f;break}default:break f}s=c[L>>2]|0;if((s|0)==64){u=J;ha=N;break e}else{F=J;L=L+4|0}}F=M;v=c[F>>2]&-65536^-65536;F=c[F+4>>2]&255^255;H=G;G=c[H>>2]|0;H=c[H+4>>2]|0;if((v&G|0)==0&(F&H|0)==0){xa=ka;v=v&t&~c[xa>>2];t=F&u&~c[xa+4>>2];if((v|0)==0&(t|0)==0)t=N;else t=(c[7056+((((v&fa|0)!=0|(t&ga|0)!=0)&1)<<2)>>2]|0)+N|0}else t=(c[7056+((((G&fa|0)!=0|(H&ga|0)!=0)&1)<<2)>>2]<<1)+N|0;xa=na;xa=yJ(c[xa>>2]|0,c[xa+4>>2]|0,8)|0;xa=(xa&G|0)==0&((E()|0)&H|0)==0;t=(xa?t:t+16|0)+(z(c[144800+(s<<8)+(c[T>>2]<<2)>>2]|0,-458758)|0)|0;s=c[L>>2]|0;if((s|0)==64){u=J;ha=t;break e}else{F=J;H=K;G=L+4|0;N=t}}while(1){v=235744+(s<<3)|0;t=c[v>>2]|0;v=c[v+4>>2]|0;xa=P;ha=161184+(s<<3)|0;if(!((c[ha>>2]&c[xa>>2]|0)==0?(c[ha+4>>2]&c[xa+4>>2]|0)==0:0)){if(!(c[O>>2]|0))u=64;else u=c[T>>2]|0;xa=194784+(u<<9)+(s<<3)|0;t=c[xa>>2]&t;v=c[xa+4>>2]&v}A=A|B&t;C=C|D&v;xa=Ca;c[xa>>2]=A;c[xa+4>>2]=C;I=t|I;H=v|H;xa=Ba;c[xa>>2]=I;c[xa+4>>2]=H;B=B|t;D=D|v;xa=Fa;c[xa>>2]=B;c[xa+4>>2]=D;if((j&t|0)==0&(k&v|0)==0)u=F;else{u=F+1|0;c[ta>>2]=u;c[R>>2]=(c[R>>2]|0)+(c[Q>>2]|0);ba=h&t;ha=i&v;aa=xJ(ba|0,ha|0,16)|0;E()|0;xa=xJ(ba|0,ha|0,48)|0;E()|0;c[S>>2]=(d[79264+(aa&65535)>>0]|0)+(d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+xa>>0]|0)+(c[S>>2]|0)}ha=l&t;xa=m&v;ba=xJ(ha|0,xa|0,16)|0;E()|0;s=xJ(ha|0,xa|0,48)|0;E()|0;c[U>>2]=(c[U>>2]|0)+(c[3472+((d[79264+(ba&65535)>>0]|0)+(d[79264+(ha&65535)>>0]|0)+(d[79264+(xa&65535)>>0]|0)+(d[79264+s>>0]|0)<<2)>>2]|0);s=c[G>>2]|0;if((s|0)==64){ha=N;break}else{F=u;G=G+4|0}}}while(0);xa=e+64|0;s=xa;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+1168>>2]|0;g:do if((s|0)==64){ba=ca;ca=0}else{W=ra+296|0;aa=e+32|0;Z=e+208|0;_=e+216|0;U=ra+360|0;$=ra+1936|0;ba=ra+5356|0;V=(c[ra+5352>>2]|0)+336|0;Y=2704+(pa<<5)+12|0;X=ja+56|0;H=ca;t=0;F=0;G=ra+1172|0;v=0;while(1){R=t;S=F;T=G;h:while(1){t=ma;ca=W;N=c[241376+(s*24|0)+16>>2]|0;P=241376+(s*24|0)|0;I=P;O=241376+(s*24|0)+8|0;G=O;G=vJ(c[I>>2]&(c[ca>>2]^c[t>>2])|0,c[I+4>>2]&(c[ca+4>>2]^c[t+4>>2])|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=N+(G<<3)|0;t=c[G>>2]|0;G=c[G+4>>2]|0;ca=V;I=161184+(s<<3)|0;Q=I;if(!((c[Q>>2]&c[ca>>2]|0)==0?(c[Q+4>>2]&c[ca+4>>2]|0)==0:0)){if(oa?(c[U>>2]|0)==0:0)F=64;else F=c[$>>2]|0;ca=194784+(F<<9)+(s<<3)|0;t=c[ca>>2]&t;G=c[ca+4>>2]&G}Q=H|w&t;x=x|y&G;ca=Aa;c[ca>>2]=Q;c[ca+4>>2]=x;R=t|R;S=G|S;ca=xa;c[ca>>2]=R;c[ca+4>>2]=S;w=w|t;y=y|G;ca=Ga;c[ca>>2]=w;c[ca+4>>2]=y;if(!((p&t|0)==0&(q&G|0)==0)){r=r+1|0;c[wa>>2]=r;c[Z>>2]=(c[Z>>2]|0)+(c[Y>>2]|0);L=n&t;M=o&G;K=xJ(L|0,M|0,16)|0;E()|0;ca=xJ(L|0,M|0,48)|0;E()|0;c[_>>2]=(d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ca>>0]|0)+(c[_>>2]|0)}L=f&t;M=g&G;K=xJ(L|0,M|0,16)|0;E()|0;ca=xJ(L|0,M|0,48)|0;E()|0;c[aa>>2]=(c[aa>>2]|0)+(c[2960+(pa<<9)+128+((d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ca>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[U>>2]|0)break h;break}default:break h}s=c[T>>2]|0;if((s|0)==64){ba=Q;ca=v;break g}else{H=Q;T=T+4|0}}H=X;F=c[H>>2]&-16777216^-16777216;H=c[H+4>>2]&65535^65535;M=I;L=c[M>>2]|0;M=c[M+4>>2]|0;if((F&L|0)==0&(H&M|0)==0){K=la;I=c[K>>2]|0;K=c[K+4>>2]|0;J=F&t&~I;F=H&G&~K;if((J|0)==0&(F|0)==0){G=I;t=K}else{G=I;t=K;v=(c[7064+((((J&da|0)!=0|(F&ea|0)!=0)&1)<<2)>>2]|0)+v|0}}else{t=la;G=c[t>>2]|0;t=c[t+4>>2]|0;v=(c[7064+((((L&da|0)!=0|(M&ea|0)!=0)&1)<<2)>>2]<<1)+v|0}K=na;J=c[K>>2]|0;K=c[K+4>>2]|0;H=xJ(J|0,K|0,8)|0;H=(H&L|0)==0&((E()|0)&M|0)==0;H=(H?v:v+16|0)+(z(c[144800+(s<<8)+(c[$>>2]<<2)>>2]|0,-458758)|0)|0;I=ma;I=xJ(c[I>>2]|0,c[I+4>>2]|0,8)|0;I=J&G&I;ca=K&t&(E()|0);L=c[ja+104+((((L&-1437226411|0)!=0|(M&-1437226411|0)!=0)&1)<<2)>>2]|0;v=I&1010580540;ca=ca&3947580;M=xJ(v|0,ca|0,16)|0;E()|0;v=xJ(v|0,ca|0,48)|0;E()|0;v=H+(z(z(L,-524291)|0,(d[79264+(I&15420)>>0]|0)+1+(d[79264+(M&65535)>>0]|0)+(d[79264+(ca&65535)>>0]|0)+(d[79264+v>>0]|0)|0)|0)|0;ca=O;ca=vJ(c[P>>2]&J|0,c[P+4>>2]&K|0,c[ca>>2]|0,c[ca+4>>2]|0)|0;ca=xJ(ca|0,E()|0,55)|0;E()|0;ca=N+(ca<<3)|0;P=c[ca>>2]&402653184;ca=c[ca+4>>2]&24;O=pJ(P|0,ca|0,-1,31)|0;ca=(O&P|0)==0&((E()|0)&ca|0)==0;v=ca?v:v+44|0;i:do if(a[ba>>0]|0){switch(s|0){case 7:case 0:break;default:break i}t=(s&7|0)==0?9:7;s=t+s|0;if((c[ra+(s<<2)>>2]|0)==1){if(!(c[ra+(s+8<<2)>>2]|0))s=(c[ra+(s+t<<2)>>2]|0)==1?6553700:3276850;else s=13107400;v=v-s|0}}while(0);s=c[T>>2]|0;if((s|0)==64){ba=Q;ca=v;break}else{H=Q;t=R;F=S;G=T+4|0}}}while(0);da=e+128|0;s=da;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+3216>>2]|0;j:do if((s|0)==64){t=C;X=0}else{V=ra+296|0;$=e+36|0;Y=e+212|0;Z=e+220|0;T=ra+392|0;_=ra+3984|0;aa=ra+5356|0;U=(c[ra+5352>>2]|0)+344|0;X=2704+(pa<<5)+12|0;W=ja+48|0;t=0;F=0;G=ra+3220|0;v=0;while(1){Q=t;R=F;S=G;k:while(1){t=ma;ea=V;N=c[241376+(s*24|0)+16>>2]|0;P=241376+(s*24|0)|0;I=P;O=241376+(s*24|0)+8|0;G=O;G=vJ(c[I>>2]&(c[ea>>2]^c[t>>2])|0,c[I+4>>2]&(c[ea+4>>2]^c[t+4>>2])|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=N+(G<<3)|0;t=c[G>>2]|0;G=c[G+4>>2]|0;ea=U;I=161184+(s<<3)|0;M=I;if(!((c[M>>2]&c[ea>>2]|0)==0?(c[M+4>>2]&c[ea+4>>2]|0)==0:0)){if(oa?(c[T>>2]|0)==0:0)F=64;else F=c[_>>2]|0;ea=194784+(F<<9)+(s<<3)|0;t=c[ea>>2]&t;G=c[ea+4>>2]&G}A=A|B&t;C=C|D&G;ea=Ca;c[ea>>2]=A;c[ea+4>>2]=C;Q=t|Q;R=G|R;ea=da;c[ea>>2]=Q;c[ea+4>>2]=R;B=B|t;D=D|G;ea=Fa;c[ea>>2]=B;c[ea+4>>2]=D;if(!((j&t|0)==0&(k&G|0)==0)){u=u+1|0;c[ta>>2]=u;c[Y>>2]=(c[Y>>2]|0)+(c[X>>2]|0);L=h&t;M=i&G;K=xJ(L|0,M|0,16)|0;E()|0;ea=xJ(L|0,M|0,48)|0;E()|0;c[Z>>2]=(d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ea>>0]|0)+(c[Z>>2]|0)}L=l&t;M=m&G;K=xJ(L|0,M|0,16)|0;E()|0;ea=xJ(L|0,M|0,48)|0;E()|0;c[$>>2]=(c[$>>2]|0)+(c[2960+(pa<<9)+128+((d[79264+(K&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+(M&65535)>>0]|0)+(d[79264+ea>>0]|0)<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[T>>2]|0)break k;break}default:break k}s=c[S>>2]|0;if((s|0)==64){t=C;X=v;break j}else S=S+4|0}H=W;F=c[H>>2]&-65536^-65536;H=c[H+4>>2]&255^255;M=I;L=c[M>>2]|0;M=c[M+4>>2]|0;if((F&L|0)==0&(H&M|0)==0){K=ka;I=c[K>>2]|0;K=c[K+4>>2]|0;J=F&t&~I;F=H&G&~K;if((J|0)==0&(F|0)==0){G=I;t=K}else{G=I;t=K;v=(c[7064+((((J&fa|0)!=0|(F&ga|0)!=0)&1)<<2)>>2]|0)+v|0}}else{t=ka;G=c[t>>2]|0;t=c[t+4>>2]|0;v=(c[7064+((((L&fa|0)!=0|(M&ga|0)!=0)&1)<<2)>>2]<<1)+v|0}K=na;J=c[K>>2]|0;K=c[K+4>>2]|0;H=yJ(J|0,K|0,8)|0;H=(H&L|0)==0&((E()|0)&M|0)==0;H=(H?v:v+16|0)+(z(c[144800+(s<<8)+(c[_>>2]<<2)>>2]|0,-458758)|0)|0;I=ma;I=yJ(c[I>>2]|0,c[I+4>>2]|0,8)|0;I=J&G&I;ea=K&t&(E()|0);L=c[ja+112+((((L&-1437226411|0)!=0|(M&-1437226411|0)!=0)&1)<<2)>>2]|0;v=I&1010580480;ea=ea&1010580540;M=xJ(v|0,ea|0,16)|0;E()|0;v=xJ(v|0,ea|0,48)|0;E()|0;v=H+(z(z(L,-524291)|0,(d[79264+(I&15360)>>0]|0)+1+(d[79264+(M&65535)>>0]|0)+(d[79264+(ea&65535)>>0]|0)+(d[79264+v>>0]|0)|0)|0)|0;ea=O;ea=vJ(c[P>>2]&J|0,c[P+4>>2]&K|0,c[ea>>2]|0,c[ea+4>>2]|0)|0;ea=xJ(ea|0,E()|0,55)|0;E()|0;ea=N+(ea<<3)|0;P=c[ea>>2]&402653184;ea=c[ea+4>>2]&24;O=pJ(P|0,ea|0,-1,31)|0;ea=(O&P|0)==0&((E()|0)&ea|0)==0;v=ea?v:v+44|0;l:do if(a[aa>>0]|0){switch(s|0){case 63:case 56:break;default:break l}t=(s&7|0)==0?-7:-9;s=t+s|0;if((c[ra+(s<<2)>>2]|0)==9){if(!(c[ra+(s+-8<<2)>>2]|0))s=(c[ra+(s+t<<2)>>2]|0)==9?6553700:3276850;else s=13107400;v=v-s|0}}while(0);s=c[S>>2]|0;if((s|0)==64){t=C;X=v;break}else{t=Q;F=R;G=S+4|0}}}while(0);$=e+72|0;s=$;c[s>>2]=0;c[s+4>>2]=0;s=c[ra+1424>>2]|0;m:do if((s|0)==64)C=0;else{M=ra+296|0;Q=ra+288|0;V=e+32|0;S=e+208|0;T=e+216|0;P=ra+360|0;U=ra+1936|0;W=c[ra+5352>>2]|0;L=W+336|0;W=W+24|0;R=2704+(pa<<5)+16|0;O=ja+96|0;N=ja+100|0;H=ba;v=0;F=0;G=ra+1428|0;I=0;while(1){J=v;K=F;n:while(1){ea=ma;ba=M;ga=la;fa=Q;v=c[239840+(s*24|0)+16>>2]|0;aa=239840+(s*24|0)|0;C=239840+(s*24|0)+8|0;C=vJ(c[aa>>2]&(c[ba>>2]^c[ea>>2]^c[fa>>2]&c[ga>>2])|0,c[aa+4>>2]&(c[ba+4>>2]^c[ea+4>>2]^c[fa+4>>2]&c[ga+4>>2])|0,c[C>>2]|0,c[C+4>>2]|0)|0;C=xJ(C|0,E()|0,52)|0;E()|0;C=v+(C<<3)|0;v=c[C>>2]|0;C=c[C+4>>2]|0;ga=L;fa=161184+(s<<3)|0;if(!((c[fa>>2]&c[ga>>2]|0)==0?(c[fa+4>>2]&c[ga+4>>2]|0)==0:0)){if(oa?(c[P>>2]|0)==0:0)F=64;else F=c[U>>2]|0;ga=194784+(F<<9)+(s<<3)|0;v=c[ga>>2]&v;C=c[ga+4>>2]&C}H=H|w&v;x=x|y&C;ga=Aa;c[ga>>2]=H;c[ga+4>>2]=x;J=v|J;K=C|K;ga=$;c[ga>>2]=J;c[ga+4>>2]=K;w=w|v;y=y|C;ga=Ga;c[ga>>2]=w;c[ga+4>>2]=y;if(!((p&v|0)==0&(q&C|0)==0)){r=r+1|0;c[wa>>2]=r;c[S>>2]=(c[S>>2]|0)+(c[R>>2]|0);ea=n&v;fa=o&C;ba=xJ(ea|0,fa|0,16)|0;E()|0;ga=xJ(ea|0,fa|0,48)|0;E()|0;c[T>>2]=(d[79264+(ba&65535)>>0]|0)+(d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+ga>>0]|0)+(c[T>>2]|0)}fa=f&v;ga=g&C;ea=xJ(fa|0,ga|0,16)|0;E()|0;F=xJ(fa|0,ga|0,48)|0;E()|0;F=(d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+F>>0]|0)|0;c[V>>2]=(c[V>>2]|0)+(c[2960+(pa<<9)+256+(F<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[P>>2]|0)break n;break}default:break n}s=c[G>>2]|0;if((s|0)==64){C=I;break m}else G=G+4|0}if((s|0)>31){ea=ka;C=na;ga=236768+(s<<3)|0;fa=c[C>>2]&c[ea>>2]&c[ga>>2];ga=c[C+4>>2]&c[ea+4>>2]&c[ga+4>>2];ea=xJ(fa|0,ga|0,16)|0;E()|0;C=xJ(fa|0,ga|0,48)|0;E()|0;C=(z((d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+C>>0]|0)|0,1835018)|0)+I|0}else C=I;s=s&7;v=1<>2]&v)){if(F>>>0<4?(ga=c[U>>2]&7,!(ga>>>0<4^s>>>0>>0)):0){ga=(z(F,-22)|0)+327778|0;C=C-(z((c[W>>2]&3|0)==0?2:1,ga)|0)|0}}else C=(c[33224+(((c[N>>2]&v|0)!=0&1)<<2)>>2]|0)+C|0;s=c[G>>2]|0;if((s|0)==64)break;else{v=J;F=K;G=G+4|0;I=C}}}while(0);aa=e+136|0;f=aa;c[f>>2]=0;c[f+4>>2]=0;f=c[ra+3472>>2]|0;o:do if((f|0)==64)x=0;else{F=ra+296|0;I=ra+288|0;N=e+36|0;K=e+212|0;L=e+220|0;H=ra+392|0;M=ra+3984|0;O=c[ra+5352>>2]|0;y=O+344|0;O=O+24|0;J=2704+(pa<<5)+16|0;G=ja+100|0;x=ja+96|0;p=u;o=B;g=D;q=0;r=0;s=ra+3476|0;u=0;while(1){v=o;w=g;p:while(1){fa=ma;ea=F;ja=ka;ga=I;g=c[239840+(f*24|0)+16>>2]|0;ba=239840+(f*24|0)|0;n=239840+(f*24|0)+8|0;n=vJ(c[ba>>2]&(c[ea>>2]^c[fa>>2]^c[ga>>2]&c[ja>>2])|0,c[ba+4>>2]&(c[ea+4>>2]^c[fa+4>>2]^c[ga+4>>2]&c[ja+4>>2])|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=xJ(n|0,E()|0,52)|0;E()|0;n=g+(n<<3)|0;g=c[n>>2]|0;n=c[n+4>>2]|0;ja=y;ga=161184+(f<<3)|0;if(!((c[ga>>2]&c[ja>>2]|0)==0?(c[ga+4>>2]&c[ja+4>>2]|0)==0:0)){if(oa?(c[H>>2]|0)==0:0)o=64;else o=c[M>>2]|0;ja=194784+(o<<9)+(f<<3)|0;g=c[ja>>2]&g;n=c[ja+4>>2]&n}A=A|v&g;t=t|w&n;ja=Ca;c[ja>>2]=A;c[ja+4>>2]=t;q=g|q;r=n|r;ja=aa;c[ja>>2]=q;c[ja+4>>2]=r;v=v|g;w=w|n;ja=Fa;c[ja>>2]=v;c[ja+4>>2]=w;if(!((j&g|0)==0&(k&n|0)==0)){p=p+1|0;c[ta>>2]=p;c[K>>2]=(c[K>>2]|0)+(c[J>>2]|0);fa=h&g;ga=i&n;ea=xJ(fa|0,ga|0,16)|0;E()|0;ja=xJ(fa|0,ga|0,48)|0;E()|0;c[L>>2]=(d[79264+(ea&65535)>>0]|0)+(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+ja>>0]|0)+(c[L>>2]|0)}ga=l&g;ja=m&n;fa=xJ(ga|0,ja|0,16)|0;E()|0;o=xJ(ga|0,ja|0,48)|0;E()|0;o=(d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+(ja&65535)>>0]|0)+(d[79264+o>>0]|0)|0;c[N>>2]=(c[N>>2]|0)+(c[2960+(pa<<9)+256+(o<<2)>>2]|0);switch(pa|0){case 1:break;case 4:{if(c[H>>2]|0)break p;break}default:break p}f=c[s>>2]|0;if((f|0)==64){x=u;break o}else s=s+4|0}if(((3?f>>3:f)^7|0)>3){fa=la;n=na;ja=236768+(f<<3)|0;ga=c[n>>2]&c[fa>>2]&c[ja>>2];ja=c[n+4>>2]&c[fa+4>>2]&c[ja+4>>2];fa=xJ(ga|0,ja|0,16)|0;E()|0;n=xJ(ga|0,ja|0,48)|0;E()|0;n=(z((d[79264+(fa&65535)>>0]|0)+(d[79264+(ga&65535)>>0]|0)+(d[79264+(ja&65535)>>0]|0)+(d[79264+n>>0]|0)|0,1835018)|0)+u|0}else n=u;f=f&7;g=1<>2]&g)){if(o>>>0<4?(ja=c[M>>2]&7,!(ja>>>0<4^f>>>0>>0)):0){ja=(z(o,-22)|0)+327778|0;n=n-(z((c[O>>2]&12|0)==0?2:1,ja)|0)|0}}else n=(c[33224+(((c[x>>2]&g|0)!=0&1)<<2)>>2]|0)+n|0;f=c[s>>2]|0;if((f|0)==64){x=n;break}else{o=v;g=w;s=s+4|0;u=n}}}while(0);Z=e+80|0;f=Z;c[f>>2]=0;c[f+4>>2]=0;f=c[ra+1680>>2]|0;q:do if((f|0)==64){h=ra;w=0}else{u=e+16|0;v=e+32|0;r=e+208|0;s=e+152|0;t=e+216|0;h=ra;i=ra+1684|0;g=0;while(1){m=h+256|0;o=(c[h+5352>>2]|0)+336|0;q=h+5360|0;n=h+360|0;p=h+1936|0;r:while(1){oa=m;ma=c[oa>>2]|0;oa=c[oa+4>>2]|0;j=c[239840+(f*24|0)+16>>2]|0;pa=239840+(f*24|0)|0;k=239840+(f*24|0)+8|0;k=vJ(c[pa>>2]&ma|0,c[pa+4>>2]&oa|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=xJ(k|0,E()|0,52)|0;E()|0;k=j+(k<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;pa=c[241376+(f*24|0)+16>>2]|0;na=241376+(f*24|0)|0;ra=241376+(f*24|0)+8|0;ra=vJ(c[na>>2]&ma|0,c[na+4>>2]&oa|0,c[ra>>2]|0,c[ra+4>>2]|0)|0;ra=xJ(ra|0,E()|0,55)|0;E()|0;ra=pa+(ra<<3)|0;j=c[ra>>2]|j;k=c[ra+4>>2]|k;ra=o;pa=161184+(f<<3)|0;if(!((c[pa>>2]&c[ra>>2]|0)==0?(c[pa+4>>2]&c[ra+4>>2]|0)==0:0)){if((c[q>>2]|0)==1?(c[n>>2]|0)==0:0)l=64;else l=c[p>>2]|0;ra=194784+(l<<9)+(f<<3)|0;j=c[ra>>2]&j;k=c[ra+4>>2]&k}pa=Ga;oa=c[pa>>2]|0;pa=c[pa+4>>2]|0;ra=Aa;na=c[ra+4>>2]|pa&k;ma=Aa;c[ma>>2]=c[ra>>2]|oa&j;c[ma+4>>2]=na;ma=Z;na=c[ma+4>>2]|k;ra=Z;c[ra>>2]=c[ma>>2]|j;c[ra+4>>2]=na;ra=Ga;c[ra>>2]=oa|j;c[ra+4>>2]=pa|k;ra=ya;if((c[ra>>2]&j|0)==0?(c[ra+4>>2]&k|0)==0:0)l=c[q>>2]|0;else{c[wa>>2]=(c[wa>>2]|0)+1;l=c[q>>2]|0;c[r>>2]=(c[r>>2]|0)+(c[2704+(l<<5)+20>>2]|0);pa=s;oa=c[pa>>2]&j;pa=c[pa+4>>2]&k;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[t>>2]=(d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)+(c[t>>2]|0)}pa=u;oa=c[pa>>2]&j;pa=c[pa+4>>2]&k;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[v>>2]=(c[v>>2]|0)+(c[2960+(l<<9)+384+((d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)<<2)>>2]|0);switch(l|0){case 1:break;case 4:{if(c[n>>2]|0)break r;break}default:break r}f=c[i>>2]|0;if((f|0)==64){w=g;break q}else i=i+4|0}ra=h+328|0;pa=h+288|0;oa=h+280|0;f=se(h,(c[oa>>2]|c[pa>>2])&c[ra>>2],(c[oa+4>>2]|c[pa+4>>2])&c[ra+4>>2],f,ua)|0;f=(f|0)==0&(E()|0)==0;g=f?g:g+-655411|0;f=c[i>>2]|0;if((f|0)==64)break;h=c[e>>2]|0;i=i+4|0}h=c[e>>2]|0;w=g}while(0);_=e+144|0;f=_;c[f>>2]=0;c[f+4>>2]=0;f=c[h+3728>>2]|0;s:do if((f|0)==64){q=h;f=0}else{u=e+24|0;v=e+36|0;r=e+212|0;s=e+88|0;t=e+220|0;q=h;g=f;h=h+3732|0;f=0;while(1){l=q+256|0;n=(c[q+5352>>2]|0)+344|0;p=q+5360|0;m=q+392|0;o=q+3984|0;t:while(1){oa=l;ma=c[oa>>2]|0;oa=c[oa+4>>2]|0;i=c[239840+(g*24|0)+16>>2]|0;pa=239840+(g*24|0)|0;j=239840+(g*24|0)+8|0;j=vJ(c[pa>>2]&ma|0,c[pa+4>>2]&oa|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;pa=c[241376+(g*24|0)+16>>2]|0;na=241376+(g*24|0)|0;ra=241376+(g*24|0)+8|0;ra=vJ(c[na>>2]&ma|0,c[na+4>>2]&oa|0,c[ra>>2]|0,c[ra+4>>2]|0)|0;ra=xJ(ra|0,E()|0,55)|0;E()|0;ra=pa+(ra<<3)|0;i=c[ra>>2]|i;j=c[ra+4>>2]|j;ra=n;pa=161184+(g<<3)|0;if(!((c[pa>>2]&c[ra>>2]|0)==0?(c[pa+4>>2]&c[ra+4>>2]|0)==0:0)){if((c[p>>2]|0)==1?(c[m>>2]|0)==0:0)k=64;else k=c[o>>2]|0;ra=194784+(k<<9)+(g<<3)|0;i=c[ra>>2]&i;j=c[ra+4>>2]&j}pa=Fa;oa=c[pa>>2]|0;pa=c[pa+4>>2]|0;ra=Ca;na=c[ra+4>>2]|pa&j;ma=Ca;c[ma>>2]=c[ra>>2]|oa&i;c[ma+4>>2]=na;ma=_;na=c[ma+4>>2]|j;ra=_;c[ra>>2]=c[ma>>2]|i;c[ra+4>>2]=na;ra=Fa;c[ra>>2]=oa|i;c[ra+4>>2]=pa|j;ra=va;if((c[ra>>2]&i|0)==0?(c[ra+4>>2]&j|0)==0:0)k=c[p>>2]|0;else{c[ta>>2]=(c[ta>>2]|0)+1;k=c[p>>2]|0;c[r>>2]=(c[r>>2]|0)+(c[2704+(k<<5)+20>>2]|0);pa=s;oa=c[pa>>2]&i;pa=c[pa+4>>2]&j;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[t>>2]=(d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)+(c[t>>2]|0)}pa=u;oa=c[pa>>2]&i;pa=c[pa+4>>2]&j;na=xJ(oa|0,pa|0,16)|0;E()|0;ra=xJ(oa|0,pa|0,48)|0;E()|0;c[v>>2]=(c[v>>2]|0)+(c[2960+(k<<9)+384+((d[79264+(na&65535)>>0]|0)+(d[79264+(oa&65535)>>0]|0)+(d[79264+(pa&65535)>>0]|0)+(d[79264+ra>>0]|0)<<2)>>2]|0);switch(k|0){case 1:break;case 4:{if(c[m>>2]|0)break t;break}default:break t}g=c[h>>2]|0;if((g|0)==64)break s;else h=h+4|0}ra=q+320|0;pa=q+288|0;oa=q+280|0;g=se(q,(c[oa>>2]|c[pa>>2])&c[ra>>2],(c[oa+4>>2]|c[pa+4>>2])&c[ra+4>>2],g,ua)|0;g=(g|0)==0&(E()|0)==0;f=g?f:f+-655411|0;g=c[h>>2]|0;if((g|0)==64)break;q=c[e>>2]|0;h=h+4|0}q=c[e>>2]|0}while(0);f=ia+sa-ha+ca-X+C-x+w-f|0;h=c[q+5360>>2]|0;u:do if((h|0)!=3){i=e+32|0;g=e+36|0;f=(c[i>>2]|0)-(c[g>>2]|0)+f|0;switch(h|0){case 6:case 1:{k=h;j=f;f=0;U=269;break u}case 4:break;default:{W=f;U=224;break u}}if(!(c[q+360>>2]|0)){o=4;j=f;h=i;f=0;U=270}else{W=f;U=224}}else{ra=Da;ua=Ba;U=da;i=aa;oa=q+256|0;pa=c[oa>>2]|0;oa=c[oa+4>>2]|0;i=~(c[ra+4>>2]|c[ua+4>>2]|c[U+4>>2]|c[i+4>>2]|oa);U=xJ(0,i|0,48)|0;E()|0;ua=d[79264]<<1;U=z(ua+(d[79264+(i&65535)>>0]|0)+(d[79264+U>>0]|0)|0,1966110)|0;i=e+32|0;U=U+(c[i>>2]|0)|0;c[i>>2]=U;ra=Ea;sa=za;W=xa;g=$;g=~(pa|c[ra>>2]|c[sa>>2]|c[W>>2]|c[g>>2]);W=xJ(g|0,0,16)|0;E()|0;W=z(ua+(d[79264+(g&65535)>>0]|0)+(d[79264+(W&65535)>>0]|0)|0,1966110)|0;g=e+36|0;W=W+(c[g>>2]|0)|0;c[g>>2]=W;W=U+f-W|0;U=224}while(0);if((U|0)==224){D=c[q+1936>>2]|0;f=c[Ja>>2]|0;if((c[f+64>>2]|0)==(D|0)?(c[f+88>>2]|0)==(c[(c[q+5352>>2]|0)+24>>2]&3|0):0)f=c[f+72>>2]|0;else{ua=Xd(f,q)|0;c[f+72>>2]=ua;q=c[e>>2]|0;h=c[q+5360>>2]|0;f=ua}U=7072+((D&7)<<3)|0;T=c[U>>2]|0;U=c[U+4>>2]|0;k=e+40|0;Q=Fa;P=c[Q>>2]|0;Q=c[Q+4>>2]|0;sa=P&T;ra=Q&U;ua=ra&255;l=e+168|0;s=Ca;p=c[s>>2]|0;s=c[s+4>>2]|0;M=sa&p;V=ua&s;ra=xJ(sa|0,ra|0,16)|0;E()|0;sa=d[79264+(sa&65535)>>0]|0;ra=d[79264+(ra&65535)>>0]|0;ua=d[79264+(ua&65535)>>0]|0;S=d[79264]|0;L=xJ(M|0,V|0,16)|0;E()|0;V=ra+sa+ua+(d[79264+(M&65535)>>0]|0)+(S<<1)+(d[79264+(L&65535)>>0]|0)+(d[79264+(V&65535)>>0]|0)|0;L=c[ta>>2]|0;S=(h|0)==3;M=c[q+388>>2]|0;if(S)j=(c[q+4548>>2]|0)+M|0;else j=M;do if((L|0)>(1-j|0)){R=(h|0)==2;if(R){ua=q+328|0;m=q+304|0;o=k;n=c[o>>2]|0;o=c[o+4>>2]|0;O=e+88|0;N=c[O>>2]|0;O=c[O+4>>2]|0;x=Z;w=c[x>>2]|0;x=c[x+4>>2]|0;t=l;r=c[t>>2]|0;t=c[t+4>>2]|0;j=N|~n|w&~r;k=c[ua>>2]&~c[m>>2]|P;l=O|~o|x&~t;m=c[ua+4>>2]&~c[m+4>>2]|Q}else{t=l;r=c[t>>2]|0;t=c[t+4>>2]|0;o=k;n=c[o>>2]|0;o=c[o+4>>2]|0;O=e+88|0;N=c[O>>2]|0;O=c[O+4>>2]|0;x=Z;w=c[x>>2]|0;x=c[x+4>>2]|0;j=P&~r;k=N|~n|w;l=Q&~t;m=O|~o|x}I=j&k;F=l&m;do if(S){if(!(c[q+4548>>2]|0)){l=0;m=0;break}m=q+256|0;l=I&~c[m>>2];m=F&~c[m+4>>2]}else{l=0;m=0}while(0);C=q+328|0;B=c[C>>2]|0;C=c[C+4>>2]|0;u=~B;v=~C;k=(I&p|~n)&u|(R?N:0);j=(F&s|~o)&v|(R?O:0);K=q+320|0;J=c[K>>2]|0;K=c[K+4>>2]|0;A=(k|P&~r&(N|w))&~J;y=(j|Q&~t&(O|x))&~K;H=q+256|0;G=c[H>>2]|0;H=c[H+4>>2]|0;ua=q+296|0;sa=c[ua>>2]&J^G;ua=c[ua+4>>2]&K^H;n=c[239840+(D*24|0)+16>>2]|0;p=239840+(D*24|0)|0;o=239840+(D*24|0)+8|0;o=vJ(c[p>>2]&sa|0,c[p+4>>2]&ua|0,c[o>>2]|0,c[o+4>>2]|0)|0;o=xJ(o|0,E()|0,52)|0;E()|0;o=n+(o<<3)|0;n=c[o>>2]|0;o=c[o+4>>2]|0;p=c[241376+(D*24|0)+16>>2]|0;ta=241376+(D*24|0)|0;s=241376+(D*24|0)+8|0;s=vJ(c[ta>>2]&sa|0,c[ta+4>>2]&ua|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=xJ(s|0,E()|0,55)|0;E()|0;s=p+(s<<3)|0;p=c[s>>2]|0;s=c[s+4>>2]|0;ua=_;m=((k&~w&(p|n)&(c[ua>>2]|l)|0)==0?(j&~x&(s|o)&(c[ua+4>>2]|m)|0)==0:0)?0:780;w=(h|0)==7;if(w){t=(c[(c[q+5352>>2]|0)+40>>2]|0)==0;u=t?k:u;t=t?j:v}else{u=k;t=j}if(S){l=(c[q+4544>>2]|0)==0;j=l?0:~G;l=l?0:~H}else{j=0;l=0}ua=aa;k=c[ua>>2]|0;ua=c[ua+4>>2]|0;r=((k&u|j&A)&n|0)==0?((ua&t|l&y)&o|0)==0:0;k=r?(k|j)&n:0;j=r?(ua|l)&o:0;r=r?m:m+880|0;if(S){o=(c[q+4540>>2]|0)==0;m=o?0:~G;o=o?0:~H}else{m=0;o=0}n=da;l=c[n>>2]|0;n=c[n+4>>2]|0;if(((l&u|m&A)&p|0)==0?((n&t|o&y)&s|0)==0:0){k=(l|m)&p|k;j=(n|o)&s|j}else r=r+435|0;o=235744+(D<<3)|0;l=c[o>>2]|0;o=c[o+4>>2]|0;if(S){s=(c[q+4536>>2]|0)==0;n=s?0:~G;s=s?0:~H}else{n=0;s=0}p=Ba;m=c[p>>2]|0;p=c[p+4>>2]|0;if(((m&u|n&A)&l|0)==0?((p&t|s&y)&o|0)==0:0){k=(m|n)&l|k;j=(p|s)&o|j}else r=r+790|0;do if(S){p=238816+(D<<3)|0;n=c[p>>2]|0;p=c[p+4>>2]|0;s=(c[q+4532>>2]|0)==0;ta=~G;ua=~H;o=s?0:ta;s=s?0:ua;m=Da;l=c[m>>2]&J;m=c[m+4>>2]&K;sa=q+264|0;sa=xJ(c[sa>>2]&B|0,c[sa+4>>2]&C|0,8)|0;l=sa&ta|l;m=(E()|0)&ua|m;if(((l&u|o&A)&n|0)==0?((m&t|s&y)&p|0)==0:0){k=(l|o)&n|k;j=(m|s)&p|j;break}else{r=r+435|0;break}}while(0);ta=e+24|0;ua=c[ta>>2]&k;ta=c[ta+4>>2]&j;n=z(c[e+212>>2]|0,L)|0;o=z(c[e+220>>2]|0,c[7136+(h<<5)>>2]|0)|0;l=c[7136+(h<<5)+4>>2]|0;p=va;va=c[p>>2]&I;p=c[p+4>>2]&F;k=xJ(va|0,p|0,16)|0;E()|0;m=xJ(va|0,p|0,48)|0;E()|0;l=z((d[79264+(k&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(p&65535)>>0]|0)+(d[79264+m>>0]|0)|0,l)|0;m=c[7136+(h<<5)+8>>2]|0;p=c[q+5352>>2]|0;va=p+336|0;ua=c[va>>2]|ua;va=c[va+4>>2]|ta;ta=xJ(ua|0,va|0,16)|0;E()|0;k=xJ(ua|0,va|0,48)|0;E()|0;m=z((d[79264+(ta&65535)>>0]|0)+(d[79264+(ua&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+k>>0]|0)|0,m)|0;k=(z(z(V,V)|0,c[7136+(h<<5)+12>>2]|0)|0)/4|0;if(S)j=(c[q+4548>>2]|0)+M|0;else j=M;ua=f<<16;ua=(z(c[7136+(h<<5)+20>>2]|0,16?ua>>16:ua)|0)/8|0;va=(c[g>>2]|0)-(c[i>>2]|0)<<16;j=n+r+o+l+m+k+((j|0)==0?c[7136+(h<<5)+16>>2]|0:0)+ua+(c[7136+(h<<5)+24>>2]|0)+(16?va>>16:va)|0;if(S)j=((c[q+4528>>2]|0)*79|0)+j+(c[q+4532>>2]<<4)+((c[q+4536>>2]|0)*200|0)+((c[q+4540>>2]|0)*61|0)+((c[q+4544>>2]|0)*138|0)+((c[q+4548>>2]|0)*152|0)|0;if(R){va=237792+(c[q+1936>>2]<<3)|0;ta=J&P&c[va>>2];va=K&Q&c[va+4>>2];k=xJ(ta|0,va|0,16)|0;E()|0;ua=xJ(ta|0,va|0,48)|0;E()|0;j=(((d[79264+(k&65535)>>0]|0)+(d[79264+(ta&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+ua>>0]|0)|0)*883|0)+j|0;ua=G&N;va=H&O;ta=xJ(ua|0,va|0,16)|0;E()|0;k=xJ(ua|0,va|0,48)|0;E()|0;k=(z((d[79264+(ta&65535)>>0]|0)+(d[79264+(ua&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+k>>0]|0)|0,-6553700)|0)+f|0}else k=f;if((j|0)<=0){f=k;break}if(w)j=(z(c[7392+(c[p+40>>2]<<2)>>2]|0,j)|0)/256|0;f=z(j,j)|0;f=R&f>>>0>10362879?2529:12?f>>>12:f;do if(S){if(c[q+5340>>2]|0)break;f=f-((f>>>0)/10|0)|0}while(0);f=S&(f|0)>2529?2529:f;f=w&(f|0)>2529?2529:f;f=k-f+(z(((z(f,c[7136+(h<<5)+28>>2]|0)|0)/256|0)+((j|0)/16|0)|0,-65536)|0)|0}while(0);va=q+264|0;k=h;j=W;f=(((c[va>>2]&T|0)==0?(c[va+4>>2]&U|0)==0:0)?f+-6160402|0:f)-(z(c[7408+(h<<2)>>2]|0,V)|0)|0;U=269}if((U|0)==269)switch(k|0){case 6:case 1:{o=k;g=0;U=316;break}case 4:{o=k;h=i;U=270;break}default:{o=k;h=i;V=g;U=271}}if((U|0)==270)if(!(c[q+392>>2]|0)){o=4;U=333}else{k=4;V=g;U=271}if((U|0)==271){G=c[q+3984>>2]|0;g=c[Ja>>2]|0;if((c[g+68>>2]|0)==(G|0)?(c[g+92>>2]|0)==(c[(c[q+5352>>2]|0)+24>>2]&12|0):0)g=c[g+76>>2]|0;else{va=Zd(g,q)|0;c[g+76>>2]=va;q=c[e>>2]|0;k=c[q+5360>>2]|0;o=k;g=va}X=7072+((G&7)<<3)|0;W=c[X>>2]|0;X=c[X+4>>2]|0;S=Ga;R=c[S>>2]|0;S=c[S+4>>2]|0;O=R&W;va=S&X;ua=O&-16777216;t=Aa;s=c[t>>2]|0;t=c[t+4>>2]|0;Y=ua&s;L=va&t;ua=xJ(ua|0,va|0,16)|0;E()|0;O=xJ(O|0,va|0,48)|0;E()|0;ta=d[79264]|0;ua=d[79264+(ua&65535)>>0]|0;va=d[79264+(va&65535)>>0]|0;O=d[79264+O>>0]|0;U=xJ(Y|0,L|0,16)|0;E()|0;Y=xJ(Y|0,L|0,48)|0;E()|0;Y=(ta<<1)+ua+va+O+(d[79264+(U&65535)>>0]|0)+(d[79264+(L&65535)>>0]|0)+(d[79264+Y>>0]|0)|0;L=c[wa>>2]|0;U=(k|0)==3;O=c[q+356>>2]|0;if(U)i=(c[q+4516>>2]|0)+O|0;else i=O;do if((L|0)>(1-i|0)){T=(k|0)==2;if(T){wa=q+320|0;n=q+304|0;r=Fa;p=c[r>>2]|0;r=c[r+4>>2]|0;Q=e+152|0;P=c[Q>>2]|0;Q=c[Q+4>>2]|0;A=_;y=c[A>>2]|0;A=c[A+4>>2]|0;v=Ca;u=c[v>>2]|0;v=c[v+4>>2]|0;i=P|~p|y&~u;l=c[wa>>2]&~c[n>>2]|R;m=Q|~r|A&~v;n=c[wa+4>>2]&~c[n+4>>2]|S}else{v=Ca;u=c[v>>2]|0;v=c[v+4>>2]|0;r=Fa;p=c[r>>2]|0;r=c[r+4>>2]|0;Q=e+152|0;P=c[Q>>2]|0;Q=c[Q+4>>2]|0;A=_;y=c[A>>2]|0;A=c[A+4>>2]|0;i=R&~u;l=P|~p|y;m=S&~v;n=Q|~r|A}K=i&l;H=m&n;do if(U){if(!(c[q+4516>>2]|0)){m=0;n=0;break}n=q+256|0;m=K&~c[n>>2];n=H&~c[n+4>>2]}else{m=0;n=0}while(0);F=q+320|0;D=c[F>>2]|0;F=c[F+4>>2]|0;w=~D;x=~F;l=(K&s|~p)&w|(T?P:0);i=(H&t|~r)&x|(T?Q:0);N=q+328|0;M=c[N>>2]|0;N=c[N+4>>2]|0;C=(l|R&~u&(P|y))&~M;B=(i|S&~v&(Q|A))&~N;J=q+256|0;I=c[J>>2]|0;J=c[J+4>>2]|0;wa=q+296|0;ua=c[wa>>2]&M^I;wa=c[wa+4>>2]&N^J;p=c[239840+(G*24|0)+16>>2]|0;s=239840+(G*24|0)|0;r=239840+(G*24|0)+8|0;r=vJ(c[s>>2]&ua|0,c[s+4>>2]&wa|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=xJ(r|0,E()|0,52)|0;E()|0;r=p+(r<<3)|0;p=c[r>>2]|0;r=c[r+4>>2]|0;s=c[241376+(G*24|0)+16>>2]|0;va=241376+(G*24|0)|0;u=241376+(G*24|0)+8|0;u=vJ(c[va>>2]&ua|0,c[va+4>>2]&wa|0,c[u>>2]|0,c[u+4>>2]|0)|0;u=xJ(u|0,E()|0,55)|0;E()|0;u=s+(u<<3)|0;s=c[u>>2]|0;u=c[u+4>>2]|0;wa=Z;n=((l&~y&(s|p)&(c[wa>>2]|m)|0)==0?(i&~A&(u|r)&(c[wa+4>>2]|n)|0)==0:0)?0:780;y=(k|0)==7;if(y){v=(c[(c[q+5352>>2]|0)+36>>2]|0)==0;w=v?l:w;v=v?i:x}else{w=l;v=i}if(U){m=(c[q+4512>>2]|0)==0;i=m?0:~I;m=m?0:~J}else{i=0;m=0}wa=$;l=c[wa>>2]|0;wa=c[wa+4>>2]|0;t=((l&w|i&C)&p|0)==0?((wa&v|m&B)&r|0)==0:0;l=t?(l|i)&p:0;i=t?(wa|m)&r:0;t=t?n:n+880|0;if(U){r=(c[q+4508>>2]|0)==0;n=r?0:~I;r=r?0:~J}else{n=0;r=0}p=xa;m=c[p>>2]|0;p=c[p+4>>2]|0;if(((m&w|n&C)&s|0)==0?((p&v|r&B)&u|0)==0:0){l=(m|n)&s|l;i=(p|r)&u|i}else t=t+435|0;r=235744+(G<<3)|0;m=c[r>>2]|0;r=c[r+4>>2]|0;if(U){u=(c[q+4504>>2]|0)==0;p=u?0:~I;u=u?0:~J}else{p=0;u=0}s=za;n=c[s>>2]|0;s=c[s+4>>2]|0;if(((n&w|p&C)&m|0)==0?((s&v|u&B)&r|0)==0:0){l=(n|p)&m|l;i=(s|u)&r|i}else t=t+790|0;do if(U){s=239328+(G<<3)|0;p=c[s>>2]|0;s=c[s+4>>2]|0;u=(c[q+4500>>2]|0)==0;va=~I;wa=~J;r=u?0:va;u=u?0:wa;n=Ea;m=c[n>>2]&M;n=c[n+4>>2]&N;ua=q+264|0;ua=yJ(c[ua>>2]&D|0,c[ua+4>>2]&F|0,8)|0;m=ua&va|m;n=(E()|0)&wa|n;if(((m&w|r&C)&p|0)==0?((n&v|u&B)&s|0)==0:0){l=(m|r)&p|l;i=(n|u)&s|i;break}else{t=t+435|0;break}}while(0);va=e+16|0;wa=c[va>>2]&l;va=c[va+4>>2]&i;p=z(c[e+208>>2]|0,L)|0;r=z(c[e+216>>2]|0,c[7136+(k<<5)>>2]|0)|0;m=c[7136+(k<<5)+4>>2]|0;s=ya;ya=c[s>>2]&K;s=c[s+4>>2]&H;l=xJ(ya|0,s|0,16)|0;E()|0;n=xJ(ya|0,s|0,48)|0;E()|0;m=z((d[79264+(l&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+(s&65535)>>0]|0)+(d[79264+n>>0]|0)|0,m)|0;n=c[7136+(k<<5)+8>>2]|0;s=c[q+5352>>2]|0;ya=s+344|0;wa=c[ya>>2]|wa;ya=c[ya+4>>2]|va;va=xJ(wa|0,ya|0,16)|0;E()|0;l=xJ(wa|0,ya|0,48)|0;E()|0;n=z((d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+l>>0]|0)|0,n)|0;l=(z(z(Y,Y)|0,c[7136+(k<<5)+12>>2]|0)|0)/4|0;if(U)i=(c[q+4516>>2]|0)+O|0;else i=O;ya=g<<16;ya=(z(c[7136+(k<<5)+20>>2]|0,16?ya>>16:ya)|0)/8|0;h=(c[h>>2]|0)-(c[V>>2]|0)<<16;h=p+t+r+m+n+l+((i|0)==0?c[7136+(k<<5)+16>>2]|0:0)+ya+(c[7136+(k<<5)+24>>2]|0)+(16?h>>16:h)|0;if(U)h=((c[q+4496>>2]|0)*79|0)+h+(c[q+4500>>2]<<4)+((c[q+4504>>2]|0)*200|0)+((c[q+4508>>2]|0)*61|0)+((c[q+4512>>2]|0)*138|0)+((c[q+4516>>2]|0)*152|0)|0;if(T){wa=237792+(c[q+3984>>2]<<3)|0;ua=M&R&c[wa>>2];wa=N&S&c[wa+4>>2];ya=xJ(ua|0,wa|0,16)|0;E()|0;va=xJ(ua|0,wa|0,48)|0;E()|0;h=(((d[79264+(ya&65535)>>0]|0)+(d[79264+(ua&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+va>>0]|0)|0)*883|0)+h|0;va=I&P;wa=J&Q;ua=xJ(va|0,wa|0,16)|0;E()|0;ya=xJ(va|0,wa|0,48)|0;E()|0;g=(z((d[79264+(ua&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+ya>>0]|0)|0,-6553700)|0)+g|0}if((h|0)<=0)break;if(y)i=(z(c[7392+(c[s+36>>2]<<2)>>2]|0,h)|0)/256|0;else i=h;h=z(i,i)|0;h=T&h>>>0>10362879?2529:12?h>>>12:h;do if(U){if((c[q+5340>>2]|0)!=1)break;h=h-((h>>>0)/10|0)|0}while(0);ya=U&(h|0)>2529?2529:h;ya=y&(ya|0)>2529?2529:ya;g=g-ya+(z(((z(ya,c[7136+(k<<5)+28>>2]|0)|0)/256|0)+((i|0)/16|0)|0,-65536)|0)|0}while(0);U=q+264|0;g=(((c[U>>2]&W|0)==0?(c[U+4>>2]&X|0)==0:0)?g+-6160402|0:g)-(z(c[7408+(k<<2)>>2]|0,Y)|0)|0;U=316}v:do if((U|0)==316){f=f-g|0;switch(o|0){case 1:break;case 2:{m=q+328|0;l=c[m>>2]|0;m=c[m+4>>2]|0;y=Ga;w=c[y>>2]|0;y=c[y+4>>2]|0;h=e+88|0;g=w&l&~c[h>>2];h=y&m&~c[h+4>>2];if((g|0)==0&(h|0)==0){A=q+320|0;r=c[A>>2]|0;A=c[A+4>>2]|0;x=j;U=377;break v}D=q+256|0;C=c[D>>2]|0;D=c[D+4>>2]|0;v=q+264|0;u=c[v>>2]|0;v=c[v+4>>2]|0;s=u^C;t=v^D;x=q+320|0;r=c[x>>2]|0;x=c[x+4>>2]|0;B=q+296|0;A=c[B>>2]|0;B=c[B+4>>2]|0;p=0;while(1){n=qa(g|0,h|0,0)|0;E()|0;za=pJ(g|0,h|0,-1,-1)|0;g=za&g;h=(E()|0)&h;za=237792+(n<<3)|0;n=161184+(n<<3)|0;k=c[n>>2]|0;n=c[n+4>>2]|0;ya=c[za>>2]&s|k;za=c[za+4>>2]&t|n;va=ya&l;wa=za&m;ra=xJ(va|0,wa|0,16)|0;E()|0;ua=xJ(va|0,wa|0,48)|0;E()|0;sa=d[79264+(va&65535)>>0]|0;ra=d[79264+(ra&65535)>>0]|0;ta=d[79264+(wa&65535)>>0]|0;ua=d[79264+ua>>0]|0;ya=ya&r;za=za&x;xa=xJ(ya|0,za|0,16)|0;E()|0;i=xJ(ya|0,za|0,48)|0;E()|0;i=ra+sa+ta+ua+(((va&A|0)==0&(wa&B|0)==0)<<31>>31)-(d[79264+(ya&65535)>>0]|0)-(d[79264+(xa&65535)>>0]|0)-(d[79264+(za&65535)>>0]|0)-(d[79264+i>>0]|0)|0;if(!((ya&A|0)==0&(za&B|0)==0?(ya=Z,za=Aa,(c[ya>>2]&k&~c[za>>2]|0)==0?(c[ya+4>>2]&n&~c[za+4>>2]|0)==0:0):0))i=i+-1|0;za=z(i,5242960)|0;p=((za|0)>0?za:0)+p|0;if((g|0)==0&(h|0)==0){T=u;S=v;g=p;U=366;break v}}}default:{U=333;break v}}M=Ga;L=c[M>>2]|0;M=c[M+4>>2]|0;m=q+328|0;l=c[m>>2]|0;m=c[m+4>>2]|0;J=l&L;K=m&M;v=Fa;u=c[v>>2]|0;v=c[v+4>>2]|0;I=q+320|0;r=c[I>>2]|0;I=c[I+4>>2]|0;G=(r&u|0)!=0|(I&v|0)!=0;do if((J|0)==0&(K|0)==0){n=za;p=xa;t=$;A=Z;y=e+88|0;h=Aa;B=c[A>>2]|0;x=c[y>>2]|0;A=c[A+4>>2]|0;y=c[y+4>>2]|0;w=c[t>>2]|0;t=c[t+4>>2]|0;s=c[p>>2]|0;p=c[p+4>>2]|0;o=c[n>>2]|0;n=c[n+4>>2]|0;k=~c[h>>2];h=~c[h+4>>2];g=0;U=325}else{H=Aa;k=~c[H>>2];H=~c[H+4>>2];D=G&1;F=((J&u|0)!=0|(K&v|0)!=0)&1;C=7440+(D<<6)+(F<<5)|0;h=Ea;g=c[h>>2]&l;h=c[h+4>>2]&m;do if((g&k|0)==0&(h&H|0)==0){if((g|0)==0&(h|0)==0){i=0;break}i=0-(c[C>>2]|0)|0}else i=0-(c[7440+(D<<6)+(F<<5)+4>>2]|0)|0;while(0);n=za;o=c[n>>2]|0;n=c[n+4>>2]|0;g=o&l;h=n&m;do if((g&k|0)==0&(h&H|0)==0){if((g|0)==0&(h|0)==0)break;i=i-(c[C>>2]|0)|0}else i=i-(c[7440+(D<<6)+(F<<5)+8>>2]|0)|0;while(0);p=xa;s=c[p>>2]|0;p=c[p+4>>2]|0;g=s&l;h=p&m;do if((g&k|0)==0&(h&H|0)==0){if((g|0)==0&(h|0)==0)break;i=i-(c[C>>2]|0)|0}else i=i-(c[7440+(D<<6)+(F<<5)+12>>2]|0)|0;while(0);t=$;w=c[t>>2]|0;t=c[t+4>>2]|0;g=w&l;h=t&m;if((g&k|0)==0&(h&H|0)==0){if(!((g|0)==0&(h|0)==0)){g=C;U=355}}else{g=7440+(D<<6)+(F<<5)+16|0;U=355}if((U|0)==355)i=i-(c[g>>2]|0)|0;A=Z;B=c[A>>2]|0;A=c[A+4>>2]|0;g=B&l;h=A&m;do if((g&k|0)==0&(h&H|0)==0){if((g|0)==0&(h|0)==0)break;i=i-(c[C>>2]|0)|0}else i=i-(c[7440+(D<<6)+(F<<5)+20>>2]|0)|0;while(0);y=e+88|0;x=c[y>>2]|0;y=c[y+4>>2]|0;g=x&l;h=y&m;do if((g&k|0)==0&(h&H|0)==0){if((g|0)==0&(h|0)==0)break;i=i-(c[C>>2]|0)|0}else i=i-(c[7440+(D<<6)+(F<<5)+24>>2]|0)|0;while(0);if(!G)break;h=H;g=(z(c[q+336>>2]|0,-8061047)|0)+i|0;U=325}while(0);if((U|0)==325){i=q+264|0;ya=c[i>>2]&r;i=c[i+4>>2]&I;va=yJ(ya|0,i|0,8)|0;E()|0;Aa=q+256|0;za=~c[Aa>>2];Aa=~c[Aa+4>>2];i=yJ(za&16711680&va|ya|0,i|0,8)|0;i=i&za;ya=(E()|0)&Aa;za=(B|x|w|s|o)&za;Aa=(A|y|t|p|n)&Aa;va=(i|za)&u;wa=(ya|Aa)&v;ua=xJ(va|0,wa|0,16)|0;E()|0;xa=xJ(va|0,wa|0,48)|0;E()|0;xa=(z((d[79264+(ua&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+xa>>0]|0)|0,13304e3)|0)+g|0;za=(i&~L|za&k)&u;Aa=(ya&~M|Aa&h)&v;ya=xJ(za|0,Aa|0,16)|0;E()|0;i=xJ(za|0,Aa|0,48)|0;E()|0;i=xa+(z((d[79264+(ya&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+i>>0]|0)|0,21103003)|0)|0}n=J;k=K;f=i+f|0;U=368}while(0);if((U|0)==333){m=q+328|0;l=c[m>>2]|0;m=c[m+4>>2]|0;O=q+264|0;N=c[O>>2]|0;O=c[O+4>>2]|0;k=~N;n=~O;F=l&k;G=m&n;v=Da;u=c[v>>2]|0;v=c[v+4>>2]|0;A=Ca;x=c[A>>2]|0;A=c[A+4>>2]|0;K=Aa;J=c[K>>2]|0;K=c[K+4>>2]|0;g=x&~J|u;h=A&~K|v;L=~g;M=~h;y=Ga;w=c[y>>2]|0;y=c[y+4>>2]|0;p=w&l&L;r=y&m&M;C=Fa;B=c[C>>2]|0;C=c[C+4>>2]|0;s=~B;t=~C;H=w|s;I=y|t;g=p|g&F;h=r|h&G;if((g|0)==0&(h|0)==0)g=0;else{ya=za;wa=xa;g=(c[wa>>2]|c[ya>>2])&g;h=(c[wa+4>>2]|c[ya+4>>2])&h;if((g|0)==0&(h|0)==0)g=0;else{i=g;g=0;do{ya=qa(i|0,h|0,0)|0;E()|0;wa=pJ(i|0,h|0,-1,-1)|0;i=wa&i;h=(E()|0)&h;wa=c[q+(ya<<2)>>2]&7;g=(c[7568+(wa<<2)>>2]|0)+g+((wa|0)==1?0:((3?ya>>>3:ya)^7)*196622|0)|0}while(!((i|0)==0&(h|0)==0))}i=$;h=c[i>>2]&p;i=c[i+4>>2]&r;if(!((h|0)==0&(i|0)==0))do{ya=qa(h|0,i|0,0)|0;E()|0;wa=pJ(h|0,i|0,-1,-1)|0;h=wa&h;i=(E()|0)&i;wa=c[q+(ya<<2)>>2]&7;g=(c[7600+(wa<<2)>>2]|0)+g+((wa|0)==1?0:((3?ya>>>3:ya)^7)*196622|0)|0}while(!((h|0)==0&(i|0)==0));ua=e+88|0;ua=((c[ua>>2]&p|0)==0?(c[ua+4>>2]&r|0)==0:0)?g:g+5505045|0;va=p&s;ya=r&t;g=xJ(va|0,ya|0,16)|0;E()|0;wa=xJ(va|0,ya|0,48)|0;E()|0;ua=(z((d[79264+(g&65535)>>0]|0)+(d[79264+(va&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+wa>>0]|0)|0,2228286)|0)+ua|0;wa=B&k&p;ya=C&n&r;va=xJ(wa|0,ya|0,16)|0;E()|0;g=xJ(wa|0,ya|0,48)|0;E()|0;g=ua+(((d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+g>>0]|0)|0)*393228|0)|0}i=~u;h=~v;ya=~x&i&w&B;r=~A&h&y&C;B=xJ(ya|0,r|0,16)|0;E()|0;x=xJ(ya|0,r|0,48)|0;E()|0;g=(((d[79264+(B&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+(r&65535)>>0]|0)+(d[79264+x>>0]|0)|0)*393223|0)+g|0;x=q+320|0;r=c[x>>2]|0;x=c[x+4>>2]|0;ya=q+288|0;B=q+296|0;A=c[B>>2]|0;B=c[B+4>>2]|0;if(!(((A|c[ya>>2])&r|0)==0?((B|c[ya+4>>2])&x|0)==0:0))g=(z(c[(c[Ja>>2]|0)+84>>2]|0,1310734)|0)+g|0;va=r&N;wa=x&O;sa=yJ(va|0,wa|0,8)|0;ua=E()|0;D=q+256|0;C=c[D>>2]|0;D=c[D+4>>2]|0;ya=~C;sa=sa&ya;ua=ua&~D;ta=yJ(sa|0,ua|0,8)|0;E()|0;sa=H&i&(ya&-16777216&ta|sa);ua=I&h&ua;ta=yJ(sa|0,ua|0,7)|0;ya=(E()|0)&2139062143;ua=yJ(sa|0,ua|0,9)|0;ua=(ta&2139029504|ua&-16908288)&l;ya=(ya|(E()|0)&-16843010)&m;ta=xJ(ua|0,ya|0,16)|0;E()|0;ua=xJ(ua|0,ya|0,48)|0;E()|0;ua=(z((d[79264+(ta&65535)>>0]|0)+(d[79264]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+ua>>0]|0)|0,2752560)|0)+g|0;g=va&H;wa=wa&I;va=yJ(g|0,wa|0,7)|0;ya=(E()|0)&2139062143;wa=yJ(g|0,wa|0,9)|0;wa=(va&2139062016|wa&-16843264)&F;ya=(ya|(E()|0)&-16843010)&G;va=xJ(wa|0,ya|0,16)|0;E()|0;g=xJ(wa|0,ya|0,48)|0;E()|0;g=ua+(z((d[79264+(va&65535)>>0]|0)+(d[79264+(wa&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264+g>>0]|0)|0,6488233)|0)|0;if((c[q+388>>2]|0)==1){ta=c[q+3728>>2]|0;T=e+16|0;va=c[T>>2]&L;T=c[T+4>>2]&M;S=za;U=235744+(ta<<3)|0;za=va&c[S>>2]&c[U>>2];U=T&c[S+4>>2]&c[U+4>>2];S=xJ(za|0,U|0,16)|0;E()|0;wa=xJ(za|0,U|0,48)|0;E()|0;wa=(((d[79264+(S&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(U&65535)>>0]|0)+(d[79264+wa>>0]|0)|0)*786452|0)+g|0;U=xa;za=c[U>>2]|0;U=c[U+4>>2]|0;S=c[241376+(ta*24|0)+16>>2]|0;xa=241376+(ta*24|0)|0;ya=241376+(ta*24|0)+8|0;ya=vJ(c[xa>>2]&C|0,c[xa+4>>2]&D|0,c[ya>>2]|0,c[ya+4>>2]|0)|0;ya=xJ(ya|0,E()|0,55)|0;E()|0;ya=S+(ya<<3)|0;za=c[ya>>2]&za;U=c[ya+4>>2]&U;ya=$;S=c[ya>>2]|0;ya=c[ya+4>>2]|0;xa=c[239840+(ta*24|0)+16>>2]|0;ua=239840+(ta*24|0)|0;g=239840+(ta*24|0)+8|0;g=vJ(c[ua>>2]&C|0,c[ua+4>>2]&D|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=xa+(g<<3)|0;za=va&J&(c[g>>2]&S|za);U=T&K&(c[g+4>>2]&ya|U);ya=xJ(za|0,U|0,16)|0;E()|0;g=xJ(za|0,U|0,48)|0;E()|0;T=N;S=O;g=wa+(z((d[79264+(ya&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(U&65535)>>0]|0)+(d[79264+g>>0]|0)|0,1376305)|0)|0;U=366}else{T=N;S=O;U=366}}w:do if((U|0)==366){f=g+f|0;switch(o|0){case 2:{A=x;x=j;U=377;break w}case 1:{v=Fa;u=c[v>>2]|0;I=x;v=c[v+4>>2]|0;n=l&w;k=m&y;L=w;M=y;U=368;break w}default:{}}t=~T;F=~S;Q=r&t;R=x&F;H=Ea;G=c[H>>2]|0;H=c[H+4>>2]|0;J=Aa;I=c[J>>2]|0;J=c[J+4>>2]|0;N=Ca;M=c[N>>2]|0;N=c[N+4>>2]|0;g=I&~M|G;h=J&~N|H;O=~g;P=~h;v=Fa;u=c[v>>2]|0;v=c[v+4>>2]|0;k=u&r&O;n=v&x&P;p=~w;s=~y;K=u|p;L=v|s;g=k|g&Q;h=n|h&R;if((g|0)==0&(h|0)==0)g=0;else{Ca=Ba;Aa=da;g=(c[Aa>>2]|c[Ca>>2])&g;h=(c[Aa+4>>2]|c[Ca+4>>2])&h;if((g|0)==0&(h|0)==0)g=0;else{i=g;g=0;do{Ca=qa(i|0,h|0,0)|0;E()|0;Aa=pJ(i|0,h|0,-1,-1)|0;i=Aa&i;h=(E()|0)&h;Aa=c[q+(Ca<<2)>>2]&7;g=(c[7568+(Aa<<2)>>2]|0)+g+((Aa|0)==1?0:(3?Ca>>>3:Ca)*196622|0)|0}while(!((i|0)==0&(h|0)==0))}i=aa;h=c[i>>2]&k;i=c[i+4>>2]&n;if(!((h|0)==0&(i|0)==0))do{Ca=qa(h|0,i|0,0)|0;E()|0;Aa=pJ(h|0,i|0,-1,-1)|0;h=Aa&h;i=(E()|0)&i;Aa=c[q+(Ca<<2)>>2]&7;g=(c[7600+(Aa<<2)>>2]|0)+g+((Aa|0)==1?0:(3?Ca>>>3:Ca)*196622|0)|0}while(!((h|0)==0&(i|0)==0));ya=e+152|0;ya=((c[ya>>2]&k|0)==0?(c[ya+4>>2]&n|0)==0:0)?g:g+5505045|0;za=k&p;Ca=n&s;g=xJ(za|0,Ca|0,16)|0;E()|0;Aa=xJ(za|0,Ca|0,48)|0;E()|0;ya=(z((d[79264+(g&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+Aa>>0]|0)|0,2228286)|0)+ya|0;Aa=w&t&k;Ca=y&F&n;za=xJ(Aa|0,Ca|0,16)|0;E()|0;g=xJ(Aa|0,Ca|0,48)|0;E()|0;g=ya+(((d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0)*393228|0)|0}i=~G;h=~H;za=~I&i&u&w;Aa=~J&h&v&y;ya=xJ(za|0,Aa|0,16)|0;E()|0;Ca=xJ(za|0,Aa|0,48)|0;E()|0;g=(((d[79264+(ya&65535)>>0]|0)+(d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+Ca>>0]|0)|0)*393223|0)+g|0;Ca=q+288|0;if(!(((A|c[Ca>>2])&l|0)==0?((B|c[Ca+4>>2])&m|0)==0:0))g=(z(c[(c[Ja>>2]|0)+80>>2]|0,1310734)|0)+g|0;za=l&T;Aa=m&S;wa=xJ(za|0,Aa|0,8)|0;xa=~D;wa=wa&~C;Ca=(E()|0)&xa;xJ(wa|0,Ca|0,8)|0;wa=K&i&wa;Ca=L&h&(xa&255&(E()|0)|Ca);xa=xJ(wa|0,Ca|0,9)|0;ya=(E()|0)&32639;Ca=xJ(wa|0,Ca|0,7)|0;Ca=(xa&2139062143|Ca&-16843010)&r;ya=(ya|(E()|0)&65278)&x;xa=xJ(Ca|0,ya|0,16)|0;E()|0;ya=(z((d[79264+(xa&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+(ya&65535)>>0]|0)+(d[79264]|0)|0,2752560)|0)+g|0;g=za&K;Aa=Aa&L;za=xJ(g|0,Aa|0,9)|0;Ca=(E()|0)&8355711;Aa=xJ(g|0,Aa|0,7)|0;Aa=(za&2139062143|Aa&-16843010)&Q;Ca=(Ca|(E()|0)&16711422)&R;za=xJ(Aa|0,Ca|0,16)|0;E()|0;g=xJ(Aa|0,Ca|0,48)|0;E()|0;g=ya+(z((d[79264+(za&65535)>>0]|0)+(d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0,6488233)|0)|0;if((c[q+356>>2]|0)==1){ua=c[q+1680>>2]|0;R=e+24|0;xa=c[R>>2]&O;R=c[R+4>>2]&P;ya=Ba;Ca=235744+(ua<<3)|0;Ba=xa&c[ya>>2]&c[Ca>>2];Ca=R&c[ya+4>>2]&c[Ca+4>>2];ya=xJ(Ba|0,Ca|0,16)|0;E()|0;za=xJ(Ba|0,Ca|0,48)|0;E()|0;za=(((d[79264+(ya&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+za>>0]|0)|0)*786452|0)+g|0;Ca=da;Ba=c[Ca>>2]|0;Ca=c[Ca+4>>2]|0;ya=c[241376+(ua*24|0)+16>>2]|0;wa=241376+(ua*24|0)|0;Aa=241376+(ua*24|0)+8|0;Aa=vJ(c[wa>>2]&C|0,c[wa+4>>2]&D|0,c[Aa>>2]|0,c[Aa+4>>2]|0)|0;Aa=xJ(Aa|0,E()|0,55)|0;E()|0;Aa=ya+(Aa<<3)|0;Ba=c[Aa>>2]&Ba;Ca=c[Aa+4>>2]&Ca;Aa=aa;ya=c[Aa>>2]|0;Aa=c[Aa+4>>2]|0;wa=c[239840+(ua*24|0)+16>>2]|0;va=239840+(ua*24|0)|0;g=239840+(ua*24|0)+8|0;g=vJ(c[va>>2]&C|0,c[va+4>>2]&D|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=wa+(g<<3)|0;Ba=xa&M&(c[g>>2]&ya|Ba);Ca=R&N&(c[g+4>>2]&Aa|Ca);Aa=xJ(Ba|0,Ca|0,16)|0;E()|0;g=xJ(Ba|0,Ca|0,48)|0;E()|0;R=x;x=j;g=za+(z((d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0,1376305)|0)|0}else{R=x;x=j}}while(0);do if((U|0)==368){g=r&u;h=I&v;F=(n|0)!=0|(k|0)!=0;if((g|0)==0&(h|0)==0){k=Ba;o=da;s=aa;y=_;x=e+152|0;h=Ca;A=c[y>>2]|0;w=c[x>>2]|0;y=c[y+4>>2]|0;x=c[x+4>>2]|0;t=c[s>>2]|0;s=c[s+4>>2]|0;p=c[o>>2]|0;o=c[o+4>>2]|0;n=c[k>>2]|0;k=c[k+4>>2]|0;i=~c[h>>2];h=~c[h+4>>2];g=0}else{H=Ca;G=~c[H>>2];H=~c[H+4>>2];D=F&1;C=((g&L|0)!=0|(h&M|0)!=0)&1;B=7440+(D<<6)+(C<<5)|0;h=Da;g=c[h>>2]&r;h=c[h+4>>2]&I;do if((g&G|0)==0&(h&H|0)==0){if((g|0)==0&(h|0)==0){g=0;break}g=0-(c[B>>2]|0)|0}else g=0-(c[7440+(D<<6)+(C<<5)+4>>2]|0)|0;while(0);k=Ba;n=c[k>>2]|0;k=c[k+4>>2]|0;h=n&r;i=k&I;do if((h&G|0)==0&(i&H|0)==0){if((h|0)==0&(i|0)==0)break;g=g-(c[B>>2]|0)|0}else g=g-(c[7440+(D<<6)+(C<<5)+8>>2]|0)|0;while(0);o=da;p=c[o>>2]|0;o=c[o+4>>2]|0;h=p&r;i=o&I;do if((h&G|0)==0&(i&H|0)==0){if((h|0)==0&(i|0)==0)break;g=g-(c[B>>2]|0)|0}else g=g-(c[7440+(D<<6)+(C<<5)+12>>2]|0)|0;while(0);s=aa;t=c[s>>2]|0;s=c[s+4>>2]|0;h=t&r;i=s&I;if((h&G|0)==0&(i&H|0)==0){if(!((h|0)==0&(i|0)==0)){h=B;U=405}}else{h=7440+(D<<6)+(C<<5)+16|0;U=405}if((U|0)==405)g=g-(c[h>>2]|0)|0;y=_;A=c[y>>2]|0;y=c[y+4>>2]|0;h=A&r;i=y&I;do if((h&G|0)==0&(i&H|0)==0){if((h|0)==0&(i|0)==0)break;g=g-(c[B>>2]|0)|0}else g=g-(c[7440+(D<<6)+(C<<5)+20>>2]|0)|0;while(0);x=e+152|0;w=c[x>>2]|0;x=c[x+4>>2]|0;h=w&r;i=x&I;do if((h&G|0)==0&(i&H|0)==0){if((h|0)==0&(i|0)==0)break;g=g-(c[B>>2]|0)|0}else g=g-(c[7440+(D<<6)+(C<<5)+24>>2]|0)|0;while(0);if(!F){o=1;R=I;w=L;y=M;x=j;break}i=G;h=H;g=(z(c[q+368>>2]|0,-8061047)|0)+g|0}R=q+264|0;za=c[R>>2]&l;R=c[R+4>>2]&m;xJ(za|0,R|0,8)|0;Aa=E()|0;Ca=q+256|0;Ba=~c[Ca>>2];Ca=~c[Ca+4>>2];R=xJ(za|0,Ca&65280&Aa|R|0,8)|0;R=R&Ba;Aa=(E()|0)&Ca;Ba=(A|w|t|p|n)&Ba;Ca=(y|x|s|o|k)&Ca;w=(R|Ba)&L;o=(Aa|Ca)&M;y=xJ(w|0,o|0,16)|0;E()|0;za=xJ(w|0,o|0,48)|0;E()|0;za=(z((d[79264+(y&65535)>>0]|0)+(d[79264+(w&65535)>>0]|0)+(d[79264+(o&65535)>>0]|0)+(d[79264+za>>0]|0)|0,13304e3)|0)+g|0;Ba=(R&~u|Ba&i)&L;Ca=(Aa&~v|Ca&h)&M;Aa=xJ(Ba|0,Ca|0,16)|0;E()|0;g=xJ(Ba|0,Ca|0,48)|0;E()|0;o=1;R=I;w=L;y=M;x=j;g=za+(z((d[79264+(Aa&65535)>>0]|0)+(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+g>>0]|0)|0,21103003)|0)|0}else if((U|0)==377){v=Fa;u=c[v>>2]|0;v=c[v+4>>2]|0;h=e+152|0;g=u&r&~c[h>>2];h=v&A&~c[h+4>>2];if((g|0)==0&(h|0)==0){o=2;R=A;g=0}else{p=q+256|0;t=q+264|0;o=c[t>>2]^c[p>>2];p=c[t+4>>2]^c[p+4>>2];t=q+296|0;s=c[t>>2]|0;t=c[t+4>>2]|0;n=g;g=0;do{k=qa(n|0,h|0,0)|0;E()|0;Ba=pJ(n|0,h|0,-1,-1)|0;n=Ba&n;h=(E()|0)&h;Ba=237792+(k<<3)|0;k=161184+(k<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;Aa=c[Ba>>2]&o|j;Ba=c[Ba+4>>2]&p|k;xa=Aa&r;ya=Ba&A;ta=xJ(xa|0,ya|0,16)|0;E()|0;wa=xJ(xa|0,ya|0,48)|0;E()|0;ua=d[79264+(xa&65535)>>0]|0;ta=d[79264+(ta&65535)>>0]|0;va=d[79264+(ya&65535)>>0]|0;wa=d[79264+wa>>0]|0;Aa=Aa&l;Ba=Ba&m;za=xJ(Aa|0,Ba|0,16)|0;E()|0;i=xJ(Aa|0,Ba|0,48)|0;E()|0;i=ta+ua+va+wa+(((xa&s|0)==0&(ya&t|0)==0)<<31>>31)-(d[79264+(Aa&65535)>>0]|0)-(d[79264+(za&65535)>>0]|0)-(d[79264+(Ba&65535)>>0]|0)-(d[79264+i>>0]|0)|0;if(!((Aa&s|0)==0&(Ba&t|0)==0?(Aa=_,Ba=Ca,(c[Aa>>2]&j&~c[Ba>>2]|0)==0?(c[Aa+4>>2]&k&~c[Ba+4>>2]|0)==0:0):0))i=i+-1|0;Ba=z(i,5242960)|0;g=((Ba|0)>0?Ba:0)+g|0}while(!((n|0)==0&(h|0)==0));o=2;R=A}}while(0);P=f-g|0;Q=c[Ja>>2]|0;g=Q+16|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if((f|0)==0&(g|0)==0)f=0;else{N=(o|0)==4;O=(o|0)==2;G=q+360|0;J=q+264|0;I=q+288|0;K=q+296|0;H=q+256|0;M=q+3984|0;L=q+1936|0;D=u|l;F=v|m;C=f;f=0;do{B=qa(C|0,g|0,0)|0;E()|0;j=pJ(C|0,g|0,-1,-1)|0;C=j&C;g=(E()|0)&g;j=3?B>>>3:B;h=c[7632+(o<<5)+(j<<2)>>2]|0;do if(B>>>0>23){A=j+-2|0;A=(z(A,A)|0)+2|0;t=B+8|0;x:do switch(o|0){case 4:if(!(c[G>>2]|0)){Ca=c[144800+(c[M>>2]<<8)+(t<<2)>>2]|0;h=(z(A*327680|0,(Ca|0)<5?Ca:5)|0)+h|0;break x}else{h=(A*983040|0)+h|0;break x}case 1:break;default:{i=c[144800+(c[M>>2]<<8)+(t<<2)>>2]|0;i=((i|0)<5?i:5)*5|0;if(O){h=(z(A<<16,i)|0)+h|0;break x}k=c[L>>2]|0;Ca=c[144800+(k<<8)+(t<<2)>>2]|0;n=A<<16;h=(z(i-(((Ca|0)<5?Ca:5)<<1)|0,n)|0)+h|0;if((j|0)==6)break x;Ca=c[144800+(k<<8)+(B+16<<2)>>2]|0;h=h-(z((Ca|0)<5?Ca:5,n)|0)|0}}while(0);if(c[q+(t<<2)>>2]|0){n=t;break}n=231648+(B<<3)|0;k=c[n>>2]|0;n=c[n+4>>2]|0;s=232160+(B<<3)|0;Ca=I;p=K;i=(c[p>>2]|c[Ca>>2])&c[s>>2];s=(c[p+4>>2]|c[Ca+4>>2])&c[s+4>>2];Ca=H;p=c[239840+(B*24|0)+16>>2]|0;Ba=239840+(B*24|0)|0;j=239840+(B*24|0)+8|0;j=vJ(c[Ba>>2]&c[Ca>>2]|0,c[Ba+4>>2]&c[Ca+4>>2]|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=p+(j<<3)|0;i=i&c[j>>2];j=s&c[j+4>>2];s=(r&i|0)==0&(R&j|0)==0;p=k&(s?w:-1);s=n&(s?y:-1);j=(l&i|0)==0&(m&j|0)==0;i=k&(j?D:-1);j=n&(j?F:-1);if((i|0)==0&(j|0)==0)i=20;else{Ca=161184+(t<<3)|0;i=((c[Ca>>2]&i|0)==0?(c[Ca+4>>2]&j|0)==0:0)?9:0}if((p|0)==(k|0)&(s|0)==(n|0))i=i+6|0;else{Ca=161184+(t<<3)|0;i=((c[Ca>>2]&p|0)==0?(c[Ca+4>>2]&s|0)==0:0)?i:i+4|0}n=t;h=(z(A*65537|0,i)|0)+h|0}else n=B+8|0;while(0);do if(N){if(c[G>>2]|0){U=437;break}j=J;i=c[j>>2]|0;j=c[j+4>>2]|0;k=231648}else U=437;while(0);if((U|0)==437){U=0;j=J;i=c[j>>2]|0;j=c[j+4>>2]|0;k=232672}Ca=k+(n<<3)|0;if(!(((i&l&c[Ca>>2]|0)==0?(j&m&c[Ca+4>>2]|0)==0:0)?(Ca=231648+(B<<3)|0,(c[Ca>>2]&i|0)==0?(c[Ca+4>>2]&j|0)==0:0):0)){Ca=h<<16;h=h+32768|0;h=((((16?h>>16:h)|0)/2|0)<<16)+(((16?Ca>>16:Ca)|0)/2|0)|0}f=h+f+(c[7888+((B&7)<<2)>>2]|0)|0}while(!((C|0)==0&(g|0)==0))}N=P+f|0;g=Q+24|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if((f|0)==0&(g|0)==0)f=0;else{L=(o|0)==4;M=(o|0)==2;D=q+392|0;H=q+264|0;G=q+288|0;I=q+296|0;F=q+256|0;K=q+1936|0;J=q+3984|0;C=w|r;B=y|R;A=f;f=0;do{y=qa(A|0,g|0,0)|0;E()|0;n=pJ(A|0,g|0,-1,-1)|0;A=n&A;g=(E()|0)&g;n=(3?y>>>3:y)^7;h=c[7632+(o<<5)+(n<<2)>>2]|0;do if(n>>>0>2){w=n+-2|0;w=(z(w,w)|0)+2|0;t=y+-8|0;y:do switch(o|0){case 4:if(!(c[D>>2]|0)){Ca=c[144800+(c[K>>2]<<8)+(t<<2)>>2]|0;h=(z(w*327680|0,(Ca|0)<5?Ca:5)|0)+h|0;break y}else{h=(w*983040|0)+h|0;break y}case 1:break;default:{i=c[144800+(c[K>>2]<<8)+(t<<2)>>2]|0;i=((i|0)<5?i:5)*5|0;if(M){h=(z(w<<16,i)|0)+h|0;break y}j=c[J>>2]|0;Ca=c[144800+(j<<8)+(t<<2)>>2]|0;k=w<<16;h=(z(i-(((Ca|0)<5?Ca:5)<<1)|0,k)|0)+h|0;if((n|0)==6)break y;Ca=c[144800+(j<<8)+(y+-16<<2)>>2]|0;h=h-(z((Ca|0)<5?Ca:5,k)|0)|0}}while(0);if(c[q+(t<<2)>>2]|0){n=t;break}n=232160+(y<<3)|0;k=c[n>>2]|0;n=c[n+4>>2]|0;s=231648+(y<<3)|0;Ca=G;p=I;i=(c[p>>2]|c[Ca>>2])&c[s>>2];s=(c[p+4>>2]|c[Ca+4>>2])&c[s+4>>2];Ca=F;p=c[239840+(y*24|0)+16>>2]|0;Ba=239840+(y*24|0)|0;j=239840+(y*24|0)+8|0;j=vJ(c[Ba>>2]&c[Ca>>2]|0,c[Ba+4>>2]&c[Ca+4>>2]|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=p+(j<<3)|0;i=i&c[j>>2];j=s&c[j+4>>2];s=(l&i|0)==0&(m&j|0)==0;p=k&(s?u:-1);s=n&(s?v:-1);j=(r&i|0)==0&(R&j|0)==0;i=k&(j?C:-1);j=n&(j?B:-1);if((i|0)==0&(j|0)==0)i=20;else{Ca=161184+(t<<3)|0;i=((c[Ca>>2]&i|0)==0?(c[Ca+4>>2]&j|0)==0:0)?9:0}if((p|0)==(k|0)&(s|0)==(n|0))i=i+6|0;else{Ca=161184+(t<<3)|0;i=((c[Ca>>2]&p|0)==0?(c[Ca+4>>2]&s|0)==0:0)?i:i+4|0}n=t;h=(z(w*65537|0,i)|0)+h|0}else n=y+-8|0;while(0);do if(L){if(c[D>>2]|0){U=464;break}j=H;i=c[j>>2]|0;j=c[j+4>>2]|0;k=231648}else U=464;while(0);if((U|0)==464){U=0;j=H;i=c[j>>2]|0;j=c[j+4>>2]|0;k=232672}Ca=k+512+(n<<3)|0;if(!(((i&r&c[Ca>>2]|0)==0?(j&R&c[Ca+4>>2]|0)==0:0)?(Ca=232160+(y<<3)|0,(c[Ca>>2]&i|0)==0?(c[Ca+4>>2]&j|0)==0:0):0)){Ca=h<<16;h=h+32768|0;h=((((16?h>>16:h)|0)/2|0)<<16)+(((16?Ca>>16:Ca)|0)/2|0)|0}f=h+f+(c[7888+((y&7)<<2)>>2]|0)|0}while(!((A|0)==0&(g|0)==0))}g=N-f|0;w=c[q+5352>>2]|0;do if(((c[w+20>>2]|0)+(c[w+16>>2]|0)|0)<(c[7920+(o<<2)>>2]|0)){f=0;U=479}else{p=q+264|0;n=c[p>>2]|0;p=c[p+4>>2]|0;k=n&r;i=p&R;h=Da;h=(k&1010580480^1010580480)&~c[h>>2];v=xJ(k|0,i|0,8)|0;k=v|k;i=E()|0|i;v=xJ(k|0,i|0,16)|0;E()|0|i;i=xJ(h|0,0,16)|0;E()|0;i=(d[79264+(i&65535)>>0]|0)+(d[79264+(h&65535)>>0]|0)|0;j=d[79264]|0;h=(v|k)&h;k=xJ(h|0,0,16)|0;E()|0;v=(o|0)==3;f=c[q+336>>2]|0;if(v)f=(c[q+4496>>2]|0)+f|0;u=c[Q+124>>2]<<1;f=f-u|0;f=(z(z(f,i+(d[79264+(h&65535)>>0]|0)+(j<<2)+(d[79264+(k&65535)>>0]|0)|0)|0,f)|0)/16|0;t=(o|0)==5;if(t){Da=j*3|0;s=Da;f=(z(Da+(d[79264+(k&6144)>>0]|0)|0,13566115)|0)+f|0}else s=j*3|0;g=f+g|0;k=n&l;h=p&m;n=Ea;n=(h&3947580^3947580)&~c[n+4>>2];j=yJ(k|0,h|0,8)|0;k=j|k;h=E()|0|h;j=yJ(k|0,h|0,16)|0;h=E()|0|h;k=xJ(0,n|0,48)|0;E()|0;j=d[79264+(n&65535)>>0]|0;k=d[79264+k>>0]|0;n=h&n;h=xJ(0,n|0,16)|0;E()|0;i=xJ(0,n|0,48)|0;E()|0;f=c[q+368>>2]|0;if(v)f=(c[q+4528>>2]|0)+f|0;f=f-u|0;f=(z(z(f,s+j+k+(d[79264+(h&65535)>>0]|0)+(d[79264+(n&65535)>>0]|0)+(d[79264+i>>0]|0)|0)|0,f)|0)/16|0;if(!t){U=479;break}f=g+x-f+(z(s+(d[79264+(n&24)>>0]|0)|0,-13566115)|0)|0;g=0;U=492}while(0);z:do if((U|0)==479){f=g-f+x|0;switch(o|0){case 0:{U=557;break z}case 4:{if(c[q+392>>2]|0){t=R;p=0;U=502;break z}Ea=q+288|0;t=q+296|0;s=c[t>>2]&r;t=c[t+4>>2]&R;if((s|c[Ea>>2]&r|0)==0?(t|c[Ea+4>>2]&R|0)==0:0){t=R;p=0;U=502;break z}Da=Z;Ca=$;Ea=161816;if(((c[Ca>>2]|c[Da>>2])&c[Ea>>2]|0)==0?((c[Ca+4>>2]|c[Da+4>>2])&c[Ea+4>>2]|0)==0:0){n=q+264|0;k=c[n>>2]&l;n=c[n+4>>2]&m;p=8;h=0;while(1){Ea=161696+(h<<3)|0;Da=c[Ea>>2]&k;Ea=c[Ea+4>>2]&n;Ca=xJ(Da|0,Ea|0,16)|0;E()|0;j=xJ(Da|0,Ea|0,48)|0;E()|0;j=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+j>>0]|0)|0;do if(!h){g=0;U=487}else{Ea=161696+(h+-1<<3)|0;Da=c[Ea>>2]&k;Ea=c[Ea+4>>2]&n;Ca=xJ(Da|0,Ea|0,16)|0;E()|0;g=xJ(Da|0,Ea|0,48)|0;E()|0;g=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+g>>0]|0)|0;g=j>>>0>>0?j:g;if(h>>>0<7){U=487;break}i=h+1|0;h=g;g=0}while(0);if((U|0)==487){U=0;i=h+1|0;h=161696+(i<<3)|0;Da=c[h>>2]&k;h=c[h+4>>2]&n;Ca=xJ(Da|0,h|0,16)|0;E()|0;Ea=xJ(Da|0,h|0,48)|0;E()|0;Ea=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(h&65535)>>0]|0)+(d[79264+Ea>>0]|0)|0;h=g;g=j>>>0>>0?j:Ea}Ea=h+g|0;p=(Ea|0)<(p|0)?Ea:p;if((i|0)==8)break;else h=i}g=p+1|0}else g=1;Da=c[q+372>>2]|0;Ea=z(Da,3997767)|0;Da=z(Da,4653056)|0;Ea=Ea+32768|0;Da=((((16?Ea>>16:Ea)|0)/(g|0)|0)<<16)+(((16?Da>>16:Da)|0)/(g|0)|0)|0;g=(s|0)==0&(t|0)==0?4:2;Ea=Da<<16;Da=Da+32768|0;g=((((16?Da>>16:Da)|0)/(g|0)|0)<<16)+(((16?Ea>>16:Ea)|0)/(g|0)|0)|0;break}default:g=0}if((o|0)==5)U=492;else{t=R;p=g;U=502}}while(0);A:do if((U|0)==492){Ea=w+344|0;if((l&c[Ea>>2]|0)==0?(m&c[Ea+4>>2]|0)==0:0){h=402653184;i=24;k=5;p=g;while(1){j=qa(h|0,i|0,0)|0;E()|0;o=pJ(h|0,i|0,-1,-1)|0;o=o&h;r=(E()|0)&i;if((k|0)==1?(c[q+360>>2]|0)==0:0)g=64;else g=c[q+1936>>2]|0;n=c[144800+(g<<8)+(j<<2)>>2]|0;Ea=Fa;g=161184+(j<<3)|0;i=g;h=c[i>>2]|0;i=c[i+4>>2]|0;if((h&c[Ea>>2]|0)==0?(i&c[Ea+4>>2]|0)==0:0)g=0;else{Ca=q+256|0;Ca=ue(q,j,c[Ca>>2]|0,c[Ca+4>>2]|0)|0;Da=E()|0;q=c[e>>2]|0;m=q+328|0;l=c[m>>2]|0;m=c[m+4>>2]|0;Ca=l&Ca;Da=m&Da;Ba=xJ(Ca|0,Da|0,16)|0;E()|0;Ea=xJ(Ca|0,Da|0,48)|0;E()|0;i=g;h=c[i>>2]|0;i=c[i+4>>2]|0;g=(d[79264+(Ba&65535)>>0]|0)+(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+Ea>>0]|0)|0}k=q+320|0;j=c[k>>2]|0;k=c[k+4>>2]|0;Aa=j&h;Ba=k&i;Ea=q+264|0;Ca=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=yJ(Aa&Ca|0,Ba&Ea|0,8)|0;Ea=n+-1+g+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&l&Da|0)!=0|(Ea&m&(E()|0)|0)!=0)&1)|0;p=(c[7952+(((Ea|0)<5?Ea:5)<<2)>>2]|0)+p|0;if((o|0)==0&(r|0)==0){r=j;t=k;U=502;break A}h=o;i=r;k=c[q+5360>>2]|0}}ua=c[144800+(c[q+1936>>2]<<8)+108>>2]|0;va=q+256|0;va=ue(q,27,c[va>>2]|0,c[va+4>>2]|0)|0;xa=E()|0;h=c[e>>2]|0;i=h+328|0;Ca=c[i>>2]|0;i=c[i+4>>2]|0;va=Ca&va;xa=i&xa;wa=xJ(va|0,xa|0,16)|0;E()|0;ya=xJ(va|0,xa|0,48)|0;E()|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+ya>>0]|0;Aa=h+320|0;Ea=161400;za=c[Ea>>2]&c[Aa>>2];Aa=c[Ea+4>>2]&c[Aa+4>>2];Ea=h+264|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=yJ(za&Ba|0,Aa&Ea|0,8)|0;i=ua+-1+va+wa+xa+ya+(((za|0)!=0|(Aa|0)!=0)&1)+(((Ba&Ca&Da|0)!=0|(Ea&i&(E()|0)|0)!=0)&1)|0;i=(c[7952+(((i|0)<5?i:5)<<2)>>2]|0)+g|0;if((c[h+5360>>2]|0)==1?(c[h+360>>2]|0)==0:0)g=64;else g=c[h+1936>>2]|0;ta=c[144800+(g<<8)+112>>2]|0;ua=h+256|0;ua=ue(h,28,c[ua>>2]|0,c[ua+4>>2]|0)|0;wa=E()|0;h=c[e>>2]|0;Ea=h+328|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;ua=Ba&ua;wa=Ea&wa;va=xJ(ua|0,wa|0,16)|0;E()|0;xa=xJ(ua|0,wa|0,48)|0;E()|0;ua=d[79264+(ua&65535)>>0]|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+xa>>0]|0;za=h+320|0;Da=161408;ya=c[Da>>2]&c[za>>2];za=c[Da+4>>2]&c[za+4>>2];Da=h+264|0;Aa=c[Da>>2]|0;Da=c[Da+4>>2]|0;Ca=yJ(ya&Aa|0,za&Da|0,8)|0;Ea=ta+-1+ua+va+wa+xa+(((ya|0)!=0|(za|0)!=0)&1)+(((Aa&Ba&Ca|0)!=0|(Da&Ea&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Ea|0)<5?Ea:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+360>>2]|0)==0:0)g=64;else g=c[h+1936>>2]|0;ta=c[144800+(g<<8)+140>>2]|0;ua=h+256|0;ua=ue(h,35,c[ua>>2]|0,c[ua+4>>2]|0)|0;wa=E()|0;h=c[e>>2]|0;Ea=h+328|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;ua=Ba&ua;wa=Ea&wa;va=xJ(ua|0,wa|0,16)|0;E()|0;xa=xJ(ua|0,wa|0,48)|0;E()|0;ua=d[79264+(ua&65535)>>0]|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+xa>>0]|0;za=h+320|0;Da=161464;ya=c[Da>>2]&c[za>>2];za=c[Da+4>>2]&c[za+4>>2];Da=h+264|0;Aa=c[Da>>2]|0;Da=c[Da+4>>2]|0;Ca=yJ(ya&Aa|0,za&Da|0,8)|0;Ea=ta+-1+ua+va+wa+xa+(((ya|0)!=0|(za|0)!=0)&1)+(((Aa&Ba&Ca|0)!=0|(Da&Ea&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Ea|0)<5?Ea:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+360>>2]|0)==0:0)g=64;else g=c[h+1936>>2]|0;va=c[144800+(g<<8)+144>>2]|0;wa=h+256|0;wa=ue(h,36,c[wa>>2]|0,c[wa+4>>2]|0)|0;ya=E()|0;q=c[e>>2]|0;p=q+328|0;Da=c[p>>2]|0;p=c[p+4>>2]|0;wa=Da&wa;ya=p&ya;xa=xJ(wa|0,ya|0,16)|0;E()|0;za=xJ(wa|0,ya|0,48)|0;E()|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+(ya&65535)>>0]|0;za=d[79264+za>>0]|0;t=q+320|0;r=c[t>>2]|0;t=c[t+4>>2]|0;Ba=161472;Aa=c[Ba>>2]&r;Ba=c[Ba+4>>2]&t;U=q+264|0;Ca=c[U>>2]|0;U=c[U+4>>2]|0;Ea=yJ(Aa&Ca|0,Ba&U|0,8)|0;p=va+-1+wa+xa+ya+za+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&Da&Ea|0)!=0|(U&p&(E()|0)|0)!=0)&1)|0;p=i+(c[7952+(((p|0)<5?p:5)<<2)>>2]|0)|0;U=502}while(0);B:do if((U|0)==502){s=c[q+5360>>2]|0;if((s|0)==6){k=c[q+1936>>2]|0;l=3?k>>3:k;g=l^7;if((k|0)<56){i=Fa;h=~c[i>>2];i=~c[i+4>>2];j=l;do{Fa=j;j=j+1|0;Da=161760+(j<<3)|0;Ea=227552+(k<<6)+(j-l<<3)|0;g=g+(((c[Da>>2]&h&c[Ea>>2]|0)==0?(c[Da+4>>2]&i&c[Ea+4>>2]|0)==0:0)&1)|0}while((Fa|0)<6)}p=(c[7984+(((g|0)<7?g:7)<<2)>>2]|0)+p|0}C:do switch(s|0){case 7:{h=q;n=0;p=(c[8016+(c[(c[q+5352>>2]|0)+36>>2]<<2)>>2]|0)+p|0;break}case 4:{if(c[q+360>>2]|0){h=q;n=0;break C}Fa=q+328|0;Da=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=q+288|0;o=q+296|0;n=c[o>>2]&Da;o=c[o+4>>2]&Fa;if((n|c[Ea>>2]&Da|0)==0?(o|c[Ea+4>>2]&Fa|0)==0:0){h=q;n=0;break C}Ea=_;Da=aa;Fa=161760;if(((c[Da>>2]|c[Ea>>2])&c[Fa>>2]|0)==0?((c[Da+4>>2]|c[Ea+4>>2])&c[Fa+4>>2]|0)==0:0){l=q+264|0;k=c[l>>2]&r;l=c[l+4>>2]&t;m=8;h=0;while(1){Fa=161696+(h<<3)|0;Ea=c[Fa>>2]&k;Fa=c[Fa+4>>2]&l;Da=xJ(Ea|0,Fa|0,16)|0;E()|0;j=xJ(Ea|0,Fa|0,48)|0;E()|0;j=(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+(Fa&65535)>>0]|0)+(d[79264+j>>0]|0)|0;do if(!h){g=0;U=525}else{Fa=161696+(h+-1<<3)|0;Ea=c[Fa>>2]&k;Fa=c[Fa+4>>2]&l;Da=xJ(Ea|0,Fa|0,16)|0;E()|0;g=xJ(Ea|0,Fa|0,48)|0;E()|0;g=(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+(Fa&65535)>>0]|0)+(d[79264+g>>0]|0)|0;g=j>>>0>>0?j:g;if(h>>>0<7){U=525;break}i=h+1|0;h=g;g=0}while(0);if((U|0)==525){U=0;i=h+1|0;h=161696+(i<<3)|0;Ea=c[h>>2]&k;h=c[h+4>>2]&l;Da=xJ(Ea|0,h|0,16)|0;E()|0;Fa=xJ(Ea|0,h|0,48)|0;E()|0;Fa=(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+(h&65535)>>0]|0)+(d[79264+Fa>>0]|0)|0;h=g;g=j>>>0>>0?j:Fa}Fa=h+g|0;m=(Fa|0)<(m|0)?Fa:m;if((i|0)==8)break;else h=i}g=m+1|0}else g=1;Fa=c[q+340>>2]|0;U=z(Fa,3997767)|0;Fa=z(Fa,4653056)|0;U=U+32768|0;Fa=((((16?U>>16:U)|0)/(g|0)|0)<<16)+(((16?Fa>>16:Fa)|0)/(g|0)|0)|0;g=(n|0)==0&(o|0)==0?4:2;U=Fa<<16;Fa=Fa+32768|0;g=((((16?Fa>>16:Fa)|0)/(g|0)|0)<<16)+(((16?U>>16:U)|0)/(g|0)|0)|0;U=529;break}default:{g=0;U=529}}while(0);D:do if((U|0)==529){if((s|0)!=5){h=q;n=g;break}Fa=(c[q+5352>>2]|0)+336|0;if((r&c[Fa>>2]|0)==0?(t&c[Fa+4>>2]|0)==0:0){i=402653184;j=24;m=5;h=q;l=t;q=g;while(1){k=qa(i|0,j|0,0)|0;E()|0;n=pJ(i|0,j|0,-1,-1)|0;n=n&i;o=(E()|0)&j;if((m|0)==1?(c[h+392>>2]|0)==0:0)g=64;else g=c[h+3984>>2]|0;m=c[144800+(g<<8)+(k<<2)>>2]|0;Fa=Ga;g=161184+(k<<3)|0;j=g;i=c[j>>2]|0;j=c[j+4>>2]|0;if((i&c[Fa>>2]|0)==0?(j&c[Fa+4>>2]|0)==0:0){k=r;g=0}else{Da=h+256|0;Da=ue(h,k,c[Da>>2]|0,c[Da+4>>2]|0)|0;Ea=E()|0;h=c[e>>2]|0;l=h+320|0;k=c[l>>2]|0;l=c[l+4>>2]|0;Da=k&Da;Ea=l&Ea;Ca=xJ(Da|0,Ea|0,16)|0;E()|0;Fa=xJ(Da|0,Ea|0,48)|0;E()|0;j=g;i=c[j>>2]|0;j=c[j+4>>2]|0;g=(d[79264+(Ca&65535)>>0]|0)+(d[79264+(Da&65535)>>0]|0)+(d[79264+(Ea&65535)>>0]|0)+(d[79264+Fa>>0]|0)|0}Ca=h+328|0;Ba=c[Ca>>2]&i;Ca=c[Ca+4>>2]&j;Fa=h+264|0;Da=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=xJ(Ba&Da|0,Ca&Fa|0,8)|0;g=m+-1+g+(((Ba|0)!=0|(Ca|0)!=0)&1)+(((Da&k&Ea|0)!=0|(Fa&l&(E()|0)|0)!=0)&1)|0;g=(c[7952+(((g|0)<5?g:5)<<2)>>2]|0)+q|0;if((n|0)==0&(o|0)==0){n=g;break D}i=n;j=o;m=c[h+5360>>2]|0;r=k;q=g}}va=c[144800+(c[q+3984>>2]<<8)+108>>2]|0;wa=q+256|0;wa=ue(q,27,c[wa>>2]|0,c[wa+4>>2]|0)|0;ya=E()|0;h=c[e>>2]|0;i=h+320|0;Da=c[i>>2]|0;i=c[i+4>>2]|0;wa=Da&wa;ya=i&ya;xa=xJ(wa|0,ya|0,16)|0;E()|0;za=xJ(wa|0,ya|0,48)|0;E()|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+(ya&65535)>>0]|0;za=d[79264+za>>0]|0;Ba=h+328|0;Fa=161400;Aa=c[Fa>>2]&c[Ba>>2];Ba=c[Fa+4>>2]&c[Ba+4>>2];Fa=h+264|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=xJ(Aa&Ca|0,Ba&Fa|0,8)|0;i=va+-1+wa+xa+ya+za+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&Da&Ea|0)!=0|(Fa&i&(E()|0)|0)!=0)&1)|0;i=(c[7952+(((i|0)<5?i:5)<<2)>>2]|0)+g|0;if((c[h+5360>>2]|0)==1?(c[h+392>>2]|0)==0:0)g=64;else g=c[h+3984>>2]|0;ua=c[144800+(g<<8)+112>>2]|0;va=h+256|0;va=ue(h,28,c[va>>2]|0,c[va+4>>2]|0)|0;xa=E()|0;h=c[e>>2]|0;Fa=h+320|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;va=Ca&va;xa=Fa&xa;wa=xJ(va|0,xa|0,16)|0;E()|0;ya=xJ(va|0,xa|0,48)|0;E()|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+ya>>0]|0;Aa=h+328|0;Ea=161408;za=c[Ea>>2]&c[Aa>>2];Aa=c[Ea+4>>2]&c[Aa+4>>2];Ea=h+264|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=xJ(za&Ba|0,Aa&Ea|0,8)|0;Fa=ua+-1+va+wa+xa+ya+(((za|0)!=0|(Aa|0)!=0)&1)+(((Ba&Ca&Da|0)!=0|(Ea&Fa&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Fa|0)<5?Fa:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+392>>2]|0)==0:0)g=64;else g=c[h+3984>>2]|0;ua=c[144800+(g<<8)+140>>2]|0;va=h+256|0;va=ue(h,35,c[va>>2]|0,c[va+4>>2]|0)|0;xa=E()|0;h=c[e>>2]|0;Fa=h+320|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;va=Ca&va;xa=Fa&xa;wa=xJ(va|0,xa|0,16)|0;E()|0;ya=xJ(va|0,xa|0,48)|0;E()|0;va=d[79264+(va&65535)>>0]|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+ya>>0]|0;Aa=h+328|0;Ea=161464;za=c[Ea>>2]&c[Aa>>2];Aa=c[Ea+4>>2]&c[Aa+4>>2];Ea=h+264|0;Ba=c[Ea>>2]|0;Ea=c[Ea+4>>2]|0;Da=xJ(za&Ba|0,Aa&Ea|0,8)|0;Fa=ua+-1+va+wa+xa+ya+(((za|0)!=0|(Aa|0)!=0)&1)+(((Ba&Ca&Da|0)!=0|(Ea&Fa&(E()|0)|0)!=0)&1)|0;i=i+(c[7952+(((Fa|0)<5?Fa:5)<<2)>>2]|0)|0;if((c[h+5360>>2]|0)==1?(c[h+392>>2]|0)==0:0)g=64;else g=c[h+3984>>2]|0;va=c[144800+(g<<8)+144>>2]|0;wa=h+256|0;wa=ue(h,36,c[wa>>2]|0,c[wa+4>>2]|0)|0;ya=E()|0;h=c[e>>2]|0;n=h+320|0;Da=c[n>>2]|0;n=c[n+4>>2]|0;wa=Da&wa;ya=n&ya;xa=xJ(wa|0,ya|0,16)|0;E()|0;za=xJ(wa|0,ya|0,48)|0;E()|0;wa=d[79264+(wa&65535)>>0]|0;xa=d[79264+(xa&65535)>>0]|0;ya=d[79264+(ya&65535)>>0]|0;za=d[79264+za>>0]|0;Ba=h+328|0;Fa=161472;Aa=c[Fa>>2]&c[Ba>>2];Ba=c[Fa+4>>2]&c[Ba+4>>2];Fa=h+264|0;Ca=c[Fa>>2]|0;Fa=c[Fa+4>>2]|0;Ea=xJ(Aa&Ca|0,Ba&Fa|0,8)|0;n=va+-1+wa+xa+ya+za+(((Aa|0)!=0|(Ba|0)!=0)&1)+(((Ca&Da&Ea|0)!=0|(Fa&n&(E()|0)|0)!=0)&1)|0;n=i+(c[7952+(((n|0)<5?n:5)<<2)>>2]|0)|0}while(0);o=c[h+5360>>2]|0;if((o|0)==6){l=c[h+3984>>2]|0;m=3?l>>3:l;g=m^7;if((l|0)<56){j=Ga;i=~c[j>>2];j=~c[j+4>>2];k=m;do{Ga=k;k=k+1|0;Ea=161760+(k<<3)|0;Fa=227552+(l<<6)+(k-m<<3)|0;g=g+(((c[Ea>>2]&i&c[Fa>>2]|0)==0?(c[Ea+4>>2]&j&c[Fa+4>>2]|0)==0:0)&1)|0}while((Ga|0)<6)}g=(c[7984+(((g|0)<7?g:7)<<2)>>2]|0)+n|0}else g=n;if((o|0)==7){q=h;o=7;f=p+f-((c[8016+(c[(c[h+5352>>2]|0)+40>>2]<<2)>>2]|0)+g)|0;U=557;break}else{f=p+f-g|0;switch(o|0){case 4:case 1:{g=0;break B}default:{q=h;U=557;break B}}}}while(0);if((U|0)==557){n=f+32768|0;n=16?n>>16:n;l=c[q+1936>>2]|0;m=c[q+3984>>2]|0;j=l&7;k=m&7;l=3?l>>3:l;m=3?m>>3:m;i=q+264|0;h=c[i>>2]|0;i=c[i+4>>2]|0;g=c[q+340>>2]|0;if((o|0)==3)g=(c[q+372>>2]|0)+g+(c[q+4532>>2]<<1)|0;else g=(c[q+372>>2]|0)+g|0;Ga=c[q+5352>>2]|0;g=(c[(c[Ja>>2]|0)+120>>2]<<3)+-118+((h&252645135|0)==0&(i&252645135|0)==0?0:(((h&-252645136|0)!=0|(i&-252645136|0)!=0)&1)<<4)+(((j>>>0>>0?k-j|0:j-k|0)-((l|0)<(m|0)?m-l|0:l-m|0)+g|0)*12|0)+((c[Ga+20>>2]|0)==(0-(c[Ga+16>>2]|0)|0)?48:0)|0;Ga=0-((n|0)>-1?n:0-n|0)|0;h=q;g=z(((f|0)>32767&1)-(31?n>>>31:n)<<16,(g|0)<(Ga|0)?Ga:g)|0}k=g+f|0;l=k+32768|0;l=16?l>>16:l;j=(k|0)<32768&1;f=c[Ka>>2]|0;g=c[f+12+(j<<2)>>2]|0;if((g|0)!=0?(Ha=Na[c[(c[g>>2]|0)+8>>2]&127](g,h)|0,(Ha|0)!=255):0)f=Ha;else f=d[f+22+j>>0]|0;h=c[e>>2]|0;i=c[h+5360>>2]|0;E:do switch(i|0){case 2:break;case 4:{g=j^1;if(c[h+336+((g<<3|6)<<2)>>2]|0){U=567;break E}f=(c[(c[h+5352>>2]|0)+16+(g<<2)>>2]|0)>2528?10:f;break}default:U=567}while(0);F:do if((U|0)==567){if((f|0)!=64)break;do if((c[h+348>>2]|0)==1){if((c[h+380>>2]|0)!=1){g=7;break}g=c[h+3216>>2]^c[h+1168>>2];g=(((3?g>>>3:g)^g)&1|0)==0;do if(!g){f=c[h+5352>>2]|0;if((c[f+16>>2]|0)!=830)break;if((c[f+20>>2]|0)!=830)break;f=(c[(c[Ja>>2]|0)+120>>2]<<2)+8|0;break F}while(0);g=g?7:2}else g=7;while(0);f=c[h+336+((j<<3|1)<<2)>>2]|0;if((i|0)==3)f=(c[h+4496+(j<<5)+4>>2]|0)+f|0;f=(z(f,g)|0)+40|0;f=(f|0)<64?f:64}while(0);Ja=k<<16;Ka=c[(c[Ka>>2]|0)+24>>2]|0;Ka=(((z(z(f,l)|0,128-Ka|0)|0)/64|0)+(z(Ka,16?Ja>>16:Ja)|0)|0)/128|0;Ka=((c[h+5340>>2]|0)==0?Ka:0-Ka|0)+(c[23568+(i<<2)>>2]|0)|0;Ia=La;return Ka|0} +function bD(a,b){a=a|0;b=b|0;var d=0,e=0;e=b+8|0;d=c[e+4>>2]|0;b=a;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function cD(a){a=a|0;Jv(a);return}function dD(b){b=b|0;var d=0;d=c[b>>2]|0;if((d|0)==(c[b+4>>2]|0))d=0;else{c[b>>2]=d+1;d=a[d>>0]|0}return d|0}function eD(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;fD(a,c[b>>2]|0,c[d>>2]|0);return a|0}function fD(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,43,1,1,1);c[a>>2]=39364;c[a+8>>2]=b;c[a+12>>2]=d;return}function gD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+32|0;e=d+24|0;h=d+16|0;g=d+8|0;f=d;Fx(h,49394);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Fx(g,51026);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);nx(c[a+12>>2]|0,b);Fx(f,49028);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function hD(a){a=a|0;Jv(a);return}function iD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;a=Hy(a,24)|0;b=c[b>>2]|0;Fx(h,d);e=c[e>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];jD(a,b,g,e);Ia=f;return a|0}function jD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;Jy(a,46,1,1,1);c[a>>2]=39408;c[a+8>>2]=b;f=d;d=c[f+4>>2]|0;b=a+12|0;c[b>>2]=c[f>>2];c[b+4>>2]=d;c[a+20>>2]=e;return}function kD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;nx(c[a+8>>2]|0,b);i=a+12|0;h=c[i+4>>2]|0;g=f;c[g>>2]=c[i>>2];c[g+4>>2]=h;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+20>>2]|0,b);Ia=d;return}function lD(a){a=a|0;Jv(a);return}function mD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;a=Hy(a,24)|0;b=c[b>>2]|0;Fx(h,d);e=c[e>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];jD(a,b,g,e);Ia=f;return a|0}function nD(a){a=a|0;var b=0,d=0,e=0;e=Ia;Ia=Ia+16|0;d=e;switch((Jx(a,0)|0)<<24>>24){case 84:{b=oy(Hx(a)|0)|0;c[d>>2]=b;if(!b)b=0;else wy(a+148|0,d);break}case 68:{b=iy(Hx(a)|0)|0;c[d>>2]=b;if(!b)b=0;else wy(a+148|0,d);break}default:b=vy(Hx(a)|0)|0}Ia=e;return b|0}function oD(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;d=g+4|0;e=g;f=Hx(a)|0;b=MC(f)|0;c[d>>2]=b;if(b){if((Jx(a,0)|0)<<24>>24==73){f=py(f,0)|0;c[e>>2]=f;if(!f)b=0;else b=qy(a,d,e)|0}}else b=0;Ia=g;return b|0}function pD(a,b,c){a=a|0;b=b|0;c=c|0;return QD(a+368|0,b,c)|0}function qD(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=Ia;Ia=Ia+32|0;f=g+24|0;b=g+16|0;d=g+8|0;e=g;do if((((Jx(a,0)|0)<<24>>24)+-48|0)>>>0<10)b=oD(Hx(a)|0)|0;else{Fx(b,51199);c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];if(Gx(a,f)|0){b=xD(Hx(a)|0)|0;break}Fx(d,51202);c[f>>2]=c[d>>2];c[f+4>>2]=c[d+4>>2];Gx(a,f)|0;d=Hx(a)|0;b=yD(d,0)|0;c[f>>2]=b;if(b){if((Jx(a,0)|0)<<24>>24==73){d=py(d,0)|0;c[e>>2]=d;if(!d)b=0;else b=qy(a,f,e)|0}}else b=0}while(0);Ia=g;return b|0}function rD(a,b){a=a|0;b=b|0;return sD(a+368|0,b)|0}function sD(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;tD(a,c[b>>2]|0);return a|0}function tD(a,b){a=a|0;b=b|0;Jy(a,33,1,1,1);c[a>>2]=39452;c[a+8>>2]=b;return}function uD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,51140);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Ia=d;return}function vD(a,b){a=a|0;b=b|0;b=c[b+8>>2]|0;Ya[c[(c[b>>2]|0)+24>>2]&127](a,b);return}function wD(a){a=a|0;Jv(a);return}function xD(a){a=a|0;var b=0,d=0,e=0,f=0;e=Ia;Ia=Ia+16|0;d=e;f=(((Jx(a,0)|0)<<24>>24)+-48|0)>>>0<10;b=Hx(a)|0;if(f)b=oD(b)|0;else b=nD(b)|0;c[d>>2]=b;if(!b)b=0;else b=LD(a,d)|0;Ia=e;return b|0}function yD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;i=Ia;Ia=Ia+32|0;h=i+16|0;g=i+8|0;e=i;a:do switch((Jx(b,0)|0)<<24>>24|0){case 97:switch((Jx(b,1)|0)<<24>>24|0){case 97:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51205)|0;break a}case 110:case 100:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51216)|0;break a}case 78:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51226)|0;break a}case 83:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51237)|0;break a}default:{d=0;break a}}case 99:switch((Jx(b,1)|0)<<24>>24|0){case 108:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51247)|0;break a}case 109:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51258)|0;break a}case 111:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51268)|0;break a}case 118:{c[b>>2]=(c[b>>2]|0)+2;oz(h,b+360|0,0);j=b+361|0;f=(d|0)!=0;oz(g,j,f|(a[j>>0]|0)!=0);j=Rx(Hx(b)|0)|0;c[e>>2]=j;if(!j)d=0;else{if(f)a[d>>0]=1;d=zD(b,e)|0}sz(g);sz(h);break a}default:{d=0;break a}}case 100:switch((Jx(b,1)|0)<<24>>24|0){case 97:{c[b>>2]=(c[b>>2]|0)+2;d=dy(b,51278)|0;break a}case 101:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51296)|0;break a}case 108:{c[b>>2]=(c[b>>2]|0)+2;d=AD(b)|0;break a}case 118:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51306)|0;break a}case 86:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51316)|0;break a}default:{d=0;break a}}case 101:switch((Jx(b,1)|0)<<24>>24|0){case 111:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51327)|0;break a}case 79:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51337)|0;break a}case 113:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51348)|0;break a}default:{d=0;break a}}case 103:switch((Jx(b,1)|0)<<24>>24|0){case 101:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51359)|0;break a}case 116:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51370)|0;break a}default:{d=0;break a}}case 105:{if((Jx(b,1)|0)<<24>>24==120){c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51380)|0}else d=0;break}case 108:switch((Jx(b,1)|0)<<24>>24|0){case 101:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51391)|0;break a}case 105:{c[b>>2]=(c[b>>2]|0)+2;j=MC(Hx(b)|0)|0;c[h>>2]=j;if(!j)d=0;else d=BD(b,h)|0;break a}case 115:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51402)|0;break a}case 83:{c[b>>2]=(c[b>>2]|0)+2;d=Wx(b,51413)|0;break a}case 116:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51425)|0;break a}default:{d=0;break a}}case 109:switch((Jx(b,1)|0)<<24>>24|0){case 105:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51435)|0;break a}case 73:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51445)|0;break a}case 108:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51296)|0;break a}case 76:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51456)|0;break a}case 109:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51467)|0;break a}default:{d=0;break a}}case 110:switch((Jx(b,1)|0)<<24>>24|0){case 97:{c[b>>2]=(c[b>>2]|0)+2;d=Zx(b,51478)|0;break a}case 101:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51493)|0;break a}case 103:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51435)|0;break a}case 116:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51504)|0;break a}case 119:{c[b>>2]=(c[b>>2]|0)+2;d=$x(b,51514)|0;break a}default:{d=0;break a}}case 111:switch((Jx(b,1)|0)<<24>>24|0){case 111:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51527)|0;break a}case 114:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51538)|0;break a}case 82:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51548)|0;break a}default:{d=0;break a}}case 112:switch((Jx(b,1)|0)<<24>>24|0){case 109:{c[b>>2]=(c[b>>2]|0)+2;d=Wx(b,51559)|0;break a}case 108:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51571)|0;break a}case 76:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51581)|0;break a}case 112:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51592)|0;break a}case 115:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51571)|0;break a}case 116:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51603)|0;break a}default:{d=0;break a}}case 113:{if((Jx(b,1)|0)<<24>>24==117){c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51614)|0}else d=0;break}case 114:switch((Jx(b,1)|0)<<24>>24|0){case 109:{c[b>>2]=(c[b>>2]|0)+2;d=ay(b,51624)|0;break a}case 77:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51634)|0;break a}case 115:{c[b>>2]=(c[b>>2]|0)+2;d=fy(b,51645)|0;break a}case 83:{c[b>>2]=(c[b>>2]|0)+2;d=Wx(b,51656)|0;break a}default:{d=0;break a}}case 115:{if((Jx(b,1)|0)<<24>>24==115){c[b>>2]=(c[b>>2]|0)+2;d=Wx(b,51668)|0}else d=0;break}case 118:{if((((Jx(b,1)|0)<<24>>24)+-48|0)>>>0<10){c[b>>2]=(c[b>>2]|0)+2;j=MC(Hx(b)|0)|0;c[h>>2]=j;if(!j)d=0;else d=zD(b,h)|0}else d=0;break}default:d=0}while(0);Ia=i;return d|0}function zD(a,b){a=a|0;b=b|0;return HD(a+368|0,b)|0}function AD(a){a=a|0;return GD(a+368|0,51744)|0}function BD(a,b){a=a|0;b=b|0;return CD(a+368|0,b)|0}function CD(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;DD(a,c[b>>2]|0);return a|0}function DD(a,b){a=a|0;b=b|0;Jy(a,19,1,1,1);c[a>>2]=39496;c[a+8>>2]=b;return}function ED(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,51680);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Ia=d;return}function FD(a){a=a|0;Jv(a);return}function GD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function HD(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;ID(a,c[b>>2]|0);return a|0}function ID(a,b){a=a|0;b=b|0;Jy(a,4,1,1,1);c[a>>2]=39540;c[a+8>>2]=b;return}function JD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,51760);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Ia=d;return}function KD(a){a=a|0;Jv(a);return}function LD(a,b){a=a|0;b=b|0;return MD(a+368|0,b)|0}function MD(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;ND(a,c[b>>2]|0);return a|0}function ND(a,b){a=a|0;b=b|0;Jy(a,38,1,1,1);c[a>>2]=39584;c[a+8>>2]=b;return}function OD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,50127);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);a=c[a+8>>2]|0;Ya[c[(c[a>>2]|0)+16>>2]&127](a,b);Ia=d;return}function PD(a){a=a|0;Jv(a);return}function QD(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;RD(a,c[b>>2]|0,c[d>>2]|0);return a|0}function RD(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,22,1,1,1);c[a>>2]=39628;c[a+8>>2]=b;c[a+12>>2]=d;return}function SD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;nx(c[a+8>>2]|0,b);Fx(f,51140);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+12>>2]|0,b);Ia=d;return}function TD(a,b){a=a|0;b=b|0;b=c[b+12>>2]|0;Ya[c[(c[b>>2]|0)+24>>2]&127](a,b);return}function UD(a){a=a|0;Jv(a);return}function VD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;a=Hy(a,24)|0;Fx(h,b);d=c[d>>2]|0;e=c[e>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];pC(a,g,d,e);Ia=f;return a|0}function WD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=Hy(b,16)|0;XD(b,c[d>>2]|0,(a[e>>0]|0)!=0,(a[f>>0]|0)!=0);return b|0}function XD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;Jy(b,52,1,1,1);c[b>>2]=39672;c[b+8>>2]=d;a[b+12>>0]=e&1;a[b+13>>0]=f&1;return}function YD(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+32|0;h=i+24|0;e=i+16|0;f=i+8|0;g=i;if(a[b+12>>0]|0){Fx(e,51140);c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];Uy(d,h)}Fx(f,51936);c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];Uy(d,h);if(a[b+13>>0]|0){Fx(g,51943);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];Uy(d,h)}nx(c[b+8>>2]|0,d);Ia=i;return}function ZD(a){a=a|0;Jv(a);return}function _D(a,b,c){a=a|0;b=b|0;c=c|0;return eE(a+368|0,b,c)|0}function $D(a,b,c){a=a|0;b=b|0;c=c|0;return aE(a+368|0,b,c)|0}function aE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];bE(a,b,f);Ia=e;return a|0}function bE(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,55,1,1,1);c[a>>2]=39716;c[a+8>>2]=b;b=c[d+4>>2]|0;a=a+12|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function cE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+32|0;e=d+24|0;h=d+16|0;g=d+8|0;f=d;Fx(h,49394);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Fx(g,51997);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Xz(a+12|0,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function dE(a){a=a|0;Jv(a);return}function eE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];bE(a,b,f);Ia=e;return a|0}function fE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];gE(a,b,f);Ia=e;return a|0}function gE(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,50,1,1,1);c[a>>2]=39760;c[a+8>>2]=b;b=c[d+4>>2]|0;a=a+12|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function hE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Ia;Ia=Ia+32|0;e=d+16|0;g=d+8|0;f=d;nx(c[a+8>>2]|0,b);Fx(g,49394);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Xz(a+12|0,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function iE(a){a=a|0;Jv(a);return}function jE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;a=Hy(a,24)|0;Fx(h,b);d=c[d>>2]|0;e=c[e>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];pC(a,g,d,e);Ia=f;return a|0}function kE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=Ia;Ia=Ia+32|0;g=f+24|0;h=f+16|0;j=f+8|0;i=f;a=Hy(a,28)|0;Fx(j,b);d=c[d>>2]|0;Fx(i,e);c[h>>2]=c[j>>2];c[h+4>>2]=c[j+4>>2];c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];bC(a,h,d,g);Ia=f;return a|0}function lE(a,b,c){a=a|0;b=b|0;c=c|0;return mE(a+368|0,b,c)|0}function mE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;i=b;h=c[i+4>>2]|0;b=g;c[b>>2]=c[i>>2];c[b+4>>2]=h;d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];nE(a,f,d);Ia=e;return a|0}function nE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;Jy(a,53,1,1,1);c[a>>2]=39804;f=b;e=c[f+4>>2]|0;b=a+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;c[a+16>>2]=d;return}function oE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=Ia;Ia=Ia+32|0;e=d+24|0;h=d;g=d+16|0;f=d+8|0;k=a+8|0;j=c[k+4>>2]|0;i=h;c[i>>2]=c[k>>2];c[i+4>>2]=j;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);Fx(g,49394);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);nx(c[a+16>>2]|0,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function pE(a){a=a|0;Jv(a);return}function qE(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return rE(a+368|0,b,c,d)|0}function rE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=Ia;Ia=Ia+16|0;g=f+8|0;h=f;a=Hy(a,24)|0;b=c[b>>2]|0;j=d;i=c[j+4>>2]|0;d=h;c[d>>2]=c[j>>2];c[d+4>>2]=i;e=c[e>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];sE(a,b,g,e);Ia=f;return a|0}function sE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;Jy(a,42,1,1,1);c[a>>2]=39848;c[a+8>>2]=b;f=d;d=c[f+4>>2]|0;b=a+12|0;c[b>>2]=c[f>>2];c[b+4>>2]=d;c[a+20>>2]=e;return}function tE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+64|0;i=m+56|0;e=m+48|0;j=m+40|0;k=m+32|0;l=m;f=m+24|0;g=m+16|0;h=m+8|0;d=a+12|0;Fx(i,49469);if(Dz(d,i)|0){Fx(e,49394);c[i>>2]=c[e>>2];c[i+4>>2]=c[e+4>>2];Uy(b,i)}Fx(j,49394);c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];Uy(b,i);nx(c[a+8>>2]|0,b);Fx(k,52153);c[i>>2]=c[k>>2];c[i+4>>2]=c[k+4>>2];Uy(b,i);e=d;j=c[e+4>>2]|0;k=l;c[k>>2]=c[e>>2];c[k+4>>2]=j;c[i>>2]=c[l>>2];c[i+4>>2]=c[l+4>>2];Uy(b,i);Fx(f,52156);c[i>>2]=c[f>>2];c[i+4>>2]=c[f+4>>2];Uy(b,i);nx(c[a+20>>2]|0,b);Fx(g,49390);c[i>>2]=c[g>>2];c[i+4>>2]=c[g+4>>2];Uy(b,i);Fx(i,49469);if(Dz(d,i)|0){Fx(h,49390);c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];Uy(b,i)}Ia=m;return}function uE(a){a=a|0;Jv(a);return}function vE(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return wE(a+368|0,b,c,d,e)|0}function wE(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+16|0;i=h+8|0;j=h;b=Hy(b,28)|0;d=(a[d>>0]|0)!=0;l=e;k=c[l+4>>2]|0;e=j;c[e>>2]=c[l>>2];c[e+4>>2]=k;f=c[f>>2]|0;g=c[g>>2]|0;c[i>>2]=c[j>>2];c[i+4>>2]=c[j+4>>2];xE(b,d,i,f,g);Ia=h;return b|0}function xE(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;Jy(b,57,1,1,1);c[b>>2]=39892;c[b+8>>2]=f;c[b+12>>2]=g;g=e;e=c[g+4>>2]|0;f=b+16|0;c[f>>2]=c[g>>2];c[f+4>>2]=e;a[b+24>>0]=d&1;return}function yE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+64|0;l=m+56|0;h=m+32|0;f=m+24|0;j=m+48|0;k=m+16|0;e=m+8|0;g=m+40|0;i=m;c[h>>2]=d;c[h+4>>2]=b;ox(d,40);if(!(a[b+24>>0]|0)){AE(h);ox(d,32);f=b+16|0;h=f;j=c[h+4>>2]|0;k=e;c[k>>2]=c[h>>2];c[k+4>>2]=j;c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];Uy(d,l);Fx(g,52304);c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];Uy(d,l);e=b+12|0;if(c[e>>2]|0){ox(d,32);j=f;k=c[j+4>>2]|0;b=i;c[b>>2]=c[j>>2];c[b+4>>2]=k;c[l>>2]=c[i>>2];c[l+4>>2]=c[i+4>>2];Uy(d,l);ox(d,32);nx(c[e>>2]|0,d)}}else{e=c[b+12>>2]|0;if(!e)e=b+16|0;else{nx(e,d);ox(d,32);e=b+16|0;g=e;i=c[g+4>>2]|0;b=f;c[b>>2]=c[g>>2];c[b+4>>2]=i;c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];Uy(d,l);ox(d,32)}Fx(j,52299);c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];Uy(d,l);i=e;j=c[i+4>>2]|0;b=k;c[b>>2]=c[i>>2];c[b+4>>2]=j;c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Uy(d,l);ox(d,32);AE(h)}ox(d,41);Ia=m;return}function zE(a){a=a|0;Jv(a);return}function AE(a){a=a|0;var b=0,d=0,e=0;b=Ia;Ia=Ia+16|0;d=b;e=c[a+4>>2]|0;ox(c[a>>2]|0,40);iC(d,c[e+8>>2]|0);nx(d,c[a>>2]|0);ox(c[a>>2]|0,41);Ia=b;return}function BE(a){a=a|0;var b=0,d=0;d=Ia;Ia=Ia+16|0;b=d;c[b>>2]=0;if(Nx(a,114)|0)HE(b,4);if(Nx(a,86)|0)HE(b,2);if(Nx(a,75)|0)HE(b,1);Ia=d;return c[b>>2]|0}function CE(a,b){a=a|0;b=b|0;return DE(a+368|0,b)|0}function DE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];EE(a,e);Ia=d;return a|0}function EE(a,b){a=a|0;b=b|0;var d=0;Jy(a,54,1,1,1);c[a>>2]=39936;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function FE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+32|0;e=d+16|0;h=d+8|0;f=d;Fx(h,52353);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);h=a+8|0;g=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function GE(a){a=a|0;Jv(a);return}function HE(a,b){a=a|0;b=b|0;c[a>>2]=c[a>>2]|b;return}function IE(a){a=a|0;var b=0;b=a+12|0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=a+44;return}function JE(a,b){a=a|0;b=b|0;return OE(a+368|0,b)|0}function KE(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;d=c[e>>2]|0;if((d|0)==(c[a+8>>2]|0)){NE(a,(ME(a)|0)<<1);d=c[e>>2]|0}b=c[b>>2]|0;c[e>>2]=d+4;c[d>>2]=b;return}function LE(a,b){a=a|0;b=b|0;return (xA(a)|0)+(b<<2)|0}function ME(a){a=a|0;a=(c[a+4>>2]|0)-(c[a>>2]|0)|0;return (2?a>>2:a)|0}function NE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=ME(a)|0;do if(!(Cx(a)|0)){e=mk(c[a>>2]|0,b<<2)|0;c[a>>2]=e;if(!e)sx();else{f=e;d=a+4|0;break}}else{f=kk(b<<2)|0;if(!f)sx();e=c[a>>2]|0;d=a+4|0;g=(c[d>>2]|0)-e|0;if(g|0)CJ(f|0,e|0,g|0)|0;c[a>>2]=f}while(0);c[d>>2]=f+(h<<2);c[a+8>>2]=f+(b<<2);return}function OE(a,b){a=a|0;b=b|0;a=Hy(a,20)|0;PE(a,c[b>>2]|0);return a|0}function PE(b,d){b=b|0;d=d|0;Jy(b,31,2,2,2);c[b>>2]=39980;c[b+8>>2]=d;c[b+12>>2]=0;a[b+16>>0]=0;return}function QE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;e=b+16|0;if(!(a[e>>0]|0)){oz(f,e,1);e=uz(c[b+12>>2]|0,d)|0;sz(f)}else e=0;Ia=g;return e|0}function RE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;e=b+16|0;if(!(a[e>>0]|0)){oz(f,e,1);e=qz(c[b+12>>2]|0,d)|0;sz(f)}else e=0;Ia=g;return e|0}function SE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;e=b+16|0;if(!(a[e>>0]|0)){oz(f,e,1);e=rz(c[b+12>>2]|0,d)|0;sz(f)}else e=0;Ia=g;return e|0}function TE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;e=b+16|0;if(!(a[e>>0]|0)){oz(f,e,1);b=c[b+12>>2]|0;b=Na[c[(c[b>>2]|0)+12>>2]&127](b,d)|0;sz(f)}Ia=g;return b|0}function UE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;e=b+16|0;if(!(a[e>>0]|0)){oz(f,e,1);b=c[b+12>>2]|0;Ya[c[(c[b>>2]|0)+16>>2]&127](b,d);sz(f)}Ia=g;return}function VE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=Ia;Ia=Ia+16|0;f=g;e=b+16|0;if(!(a[e>>0]|0)){oz(f,e,1);b=c[b+12>>2]|0;Ya[c[(c[b>>2]|0)+20>>2]&127](b,d);sz(f)}Ia=g;return}function WE(a){a=a|0;Jv(a);return}function XE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;g=j+4|0;h=j;Nx(b,76)|0;switch((Jx(b,0)|0)<<24>>24){case 78:{e=bF(Hx(b)|0,d)|0;break}case 90:{e=cF(Hx(b)|0,d)|0;break}case 83:{if((Jx(b,1)|0)<<24>>24==116)i=13;else{e=Hx(b)|0;f=vy(e)|0;c[g>>2]=f;if((f|0)!=0?(Jx(b,0)|0)<<24>>24==73:0){f=(d|0)!=0;e=py(e,f)|0;c[h>>2]=e;if(!e)e=0;else{if(f)a[d+1>>0]=1;e=qy(b,g,h)|0}}else e=0}break}default:i=13}if((i|0)==13){f=Hx(b)|0;e=dF(f,d)|0;c[g>>2]=e;if(e){if((Jx(b,0)|0)<<24>>24==73){wy(b+148|0,g);e=(d|0)!=0;i=py(f,e)|0;c[h>>2]=i;if(!i)e=0;else{if(e)a[d+1>>0]=1;e=qy(b,g,h)|0}}}else e=0}Ia=j;return e|0}function YE(a,b,c){a=a|0;b=b|0;c=c|0;return ZE(a+368|0,b,c)|0}function ZE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;i=b;h=c[i+4>>2]|0;b=g;c[b>>2]=c[i>>2];c[b+4>>2]=h;d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];_E(a,f,d);Ia=e;return a|0}function _E(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;Jy(a,6,1,1,1);c[a>>2]=40024;f=b;e=c[f+4>>2]|0;b=a+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;c[a+16>>2]=d;return}function $E(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;i=a+8|0;h=c[i+4>>2]|0;g=f;c[g>>2]=c[i>>2];c[g+4>>2]=h;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);ox(b,32);nx(c[a+16>>2]|0,b);Ia=d;return}function aF(a){a=a|0;Jv(a);return}function bF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+48|0;k=m+32|0;j=m+20|0;i=m+24|0;h=m+8|0;g=m;c[j>>2]=d;if(Nx(b,78)|0){e=BE(b)|0;f=(d|0)==0;if(!f)c[d+4>>2]=e;do if(Nx(b,79)|0){if(!f)a[d+8>>0]=2}else{e=(d|0)!=0;if(Nx(b,82)|0){if(!e)break;a[d+8>>0]=1;break}else{if(!e)break;a[d+8>>0]=0;break}}while(0);c[i>>2]=0;c[h>>2]=b;c[h+4>>2]=i;c[h+8>>2]=j;Fx(g,52560);c[k>>2]=c[g>>2];c[k+4>>2]=c[g+4>>2];if(Gx(b,k)|0)c[i>>2]=_x(b,52878)|0;f=b+148|0;a:while(1){if(Nx(b,69)|0){l=41;break}Nx(b,76)|0;b:do if(Nx(b,77)|0){if(!(c[i>>2]|0)){e=0;break a}}else{c:do switch((Jx(b,0)|0)<<24>>24){case 84:{if(!(HF(h,oy(Hx(b)|0)|0)|0)){e=0;break a}wy(f,i);break b}case 73:{g=py(Hx(b)|0,(c[j>>2]|0)!=0)|0;c[k>>2]=g;if((g|0)==0|(c[i>>2]|0)==0){l=26;break a}c[i>>2]=qy(b,i,k)|0;e=c[j>>2]|0;if(e|0)a[e+1>>0]=1;wy(f,i);break b}case 68:{switch((Jx(b,1)|0)<<24>>24){case 67:{l=39;break c}case 84:case 116:break;default:break c}if(!(HF(h,iy(Hx(b)|0)|0)|0)){e=0;break a}wy(f,i);break b}case 83:{if((Jx(b,1)|0)<<24>>24==116)l=39;else{e=vy(Hx(b)|0)|0;c[k>>2]=e;if(!(HF(h,e)|0)){l=44;break a}if((c[i>>2]|0)!=(e|0))wy(f,k);break b}break}case 67:break;default:l=39}while(0);if((l|0)==39){l=0;g=Hx(b)|0;if(!(HF(h,eF(g,c[j>>2]|0)|0)|0)){e=0;break a}wy(f,i);break}if(!(c[i>>2]|0)){e=0;break a}e=Hx(b)|0;if(!(HF(h,IF(e,i,c[j>>2]|0)|0)|0)){e=0;break a}g=Ay(e,c[i>>2]|0)|0;c[i>>2]=g;if(!g){e=0;break a}wy(f,i)}while(0)}if((l|0)==26)e=0;else if((l|0)==41)if((c[i>>2]|0)!=0?!(By(f)|0):0){JF(f);e=c[i>>2]|0}else e=0;else if((l|0)==44)e=0}else e=0;Ia=m;return e|0}function cF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+16|0;d=g+8|0;e=g;if(Nx(a,90)|0){f=Hx(a)|0;h=Ix(f)|0;c[d>>2]=h;do if((h|0)!=0?Nx(a,69)|0:0){if(Nx(a,115)|0){c[a>>2]=BF(c[a>>2]|0,c[a+4>>2]|0)|0;c[e>>2]=Zx(a,52818)|0;d=CF(a,d,e)|0;break}if(!(Nx(a,100)|0)){h=XE(f,b)|0;c[e>>2]=h;if(!h)d=0;else{c[a>>2]=BF(c[a>>2]|0,c[a+4>>2]|0)|0;d=CF(a,d,e)|0}break}Ox(e,a,1);if(Nx(a,95)|0){h=XE(f,b)|0;c[e>>2]=h;if(!h)d=0;else d=CF(a,d,e)|0}else d=0}else d=0;while(0)}else d=0;Ia=g;return d|0}function dF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=Ia;Ia=Ia+32|0;e=f+16|0;g=f+8|0;d=f;Fx(g,52556);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];if(!(Gx(a,e)|0)?(Fx(d,52560),c[e>>2]=c[d>>2],c[e+4>>2]=c[d+4>>2],!(Gx(a,e)|0)):0)b=eF(Hx(a)|0,b)|0;else{g=eF(Hx(a)|0,b)|0;c[e>>2]=g;if(!g)b=0;else b=fF(a,e)|0}Ia=f;return b|0}function eF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;g=h+8|0;d=h;e=Jx(a,0)|0;do if(e<<24>>24!=85){if((e+-49&255)<9){b=MC(Hx(a)|0)|0;f=12;break}Fx(d,52622);c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];if(!(Gx(a,g)|0)){b=yD(Hx(a)|0,b)|0;f=12;break}b=a+8|0;e=xy(b)|0;while(1){d=Hx(a)|0;f=MC(d)|0;c[g>>2]=f;if(!f){f=10;break}wy(b,g);if(Nx(a,69)|0){f=9;break}}if((f|0)==9){Rz(g,a,e);b=mF(a,g)|0;f=14;break}else if((f|0)==10){b=0;break}}else{b=lF(Hx(a)|0)|0;f=12}while(0);if((f|0)==12)if(!b)b=0;else{d=Hx(a)|0;f=14}if((f|0)==14)b=Ay(d,b)|0;Ia=h;return b|0}function fF(a,b){a=a|0;b=b|0;return gF(a+368|0,b)|0}function gF(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;hF(a,c[b>>2]|0);return a|0}function hF(a,b){a=a|0;b=b|0;Jy(a,34,1,1,1);c[a>>2]=40068;c[a+8>>2]=b;return}function iF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,52563);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Ia=d;return}function jF(a,b){a=a|0;b=b|0;b=c[b+8>>2]|0;Ya[c[(c[b>>2]|0)+24>>2]&127](a,b);return}function kF(a){a=a|0;Jv(a);return}function lF(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+48|0;g=i+40|0;e=i+32|0;b=i+24|0;f=i;h=i+8|0;d=i+16|0;Fx(e,52683);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];if(!(Gx(a,g)|0)){Fx(b,52686);c[g>>2]=c[b>>2];c[g+4>>2]=c[b+4>>2];if(Gx(a,g)|0){zC(f);oz(h,a+362|0,1);Fx(d,52689);c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];do if(!(Gx(a,g)|0)){b=a+8|0;d=xy(b)|0;while(1){e=Rx(Hx(a)|0)|0;c[g>>2]=e;if(!e){e=11;break}wy(b,g);if(Nx(a,69)|0){e=10;break}}if((e|0)==10){Rz(f,a,d);e=12;break}else if((e|0)==11){b=0;break}}else e=12;while(0);if((e|0)==12){Ox(g,a,0);if(Nx(a,95)|0)b=sF(a,f,g)|0;else b=0}sz(h)}else b=0}else{Ox(g,a,0);if(Nx(a,95)|0)b=rF(a,g)|0;else b=0}Ia=i;return b|0}function mF(a,b){a=a|0;b=b|0;return nF(a+368|0,b)|0}function nF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];oF(a,e);Ia=d;return a|0}function oF(a,b){a=a|0;b=b|0;var d=0;Jy(a,41,1,1,1);c[a>>2]=40112;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function pF(a,b){a=a|0;b=b|0;ox(b,91);Xz(a+8|0,b);ox(b,93);return}function qF(a){a=a|0;Jv(a);return}function rF(a,b){a=a|0;b=b|0;return xF(a+368|0,b)|0}function sF(a,b,c){a=a|0;b=b|0;c=c|0;return tF(a+368|0,b,c)|0}function tF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=Ia;Ia=Ia+32|0;f=e+24|0;g=e+16|0;i=e+8|0;h=e;a=Hy(a,24)|0;k=b;b=c[k+4>>2]|0;j=i;c[j>>2]=c[k>>2];c[j+4>>2]=b;j=d;b=c[j+4>>2]|0;d=h;c[d>>2]=c[j>>2];c[d+4>>2]=b;c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];uF(a,g,f);Ia=e;return a|0}function uF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;Jy(a,40,1,1,1);c[a>>2]=40156;f=b;e=c[f+4>>2]|0;b=a+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;b=c[d+4>>2]|0;a=a+16|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function vF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=Ia;Ia=Ia+48|0;e=d+32|0;k=d+24|0;h=d;g=d+16|0;f=d+8|0;Fx(k,52692);c[e>>2]=c[k>>2];c[e+4>>2]=c[k+4>>2];Uy(b,e);k=a+16|0;j=c[k+4>>2]|0;i=h;c[i>>2]=c[k>>2];c[i+4>>2]=j;c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);Fx(g,52700);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Xz(a+8|0,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function wF(a){a=a|0;Jv(a);return}function xF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];yF(a,e);Ia=d;return a|0}function yF(a,b){a=a|0;b=b|0;var d=0;Jy(a,39,1,1,1);c[a>>2]=40200;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function zF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+32|0;e=d+24|0;i=d+16|0;g=d;f=d+8|0;Fx(i,52755);c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];Uy(b,e);i=a+8|0;h=c[i+4>>2]|0;a=g;c[a>>2]=c[i>>2];c[a+4>>2]=h;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Fx(f,52764);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function AF(a){a=a|0;Jv(a);return}function BF(b,c){b=b|0;c=c|0;var d=0,e=0;a:do if((b|0)!=(c|0)){d=a[b>>0]|0;if(d<<24>>24!=95){if(((d<<24>>24)+-48|0)>>>0>=10)break;d=b;while(1){d=d+1|0;if((d|0)==(c|0)){b=c;break a}if(((a[d>>0]|0)+-48|0)>>>0>=10)break a}}d=b+1|0;if((d|0)!=(c|0)){d=a[d>>0]|0;if(((d<<24>>24)+-48|0)>>>0<10){b=b+2|0;break}if(d<<24>>24==95){e=b+2|0;while(1){if((e|0)==(c|0))break a;d=a[e>>0]|0;if(((d<<24>>24)+-48|0)>>>0>=10)break;e=e+1|0}return (d<<24>>24==95?e+1|0:b)|0}}}while(0);return b|0}function CF(a,b,c){a=a|0;b=b|0;c=c|0;return DF(a+368|0,b,c)|0}function DF(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;EF(a,c[b>>2]|0,c[d>>2]|0);return a|0}function EF(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,24,1,1,1);c[a>>2]=40244;c[a+8>>2]=b;c[a+12>>2]=d;return}function FF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;nx(c[a+8>>2]|0,b);Fx(f,51140);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+12>>2]|0,b);Ia=d;return}function GF(a){a=a|0;Jv(a);return}function HF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+16|0;g=i;c[g>>2]=d;e=c[b>>2]|0;if(!d)e=0;else{h=b+4|0;f=c[h>>2]|0;if(!(c[f>>2]|0))c[f>>2]=d;else{g=VF(e,f,g)|0;c[c[h>>2]>>2]=g}e=c[c[b+8>>2]>>2]|0;if(e|0)a[e+1>>0]=0;e=(c[c[h>>2]>>2]|0)!=0}Ia=i;return e|0}function IF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=Ia;Ia=Ia+16|0;h=j;i=j+4|0;f=c[d>>2]|0;if((tz(f)|0)<<24>>24==36?(g=c[f+8>>2]|0,c[h>>2]=g,(g+-2|0)>>>0<4):0)c[d>>2]=KF(b,h)|0;a:do if(!(Nx(b,67)|0))if((Jx(b,0)|0)<<24>>24==68){f=Jx(b,1)|0;switch(f<<24>>24){case 53:case 50:case 49:case 48:break;default:{f=0;break a}}c[h>>2]=(f<<24>>24)+-48;c[b>>2]=(c[b>>2]|0)+2;if(e|0)a[e>>0]=1;a[i>>0]=1;f=LF(b,d,i,h)|0}else f=0;else{f=Nx(b,73)|0;g=Jx(b,0)|0;switch(g<<24>>24){case 53:case 51:case 50:case 49:break;default:{f=0;break a}}c[h>>2]=(g<<24>>24)+-48;c[b>>2]=(c[b>>2]|0)+1;if(e|0)a[e>>0]=1;if(f?(XE(Hx(b)|0,e)|0)==0:0)f=0;else{a[i>>0]=0;f=LF(b,d,i,h)|0}}while(0);Ia=j;return f|0}function JF(a){a=a|0;a=a+4|0;c[a>>2]=(c[a>>2]|0)+-4;return}function KF(a,b){a=a|0;b=b|0;return QF(a+368|0,b)|0}function LF(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return MF(a+368|0,b,c,d)|0}function MF(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;b=Hy(b,20)|0;NF(b,c[d>>2]|0,(a[e>>0]|0)!=0,c[f>>2]|0);return b|0}function NF(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;Jy(b,37,1,1,1);c[b>>2]=40288;c[b+8>>2]=d;a[b+12>>0]=e&1;c[b+16>>2]=f;return}function OF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+32|0;g=h+16|0;e=h+8|0;f=h;if(a[b+12>>0]|0){Fx(e,50127);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];Uy(d,g)}b=c[b+8>>2]|0;Ya[c[(c[b>>2]|0)+24>>2]&127](f,b);c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Uy(d,g);Ia=h;return}function PF(a){a=a|0;Jv(a);return}function QF(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;RF(a,c[b>>2]|0);return a|0}function RF(a,b){a=a|0;b=b|0;Jy(a,35,1,1,1);c[a>>2]=40332;c[a+8>>2]=b;return}function SF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+64|0;g=k+48|0;d=k+40|0;h=k+32|0;i=k+24|0;j=k+16|0;e=k+8|0;f=k;switch(c[a+8>>2]|0){case 0:{Fx(d,49172);c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Uy(b,g);break}case 1:{Fx(h,49187);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];Uy(b,g);break}case 2:{Fx(i,52974);c[g>>2]=c[i>>2];c[g+4>>2]=c[i+4>>2];Uy(b,g);break}case 3:{Fx(j,53045);c[g>>2]=c[j>>2];c[g+4>>2]=c[j+4>>2];Uy(b,g);break}case 4:{Fx(e,53095);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];Uy(b,g);break}case 5:{Fx(f,53145);c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Uy(b,g);break}default:{}}Ia=k;return}function TF(a,b){a=a|0;b=b|0;switch(c[b+8>>2]|0){case 0:{Fx(a,49117);break}case 1:{Fx(a,49127);break}case 2:{Fx(a,49127);break}case 3:{Fx(a,52931);break}case 4:{Fx(a,52945);break}case 5:{Fx(a,52959);break}default:{}}return}function UF(a){a=a|0;Jv(a);return}function VF(a,b,c){a=a|0;b=b|0;c=c|0;return WF(a+368|0,b,c)|0}function WF(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;XF(a,c[b>>2]|0,c[d>>2]|0);return a|0}function XF(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,23,1,1,1);c[a>>2]=40376;c[a+8>>2]=b;c[a+12>>2]=d;return}function YF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;nx(c[a+8>>2]|0,b);Fx(f,51140);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+12>>2]|0,b);Ia=d;return}function ZF(a,b){a=a|0;b=b|0;b=c[b+12>>2]|0;Ya[c[(c[b>>2]|0)+24>>2]&127](a,b);return}function _F(a){a=a|0;Jv(a);return}function $F(a,b,c){a=a|0;b=b|0;c=c|0;return aG(a+368|0,b,c)|0}function aG(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;bG(a,c[b>>2]|0,c[d>>2]|0);return a|0}function bG(b,d,e){b=b|0;d=d|0;e=e|0;Jy(b,13,a[e+5>>0]|0,1,1);c[b>>2]=40420;c[b+8>>2]=d;c[b+12>>2]=e;return}function cG(a,b){a=a|0;b=b|0;return uz(c[a+12>>2]|0,b)|0}function dG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=Ia;Ia=Ia+32|0;h=i+24|0;e=i+16|0;f=i+8|0;g=i;d=a+12|0;j=c[d>>2]|0;Ya[c[(c[j>>2]|0)+16>>2]&127](j,b);if(!(qz(c[d>>2]|0,b)|0)?!(rz(c[d>>2]|0,b)|0):0){Fx(f,49392);c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];Uy(b,h)}else{Fx(e,49394);c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];Uy(b,h)}nx(c[a+8>>2]|0,b);Fx(g,53307);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];Uy(b,h);Ia=i;return}function eG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=Ia;Ia=Ia+16|0;e=f+8|0;d=f;a=a+12|0;if(!(!(qz(c[a>>2]|0,b)|0)?!(rz(c[a>>2]|0,b)|0):0)){Fx(d,49390);c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];Uy(b,e)}e=c[a>>2]|0;Ya[c[(c[e>>2]|0)+20>>2]&127](e,b);Ia=f;return}function fG(a){a=a|0;Jv(a);return}function gG(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function hG(a,b){a=a|0;b=b|0;var d=0,e=0;e=Wy(b)|0;b=Ez(b)|0;d=(b|0)==0;c[a>>2]=d?e+1|0:e;c[a+4>>2]=d?b+1|0:b;return}function iG(a,b){a=a|0;b=b|0;c[a>>2]=b;c[a+4>>2]=0;return}function jG(a,b,c){a=a|0;b=b|0;c=c|0;return kG(a+368|0,b,c)|0}function kG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];lG(a,b,f);Ia=e;return a|0}function lG(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,14,0,0,1);c[a>>2]=40464;c[a+8>>2]=b;b=d;d=c[b+4>>2]|0;a=a+12|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function mG(a,b){a=a|0;b=b|0;return 1}function nG(a,b){a=a|0;b=b|0;return 1}function oG(a,b){a=a|0;b=b|0;a=c[a+8>>2]|0;Ya[c[(c[a>>2]|0)+16>>2]&127](a,b);return}function pG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+48|0;g=i+32|0;d=i+24|0;e=i+16|0;h=i+8|0;f=i;if((Yz(b)|0)<<24>>24!=93){Fx(d,49392);c[g>>2]=c[d>>2];c[g+4>>2]=c[d+4>>2];Uy(b,g)}Fx(e,53367);c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];Uy(b,g);d=a+12|0;if(!(rG(d)|0)){if(tG(d)|0)nx(uG(d)|0,b)}else{sG(h,d);c[g>>2]=c[h>>2];c[g+4>>2]=c[h+4>>2];Uy(b,g)}Fx(f,49028);c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Uy(b,g);a=c[a+8>>2]|0;Ya[c[(c[a>>2]|0)+20>>2]&127](a,b);Ia=i;return}function qG(a){a=a|0;Jv(a);return}function rG(a){a=a|0;if(!(c[a+4>>2]|0))a=0;else a=(c[a>>2]|0)!=0;return a|0}function sG(a,b){a=a|0;b=b|0;Kx(a,c[b>>2]|0,c[b+4>>2]|0);return}function tG(a){a=a|0;if(!(c[a>>2]|0))a=0;else a=(c[a+4>>2]|0)==0;return a|0}function uG(a){a=a|0;return c[a>>2]|0}function vG(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;iC(a,c[b>>2]|0);return a|0}function wG(a,b){a=a|0;b=b|0;return GG(a+368|0,b)|0}function xG(a,b,c){a=a|0;b=b|0;c=c|0;return FG(a+368|0,b,c)|0}function yG(a,b,c){a=a|0;b=b|0;c=c|0;return EG(a+368|0,b,c)|0}function zG(a,b,c){a=a|0;b=b|0;c=c|0;return AG(a+368|0,b,c)|0}function AG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Ia;Ia=Ia+32|0;f=e+16|0;g=e+8|0;h=e;a=Hy(a,20)|0;b=c[b>>2]|0;j=d;i=c[j+4>>2]|0;d=h;c[d>>2]=c[j>>2];c[d+4>>2]=i;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];hG(g,f);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];BG(a,b,f);Ia=e;return a|0}function BG(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,25,1,1,1);c[a>>2]=40508;c[a+8>>2]=b;b=d;d=c[b+4>>2]|0;a=a+12|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function CG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=Ia;Ia=Ia+32|0;e=g+24|0;h=g+16|0;f=g+8|0;d=g;nx(c[a+8>>2]|0,b);Fx(h,53417);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);a=a+12|0;if(!(tG(a)|0)){if(rG(a)|0){sG(f,a);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e)}}else nx(uG(a)|0,b);Fx(d,49028);c[e>>2]=c[d>>2];c[e+4>>2]=c[d+4>>2];Uy(b,e);Ia=g;return}function DG(a){a=a|0;Jv(a);return}function EG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;iG(g,c[d>>2]|0);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];BG(a,b,f);Ia=e;return a|0}function FG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=Ia;Ia=Ia+32|0;f=e+16|0;g=e+8|0;h=e;a=Hy(a,20)|0;b=c[b>>2]|0;j=d;i=c[j+4>>2]|0;d=h;c[d>>2]=c[j>>2];c[d+4>>2]=i;c[f>>2]=c[h>>2];c[f+4>>2]=c[h+4>>2];hG(g,f);c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];BG(a,b,f);Ia=e;return a|0}function GG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+32|0;e=d+16|0;f=d+8|0;g=d;a=Hy(a,16)|0;i=b;h=c[i+4>>2]|0;b=g;c[b>>2]=c[i>>2];c[b+4>>2]=h;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];hG(f,e);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];HG(a,e);Ia=d;return a|0}function HG(a,b){a=a|0;b=b|0;var d=0;Jy(a,26,1,1,1);c[a>>2]=40552;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function IG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+32|0;e=d+24|0;h=d+16|0;g=d+8|0;f=d;Fx(h,53473);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);sG(g,a+8|0);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Fx(f,49028);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function JG(a){a=a|0;Jv(a);return}function KG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function LG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function MG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function NG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function OG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function PG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function QG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function RG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function SG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function TG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function UG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function VG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function WG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function XG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function YG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;Fx(f,b);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];$C(a,e);Ia=d;return a|0}function ZG(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=d;c[b+4>>2]=c[d>>2];a[b+8>>0]=1;c[d>>2]=e;return}function _G(b){b=b|0;if(a[b+8>>0]|0)c[c[b>>2]>>2]=c[b+4>>2];return}function $G(a,b,c){a=a|0;b=b|0;c=c|0;return pH(a+368|0,b,c)|0}function aH(a,b,c){a=a|0;b=b|0;c=c|0;return lH(a+368|0,b,c)|0}function bH(a,b,c){a=a|0;b=b|0;c=c|0;return cH(a+368|0,b,c)|0}function cH(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;dH(a,c[b>>2]|0,c[d>>2]|0);return a|0}function dH(b,d,e){b=b|0;d=d|0;e=e|0;Jy(b,3,a[d+5>>0]|0,a[d+6>>0]|0,a[d+7>>0]|0);c[b>>2]=40596;c[b+8>>2]=e;c[b+12>>2]=d;return}function eH(a,b){a=a|0;b=b|0;return uz(c[a+12>>2]|0,b)|0}function fH(a,b){a=a|0;b=b|0;return qz(c[a+12>>2]|0,b)|0}function gH(a,b){a=a|0;b=b|0;return rz(c[a+12>>2]|0,b)|0}function hH(a,b){a=a|0;b=b|0;var d=0;d=c[a+12>>2]|0;Ya[c[(c[d>>2]|0)+16>>2]&127](d,b);kH(a,b);return}function iH(a,b){a=a|0;b=b|0;a=c[a+12>>2]|0;Ya[c[(c[a>>2]|0)+20>>2]&127](a,b);return}function jH(a){a=a|0;Jv(a);return}function kH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+32|0;h=i+24|0;e=i+16|0;f=i+8|0;g=i;d=a+8|0;a=c[d>>2]|0;if(a&1){Fx(e,53585);c[h>>2]=c[e>>2];c[h+4>>2]=c[e+4>>2];Uy(b,h);a=c[d>>2]|0}if(a&2){Fx(f,53592);c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];Uy(b,h);a=c[d>>2]|0}if(a&4|0){Fx(g,53602);c[h>>2]=c[g>>2];c[h+4>>2]=c[g+4>>2];Uy(b,h)}Ia=i;return}function lH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];mH(a,b,f);Ia=e;return a|0}function mH(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,2,1,1,1);c[a>>2]=40640;c[a+8>>2]=b;b=c[d+4>>2]|0;a=a+12|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function nH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+32|0;e=d+16|0;h=d+8|0;f=d;nx(c[a+8>>2]|0,b);Fx(h,49392);c[e>>2]=c[h>>2];c[e+4>>2]=c[h+4>>2];Uy(b,e);h=a+12|0;g=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function oH(a){a=a|0;Jv(a);return}function pH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];qH(a,b,f);Ia=e;return a|0}function qH(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,10,1,1,1);c[a>>2]=40684;c[a+8>>2]=b;b=c[d+4>>2]|0;a=a+12|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function rH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+32|0;e=d+24|0;i=d+16|0;g=d;f=d+8|0;nx(c[a+8>>2]|0,b);Fx(i,49576);c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];Uy(b,e);i=a+12|0;h=c[i+4>>2]|0;a=g;c[a>>2]=c[i>>2];c[a+4>>2]=h;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Fx(f,49469);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function sH(a){a=a|0;Jv(a);return}function tH(a,b){a=a|0;b=b|0;return HH(a+368|0,b)|0}function uH(a,b){a=a|0;b=b|0;return DH(a+368|0,b)|0}function vH(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return wH(a+368|0,b,c,d,e,f)|0}function wH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;i=Ia;Ia=Ia+16|0;j=i+8|0;k=i;b=Hy(b,32)|0;d=c[d>>2]|0;m=e;l=c[m+4>>2]|0;e=k;c[e>>2]=c[m>>2];c[e+4>>2]=l;f=c[f>>2]|0;g=a[g>>0]|0;h=c[h>>2]|0;c[j>>2]=c[k>>2];c[j+4>>2]=c[k+4>>2];xH(b,d,j,f,g,h);Ia=i;return b|0}function xH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;Jy(b,15,0,1,0);c[b>>2]=40728;c[b+8>>2]=d;i=e;e=c[i+4>>2]|0;d=b+12|0;c[d>>2]=c[i>>2];c[d+4>>2]=e;c[b+20>>2]=f;a[b+24>>0]=g;c[b+28>>2]=h;return}function yH(a,b){a=a|0;b=b|0;return 1}function zH(a,b){a=a|0;b=b|0;return 1}function AH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=c[a+8>>2]|0;Ya[c[(c[a>>2]|0)+16>>2]&127](a,b);Fx(f,49392);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function BH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+64|0;l=m+56|0;e=m+48|0;g=m+40|0;f=m+32|0;h=m+24|0;i=m+16|0;j=m+8|0;k=m;Fx(e,49394);c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];Uy(d,l);Xz(b+12|0,d);Fx(g,49390);c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];Uy(d,l);g=c[b+8>>2]|0;Ya[c[(c[g>>2]|0)+20>>2]&127](g,d);g=b+20|0;e=c[g>>2]|0;if(e&1){Fx(f,53585);c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];Uy(d,l);e=c[g>>2]|0}if(e&2){Fx(h,53592);c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];Uy(d,l);e=c[g>>2]|0}if(e&4|0){Fx(i,53602);c[l>>2]=c[i>>2];c[l+4>>2]=c[i+4>>2];Uy(d,l)}switch(a[b+24>>0]|0){case 1:{Fx(j,53787);c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];Uy(d,l);break}case 2:{Fx(k,53790);c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Uy(d,l);break}default:{}}e=b+28|0;if(c[e>>2]|0){ox(d,32);nx(c[e>>2]|0,d)}Ia=m;return}function CH(a){a=a|0;Jv(a);return}function DH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];EH(a,e);Ia=d;return a|0}function EH(a,b){a=a|0;b=b|0;var d=0;Jy(a,17,1,1,1);c[a>>2]=40772;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function FH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,53843);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Xz(a+8|0,b);ox(b,41);Ia=d;return}function GH(a){a=a|0;Jv(a);return}function HH(a,b){a=a|0;b=b|0;a=Hy(a,12)|0;IH(a,c[b>>2]|0);return a|0}function IH(a,b){a=a|0;b=b|0;Jy(a,16,1,1,1);c[a>>2]=40816;c[a+8>>2]=b;return}function JH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Ia;Ia=Ia+32|0;e=d+16|0;g=d+8|0;f=d;Fx(g,53907);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function KH(a){a=a|0;Jv(a);return}function LH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function MH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;Jy(a,20,1,1,1);c[a>>2]=40860;f=b;e=c[f+4>>2]|0;b=a+8|0;c[b>>2]=c[f>>2];c[b+4>>2]=e;c[a+16>>2]=d;return}function NH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;i=a+8|0;h=c[i+4>>2]|0;g=f;c[g>>2]=c[i>>2];c[g+4>>2]=h;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+16>>2]|0,b);Ia=d;return}function OH(a){a=a|0;Jv(a);return}function PH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;b=c[b>>2]|0;i=d;h=c[i+4>>2]|0;d=g;c[d>>2]=c[i>>2];c[d+4>>2]=h;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];QH(a,b,f);Ia=e;return a|0}function QH(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,1,1,1,1);c[a>>2]=40904;c[a+8>>2]=b;b=d;d=c[b+4>>2]|0;a=a+12|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;return}function RH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=Ia;Ia=Ia+32|0;e=d+24|0;i=d+16|0;g=d;f=d+8|0;nx(c[a+8>>2]|0,b);Fx(i,52156);c[e>>2]=c[i>>2];c[e+4>>2]=c[i+4>>2];Uy(b,e);i=a+12|0;h=c[i+4>>2]|0;a=g;c[a>>2]=c[i>>2];c[a+4>>2]=h;c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);Fx(f,49390);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Ia=d;return}function SH(a){a=a|0;Jv(a);return}function TH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=Ia;Ia=Ia+16|0;e=f+8|0;d=f;a:do switch((Jx(a,0)|0)<<24>>24|0){case 84:switch((Jx(a,1)|0)<<24>>24|0){case 86:{c[a>>2]=(c[a>>2]|0)+2;d=Rx(Hx(a)|0)|0;c[e>>2]=d;if(!d)b=0;else b=lI(a,e)|0;break a}case 84:{c[a>>2]=(c[a>>2]|0)+2;d=Rx(Hx(a)|0)|0;c[e>>2]=d;if(!d)b=0;else b=mI(a,e)|0;break a}case 73:{c[a>>2]=(c[a>>2]|0)+2;d=Rx(Hx(a)|0)|0;c[e>>2]=d;if(!d)b=0;else b=nI(a,e)|0;break a}case 83:{c[a>>2]=(c[a>>2]|0)+2;d=Rx(Hx(a)|0)|0;c[e>>2]=d;if(!d)b=0;else b=oI(a,e)|0;break a}case 99:{c[a>>2]=(c[a>>2]|0)+2;if(pI(a)|0){b=0;break a}if(pI(a)|0){b=0;break a}d=Ix(Hx(a)|0)|0;c[e>>2]=d;if(!d)b=0;else b=qI(a,e)|0;break a}case 67:{c[a>>2]=(c[a>>2]|0)+2;b=Hx(a)|0;g=Rx(b)|0;c[e>>2]=g;do if(g){Ox(d,a,1);if(Px(d)|0){b=0;break}if(Nx(a,95)|0){g=Rx(b)|0;c[d>>2]=g;if(!g)b=0;else b=rI(a,d,e)|0}else b=0}else b=0;while(0);break a}case 87:{c[a>>2]=(c[a>>2]|0)+2;g=XE(Hx(a)|0,0)|0;c[e>>2]=g;if(!g)b=0;else b=Qx(a,54188,e)|0;break a}case 72:{c[a>>2]=(c[a>>2]|0)+2;g=XE(Hx(a)|0,0)|0;c[e>>2]=g;if(!g)b=0;else b=sI(a,e)|0;break a}default:{c[a>>2]=(c[a>>2]|0)+1;b=(Jx(a,0)|0)<<24>>24==118;if(pI(a)|0){b=0;break a}g=Ix(Hx(a)|0)|0;c[e>>2]=g;do if(g)if(b){b=tI(a,e)|0;break}else{b=uI(a,e)|0;break}else b=0;while(0);break a}}case 71:{switch((Jx(a,1)|0)<<24>>24|0){case 86:{c[a>>2]=(c[a>>2]|0)+2;g=XE(Hx(a)|0,0)|0;c[e>>2]=g;if(!g)b=0;else b=vI(a,e)|0;break a}case 82:break;default:{b=0;break a}}c[a>>2]=(c[a>>2]|0)+2;g=XE(Hx(a)|0,0)|0;c[e>>2]=g;if(!g)b=0;else{g=Dy(a,d)|0;if(g|(Nx(a,95)|0))b=wI(a,e)|0;else b=0}break}default:b=0}while(0);Ia=f;return b|0}function UH(b,d){b=b|0;d=d|0;a[b>>0]=0;a[b+1>>0]=0;c[b+4>>2]=0;a[b+8>>0]=0;c[b+12>>2]=ME(d+332|0)|0;return}function VH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=c[b+12>>2]|0;g=a+332|0;h=ME(g)|0;e=a+288|0;d=f;while(1){if(d>>>0>=h>>>0){i=5;break}b=c[(iI(g,d)|0)>>2]|0;a=c[b+8>>2]|0;if(a>>>0>=(dA(e)|0)>>>0){b=1;break}c[b+12>>2]=c[(LE(e,a)|0)>>2];d=d+1|0}if((i|0)==5){jI(g,f);b=0}return b|0}function WH(a){a=a|0;var b=0;a=c[a>>2]|0;if(Mx(a)|0?(b=Jx(a,0)|0,b<<24>>24!=69):0)return b<<24>>24==46|b<<24>>24==95|0;return 1}function XH(a,b){a=a|0;b=b|0;return eI(a+368|0,b)|0}function YH(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return ZH(a+368|0,b,c,d,e,f,g)|0}function ZH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0;j=Ia;Ia=Ia+16|0;k=j+8|0;l=j;b=Hy(b,36)|0;d=c[d>>2]|0;e=c[e>>2]|0;n=f;m=c[n+4>>2]|0;f=l;c[f>>2]=c[n>>2];c[f+4>>2]=m;g=c[g>>2]|0;h=c[h>>2]|0;i=a[i>>0]|0;c[k>>2]=c[l>>2];c[k+4>>2]=c[l+4>>2];_H(b,d,e,k,g,h,i);Ia=j;return b|0}function _H(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;Jy(b,18,0,1,0);c[b>>2]=40948;c[b+8>>2]=d;c[b+12>>2]=e;e=f;f=c[e+4>>2]|0;d=b+16|0;c[d>>2]=c[e>>2];c[d+4>>2]=f;c[b+24>>2]=g;c[b+28>>2]=h;a[b+32>>0]=i;return}function $H(a,b){a=a|0;b=b|0;return 1}function aI(a,b){a=a|0;b=b|0;return 1}function bI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=Ia;Ia=Ia+16|0;g=h+8|0;f=h;e=a+8|0;d=c[e>>2]|0;if(d|0?(Ya[c[(c[d>>2]|0)+16>>2]&127](d,b),!(uz(c[e>>2]|0,b)|0)):0){Fx(f,49392);c[g>>2]=c[f>>2];c[g+4>>2]=c[f+4>>2];Uy(b,g)}nx(c[a+12>>2]|0,b);Ia=h;return}function cI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+64|0;l=m+56|0;f=m+48|0;e=m+40|0;g=m+32|0;h=m+24|0;i=m+16|0;j=m+8|0;k=m;Fx(f,49394);c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];Uy(d,l);Xz(b+16|0,d);Fx(e,49390);c[l>>2]=c[e>>2];c[l+4>>2]=c[e+4>>2];Uy(d,l);e=c[b+8>>2]|0;if(e|0)Ya[c[(c[e>>2]|0)+20>>2]&127](e,d);f=b+28|0;e=c[f>>2]|0;if(e&1){Fx(g,53585);c[l>>2]=c[g>>2];c[l+4>>2]=c[g+4>>2];Uy(d,l);e=c[f>>2]|0}if(e&2){Fx(h,53592);c[l>>2]=c[h>>2];c[l+4>>2]=c[h+4>>2];Uy(d,l);e=c[f>>2]|0}if(e&4|0){Fx(i,53602);c[l>>2]=c[i>>2];c[l+4>>2]=c[i+4>>2];Uy(d,l)}switch(a[b+32>>0]|0){case 1:{Fx(j,53787);c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];Uy(d,l);break}case 2:{Fx(k,53790);c[l>>2]=c[k>>2];c[l+4>>2]=c[k+4>>2];Uy(d,l);break}default:{}}e=c[b+24>>2]|0;if(e|0)nx(e,d);Ia=m;return}function dI(a){a=a|0;Jv(a);return}function eI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;a=Hy(a,16)|0;h=b;g=c[h+4>>2]|0;b=f;c[b>>2]=c[h>>2];c[b+4>>2]=g;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];fI(a,e);Ia=d;return a|0}function fI(a,b){a=a|0;b=b|0;var d=0;Jy(a,9,1,1,1);c[a>>2]=40992;d=b;b=c[d+4>>2]|0;a=a+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;return}function gI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=Ia;Ia=Ia+16|0;e=d+8|0;f=d;Fx(f,54126);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);Xz(a+8|0,b);ox(b,93);Ia=d;return}function hI(a){a=a|0;Jv(a);return}function iI(a,b){a=a|0;b=b|0;return (kI(a)|0)+(b<<2)|0}function jI(a,b){a=a|0;b=b|0;c[a+4>>2]=(c[a>>2]|0)+(b<<2);return}function kI(a){a=a|0;return c[a>>2]|0}function lI(a,b){a=a|0;b=b|0;return KI(a+368|0,54505,b)|0}function mI(a,b){a=a|0;b=b|0;return JI(a+368|0,54496,b)|0}function nI(a,b){a=a|0;b=b|0;return II(a+368|0,54482,b)|0}function oI(a,b){a=a|0;b=b|0;return HI(a+368|0,54463,b)|0}function pI(a){a=a|0;var b=0,c=0,d=0;d=Ia;Ia=Ia+16|0;b=d+8|0;c=d;if(!(Nx(a,104)|0))if(Nx(a,118)|0){Ox(b,a,1);if(!(Px(b)|0)?Nx(a,95)|0:0){Ox(c,a,1);if(Px(c)|0)b=1;else b=(Nx(a,95)|0)^1}else b=1}else b=1;else{Ox(b,a,1);if(Px(b)|0)b=1;else b=(Nx(a,95)|0)^1}Ia=d;return b|0}function qI(a,b){a=a|0;b=b|0;return GI(a+368|0,54436,b)|0}function rI(a,b,c){a=a|0;b=b|0;c=c|0;return CI(a+368|0,b,c)|0}function sI(a,b){a=a|0;b=b|0;return BI(a+368|0,54307,b)|0}function tI(a,b){a=a|0;b=b|0;return AI(a+368|0,54289,b)|0}function uI(a,b){a=a|0;b=b|0;return zI(a+368|0,54267,b)|0}function vI(a,b){a=a|0;b=b|0;return yI(a+368|0,54247,b)|0}function wI(a,b){a=a|0;b=b|0;return xI(a+368|0,54222,b)|0}function xI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function yI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function zI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function AI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function BI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function CI(a,b,d){a=a|0;b=b|0;d=d|0;a=Hy(a,16)|0;DI(a,c[b>>2]|0,c[d>>2]|0);return a|0}function DI(a,b,d){a=a|0;b=b|0;d=d|0;Jy(a,21,1,1,1);c[a>>2]=41036;c[a+8>>2]=b;c[a+12>>2]=d;return}function EI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=Ia;Ia=Ia+32|0;e=d+16|0;g=d+8|0;f=d;Fx(g,54348);c[e>>2]=c[g>>2];c[e+4>>2]=c[g+4>>2];Uy(b,e);nx(c[a+8>>2]|0,b);Fx(f,54373);c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];Uy(b,e);nx(c[a+12>>2]|0,b);Ia=d;return}function FI(a){a=a|0;Jv(a);return}function GI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function HI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function II(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function JI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function KI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=Ia;Ia=Ia+16|0;f=e+8|0;g=e;a=Hy(a,20)|0;Fx(g,b);d=c[d>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=c[g+4>>2];MH(a,f,d);Ia=e;return a|0}function LI(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=d;c[b+4>>2]=e;MI(b+8|0);MI(b+148|0);IE(b+288|0);NI(b+332|0);a[b+360>>0]=1;a[b+361>>0]=0;a[b+362>>0]=0;OI(b+368|0);return}function MI(a){a=a|0;var b=0;b=a+12|0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=a+140;return}function NI(a){a=a|0;var b=0;b=a+12|0;c[a>>2]=b;c[a+4>>2]=b;c[a+8>>2]=a+28;return}function OI(a){a=a|0;PI(a);return}function PI(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+4096>>2]=a;return}function QI(a){a=a|0;return}function RI(a){a=a|0;c[a>>2]=41080;VI(a+4|0);return}function SI(a){a=a|0;RI(a);Jv(a);return}function TI(a){a=a|0;return UI(a+4|0)|0}function UI(a){a=a|0;return c[a>>2]|0}function VI(a){a=a|0;var b=0,d=0;if(Ov(a)|0?(b=WI(c[a>>2]|0)|0,d=b+8|0,a=c[d>>2]|0,c[d>>2]=a+-1,(a|0)<1):0)Jv(b);return}function WI(a){a=a|0;return a+-12|0}function XI(a){a=a|0;RI(a);Jv(a);return}function YI(a){a=a|0;return}function ZI(a){a=a|0;YI(a);Jv(a);return}function _I(a){a=a|0;return 54550}function $I(a){a=a|0;Sw(a);Jv(a);return}function aJ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(_w(b,c[d+8>>2]|0,h)|0)bx(0,d,e,f,g);else{r=d+52|0;i=a[r>>0]|0;q=d+53|0;j=a[q>>0]|0;p=c[b+12>>2]|0;n=b+16+(p<<3)|0;a[r>>0]=0;a[q>>0]=0;eJ(b+16|0,d,e,f,g,h);l=a[r>>0]|0;i=l|i;k=a[q>>0]|0;j=k|j;a:do if((p|0)>1){o=d+24|0;m=b+8|0;p=d+54|0;b=b+24|0;do{j=j&1;i=i&1;if(a[p>>0]|0)break a;if(!(l<<24>>24)){if(k<<24>>24?(c[m>>2]&1|0)==0:0)break a}else{if((c[o>>2]|0)==1)break a;if(!(c[m>>2]&2))break a}a[r>>0]=0;a[q>>0]=0;eJ(b,d,e,f,g,h);l=a[r>>0]|0;i=l|i;k=a[q>>0]|0;j=k|j;b=b+8|0}while(b>>>0>>0)}while(0);a[r>>0]=i<<24>>24!=0&1;a[q>>0]=j<<24>>24!=0&1}return}function bJ(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if(!(_w(b,c[d+8>>2]|0,g)|0)){if(!(_w(b,c[d>>2]|0,g)|0)){p=c[b+12>>2]|0;k=b+16+(p<<3)|0;fJ(b+16|0,d,e,f,g);h=b+24|0;if((p|0)<=1)break;i=c[b+8>>2]|0;if((i&2|0)==0?(j=d+36|0,(c[j>>2]|0)!=1):0){if(!(i&1)){i=d+54|0;while(1){if(a[i>>0]|0)break a;if((c[j>>2]|0)==1)break a;fJ(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}i=d+24|0;b=d+54|0;while(1){if(a[b>>0]|0)break a;if((c[j>>2]|0)==1?(c[i>>2]|0)==1:0)break a;fJ(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}i=d+54|0;while(1){if(a[i>>0]|0)break a;fJ(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(p=d+20|0,(c[p>>2]|0)!=(e|0)):0){c[d+32>>2]=f;o=d+44|0;if((c[o>>2]|0)!=4){k=b+16+(c[b+12>>2]<<3)|0;l=d+52|0;f=d+53|0;n=d+54|0;j=b+8|0;m=d+24|0;h=0;i=0;b=b+16|0;b:while(1){if(b>>>0>=k>>>0){b=18;break}a[l>>0]=0;a[f>>0]=0;eJ(b,d,e,e,1,g);if(a[n>>0]|0){b=18;break}do if(a[f>>0]|0){if(!(a[l>>0]|0))if(!(c[j>>2]&1)){b=19;break b}else{i=1;break}if((c[m>>2]|0)==1){h=1;b=19;break b}if(!(c[j>>2]&2)){h=1;b=19;break b}else{h=1;i=1}}while(0);b=b+8|0}if((b|0)==18)if(i)b=19;else i=4;if((b|0)==19)i=3;c[o>>2]=i;if(h&1)break}c[p>>2]=e;e=d+40|0;c[e>>2]=(c[e>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else ax(0,d,e,f);while(0);return}function cJ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if(!(_w(b,c[d+8>>2]|0,0)|0)){h=c[b+12>>2]|0;g=b+16+(h<<3)|0;dJ(b+16|0,d,e,f);if((h|0)>1){h=d+54|0;b=b+24|0;do{dJ(b,d,e,f);if(a[h>>0]|0)break a;b=b+8|0}while(b>>>0>>0)}}else $w(0,d,e,f);while(0);return}function dJ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;if(d){f=8?g>>8:g;if(g&1)f=c[(c[d>>2]|0)+f>>2]|0}else f=0;a=c[a>>2]|0;_a[c[(c[a>>2]|0)+28>>2]&15](a,b,d+f|0,(g&2|0)==0?2:e);return}function eJ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=c[a+4>>2]|0;h=8?i>>8:i;if(i&1)h=c[(c[e>>2]|0)+h>>2]|0;a=c[a>>2]|0;ab[c[(c[a>>2]|0)+20>>2]&15](a,b,d,e+h|0,(i&2|0)==0?2:f,g);return}function fJ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=c[a+4>>2]|0;g=8?h>>8:h;if(h&1)g=c[(c[d>>2]|0)+g>>2]|0;a=c[a>>2]|0;$a[c[(c[a>>2]|0)+24>>2]&3](a,b,d+g|0,(h&2|0)==0?2:e,f);return}function gJ(a){a=a|0;c[a>>2]=41120;return}function hJ(a){a=a|0;return ((iJ(a)|0)^1)&1|0}function iJ(b){b=b|0;return (a[b>>0]|0)!=0|0}function jJ(a){a=a|0;c[a>>2]=0;kJ(a);return}function kJ(a){a=a|0;c[a>>2]=c[a>>2]|1;return}function lJ(a){a=a|0;c[a>>2]=0;return}function mJ(){return 0}function nJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=Ia;Ia=Ia+16|0;e=f;c[e>>2]=c[d>>2];a=Oa[c[(c[a>>2]|0)+16>>2]&31](a,b,e)|0;if(a)c[d>>2]=c[e>>2];Ia=f;return a&1|0}function oJ(a){a=a|0;if(!a)a=0;else a=(cx(a,32008,33192,0)|0)!=0&1;return a|0}function pJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (D(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function qJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return (D(d|0),a-c>>>0|0)|0}function rJ(a){a=a|0;return (a?31-(B(a^a-1)|0)|0:32)|0}function sJ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return (D(n|0),f)|0}else{if(!g){n=0;f=0;return (D(n|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (D(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(B(i|0)|0)-(B(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<>>(m>>>0)&b;g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return (D(n|0),f)|0}g=h-1|0;if(g&h|0){i=(B(h|0)|0)+33-(B(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<>>(o>>>0))&j|l<>31;break}if(f|0){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return (D(o|0),p)|0}else{p=rJ(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (D(o|0),p)|0}}else{if(g){if(f|0){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return (D(o|0),p)|0}if(!l){if(f|0){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return (D(o|0),p)|0}g=i-1|0;if(!(g&i)){if(f|0){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((rJ(i|0)|0)>>>0);return (D(o|0),p)|0}g=(B(i|0)|0)-(B(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return (D(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=pJ(m|0,l|0,-1,-1)|0;d=E()|0;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;qJ(k|0,d|0,e|0,n|0)|0;p=E()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=qJ(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=E()|0;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f|0){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return (D(o|0),p)|0}function tJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=qJ(j^a|0,i^b|0,j|0,i|0)|0;g=E()|0;a=f^j;b=e^i;return qJ((sJ(h,g,qJ(f^c|0,e^d|0,f|0,e|0)|0,E()|0,0)|0)^a|0,(E()|0)^b|0,a|0,b|0)|0}function uJ(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=z(e,f)|0;d=a>>>16;a=(c>>>16)+(z(e,d)|0)|0;e=b>>>16;b=z(e,f)|0;return (D((a>>>16)+(z(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function vJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=uJ(e,f)|0;a=E()|0;return (D((z(b,f)|0)+(z(d,e)|0)+a|a&0|0),c|0|0)|0}function wJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return sJ(a,b,c,d,0)|0}function xJ(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function yJ(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){D(b<>>32-c|0);return a<=0.0?+t(a+.5):+y(a-.5)}function BJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){ka(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function CJ(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else BJ(b,c,d)|0;return b|0}function DJ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function EJ(a){a=a|0;return 0}function FJ(a){a=a|0;var b=0,d=0,e=0;e=ha()|0;d=c[i>>2]|0;b=d+a|0;if((a|0)>0&(b|0)<(d|0)|(b|0)<0){Da(b|0)|0;S(12);return -1}if((b|0)>(e|0))if(!(la(b|0)|0)){S(12);return -1}c[i>>2]=b;return d|0}function GJ(a,b){a=a|0;b=b|0;return La[a&127](b|0)|0}function HJ(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=f|0;g=g|0;return Ma[a&1](b|0,+c,d|0,e|0,f|0,g|0)|0}function IJ(a,b,c){a=a|0;b=b|0;c=c|0;return Na[a&127](b|0,c|0)|0}function JJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Oa[a&31](b|0,c|0,d|0)|0}function KJ(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Pa[a&7](b|0,c|0,d|0,e|0)|0}function LJ(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return Qa[a&7](b|0,c|0,d|0,e|0,+f)|0}function MJ(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Ra[a&31](b|0,c|0,d|0,e|0,f|0)|0}function NJ(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;return Sa[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function OJ(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Ta[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function PJ(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;return Ua[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function QJ(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return Va[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function RJ(a){a=a|0;Wa[a&3]()}function SJ(a,b){a=a|0;b=b|0;Xa[a&255](b|0)}function TJ(a,b,c){a=a|0;b=b|0;c=c|0;Ya[a&127](b|0,c|0)}function UJ(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Za[a&0](b|0,c|0,d|0)}function VJ(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_a[a&15](b|0,c|0,d|0,e|0)}function WJ(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;$a[a&3](b|0,c|0,d|0,e|0,f|0)}function XJ(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;ab[a&15](b|0,c|0,d|0,e|0,f|0,g|0)}function YJ(a){a=a|0;C(0);return 0}function ZJ(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;C(1);return 0}function _J(a,b){a=a|0;b=b|0;C(2);return 0}function $J(a,b,c){a=a|0;b=b|0;c=c|0;C(3);return 0}function aK(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;C(4);return 0}function bK(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;C(5);return 0}function cK(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;C(6);return 0}function dK(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;C(7);return 0}function eK(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;C(8);return 0}function fK(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;C(9);return 0}function gK(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;C(10);return 0}function hK(){C(11)}function iK(){K()}function jK(a){a=a|0;C(12)}function kK(a,b){a=a|0;b=b|0;C(13)}function lK(a,b,c){a=a|0;b=b|0;c=c|0;C(14)}function mK(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;C(15)}function nK(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;C(16)}function oK(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;C(17)} +function Kd(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;e=c[b+5340>>2]|0;V=b+320+(e<<3)|0;U=~c[V>>2];V=~c[V+4>>2];W=b+5360|0;S=c[W>>2]|0;switch(S|0){case 1:{if(id(b)|0){x=b+320+((e^1)<<3)|0;y=c[x>>2]&U;x=c[x+4>>2]&V}else{y=U;x=V}if(!e){v=b+320|0;u=c[v>>2]|0;v=c[v+4>>2]|0;n=b+264|0;q=c[n>>2]&u;n=c[n+4>>2]&v;k=n&16711680;r=n&-16711681;p=b+328|0;o=c[p>>2]|0;p=c[p+4>>2]|0;w=b+256|0;t=w;s=c[t>>2]|0;t=c[t+4>>2]|0;l=y&~s;m=x&~t;e=yJ(q|0,r|0,8)|0;e=e&l;f=(E()|0)&m;h=yJ(e|0,f|0,8)|0;E()|0;h=l&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){W=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(W|-512)+(W<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){W=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(W|-1024)+(W<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(k|0)==0)){j=yJ(0,k|0,9)|0;j=j&o;i=(E()|0)&p;yJ(0,k|0,7)|0;h=p&2130706432&(E()|0);g=yJ(0,k|0,8)|0;g=g&l;f=(E()|0)&m;if(!((j|0)==0&(i|0)==0)){e=d;while(1){W=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;W=W*65|0;c[e>>2]=W+28096;c[e+8>>2]=W+24e3;c[e+16>>2]=W+19904;c[e+24>>2]=W+15808;d=e+40|0;c[e+32>>2]=W+40384;if((j|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){W=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;W=W*65|0;c[e>>2]=W+28224;c[e+8>>2]=W+24128;c[e+16>>2]=W+20032;c[e+24>>2]=W+15936;d=e+40|0;c[e+32>>2]=W+40512;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){W=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;W=W*65|0;c[d>>2]=W+28160;c[d+8>>2]=W+24064;c[d+16>>2]=W+19968;c[d+24>>2]=W+15872;e=d+40|0;c[d+32>>2]=W+40448;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=yJ(q|0,n|0,9)|0;e=o&-16843264&e;h=p&16711422&(E()|0);g=yJ(q|0,n|0,7)|0;g=o&2139062016&g;f=p&8355711&(E()|0);if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){W=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=W+-576+(W<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){W=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=W+-448+(W<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;e=c[(c[k>>2]|0)+44>>2]|0;if((e|0)!=64?(K=239328+(e<<3)|0,D=c[K>>2]&q,K=c[K+4>>2]&r,!((D|0)==0&(K|0)==0)):0){h=e+8192|0;g=D;f=K;while(1){W=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(W<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&y;h=c[h+4>>2]&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;W=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[W>>2]&s|0,c[W+4>>2]&t|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&y;h=c[h+4>>2]&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;W=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[W>>2]&s|0,c[W+4>>2]&t|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&y;h=c[h+4>>2]&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;V=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[V>>2]&s|0,c[V+4>>2]&t|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;V=c[241376+(e*24|0)+16>>2]|0;U=241376+(e*24|0)|0;W=241376+(e*24|0)+8|0;W=vJ(c[U>>2]&s|0,c[U+4>>2]&t|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=xJ(W|0,E()|0,55)|0;E()|0;W=V+(W<<3)|0;g=(c[W>>2]|g)&y;h=(c[W+4>>2]|h)&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+304|0;e=c[f>>2]&u;f=c[f+4>>2]&v;if(!((e|0)==0&(f|0)==0))do{g=qa(e|0,f|0,0)|0;E()|0;i=pJ(e|0,f|0,-1,-1)|0;e=i&e;f=(E()|0)&f;i=237792+(g<<3)|0;h=c[i>>2]&y;i=c[i+4>>2]&x;if(!((h|0)==0&(i|0)==0)){j=g<<6;g=d;while(1){W=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;d=g+8|0;c[g>>2]=j+W;if((h|0)==0&(i|0)==0)break;else g=d}}}while(!((e|0)==0&(f|0)==0));if(id(b)|0){b=d;return b|0}h=c[(c[k>>2]|0)+24>>2]|0;if(!(h&3)){b=d;return b|0}g=w;f=c[g>>2]|0;g=c[g+4>>2]|0;e=b+5216|0;e=(h&1|0)==0|(c[e>>2]&f|0?1:(c[e+4>>2]&g|0)!=0);if(!(a[b+5356>>0]|0)){if(!e){c[d>>2]=(c[b+5084>>2]<<6)+49152+(c[b+5148>>2]|0);d=d+8|0}W=b+5224|0;if((h&2|0)==0|(c[W>>2]&f|0?1:(c[W+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5088>>2]<<6)+49152+(c[b+5152>>2]|0);b=d+8|0;return b|0}else{if(!e){c[d>>2]=(c[b+5084>>2]<<6)+49152+(c[b+5148>>2]|0);d=d+8|0}W=b+5224|0;if((h&2|0)==0|(c[W>>2]&f|0?1:(c[W+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5088>>2]<<6)+49152+(c[b+5152>>2]|0);b=d+8|0;return b|0}}else{u=b+328|0;t=c[u>>2]|0;u=c[u+4>>2]|0;p=b+264|0;m=c[p>>2]&t;p=c[p+4>>2]&u;j=m&65280;q=m&-65281;o=b+320|0;n=c[o>>2]|0;o=c[o+4>>2]|0;v=b+256|0;s=v;r=c[s>>2]|0;s=c[s+4>>2]|0;k=y&~r;l=x&~s;e=xJ(q|0,p|0,8)|0;e=e&k;f=(E()|0)&l;xJ(e|0,f|0,8)|0;h=l&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){W=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(W|512)+(W<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){W=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(W|1024)+(W<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&n;i=(E()|0)&o;h=xJ(j|0,0,7)|0;E()|0;h=n&254&h;g=xJ(j|0,0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){W=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;W=W*65|0;c[e>>2]=W+29248;c[e+8>>2]=W+25152;c[e+16>>2]=W+21056;c[e+24>>2]=W+16960;d=e+40|0;c[e+32>>2]=W+41536;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){W=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;W=W*65|0;c[e>>2]=W+29120;c[e+8>>2]=W+25024;c[e+16>>2]=W+20928;c[e+24>>2]=W+16832;d=e+40|0;c[e+32>>2]=W+41408;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){W=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;W=W*65|0;c[d>>2]=W+29184;c[d+8>>2]=W+25088;c[d+16>>2]=W+20992;c[d+24>>2]=W+16896;e=d+40|0;c[d+32>>2]=W+41472;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=xJ(m|0,p|0,9)|0;e=n&2139062016&e;h=o&8355711&(E()|0);g=xJ(m|0,p|0,7)|0;g=n&-16843264&g;f=o&16711422&(E()|0);if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){W=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=W+576+(W<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){W=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=W+448+(W<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;e=c[(c[k>>2]|0)+44>>2]|0;if((e|0)!=64?(L=238816+(e<<3)|0,J=c[L>>2]&q,L=c[L+4>>2]&p,!((J|0)==0&(L|0)==0)):0){h=e+8192|0;g=J;f=L;while(1){W=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(W<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&y;h=c[h+4>>2]&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;W=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[W>>2]&r|0,c[W+4>>2]&s|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&y;h=c[h+4>>2]&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;W=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[W>>2]&r|0,c[W+4>>2]&s|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&y;h=c[h+4>>2]&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;V=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[V>>2]&r|0,c[V+4>>2]&s|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;V=c[241376+(e*24|0)+16>>2]|0;U=241376+(e*24|0)|0;W=241376+(e*24|0)+8|0;W=vJ(c[U>>2]&r|0,c[U+4>>2]&s|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=xJ(W|0,E()|0,55)|0;E()|0;W=V+(W<<3)|0;g=(c[W>>2]|g)&y;h=(c[W+4>>2]|h)&x;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+304|0;e=c[f>>2]&t;f=c[f+4>>2]&u;if(!((e|0)==0&(f|0)==0))do{g=qa(e|0,f|0,0)|0;E()|0;i=pJ(e|0,f|0,-1,-1)|0;e=i&e;f=(E()|0)&f;i=237792+(g<<3)|0;h=c[i>>2]&y;i=c[i+4>>2]&x;if(!((h|0)==0&(i|0)==0)){j=g<<6;g=d;while(1){W=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;d=g+8|0;c[g>>2]=j+W;if((h|0)==0&(i|0)==0)break;else g=d}}}while(!((e|0)==0&(f|0)==0));if(id(b)|0){b=d;return b|0}h=c[(c[k>>2]|0)+24>>2]|0;if(!(h&12)){b=d;return b|0}g=v;f=c[g>>2]|0;g=c[g+4>>2]|0;e=b+5240|0;e=(h&4|0)==0|(c[e>>2]&f|0?1:(c[e+4>>2]&g|0)!=0);if(!(a[b+5356>>0]|0)){if(!e){c[d>>2]=(c[b+5096>>2]<<6)+49152+(c[b+5160>>2]|0);d=d+8|0}W=b+5272|0;if((h&8|0)==0|(c[W>>2]&f|0?1:(c[W+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5112>>2]<<6)+49152+(c[b+5176>>2]|0);b=d+8|0;return b|0}else{if(!e){c[d>>2]=(c[b+5096>>2]<<6)+49152+(c[b+5160>>2]|0);d=d+8|0}W=b+5272|0;if((h&8|0)==0|(c[W>>2]&f|0?1:(c[W+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5112>>2]<<6)+49152+(c[b+5176>>2]|0);b=d+8|0;return b|0}}}case 2:{w=b+320+((e^1)<<3)|0;W=237792+(c[b+400+((e<<3|6)<<8)>>2]<<3)|0;v=~(c[W>>2]&c[w>>2])&U;w=~(c[W+4>>2]&c[w+4>>2])&V;if(!e){o=b+320|0;l=b+264|0;r=c[l>>2]&c[o>>2];o=c[l+4>>2]&c[o+4>>2];l=o&16711680;s=o&-16711681;q=b+328|0;p=c[q>>2]&v;q=c[q+4>>2]&w;u=b+256|0;t=c[u>>2]|0;u=c[u+4>>2]|0;m=~t;n=~u;e=yJ(r|0,s|0,8)|0;e=e&m;i=(E()|0)&n;h=yJ(e|0,i|0,8)|0;E()|0;h=m&-16777216&h;if(!((e|0)==0&(i|0)==0)){j=d;while(1){W=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=j+8|0;c[j>>2]=(W|-512)+(W<<6);if((e|0)==0&(i|0)==0)break;else j=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){W=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;d=e+8|0;c[e>>2]=(W|-1024)+(W<<6);if((h|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(l|0)==0)){e=yJ(0,l|0,9)|0;e=e&p;k=(E()|0)&q;yJ(0,l|0,7)|0;j=q&2130706432&(E()|0);i=yJ(0,l|0,8)|0;i=i&m;h=(E()|0)&n;if(!((e|0)==0&(k|0)==0)){l=e;e=d;while(1){W=qa(l|0,k|0,0)|0;E()|0;d=pJ(l|0,k|0,-1,-1)|0;l=d&l;k=(E()|0)&k;W=W*65|0;c[e>>2]=W+28096;c[e+8>>2]=W+24e3;c[e+16>>2]=W+19904;d=e+32|0;c[e+24>>2]=W+15808;if((l|0)==0&(k|0)==0)break;else e=d}}if(!(0==0&(j|0)==0)){k=0;e=d;while(1){W=qa(k|0,j|0,0)|0;E()|0;d=pJ(k|0,j|0,-1,-1)|0;k=d&k;j=(E()|0)&j;W=W*65|0;c[e>>2]=W+28224;c[e+8>>2]=W+24128;c[e+16>>2]=W+20032;d=e+32|0;c[e+24>>2]=W+15936;if((k|0)==0&(j|0)==0)break;else e=d}}if(!((i|0)==0&(h|0)==0))while(1){W=qa(i|0,h|0,0)|0;E()|0;e=pJ(i|0,h|0,-1,-1)|0;i=e&i;h=(E()|0)&h;W=W*65|0;c[d>>2]=W+28160;c[d+8>>2]=W+24064;c[d+16>>2]=W+19968;e=d+32|0;c[d+24>>2]=W+15872;if((i|0)==0&(h|0)==0){d=e;break}else d=e}}e=yJ(r|0,o|0,9)|0;e=e&-16843264&p;j=(E()|0)&16711422&q;i=yJ(r|0,o|0,7)|0;i=i&2139062016&p;h=(E()|0)&8355711&q;if(!((e|0)==0&(j|0)==0)){k=e;e=d;while(1){W=qa(k|0,j|0,0)|0;E()|0;d=pJ(k|0,j|0,-1,-1)|0;k=d&k;j=(E()|0)&j;d=e+8|0;c[e>>2]=W+-576+(W<<6);if((k|0)==0&(j|0)==0)break;else e=d}}if(!((i|0)==0&(h|0)==0)){e=d;while(1){W=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=W+-448+(W<<6);if((i|0)==0&(h|0)==0)break;else e=d}}j=c[b+5352>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(f=239328+(e<<3)|0,g=c[f>>2]&r,f=c[f+4>>2]&s,!((g|0)==0&(f|0)==0)):0){h=e+8192|0;while(1){W=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(W<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&v;h=c[h+4>>2]&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;W=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[W>>2]&t|0,c[W+4>>2]&u|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&v;h=c[h+4>>2]&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;W=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[W>>2]&t|0,c[W+4>>2]&u|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&v;h=c[h+4>>2]&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;V=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[V>>2]&t|0,c[V+4>>2]&u|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;V=c[241376+(e*24|0)+16>>2]|0;U=241376+(e*24|0)|0;W=241376+(e*24|0)+8|0;W=vJ(c[U>>2]&t|0,c[U+4>>2]&u|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=xJ(W|0,E()|0,55)|0;E()|0;W=V+(W<<3)|0;g=(c[W>>2]|g)&v;h=(c[W+4>>2]|h)&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);e=c[b+1936>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&v;g=c[g+4>>2]&w;if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){W=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+W;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}if(!(c[j+24>>2]&3)){b=d;return b|0}if(!(a[b+5356>>0]|0)){b=pd(b,od(b,d)|0)|0;return b|0}else{b=nd(b,md(b,d)|0)|0;return b|0}}else{p=b+328|0;j=b+264|0;m=c[j>>2]&c[p>>2];p=c[j+4>>2]&c[p+4>>2];j=m&65280;q=m&-65281;o=b+320|0;n=c[o>>2]&v;o=c[o+4>>2]&w;u=b+256|0;t=c[u>>2]|0;u=c[u+4>>2]|0;k=~t;l=~u;e=xJ(q|0,p|0,8)|0;e=e&k;f=(E()|0)&l;xJ(e|0,f|0,8)|0;h=l&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){W=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(W|512)+(W<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){W=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(W|1024)+(W<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&n;i=(E()|0)&o;h=xJ(j|0,0,7)|0;E()|0;h=n&254&h;g=xJ(j|0,0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){W=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;W=W*65|0;c[e>>2]=W+29248;c[e+8>>2]=W+25152;c[e+16>>2]=W+21056;d=e+32|0;c[e+24>>2]=W+16960;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){W=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;W=W*65|0;c[e>>2]=W+29120;c[e+8>>2]=W+25024;c[e+16>>2]=W+20928;d=e+32|0;c[e+24>>2]=W+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){W=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;W=W*65|0;c[d>>2]=W+29184;c[d+8>>2]=W+25088;c[d+16>>2]=W+20992;e=d+32|0;c[d+24>>2]=W+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=xJ(m|0,p|0,9)|0;e=e&2139062016&n;h=(E()|0)&8355711&o;g=xJ(m|0,p|0,7)|0;g=g&-16843264&n;f=(E()|0)&16711422&o;if(!((e|0)==0&(h|0)==0)){i=e;e=d;while(1){W=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=W+576+(W<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){W=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=W+448+(W<<6);if((g|0)==0&(f|0)==0)break;else e=d}}j=c[b+5352>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(s=238816+(e<<3)|0,r=c[s>>2]&q,s=c[s+4>>2]&p,!((r|0)==0&(s|0)==0)):0){h=e+8192|0;g=r;f=s;while(1){W=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(W<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&v;h=c[h+4>>2]&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;W=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[W>>2]&t|0,c[W+4>>2]&u|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&v;h=c[h+4>>2]&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;W=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[W>>2]&t|0,c[W+4>>2]&u|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&v;h=c[h+4>>2]&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;V=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[V>>2]&t|0,c[V+4>>2]&u|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;V=c[241376+(e*24|0)+16>>2]|0;U=241376+(e*24|0)|0;W=241376+(e*24|0)+8|0;W=vJ(c[U>>2]&t|0,c[U+4>>2]&u|0,c[W>>2]|0,c[W+4>>2]|0)|0;W=xJ(W|0,E()|0,55)|0;E()|0;W=V+(W<<3)|0;g=(c[W>>2]|g)&v;h=(c[W+4>>2]|h)&w;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){W=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+W;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);e=c[b+3984>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&v;g=c[g+4>>2]&w;if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){W=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+W;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}if(!(c[j+24>>2]&12)){b=d;return b|0}if(!(a[b+5356>>0]|0)){b=td(b,sd(b,d)|0)|0;return b|0}else{b=rd(b,qd(b,d)|0)|0;return b|0}}}case 3:if(!e){m=b+320|0;j=b+264|0;n=c[j>>2]&c[m>>2];m=c[j+4>>2]&c[m+4>>2];j=m&16711680;o=m&-16711681;u=b+328|0;t=u;s=c[t>>2]|0;t=c[t+4>>2]|0;w=b+256|0;r=w;q=c[r>>2]|0;r=c[r+4>>2]|0;k=~q;l=~r;e=yJ(n|0,o|0,8)|0;e=e&k;f=(E()|0)&l;h=yJ(e|0,f|0,8)|0;E()|0;h=k&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){T=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(T|-512)+(T<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){T=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(T|-1024)+(T<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(j|0)==0)){e=yJ(0,j|0,9)|0;e=e&s;i=(E()|0)&t;yJ(0,j|0,7)|0;h=t&2130706432&(E()|0);g=yJ(0,j|0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){T=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+28096;c[e+8>>2]=T+24e3;c[e+16>>2]=T+19904;d=e+32|0;c[e+24>>2]=T+15808;if((j|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){T=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;T=T*65|0;c[e>>2]=T+28224;c[e+8>>2]=T+24128;c[e+16>>2]=T+20032;d=e+32|0;c[e+24>>2]=T+15936;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;T=T*65|0;c[d>>2]=T+28160;c[d+8>>2]=T+24064;c[d+16>>2]=T+19968;e=d+32|0;c[d+24>>2]=T+15872;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=yJ(n|0,m|0,9)|0;e=s&-16843264&e;h=t&16711422&(E()|0);g=yJ(n|0,m|0,7)|0;g=s&2139062016&g;f=t&8355711&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){T=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=T+-576+(T<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=T+-448+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}l=b+5352|0;k=c[l>>2]|0;e=c[k+44>>2]|0;if((e|0)!=64?(v=239328+(e<<3)|0,p=c[v>>2]&n,v=c[v+4>>2]&o,!((p|0)==0&(v|0)==0)):0){h=e+8192|0;g=p;f=v;while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(T<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;T=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[T>>2]&q|0,c[T+4>>2]&r|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;T=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[T>>2]&q|0,c[T+4>>2]&r|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;S=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[S>>2]&q|0,c[S+4>>2]&r|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;S=c[241376+(e*24|0)+16>>2]|0;R=241376+(e*24|0)|0;T=241376+(e*24|0)+8|0;T=vJ(c[R>>2]&q|0,c[R+4>>2]&r|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=xJ(T|0,E()|0,55)|0;E()|0;T=S+(T<<3)|0;g=(c[T>>2]|g)&U;h=(c[T+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);if(c[b+4496>>2]|0){j=s^U;f=t^V;e=j&-256;g=f&16777215;if(!((e|0)==0&(g|0)==0|(c[b+4500>>2]|0)==0)){h=d;while(1){T=qa(e|0,g|0,0)|0;E()|0;d=pJ(e|0,g|0,-1,-1)|0;e=d&e;g=(E()|0)&g;d=h+8|0;c[h>>2]=(T|36864)+64;if((e|0)==0&(g|0)==0)break;else h=d}}i=(j|0)==0&(f|0)==0;if(!(i|(c[b+4504>>2]|0)==0)){g=j;h=f;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=T|36992;if((g|0)==0&(h|0)==0)break;else e=d}}if(!(i|(c[b+4508>>2]|0)==0)){g=j;h=f;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=(T|36864)+192;if((g|0)==0&(h|0)==0)break;else e=d}}if(!(i|(c[b+4512>>2]|0)==0)){g=j;h=f;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=T|37120;if((g|0)==0&(h|0)==0)break;else e=d}}if(!(i|(c[b+4516>>2]|0)==0)){g=j;e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(T|36864)+320;if((g|0)==0&(f|0)==0)break;else e=d}}}e=c[b+1936>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&U;g=c[g+4>>2]&V;if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){V=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+V;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}e=c[k+24>>2]|0;if(!(e&3)){b=d;return b|0}if(a[b+5356>>0]|0){b=vd(b,ud(b,d)|0)|0;return b|0}V=b+5216|0;a:do if(!((e&1|0)==0|(c[V>>2]&q|0?1:(c[V+4>>2]&r|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{V=ue(b,6,q,r)|0;if(!((V&s|0)==0&((E()|0)&t|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;V=w;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&s|0)==0&((E()|0)&t|0)==0)e=e+-1|0;else break a}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5224|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[l>>2]|0)+24>>2]&2)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+360>>2]|0){T=340;break}f=c[b+5152>>2]|0;e=64;T=341}else T=340;while(0);if((T|0)==340){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else T=341}b:do if((T|0)==341){i=u;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,2,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=3;while(1){if((g|0)==(e|0))break b;W=w;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}else{n=b+328|0;j=b+264|0;m=c[j>>2]&c[n>>2];n=c[j+4>>2]&c[n+4>>2];j=m&65280;o=m&-65281;u=b+320|0;t=u;s=c[t>>2]|0;t=c[t+4>>2]|0;v=b+256|0;r=v;p=c[r>>2]|0;r=c[r+4>>2]|0;k=~p;l=~r;e=xJ(o|0,n|0,8)|0;e=e&k;f=(E()|0)&l;xJ(e|0,f|0,8)|0;h=l&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){T=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(T|512)+(T<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(T|1024)+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&s;i=(E()|0)&t;h=xJ(j|0,0,7)|0;E()|0;h=s&254&h;g=xJ(j|0,0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){T=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+29248;c[e+8>>2]=T+25152;c[e+16>>2]=T+21056;d=e+32|0;c[e+24>>2]=T+16960;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){T=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+29120;c[e+8>>2]=T+25024;c[e+16>>2]=T+20928;d=e+32|0;c[e+24>>2]=T+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;T=T*65|0;c[d>>2]=T+29184;c[d+8>>2]=T+25088;c[d+16>>2]=T+20992;e=d+32|0;c[d+24>>2]=T+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=xJ(m|0,n|0,9)|0;e=s&2139062016&e;h=t&8355711&(E()|0);g=xJ(m|0,n|0,7)|0;g=s&-16843264&g;f=t&16711422&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){T=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=T+576+(T<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=T+448+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}l=b+5352|0;k=c[l>>2]|0;e=c[k+44>>2]|0;if((e|0)!=64?(w=238816+(e<<3)|0,q=c[w>>2]&o,w=c[w+4>>2]&n,!((q|0)==0&(w|0)==0)):0){h=e+8192|0;g=q;f=w;while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(T<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;T=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&r|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;T=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&r|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;S=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[S>>2]&p|0,c[S+4>>2]&r|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;S=c[241376+(e*24|0)+16>>2]|0;R=241376+(e*24|0)|0;T=241376+(e*24|0)+8|0;T=vJ(c[R>>2]&p|0,c[R+4>>2]&r|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=xJ(T|0,E()|0,55)|0;E()|0;T=S+(T<<3)|0;g=(c[T>>2]|g)&U;h=(c[T+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);if(c[b+4528>>2]|0){j=s^U;f=t^V;e=j&-256;g=f&16777215;if(!((e|0)==0&(g|0)==0|(c[b+4532>>2]|0)==0)){h=d;while(1){T=qa(e|0,g|0,0)|0;E()|0;d=pJ(e|0,g|0,-1,-1)|0;e=d&e;g=(E()|0)&g;d=h+8|0;c[h>>2]=(T|36864)+576;if((e|0)==0&(g|0)==0)break;else h=d}}i=(j|0)==0&(f|0)==0;if(!(i|(c[b+4536>>2]|0)==0)){g=j;h=f;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=T|37504;if((g|0)==0&(h|0)==0)break;else e=d}}if(!(i|(c[b+4540>>2]|0)==0)){g=j;h=f;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=(T|36864)+704;if((g|0)==0&(h|0)==0)break;else e=d}}if(!(i|(c[b+4544>>2]|0)==0)){g=j;h=f;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=T|37632;if((g|0)==0&(h|0)==0)break;else e=d}}if(!(i|(c[b+4548>>2]|0)==0)){g=j;e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(T|36864)+832;if((g|0)==0&(f|0)==0)break;else e=d}}}e=c[b+3984>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&U;g=c[g+4>>2]&V;if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){V=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+V;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}e=c[k+24>>2]|0;if(!(e&12)){b=d;return b|0}if(a[b+5356>>0]|0){b=xd(b,wd(b,d)|0)|0;return b|0}V=b+5240|0;c:do if(!((e&4|0)==0|(c[V>>2]&p|0?1:(c[V+4>>2]&r|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{V=ue(b,62,p,r)|0;if(!((V&s|0)==0&((E()|0)&t|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;V=v;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&s|0)==0&((E()|0)&t|0)==0)e=e+-1|0;else break c}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=v;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5272|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[l>>2]|0)+24>>2]&8)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+392>>2]|0){T=431;break}f=c[b+5176>>2]|0;e=64;T=432}else T=431;while(0);if((T|0)==431){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else T=432}d:do if((T|0)==432){i=u;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,58,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=59;while(1){if((g|0)==(e|0))break d;W=v;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}case 4:if(!e){m=b+320|0;j=b+264|0;n=c[j>>2]&c[m>>2];m=c[j+4>>2]&c[m+4>>2];j=m&16711680;o=m&-16711681;u=b+328|0;s=u;r=c[s>>2]|0;s=c[s+4>>2]|0;v=b+256|0;q=v;p=c[q>>2]|0;q=c[q+4>>2]|0;k=~p;l=~q;e=yJ(n|0,o|0,8)|0;e=e&k;f=(E()|0)&l;h=yJ(e|0,f|0,8)|0;E()|0;h=k&-65536&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){T=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(T|-512)+(T<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){T=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(T|-1024)+(T<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(j|0)==0)){e=yJ(0,j|0,9)|0;e=e&r;i=(E()|0)&s;yJ(0,j|0,7)|0;h=s&2130706432&(E()|0);g=yJ(0,j|0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){T=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+28096;c[e+8>>2]=T+24e3;c[e+16>>2]=T+19904;d=e+32|0;c[e+24>>2]=T+15808;if((j|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){T=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;T=T*65|0;c[e>>2]=T+28224;c[e+8>>2]=T+24128;c[e+16>>2]=T+20032;d=e+32|0;c[e+24>>2]=T+15936;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;T=T*65|0;c[e>>2]=T+28160;c[e+8>>2]=T+24064;c[e+16>>2]=T+19968;d=e+32|0;c[e+24>>2]=T+15872;if((g|0)==0&(f|0)==0)break;else e=d}}}e=yJ(n|0,m|0,9)|0;e=r&-16843264&e;h=s&16711422&(E()|0);g=yJ(n|0,m|0,7)|0;g=r&2139062016&g;f=s&8355711&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){T=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=T+-576+(T<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=T+-448+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;j=c[k>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(x=239328+(e<<3)|0,t=c[x>>2]&n,x=c[x+4>>2]&o,!((t|0)==0&(x|0)==0)):0){h=e+8192|0;g=t;f=x;e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=h+(T<<6|24576);if((g|0)==0&(f|0)==0)break;else e=d}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;T=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;T=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;S=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[S>>2]&p|0,c[S+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;S=c[241376+(e*24|0)+16>>2]|0;R=241376+(e*24|0)|0;T=241376+(e*24|0)+8|0;T=vJ(c[R>>2]&p|0,c[R+4>>2]&q|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=xJ(T|0,E()|0,55)|0;E()|0;T=S+(T<<3)|0;g=(c[T>>2]|g)&U;h=(c[T+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);if((c[b+360>>2]|0)!=0?(M=c[b+1936>>2]|0,Q=237792+(M<<3)|0,O=c[Q>>2]&U,Q=c[Q+4>>2]&V,!((O|0)==0&(Q|0)==0)):0){h=M<<6;g=O;f=Q;e=d;while(1){V=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=h+V;if((g|0)==0&(f|0)==0)break;else e=d}}e=c[j+24>>2]|0;if(!(e&3)){b=d;return b|0}if(a[b+5356>>0]|0){b=zd(b,yd(b,d)|0)|0;return b|0}V=b+5216|0;e:do if(!((e&1|0)==0|(c[V>>2]&p|0?1:(c[V+4>>2]&q|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{V=ue(b,6,p,q)|0;if(!((V&r|0)==0&((E()|0)&s|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;V=v;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&r|0)==0&((E()|0)&s|0)==0)e=e+-1|0;else break e}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=v;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5224|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[k>>2]|0)+24>>2]&2)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+360>>2]|0){T=508;break}f=c[b+5152>>2]|0;e=64;T=509}else T=508;while(0);if((T|0)==508){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else T=509}f:do if((T|0)==509){i=u;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,2,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=3;while(1){if((g|0)==(e|0))break f;W=v;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}else{n=b+328|0;j=b+264|0;m=c[j>>2]&c[n>>2];n=c[j+4>>2]&c[n+4>>2];j=m&65280;o=m&-65281;t=b+320|0;s=t;r=c[s>>2]|0;s=c[s+4>>2]|0;v=b+256|0;q=v;p=c[q>>2]|0;q=c[q+4>>2]|0;k=~p;l=~q;e=xJ(o|0,n|0,8)|0;e=e&k;f=(E()|0)&l;xJ(e|0,f|0,8)|0;h=l&65535&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){T=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(T|512)+(T<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(T|1024)+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&r;i=(E()|0)&s;h=xJ(j|0,0,7)|0;E()|0;h=r&254&h;g=xJ(j|0,0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){T=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+29248;c[e+8>>2]=T+25152;c[e+16>>2]=T+21056;d=e+32|0;c[e+24>>2]=T+16960;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){T=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+29120;c[e+8>>2]=T+25024;c[e+16>>2]=T+20928;d=e+32|0;c[e+24>>2]=T+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;T=T*65|0;c[d>>2]=T+29184;c[d+8>>2]=T+25088;c[d+16>>2]=T+20992;e=d+32|0;c[d+24>>2]=T+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=xJ(m|0,n|0,9)|0;e=r&2139062016&e;h=s&8355711&(E()|0);g=xJ(m|0,n|0,7)|0;g=r&-16843264&g;f=s&16711422&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){T=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=T+576+(T<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=T+448+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;j=c[k>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(y=238816+(e<<3)|0,u=c[y>>2]&o,y=c[y+4>>2]&n,!((u|0)==0&(y|0)==0)):0){h=e+8192|0;g=u;f=y;while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(T<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;T=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;T=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;S=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[S>>2]&p|0,c[S+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;S=c[241376+(e*24|0)+16>>2]|0;Q=241376+(e*24|0)|0;T=241376+(e*24|0)+8|0;T=vJ(c[Q>>2]&p|0,c[Q+4>>2]&q|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=xJ(T|0,E()|0,55)|0;E()|0;T=S+(T<<3)|0;g=(c[T>>2]|g)&U;h=(c[T+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);if((c[b+392>>2]|0)!=0?(N=c[b+3984>>2]|0,R=237792+(N<<3)|0,P=c[R>>2]&U,R=c[R+4>>2]&V,!((P|0)==0&(R|0)==0)):0){h=N<<6;g=P;f=R;while(1){V=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+V;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=c[j+24>>2]|0;if(!(e&12)){b=d;return b|0}if(a[b+5356>>0]|0){b=Bd(b,Ad(b,d)|0)|0;return b|0}V=b+5240|0;g:do if(!((e&4|0)==0|(c[V>>2]&p|0?1:(c[V+4>>2]&q|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{V=ue(b,62,p,q)|0;if(!((V&r|0)==0&((E()|0)&s|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;V=v;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&r|0)==0&((E()|0)&s|0)==0)e=e+-1|0;else break g}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=v;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5272|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[k>>2]|0)+24>>2]&8)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+392>>2]|0){T=584;break}f=c[b+5176>>2]|0;e=64;T=585}else T=584;while(0);if((T|0)==584){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else T=585}h:do if((T|0)==585){i=t;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,58,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=59;while(1){if((g|0)==(e|0))break h;W=v;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}default:{e=(e|0)==0;if((S|0)==6)if(e){m=b+320|0;j=b+264|0;n=c[j>>2]&c[m>>2];m=c[j+4>>2]&c[m+4>>2];j=m&16711680;o=m&-16711681;t=b+328|0;s=t;r=c[s>>2]|0;s=c[s+4>>2]|0;u=b+256|0;q=u;p=c[q>>2]|0;q=c[q+4>>2]|0;k=~p;l=~q;e=yJ(n|0,o|0,8)|0;e=e&k;f=(E()|0)&l;h=yJ(e|0,f|0,8)|0;E()|0;h=k&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){T=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(T|-512)+(T<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){T=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(T|-1024)+(T<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(j|0)==0)){e=yJ(0,j|0,9)|0;e=e&r;i=(E()|0)&s;yJ(0,j|0,7)|0;h=s&2130706432&(E()|0);g=yJ(0,j|0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){T=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+28096;c[e+8>>2]=T+24e3;c[e+16>>2]=T+19904;d=e+32|0;c[e+24>>2]=T+15808;if((j|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){T=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;T=T*65|0;c[e>>2]=T+28224;c[e+8>>2]=T+24128;c[e+16>>2]=T+20032;d=e+32|0;c[e+24>>2]=T+15936;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;T=T*65|0;c[d>>2]=T+28160;c[d+8>>2]=T+24064;c[d+16>>2]=T+19968;e=d+32|0;c[d+24>>2]=T+15872;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=yJ(n|0,m|0,9)|0;e=r&-16843264&e;h=s&16711422&(E()|0);g=yJ(n|0,m|0,7)|0;g=r&2139062016&g;f=s&8355711&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){T=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=T+-576+(T<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=T+-448+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;j=c[k>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(F=239328+(e<<3)|0,z=c[F>>2]&n,F=c[F+4>>2]&o,!((z|0)==0&(F|0)==0)):0){h=e+8192|0;g=z;f=F;while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(T<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;T=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;T=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;S=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[S>>2]&p|0,c[S+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;S=c[241376+(e*24|0)+16>>2]|0;R=241376+(e*24|0)|0;T=241376+(e*24|0)+8|0;T=vJ(c[R>>2]&p|0,c[R+4>>2]&q|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=xJ(T|0,E()|0,55)|0;E()|0;T=S+(T<<3)|0;g=(c[T>>2]|g)&U;h=(c[T+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);e=c[b+1936>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&U;g=c[g+4>>2]&V;if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){V=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+V;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}e=c[j+24>>2]|0;if(!(e&3)){b=d;return b|0}if(a[b+5356>>0]|0){b=Dd(b,Cd(b,d)|0)|0;return b|0}V=b+5216|0;i:do if(!((e&1|0)==0|(c[V>>2]&p|0?1:(c[V+4>>2]&q|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{V=ue(b,6,p,q)|0;if(!((V&r|0)==0&((E()|0)&s|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;V=u;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&r|0)==0&((E()|0)&s|0)==0)e=e+-1|0;else break i}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=u;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5224|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[k>>2]|0)+24>>2]&2)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+360>>2]|0){T=661;break}f=c[b+5152>>2]|0;e=64;T=662}else T=661;while(0);if((T|0)==661){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else T=662}j:do if((T|0)==662){i=t;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,2,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=3;while(1){if((g|0)==(e|0))break j;W=u;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}else{n=b+328|0;j=b+264|0;m=c[j>>2]&c[n>>2];n=c[j+4>>2]&c[n+4>>2];j=m&65280;o=m&-65281;t=b+320|0;s=t;r=c[s>>2]|0;s=c[s+4>>2]|0;u=b+256|0;q=u;p=c[q>>2]|0;q=c[q+4>>2]|0;k=~p;l=~q;e=xJ(o|0,n|0,8)|0;e=e&k;f=(E()|0)&l;xJ(e|0,f|0,8)|0;h=l&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){T=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(T|512)+(T<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(T|1024)+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&r;i=(E()|0)&s;h=xJ(j|0,0,7)|0;E()|0;h=r&254&h;g=xJ(j|0,0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){T=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+29248;c[e+8>>2]=T+25152;c[e+16>>2]=T+21056;d=e+32|0;c[e+24>>2]=T+16960;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){T=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;T=T*65|0;c[e>>2]=T+29120;c[e+8>>2]=T+25024;c[e+16>>2]=T+20928;d=e+32|0;c[e+24>>2]=T+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;T=T*65|0;c[d>>2]=T+29184;c[d+8>>2]=T+25088;c[d+16>>2]=T+20992;e=d+32|0;c[d+24>>2]=T+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=xJ(m|0,n|0,9)|0;e=r&2139062016&e;h=s&8355711&(E()|0);g=xJ(m|0,n|0,7)|0;g=r&-16843264&g;f=s&16711422&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){T=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=T+576+(T<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){T=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=T+448+(T<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;j=c[k>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(G=238816+(e<<3)|0,A=c[G>>2]&o,G=c[G+4>>2]&n,!((A|0)==0&(G|0)==0)):0){h=e+8192|0;g=A;f=G;while(1){T=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(T<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;T=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;T=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[T>>2]&p|0,c[T+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;S=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[S>>2]&p|0,c[S+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;S=c[241376+(e*24|0)+16>>2]|0;R=241376+(e*24|0)|0;T=241376+(e*24|0)+8|0;T=vJ(c[R>>2]&p|0,c[R+4>>2]&q|0,c[T>>2]|0,c[T+4>>2]|0)|0;T=xJ(T|0,E()|0,55)|0;E()|0;T=S+(T<<3)|0;g=(c[T>>2]|g)&U;h=(c[T+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){T=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+T;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);e=c[b+3984>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&U;g=c[g+4>>2]&V;if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){V=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+V;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}e=c[j+24>>2]|0;if(!(e&12)){b=d;return b|0}if(a[b+5356>>0]|0){b=Fd(b,Ed(b,d)|0)|0;return b|0}V=b+5240|0;k:do if(!((e&4|0)==0|(c[V>>2]&p|0?1:(c[V+4>>2]&q|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{V=ue(b,62,p,q)|0;if(!((V&r|0)==0&((E()|0)&s|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;V=u;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&r|0)==0&((E()|0)&s|0)==0)e=e+-1|0;else break k}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=u;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5272|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[k>>2]|0)+24>>2]&8)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+392>>2]|0){T=736;break}f=c[b+5176>>2]|0;e=64;T=737}else T=736;while(0);if((T|0)==736){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else T=737}l:do if((T|0)==737){i=t;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,58,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=59;while(1){if((g|0)==(e|0))break l;W=u;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}if(e){m=b+320|0;j=b+264|0;n=c[j>>2]&c[m>>2];m=c[j+4>>2]&c[m+4>>2];j=m&16711680;o=m&-16711681;t=b+328|0;s=t;r=c[s>>2]|0;s=c[s+4>>2]|0;u=b+256|0;q=u;p=c[q>>2]|0;q=c[q+4>>2]|0;k=~p;l=~q;e=yJ(n|0,o|0,8)|0;e=e&k;f=(E()|0)&l;h=yJ(e|0,f|0,8)|0;E()|0;h=k&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){R=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(R|-512)+(R<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){R=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(R|-1024)+(R<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(j|0)==0)){e=yJ(0,j|0,9)|0;e=e&r;i=(E()|0)&s;yJ(0,j|0,7)|0;h=s&2130706432&(E()|0);g=yJ(0,j|0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){R=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;R=R*65|0;c[e>>2]=R+28096;c[e+8>>2]=R+24e3;c[e+16>>2]=R+19904;d=e+32|0;c[e+24>>2]=R+15808;if((j|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){R=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;R=R*65|0;c[e>>2]=R+28224;c[e+8>>2]=R+24128;c[e+16>>2]=R+20032;d=e+32|0;c[e+24>>2]=R+15936;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){R=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;R=R*65|0;c[d>>2]=R+28160;c[d+8>>2]=R+24064;c[d+16>>2]=R+19968;e=d+32|0;c[d+24>>2]=R+15872;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=yJ(n|0,m|0,9)|0;e=r&-16843264&e;h=s&16711422&(E()|0);g=yJ(n|0,m|0,7)|0;g=r&2139062016&g;f=s&8355711&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){R=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=R+-576+(R<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){R=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=R+-448+(R<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;j=c[k>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(H=239328+(e<<3)|0,B=c[H>>2]&n,H=c[H+4>>2]&o,!((B|0)==0&(H|0)==0)):0){h=e+8192|0;g=B;f=H;while(1){R=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(R<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;R=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[R>>2]&p|0,c[R+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;R=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[R>>2]&p|0,c[R+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;Q=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[Q>>2]&p|0,c[Q+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;Q=c[241376+(e*24|0)+16>>2]|0;P=241376+(e*24|0)|0;R=241376+(e*24|0)+8|0;R=vJ(c[P>>2]&p|0,c[P+4>>2]&q|0,c[R>>2]|0,c[R+4>>2]|0)|0;R=xJ(R|0,E()|0,55)|0;E()|0;R=Q+(R<<3)|0;g=(c[R>>2]|g)&U;h=(c[R+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);switch(S|0){case 4:{if(c[b+360>>2]|0)T=796;break}case 1:{if(!(c[b+360>>2]|0)){g=64;T=797}else T=796;break}default:T=796}if((T|0)==796){g=c[b+1936>>2]|0;T=797}if((T|0)==797){f=237792+(g<<3)|0;e=c[f>>2]&U;f=c[f+4>>2]&V;if(!((e|0)==0&(f|0)==0)){h=g<<6;g=e;while(1){V=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+V;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}}e=c[j+24>>2]|0;if(!(e&3)){b=d;return b|0}if(a[b+5356>>0]|0){b=Hd(b,Gd(b,d)|0)|0;return b|0}V=b+5216|0;m:do if(!((e&1|0)==0|(c[V>>2]&p|0?1:(c[V+4>>2]&q|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{V=ue(b,6,p,q)|0;if(!((V&r|0)==0&((E()|0)&s|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;V=u;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&r|0)==0&((E()|0)&s|0)==0)e=e+-1|0;else break m}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=u;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5224|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[k>>2]|0)+24>>2]&2)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+360>>2]|0){T=816;break}f=c[b+5152>>2]|0;e=64;T=817}else T=816;while(0);if((T|0)==816){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else T=817}n:do if((T|0)==817){i=t;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,2,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=3;while(1){if((g|0)==(e|0))break n;W=u;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}else{n=b+328|0;j=b+264|0;m=c[j>>2]&c[n>>2];n=c[j+4>>2]&c[n+4>>2];j=m&65280;o=m&-65281;t=b+320|0;s=t;r=c[s>>2]|0;s=c[s+4>>2]|0;u=b+256|0;q=u;p=c[q>>2]|0;q=c[q+4>>2]|0;k=~p;l=~q;e=xJ(o|0,n|0,8)|0;e=e&k;f=(E()|0)&l;xJ(e|0,f|0,8)|0;h=l&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){R=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(R|512)+(R<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){R=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(R|1024)+(R<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&r;i=(E()|0)&s;h=xJ(j|0,0,7)|0;E()|0;h=r&254&h;g=xJ(j|0,0,8)|0;g=g&k;f=(E()|0)&l;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){R=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;R=R*65|0;c[e>>2]=R+29248;c[e+8>>2]=R+25152;c[e+16>>2]=R+21056;d=e+32|0;c[e+24>>2]=R+16960;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){R=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;R=R*65|0;c[e>>2]=R+29120;c[e+8>>2]=R+25024;c[e+16>>2]=R+20928;d=e+32|0;c[e+24>>2]=R+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){R=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;R=R*65|0;c[d>>2]=R+29184;c[d+8>>2]=R+25088;c[d+16>>2]=R+20992;e=d+32|0;c[d+24>>2]=R+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}e=xJ(m|0,n|0,9)|0;e=r&2139062016&e;h=s&8355711&(E()|0);g=xJ(m|0,n|0,7)|0;g=r&-16843264&g;f=s&16711422&(E()|0);if(!((e|0)==0&(h|0)==0)){i=h;h=d;while(1){R=qa(e|0,i|0,0)|0;E()|0;d=pJ(e|0,i|0,-1,-1)|0;e=d&e;i=(E()|0)&i;d=h+8|0;c[h>>2]=R+576+(R<<6);if((e|0)==0&(i|0)==0)break;else h=d}}if(!((g|0)==0&(f|0)==0)){e=d;while(1){R=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=R+448+(R<<6);if((g|0)==0&(f|0)==0)break;else e=d}}k=b+5352|0;j=c[k>>2]|0;e=c[j+44>>2]|0;if((e|0)!=64?(I=238816+(e<<3)|0,C=c[I>>2]&o,I=c[I+4>>2]&n,!((C|0)==0&(I|0)==0)):0){h=e+8192|0;g=C;f=I;while(1){R=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+(R<<6|24576);if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;R=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[R>>2]&p|0,c[R+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;R=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[R>>2]&p|0,c[R+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&U;h=c[h+4>>2]&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;Q=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[Q>>2]&p|0,c[Q+4>>2]&q|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;Q=c[241376+(e*24|0)+16>>2]|0;P=241376+(e*24|0)|0;R=241376+(e*24|0)+8|0;R=vJ(c[P>>2]&p|0,c[P+4>>2]&q|0,c[R>>2]|0,c[R+4>>2]|0)|0;R=xJ(R|0,E()|0,55)|0;E()|0;R=Q+(R<<3)|0;g=(c[R>>2]|g)&U;h=(c[R+4>>2]|h)&V;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){R=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+R;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);switch(S|0){case 4:{if(c[b+392>>2]|0)T=875;break}case 1:{if(!(c[b+392>>2]|0)){g=64;T=876}else T=875;break}default:T=875}if((T|0)==875){g=c[b+3984>>2]|0;T=876}if((T|0)==876){f=237792+(g<<3)|0;e=c[f>>2]&U;f=c[f+4>>2]&V;if(!((e|0)==0&(f|0)==0)){h=g<<6;g=e;while(1){V=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+V;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}}e=c[j+24>>2]|0;if(!(e&12)){b=d;return b|0}if(a[b+5356>>0]|0){b=Jd(b,Id(b,d)|0)|0;return b|0}V=b+5240|0;o:do if(!((e&4|0)==0|(c[V>>2]&p|0?1:(c[V+4>>2]&q|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{V=ue(b,62,p,q)|0;if(!((V&r|0)==0&((E()|0)&s|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;V=u;V=ue(b,e,c[V>>2]|0,c[V+4>>2]|0)|0;if((V&r|0)==0&((E()|0)&s|0)==0)e=e+-1|0;else break o}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=u;g=c[j>>2]|0;j=c[j+4>>2]|0;V=b+5272|0;if(!((c[V>>2]&g|0)==0?(c[V+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[k>>2]|0)+24>>2]&8)){b=d;return b|0}do if((c[W>>2]|0)==1){if(c[b+392>>2]|0){T=895;break}f=c[b+5176>>2]|0;e=64;T=896}else T=895;while(0);if((T|0)==895){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else T=896}p:do if((T|0)==896){i=t;h=c[i>>2]|0;i=c[i+4>>2]|0;W=ue(b,58,g,j)|0;if(!((W&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=59;while(1){if((g|0)==(e|0))break p;W=u;W=ue(b,g,c[W>>2]|0,c[W+4>>2]|0)|0;if((W&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}}}return 0} +function ld(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=c[b+5340>>2]|0;w=b+256|0;v=w;u=c[v>>2]|0;v=c[v+4>>2]|0;s=~u;t=~v;r=b+5360|0;o=c[r>>2]|0;switch(o|0){case 1:{if(id(b)|0){n=b+320+((e^1)<<3)|0;o=c[n>>2]&s;n=c[n+4>>2]&t}else{o=s;n=t}if(!e){m=b+320|0;l=c[m>>2]|0;m=c[m+4>>2]|0;f=b+264|0;e=c[f+4>>2]&m;k=e&16711680;j=b+328|0;i=c[j>>2]|0;j=c[j+4>>2]|0;e=yJ(c[f>>2]&l|0,e|0,8)|0;e=o&-256&e;f=n&16777215&(E()|0);h=yJ(e|0,f|0,8)|0;E()|0;h=o&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){v=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(v|-512)+(v<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){v=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(v|-1024)+(v<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(k|0)==0)){e=yJ(0,k|0,9)|0;e=e&i;i=(E()|0)&j;yJ(0,k|0,7)|0;h=j&2130706432&(E()|0);g=yJ(0,k|0,8)|0;g=g&o;f=(E()|0)&n;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){v=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;v=v*65|0;c[e>>2]=v+28096;c[e+8>>2]=v+24e3;c[e+16>>2]=v+19904;c[e+24>>2]=v+15808;d=e+40|0;c[e+32>>2]=v+40384;if((j|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){v=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;v=v*65|0;c[e>>2]=v+28224;c[e+8>>2]=v+24128;c[e+16>>2]=v+20032;c[e+24>>2]=v+15936;d=e+40|0;c[e+32>>2]=v+40512;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){v=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;v=v*65|0;c[d>>2]=v+28160;c[d+8>>2]=v+24064;c[d+16>>2]=v+19968;c[d+24>>2]=v+15872;e=d+40|0;c[d+32>>2]=v+40448;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&o;h=c[h+4>>2]&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64){k=w;j=c[k>>2]|0;k=c[k+4>>2]|0;do{g=c[241376+(e*24|0)+16>>2]|0;v=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[v>>2]&j|0,c[v+4>>2]&k|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&o;h=c[h+4>>2]&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64){k=w;j=c[k>>2]|0;k=c[k+4>>2]|0;do{g=c[239840+(e*24|0)+16>>2]|0;v=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[v>>2]&j|0,c[v+4>>2]&k|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&o;h=c[h+4>>2]&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64){k=w;j=c[k>>2]|0;k=c[k+4>>2]|0;do{g=c[239840+(e*24|0)+16>>2]|0;u=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[u>>2]&j|0,c[u+4>>2]&k|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;u=c[241376+(e*24|0)+16>>2]|0;t=241376+(e*24|0)|0;v=241376+(e*24|0)+8|0;v=vJ(c[t>>2]&j|0,c[t+4>>2]&k|0,c[v>>2]|0,c[v+4>>2]|0)|0;v=xJ(v|0,E()|0,55)|0;E()|0;v=u+(v<<3)|0;g=(c[v>>2]|g)&o;h=(c[v+4>>2]|h)&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+304|0;e=c[f>>2]&l;f=c[f+4>>2]&m;if(!((e|0)==0&(f|0)==0))do{g=qa(e|0,f|0,0)|0;E()|0;i=pJ(e|0,f|0,-1,-1)|0;e=i&e;f=(E()|0)&f;i=237792+(g<<3)|0;h=c[i>>2]&o;i=c[i+4>>2]&n;if(!((h|0)==0&(i|0)==0)){j=g<<6;g=d;while(1){v=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;d=g+8|0;c[g>>2]=j+v;if((h|0)==0&(i|0)==0)break;else g=d}}}while(!((e|0)==0&(f|0)==0));if(id(b)|0){b=d;return b|0}h=c[(c[b+5352>>2]|0)+24>>2]|0;if(!(h&3)){b=d;return b|0}g=w;f=c[g>>2]|0;g=c[g+4>>2]|0;e=b+5216|0;e=(h&1|0)==0|(c[e>>2]&f|0?1:(c[e+4>>2]&g|0)!=0);if(!(a[b+5356>>0]|0)){if(!e){c[d>>2]=(c[b+5084>>2]<<6)+49152+(c[b+5148>>2]|0);d=d+8|0}w=b+5224|0;if((h&2|0)==0|(c[w>>2]&f|0?1:(c[w+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5088>>2]<<6)+49152+(c[b+5152>>2]|0);b=d+8|0;return b|0}else{if(!e){c[d>>2]=(c[b+5084>>2]<<6)+49152+(c[b+5148>>2]|0);d=d+8|0}w=b+5224|0;if((h&2|0)==0|(c[w>>2]&f|0?1:(c[w+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5088>>2]<<6)+49152+(c[b+5152>>2]|0);b=d+8|0;return b|0}}else{m=b+328|0;l=c[m>>2]|0;m=c[m+4>>2]|0;e=b+264|0;f=c[e>>2]&l;k=f&65280;i=b+320|0;j=c[i>>2]|0;i=c[i+4>>2]|0;e=xJ(f|0,c[e+4>>2]&m|0,8)|0;e=o&-256&e;f=n&16777215&(E()|0);xJ(e|0,f|0,8)|0;h=n&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){v=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(v|512)+(v<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){v=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(v|1024)+(v<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((k|0)==0&0==0)){e=xJ(k|0,0,9)|0;e=e&j;i=(E()|0)&i;h=xJ(k|0,0,7)|0;E()|0;h=j&254&h;g=xJ(k|0,0,8)|0;g=g&o;f=(E()|0)&n;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){v=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;v=v*65|0;c[e>>2]=v+29248;c[e+8>>2]=v+25152;c[e+16>>2]=v+21056;c[e+24>>2]=v+16960;d=e+40|0;c[e+32>>2]=v+41536;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){v=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;v=v*65|0;c[e>>2]=v+29120;c[e+8>>2]=v+25024;c[e+16>>2]=v+20928;c[e+24>>2]=v+16832;d=e+40|0;c[e+32>>2]=v+41408;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){v=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;v=v*65|0;c[d>>2]=v+29184;c[d+8>>2]=v+25088;c[d+16>>2]=v+20992;c[d+24>>2]=v+16896;e=d+40|0;c[d+32>>2]=v+41472;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&o;h=c[h+4>>2]&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64){k=w;j=c[k>>2]|0;k=c[k+4>>2]|0;do{g=c[241376+(e*24|0)+16>>2]|0;v=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[v>>2]&j|0,c[v+4>>2]&k|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&o;h=c[h+4>>2]&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64){k=w;j=c[k>>2]|0;k=c[k+4>>2]|0;do{g=c[239840+(e*24|0)+16>>2]|0;v=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[v>>2]&j|0,c[v+4>>2]&k|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&o;h=c[h+4>>2]&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64){k=w;j=c[k>>2]|0;k=c[k+4>>2]|0;do{g=c[239840+(e*24|0)+16>>2]|0;u=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[u>>2]&j|0,c[u+4>>2]&k|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;u=c[241376+(e*24|0)+16>>2]|0;t=241376+(e*24|0)|0;v=241376+(e*24|0)+8|0;v=vJ(c[t>>2]&j|0,c[t+4>>2]&k|0,c[v>>2]|0,c[v+4>>2]|0)|0;v=xJ(v|0,E()|0,55)|0;E()|0;v=u+(v<<3)|0;g=(c[v>>2]|g)&o;h=(c[v+4>>2]|h)&n;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){v=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+v;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64)}f=b+304|0;e=c[f>>2]&l;f=c[f+4>>2]&m;if(!((e|0)==0&(f|0)==0))do{g=qa(e|0,f|0,0)|0;E()|0;i=pJ(e|0,f|0,-1,-1)|0;e=i&e;f=(E()|0)&f;i=237792+(g<<3)|0;h=c[i>>2]&o;i=c[i+4>>2]&n;if(!((h|0)==0&(i|0)==0)){j=g<<6;g=d;while(1){v=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;d=g+8|0;c[g>>2]=j+v;if((h|0)==0&(i|0)==0)break;else g=d}}}while(!((e|0)==0&(f|0)==0));if(id(b)|0){b=d;return b|0}h=c[(c[b+5352>>2]|0)+24>>2]|0;if(!(h&12)){b=d;return b|0}g=w;f=c[g>>2]|0;g=c[g+4>>2]|0;e=b+5240|0;e=(h&4|0)==0|(c[e>>2]&f|0?1:(c[e+4>>2]&g|0)!=0);if(!(a[b+5356>>0]|0)){if(!e){c[d>>2]=(c[b+5096>>2]<<6)+49152+(c[b+5160>>2]|0);d=d+8|0}w=b+5272|0;if((h&8|0)==0|(c[w>>2]&f|0?1:(c[w+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5112>>2]<<6)+49152+(c[b+5176>>2]|0);b=d+8|0;return b|0}else{if(!e){c[d>>2]=(c[b+5096>>2]<<6)+49152+(c[b+5160>>2]|0);d=d+8|0}w=b+5272|0;if((h&8|0)==0|(c[w>>2]&f|0?1:(c[w+4>>2]&g|0)!=0)){b=d;return b|0}c[d>>2]=(c[b+5112>>2]<<6)+49152+(c[b+5176>>2]|0);b=d+8|0;return b|0}}}case 2:if(!e){f=b+320|0;h=b+264|0;e=c[h+4>>2]&c[f+4>>2];k=e&16711680;j=b+328|0;n=c[b+1936>>2]|0;m=237792+(n<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;i=c[j>>2]&~l;j=c[j+4>>2]&~m;e=yJ(c[h>>2]&c[f>>2]|0,e|0,8)|0;e=s&-256&e;f=t&16777215&(E()|0);h=yJ(e|0,f|0,8)|0;E()|0;h=s&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){w=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(w|-512)+(w<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){w=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(w|-1024)+(w<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(k|0)==0)){e=yJ(0,k|0,9)|0;e=i&e;i=j&(E()|0);yJ(0,k|0,7)|0;h=(E()|0)&2130706432&j;g=yJ(0,k|0,8)|0;g=g&s;f=(E()|0)&t;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){w=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;w=w*65|0;c[e>>2]=w+24e3;c[e+8>>2]=w+19904;d=e+24|0;c[e+16>>2]=w+15808;if((j|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){w=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;w=w*65|0;c[e>>2]=w+24128;c[e+8>>2]=w+20032;d=e+24|0;c[e+16>>2]=w+15936;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){w=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;w=w*65|0;c[d>>2]=w+24064;c[d+8>>2]=w+19968;e=d+24|0;c[d+16>>2]=w+15872;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;w=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[w>>2]&u|0,c[w+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;w=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[w>>2]&u|0,c[w+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;r=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[r>>2]&u|0,c[r+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;r=c[241376+(e*24|0)+16>>2]|0;q=241376+(e*24|0)|0;w=241376+(e*24|0)+8|0;w=vJ(c[q>>2]&u|0,c[q+4>>2]&v|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=xJ(w|0,E()|0,55)|0;E()|0;w=r+(w<<3)|0;g=(c[w>>2]|g)&s;h=(c[w+4>>2]|h)&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=l&s;e=m&t;if(!((f|0)==0&(e|0)==0)){h=n<<6;g=f;f=e;while(1){w=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+w;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}if(!(c[(c[b+5352>>2]|0)+24>>2]&3)){b=d;return b|0}if(!(a[b+5356>>0]|0)){b=pd(b,od(b,d)|0)|0;return b|0}else{b=nd(b,md(b,d)|0)|0;return b|0}}else{e=b+328|0;f=b+264|0;h=c[f>>2]&c[e>>2];k=h&65280;i=b+320|0;n=c[b+3984>>2]|0;m=237792+(n<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;j=c[i>>2]&~l;i=c[i+4>>2]&~m;e=xJ(h|0,c[f+4>>2]&c[e+4>>2]|0,8)|0;e=s&-256&e;f=t&16777215&(E()|0);xJ(e|0,f|0,8)|0;h=t&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){w=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(w|512)+(w<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){w=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(w|1024)+(w<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((k|0)==0&0==0)){e=xJ(k|0,0,9)|0;e=j&e;i=i&(E()|0);h=xJ(k|0,0,7)|0;E()|0;h=h&254&j;g=xJ(k|0,0,8)|0;g=g&s;f=(E()|0)&t;if(!((e|0)==0&(i|0)==0)){j=e;e=d;while(1){w=qa(j|0,i|0,0)|0;E()|0;d=pJ(j|0,i|0,-1,-1)|0;j=d&j;i=(E()|0)&i;w=w*65|0;c[e>>2]=w+25152;c[e+8>>2]=w+21056;d=e+24|0;c[e+16>>2]=w+16960;if((j|0)==0&(i|0)==0)break;else e=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){w=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;w=w*65|0;c[e>>2]=w+25024;c[e+8>>2]=w+20928;d=e+24|0;c[e+16>>2]=w+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){w=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;w=w*65|0;c[d>>2]=w+25088;c[d+8>>2]=w+20992;e=d+24|0;c[d+16>>2]=w+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;w=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[w>>2]&u|0,c[w+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;w=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[w>>2]&u|0,c[w+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;r=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[r>>2]&u|0,c[r+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;r=c[241376+(e*24|0)+16>>2]|0;q=241376+(e*24|0)|0;w=241376+(e*24|0)+8|0;w=vJ(c[q>>2]&u|0,c[q+4>>2]&v|0,c[w>>2]|0,c[w+4>>2]|0)|0;w=xJ(w|0,E()|0,55)|0;E()|0;w=r+(w<<3)|0;g=(c[w>>2]|g)&s;h=(c[w+4>>2]|h)&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){w=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+w;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=l&s;e=m&t;if(!((f|0)==0&(e|0)==0)){h=n<<6;g=f;f=e;while(1){w=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+w;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}if(!(c[(c[b+5352>>2]|0)+24>>2]&12)){b=d;return b|0}if(!(a[b+5356>>0]|0)){b=td(b,sd(b,d)|0)|0;return b|0}else{b=rd(b,qd(b,d)|0)|0;return b|0}}case 3:if(!e){g=b+320|0;f=b+264|0;e=c[f+4>>2]&c[g+4>>2];l=e&16711680;o=b+328|0;n=o;m=c[n>>2]|0;n=c[n+4>>2]|0;e=yJ(c[f>>2]&c[g>>2]|0,e|0,8)|0;g=s&-256;f=t&16777215;e=e&g;h=(E()|0)&f;j=yJ(e|0,h|0,8)|0;E()|0;j=s&-16777216&j;if(!((e|0)==0&(h|0)==0)){i=d;while(1){p=qa(e|0,h|0,0)|0;E()|0;d=pJ(e|0,h|0,-1,-1)|0;e=d&e;h=(E()|0)&h;d=i+8|0;c[i>>2]=(p|-512)+(p<<6);if((e|0)==0&(h|0)==0)break;else i=d}}if(!((j|0)==0&0==0)){h=j;i=0;e=d;while(1){p=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;d=e+8|0;c[e>>2]=(p|-1024)+(p<<6);if((h|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(l|0)==0)){e=yJ(0,l|0,9)|0;e=e&m;k=(E()|0)&n;yJ(0,l|0,7)|0;j=n&2130706432&(E()|0);i=yJ(0,l|0,8)|0;i=i&s;h=(E()|0)&t;if(!((e|0)==0&(k|0)==0)){l=k;k=d;while(1){p=qa(e|0,l|0,0)|0;E()|0;d=pJ(e|0,l|0,-1,-1)|0;e=d&e;l=(E()|0)&l;p=p*65|0;c[k>>2]=p+24e3;c[k+8>>2]=p+19904;d=k+24|0;c[k+16>>2]=p+15808;if((e|0)==0&(l|0)==0)break;else k=d}}if(!(0==0&(j|0)==0)){k=0;e=d;while(1){p=qa(k|0,j|0,0)|0;E()|0;d=pJ(k|0,j|0,-1,-1)|0;k=d&k;j=(E()|0)&j;p=p*65|0;c[e>>2]=p+24128;c[e+8>>2]=p+20032;d=e+24|0;c[e+16>>2]=p+15936;if((k|0)==0&(j|0)==0)break;else e=d}}if(!((i|0)==0&(h|0)==0)){e=d;while(1){p=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;p=p*65|0;c[e>>2]=p+24064;c[e+8>>2]=p+19968;d=e+24|0;c[e+16>>2]=p+15872;if((i|0)==0&(h|0)==0)break;else e=d}}}h=b+912|0;e=c[h>>2]|0;if((e|0)!=64)do{j=235744+(e<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+1168|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[241376+(e*24|0)+16>>2]|0;p=241376+(e*24|0)|0;j=241376+(e*24|0)+8|0;j=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,55)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+1424|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[239840+(e*24|0)+16>>2]|0;p=239840+(e*24|0)|0;j=239840+(e*24|0)+8|0;j=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+1680|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[239840+(e*24|0)+16>>2]|0;l=239840+(e*24|0)|0;j=239840+(e*24|0)+8|0;j=vJ(c[l>>2]&u|0,c[l+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;l=c[241376+(e*24|0)+16>>2]|0;k=241376+(e*24|0)|0;p=241376+(e*24|0)+8|0;p=vJ(c[k>>2]&u|0,c[k+4>>2]&v|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=xJ(p|0,E()|0,55)|0;E()|0;p=l+(p<<3)|0;i=(c[p>>2]|i)&s;j=(c[p+4>>2]|j)&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);if(c[b+4496>>2]|0){if(!((g|0)==0&(f|0)==0|(c[b+4500>>2]|0)==0))while(1){p=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=(p|36864)+64;if((g|0)==0&(f|0)==0){d=e;break}else d=e}h=(u|0)==-1&(v|0)==-1;if(!(h|(c[b+4504>>2]|0)==0)){f=s;g=t;while(1){p=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=p|36992;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}if(!(h|(c[b+4508>>2]|0)==0)){f=s;g=t;while(1){p=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=(p|36864)+192;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}if(!(h|(c[b+4512>>2]|0)==0)){f=s;g=t;while(1){p=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=p|37120;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}if(!(h|(c[b+4516>>2]|0)==0)){f=s;g=t;e=d;while(1){p=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(p|36864)+320;if((f|0)==0&(g|0)==0)break;else e=d}}}e=c[b+1936>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&s;g=c[g+4>>2]&t;if(!((f|0)==0&(g|0)==0)){h=e<<6;e=d;while(1){t=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=h+t;if((f|0)==0&(g|0)==0)break;else e=d}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&3)){b=d;return b|0}if(a[b+5356>>0]|0){b=vd(b,ud(b,d)|0)|0;return b|0}t=b+5216|0;a:do if(!((e&1|0)==0|(c[t>>2]&u|0?1:(c[t+4>>2]&v|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{v=ue(b,6,u,v)|0;if(!((v&m|0)==0&((E()|0)&n|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;v=w;v=ue(b,e,c[v>>2]|0,c[v+4>>2]|0)|0;if((v&m|0)==0&((E()|0)&n|0)==0)e=e+-1|0;else break a}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;v=b+5224|0;if(!((c[v>>2]&g|0)==0?(c[v+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[h>>2]|0)+24>>2]&2)){b=d;return b|0}if((c[r>>2]|0)==1?(c[b+360>>2]|0)==0:0){f=c[b+5152>>2]|0;e=64;q=291}else{e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else q=291}b:do if((q|0)==291){i=o;h=c[i>>2]|0;i=c[i+4>>2]|0;v=ue(b,2,g,j)|0;if(!((v&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=3;while(1){if((g|0)==(e|0))break b;v=w;v=ue(b,g,c[v>>2]|0,c[v+4>>2]|0)|0;if((v&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}else{e=b+328|0;g=b+264|0;f=c[g>>2]&c[e>>2];l=f&65280;o=b+320|0;n=o;m=c[n>>2]|0;n=c[n+4>>2]|0;e=xJ(f|0,c[g+4>>2]&c[e+4>>2]|0,8)|0;g=s&-256;f=t&16777215;e=e&g;h=(E()|0)&f;xJ(e|0,h|0,8)|0;j=t&255&(E()|0);if(!((e|0)==0&(h|0)==0)){i=d;while(1){p=qa(e|0,h|0,0)|0;E()|0;d=pJ(e|0,h|0,-1,-1)|0;e=d&e;h=(E()|0)&h;d=i+8|0;c[i>>2]=(p|512)+(p<<6);if((e|0)==0&(h|0)==0)break;else i=d}}if(!(0==0&(j|0)==0)){i=0;h=j;e=d;while(1){p=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;d=e+8|0;c[e>>2]=(p|1024)+(p<<6);if((i|0)==0&(h|0)==0)break;else e=d}}if(!((l|0)==0&0==0)){e=xJ(l|0,0,9)|0;e=e&m;k=(E()|0)&n;j=xJ(l|0,0,7)|0;E()|0;j=m&254&j;i=xJ(l|0,0,8)|0;i=i&s;h=(E()|0)&t;if(!((e|0)==0&(k|0)==0)){l=k;k=d;while(1){p=qa(e|0,l|0,0)|0;E()|0;d=pJ(e|0,l|0,-1,-1)|0;e=d&e;l=(E()|0)&l;p=p*65|0;c[k>>2]=p+25152;c[k+8>>2]=p+21056;d=k+24|0;c[k+16>>2]=p+16960;if((e|0)==0&(l|0)==0)break;else k=d}}if(!((j|0)==0&0==0)){k=0;e=d;while(1){p=qa(j|0,k|0,0)|0;E()|0;d=pJ(j|0,k|0,-1,-1)|0;j=d&j;k=(E()|0)&k;p=p*65|0;c[e>>2]=p+25024;c[e+8>>2]=p+20928;d=e+24|0;c[e+16>>2]=p+16832;if((j|0)==0&(k|0)==0)break;else e=d}}if(!((i|0)==0&(h|0)==0))while(1){p=qa(i|0,h|0,0)|0;E()|0;e=pJ(i|0,h|0,-1,-1)|0;i=e&i;h=(E()|0)&h;p=p*65|0;c[d>>2]=p+25088;c[d+8>>2]=p+20992;e=d+24|0;c[d+16>>2]=p+16896;if((i|0)==0&(h|0)==0){d=e;break}else d=e}}h=b+2960|0;e=c[h>>2]|0;if((e|0)!=64)do{j=235744+(e<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+3216|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[241376+(e*24|0)+16>>2]|0;p=241376+(e*24|0)|0;j=241376+(e*24|0)+8|0;j=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,55)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+3472|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[239840+(e*24|0)+16>>2]|0;p=239840+(e*24|0)|0;j=239840+(e*24|0)+8|0;j=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+3728|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[239840+(e*24|0)+16>>2]|0;l=239840+(e*24|0)|0;j=239840+(e*24|0)+8|0;j=vJ(c[l>>2]&u|0,c[l+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;l=c[241376+(e*24|0)+16>>2]|0;k=241376+(e*24|0)|0;p=241376+(e*24|0)+8|0;p=vJ(c[k>>2]&u|0,c[k+4>>2]&v|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=xJ(p|0,E()|0,55)|0;E()|0;p=l+(p<<3)|0;i=(c[p>>2]|i)&s;j=(c[p+4>>2]|j)&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){p=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+p;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);if(c[b+4528>>2]|0){if(!((g|0)==0&(f|0)==0|(c[b+4532>>2]|0)==0)){e=d;while(1){p=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(p|36864)+576;if((g|0)==0&(f|0)==0)break;else e=d}}h=(u|0)==-1&(v|0)==-1;if(!(h|(c[b+4536>>2]|0)==0)){f=s;g=t;e=d;while(1){p=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=p|37504;if((f|0)==0&(g|0)==0)break;else e=d}}if(!(h|(c[b+4540>>2]|0)==0)){f=s;g=t;e=d;while(1){p=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(p|36864)+704;if((f|0)==0&(g|0)==0)break;else e=d}}if(!(h|(c[b+4544>>2]|0)==0)){f=s;g=t;e=d;while(1){p=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=p|37632;if((f|0)==0&(g|0)==0)break;else e=d}}if(!(h|(c[b+4548>>2]|0)==0)){f=s;g=t;e=d;while(1){p=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(p|36864)+832;if((f|0)==0&(g|0)==0)break;else e=d}}}e=c[b+3984>>2]|0;g=237792+(e<<3)|0;f=c[g>>2]&s;g=c[g+4>>2]&t;if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){t=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+t;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&12)){b=d;return b|0}if(a[b+5356>>0]|0){b=xd(b,wd(b,d)|0)|0;return b|0}t=b+5240|0;c:do if(!((e&4|0)==0|(c[t>>2]&u|0?1:(c[t+4>>2]&v|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{v=ue(b,62,u,v)|0;if(!((v&m|0)==0&((E()|0)&n|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;v=w;v=ue(b,e,c[v>>2]|0,c[v+4>>2]|0)|0;if((v&m|0)==0&((E()|0)&n|0)==0)e=e+-1|0;else break c}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;v=b+5272|0;if(!((c[v>>2]&g|0)==0?(c[v+4>>2]&j|0)==0:0)){b=d;return b|0}if(!(c[(c[h>>2]|0)+24>>2]&8)){b=d;return b|0}if((c[r>>2]|0)==1?(c[b+392>>2]|0)==0:0){f=c[b+5176>>2]|0;e=64;q=372}else{e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else q=372}d:do if((q|0)==372){i=o;h=c[i>>2]|0;i=c[i+4>>2]|0;v=ue(b,58,g,j)|0;if(!((v&h|0)==0&((E()|0)&i|0)==0)){b=d;return b|0}g=59;while(1){if((g|0)==(e|0))break d;v=w;v=ue(b,g,c[v>>2]|0,c[v+4>>2]|0)|0;if((v&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);b=d+8|0;return b|0}case 4:if(!e){h=b+320|0;j=b+264|0;e=c[j+4>>2]&c[h+4>>2];l=e&16711680;p=b+328|0;o=p;n=c[o>>2]|0;o=c[o+4>>2]|0;e=yJ(c[j>>2]&c[h>>2]|0,e|0,8)|0;e=s&-256&e;h=t&16777215&(E()|0);j=yJ(e|0,h|0,8)|0;E()|0;j=s&-65536&j;if(!((e|0)==0&(h|0)==0)){i=d;while(1){k=qa(e|0,h|0,0)|0;E()|0;d=pJ(e|0,h|0,-1,-1)|0;e=d&e;h=(E()|0)&h;d=i+8|0;c[i>>2]=(k|-512)+(k<<6);if((e|0)==0&(h|0)==0)break;else i=d}}if(!((j|0)==0&0==0)){h=j;i=0;e=d;while(1){k=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;d=e+8|0;c[e>>2]=(k|-1024)+(k<<6);if((h|0)==0&(i|0)==0)break;else e=d}}if(!(0==0&(l|0)==0)){e=yJ(0,l|0,9)|0;e=e&n;k=(E()|0)&o;yJ(0,l|0,7)|0;j=o&2130706432&(E()|0);i=yJ(0,l|0,8)|0;i=i&s;h=(E()|0)&t;if(!((e|0)==0&(k|0)==0)){l=k;k=d;while(1){x=qa(e|0,l|0,0)|0;E()|0;d=pJ(e|0,l|0,-1,-1)|0;e=d&e;l=(E()|0)&l;x=x*65|0;c[k>>2]=x+24e3;c[k+8>>2]=x+19904;d=k+24|0;c[k+16>>2]=x+15808;if((e|0)==0&(l|0)==0)break;else k=d}}if(!(0==0&(j|0)==0)){k=0;e=d;while(1){x=qa(k|0,j|0,0)|0;E()|0;d=pJ(k|0,j|0,-1,-1)|0;k=d&k;j=(E()|0)&j;x=x*65|0;c[e>>2]=x+24128;c[e+8>>2]=x+20032;d=e+24|0;c[e+16>>2]=x+15936;if((k|0)==0&(j|0)==0)break;else e=d}}if(!((i|0)==0&(h|0)==0))while(1){x=qa(i|0,h|0,0)|0;E()|0;e=pJ(i|0,h|0,-1,-1)|0;i=e&i;h=(E()|0)&h;x=x*65|0;c[d>>2]=x+24064;c[d+8>>2]=x+19968;e=d+24|0;c[d+16>>2]=x+15872;if((i|0)==0&(h|0)==0){d=e;break}else d=e}}h=b+912|0;e=c[h>>2]|0;if((e|0)!=64)do{j=235744+(e<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){x=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+x;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+1168|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[241376+(e*24|0)+16>>2]|0;x=241376+(e*24|0)|0;j=241376+(e*24|0)+8|0;j=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,55)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){x=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+x;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+1424|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[239840+(e*24|0)+16>>2]|0;x=239840+(e*24|0)|0;j=239840+(e*24|0)+8|0;j=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]&s;j=c[j+4>>2]&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){x=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+x;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);h=b+1680|0;e=c[h>>2]|0;if((e|0)!=64)do{i=c[239840+(e*24|0)+16>>2]|0;l=239840+(e*24|0)|0;j=239840+(e*24|0)+8|0;j=vJ(c[l>>2]&u|0,c[l+4>>2]&v|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=xJ(j|0,E()|0,52)|0;E()|0;j=i+(j<<3)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;l=c[241376+(e*24|0)+16>>2]|0;k=241376+(e*24|0)|0;x=241376+(e*24|0)+8|0;x=vJ(c[k>>2]&u|0,c[k+4>>2]&v|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=xJ(x|0,E()|0,55)|0;E()|0;x=l+(x<<3)|0;i=(c[x>>2]|i)&s;j=(c[x+4>>2]|j)&t;if(!((i|0)==0&(j|0)==0)){k=e<<6;e=d;while(1){x=qa(i|0,j|0,0)|0;E()|0;d=pJ(i|0,j|0,-1,-1)|0;i=d&i;j=(E()|0)&j;d=e+8|0;c[e>>2]=k+x;if((i|0)==0&(j|0)==0)break;else e=d}}h=h+4|0;e=c[h>>2]|0}while((e|0)!=64);if((c[b+360>>2]|0)!=0?(m=c[b+1936>>2]|0,f=237792+(m<<3)|0,g=c[f>>2]&s,f=c[f+4>>2]&t,!((g|0)==0&(f|0)==0)):0){h=m<<6;while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+x;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&3)){x=d;return x|0}if(a[b+5356>>0]|0){x=zd(b,yd(b,d)|0)|0;return x|0}x=b+5216|0;e:do if(!((e&1|0)==0|(c[x>>2]&u|0?1:(c[x+4>>2]&v|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{x=ue(b,6,u,v)|0;if(!((x&n|0)==0&((E()|0)&o|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;x=w;x=ue(b,e,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&n|0)==0&((E()|0)&o|0)==0)e=e+-1|0;else break e}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;x=b+5224|0;if(!((c[x>>2]&g|0)==0?(c[x+4>>2]&j|0)==0:0)){x=d;return x|0}if(!(c[(c[h>>2]|0)+24>>2]&2)){x=d;return x|0}if((c[r>>2]|0)==1?(c[b+360>>2]|0)==0:0){f=c[b+5152>>2]|0;e=64;q=439}else{e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else q=439}f:do if((q|0)==439){i=p;h=c[i>>2]|0;i=c[i+4>>2]|0;x=ue(b,2,g,j)|0;if(!((x&h|0)==0&((E()|0)&i|0)==0)){x=d;return x|0}g=3;while(1){if((g|0)==(e|0))break f;x=w;x=ue(b,g,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);x=d+8|0;return x|0}else{e=b+328|0;f=b+264|0;h=c[f>>2]&c[e>>2];j=h&65280;p=b+320|0;o=p;m=c[o>>2]|0;o=c[o+4>>2]|0;e=xJ(h|0,c[f+4>>2]&c[e+4>>2]|0,8)|0;e=s&-256&e;f=t&16777215&(E()|0);xJ(e|0,f|0,8)|0;h=t&65535&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){x=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(x|512)+(x<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){x=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(x|1024)+(x<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&m;i=(E()|0)&o;h=xJ(j|0,0,7)|0;E()|0;h=m&254&h;g=xJ(j|0,0,8)|0;g=g&s;f=(E()|0)&t;if(!((e|0)==0&(i|0)==0)){j=i;i=d;while(1){x=qa(e|0,j|0,0)|0;E()|0;d=pJ(e|0,j|0,-1,-1)|0;e=d&e;j=(E()|0)&j;x=x*65|0;c[i>>2]=x+25152;c[i+8>>2]=x+21056;d=i+24|0;c[i+16>>2]=x+16960;if((e|0)==0&(j|0)==0)break;else i=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){x=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;x=x*65|0;c[e>>2]=x+25024;c[e+8>>2]=x+20928;d=e+24|0;c[e+16>>2]=x+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;x=x*65|0;c[d>>2]=x+25088;c[d+8>>2]=x+20992;e=d+24|0;c[d+16>>2]=x+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;x=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;x=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;j=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[j>>2]&u|0,c[j+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;j=c[241376+(e*24|0)+16>>2]|0;i=241376+(e*24|0)|0;x=241376+(e*24|0)+8|0;x=vJ(c[i>>2]&u|0,c[i+4>>2]&v|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=xJ(x|0,E()|0,55)|0;E()|0;x=j+(x<<3)|0;g=(c[x>>2]|g)&s;h=(c[x+4>>2]|h)&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);if((c[b+392>>2]|0)!=0?(k=c[b+3984>>2]|0,n=237792+(k<<3)|0,l=c[n>>2]&s,n=c[n+4>>2]&t,!((l|0)==0&(n|0)==0)):0){h=k<<6;g=l;f=n;while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+x;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&12)){x=d;return x|0}if(a[b+5356>>0]|0){x=Bd(b,Ad(b,d)|0)|0;return x|0}x=b+5240|0;g:do if(!((e&4|0)==0|(c[x>>2]&u|0?1:(c[x+4>>2]&v|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{x=ue(b,62,u,v)|0;if(!((x&m|0)==0&((E()|0)&o|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;x=w;x=ue(b,e,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&m|0)==0&((E()|0)&o|0)==0)e=e+-1|0;else break g}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;x=b+5272|0;if(!((c[x>>2]&g|0)==0?(c[x+4>>2]&j|0)==0:0)){x=d;return x|0}if(!(c[(c[h>>2]|0)+24>>2]&8)){x=d;return x|0}if((c[r>>2]|0)==1?(c[b+392>>2]|0)==0:0){f=c[b+5176>>2]|0;e=64;q=505}else{e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else q=505}h:do if((q|0)==505){i=p;h=c[i>>2]|0;i=c[i+4>>2]|0;x=ue(b,58,g,j)|0;if(!((x&h|0)==0&((E()|0)&i|0)==0)){x=d;return x|0}g=59;while(1){if((g|0)==(e|0))break h;x=w;x=ue(b,g,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);x=d+8|0;return x|0}default:{e=(e|0)==0;if((o|0)==6)if(e){f=b+320|0;h=b+264|0;e=c[h+4>>2]&c[f+4>>2];j=e&16711680;m=b+328|0;l=m;k=c[l>>2]|0;l=c[l+4>>2]|0;e=yJ(c[h>>2]&c[f>>2]|0,e|0,8)|0;e=s&-256&e;f=t&16777215&(E()|0);h=yJ(e|0,f|0,8)|0;E()|0;h=s&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){x=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(x|-512)+(x<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){x=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(x|-1024)+(x<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(j|0)==0)){e=yJ(0,j|0,9)|0;e=e&k;i=(E()|0)&l;yJ(0,j|0,7)|0;h=l&2130706432&(E()|0);g=yJ(0,j|0,8)|0;g=g&s;f=(E()|0)&t;if(!((e|0)==0&(i|0)==0)){j=i;i=d;while(1){x=qa(e|0,j|0,0)|0;E()|0;d=pJ(e|0,j|0,-1,-1)|0;e=d&e;j=(E()|0)&j;x=x*65|0;c[i>>2]=x+24e3;c[i+8>>2]=x+19904;d=i+24|0;c[i+16>>2]=x+15808;if((e|0)==0&(j|0)==0)break;else i=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){x=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;x=x*65|0;c[e>>2]=x+24128;c[e+8>>2]=x+20032;d=e+24|0;c[e+16>>2]=x+15936;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;x=x*65|0;c[d>>2]=x+24064;c[d+8>>2]=x+19968;e=d+24|0;c[d+16>>2]=x+15872;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;x=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;x=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;q=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[q>>2]&u|0,c[q+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;q=c[241376+(e*24|0)+16>>2]|0;p=241376+(e*24|0)|0;x=241376+(e*24|0)+8|0;x=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=xJ(x|0,E()|0,55)|0;E()|0;x=q+(x<<3)|0;g=(c[x>>2]|g)&s;h=(c[x+4>>2]|h)&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);e=c[b+1936>>2]|0;x=237792+(e<<3)|0;g=232672+(e<<3)|0;f=c[x>>2]&s&~c[g>>2];g=c[x+4>>2]&t&~c[g+4>>2];if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){x=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+x;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&3)){x=d;return x|0}if(a[b+5356>>0]|0){x=Dd(b,Cd(b,d)|0)|0;return x|0}x=b+5216|0;i:do if(!((e&1|0)==0|(c[x>>2]&u|0?1:(c[x+4>>2]&v|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{x=ue(b,6,u,v)|0;if(!((x&k|0)==0&((E()|0)&l|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;x=w;x=ue(b,e,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&k|0)==0&((E()|0)&l|0)==0)e=e+-1|0;else break i}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;x=b+5224|0;if(!((c[x>>2]&g|0)==0?(c[x+4>>2]&j|0)==0:0)){x=d;return x|0}if(!(c[(c[h>>2]|0)+24>>2]&2)){x=d;return x|0}do if((c[r>>2]|0)==1){if(c[b+360>>2]|0){q=571;break}f=c[b+5152>>2]|0;e=64;q=572}else q=571;while(0);if((q|0)==571){e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else q=572}j:do if((q|0)==572){i=m;h=c[i>>2]|0;i=c[i+4>>2]|0;x=ue(b,2,g,j)|0;if(!((x&h|0)==0&((E()|0)&i|0)==0)){x=d;return x|0}g=3;while(1){if((g|0)==(e|0))break j;x=w;x=ue(b,g,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);x=d+8|0;return x|0}else{e=b+328|0;f=b+264|0;h=c[f>>2]&c[e>>2];j=h&65280;m=b+320|0;l=m;k=c[l>>2]|0;l=c[l+4>>2]|0;e=xJ(h|0,c[f+4>>2]&c[e+4>>2]|0,8)|0;e=s&-256&e;f=t&16777215&(E()|0);xJ(e|0,f|0,8)|0;h=t&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){x=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(x|512)+(x<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){x=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(x|1024)+(x<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&k;i=(E()|0)&l;h=xJ(j|0,0,7)|0;E()|0;h=k&254&h;g=xJ(j|0,0,8)|0;g=g&s;f=(E()|0)&t;if(!((e|0)==0&(i|0)==0)){j=i;i=d;while(1){x=qa(e|0,j|0,0)|0;E()|0;d=pJ(e|0,j|0,-1,-1)|0;e=d&e;j=(E()|0)&j;x=x*65|0;c[i>>2]=x+25152;c[i+8>>2]=x+21056;d=i+24|0;c[i+16>>2]=x+16960;if((e|0)==0&(j|0)==0)break;else i=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){x=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;x=x*65|0;c[e>>2]=x+25024;c[e+8>>2]=x+20928;d=e+24|0;c[e+16>>2]=x+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;x=x*65|0;c[d>>2]=x+25088;c[d+8>>2]=x+20992;e=d+24|0;c[d+16>>2]=x+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;x=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;x=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;q=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[q>>2]&u|0,c[q+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;q=c[241376+(e*24|0)+16>>2]|0;p=241376+(e*24|0)|0;x=241376+(e*24|0)+8|0;x=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=xJ(x|0,E()|0,55)|0;E()|0;x=q+(x<<3)|0;g=(c[x>>2]|g)&s;h=(c[x+4>>2]|h)&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);e=c[b+3984>>2]|0;x=237792+(e<<3)|0;g=232672+(e<<3)|0;f=c[x>>2]&s&~c[g>>2];g=c[x+4>>2]&t&~c[g+4>>2];if(!((f|0)==0&(g|0)==0)){h=e<<6;while(1){x=qa(f|0,g|0,0)|0;E()|0;e=pJ(f|0,g|0,-1,-1)|0;f=e&f;g=(E()|0)&g;e=d+8|0;c[d>>2]=h+x;if((f|0)==0&(g|0)==0){d=e;break}else d=e}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&12)){x=d;return x|0}if(a[b+5356>>0]|0){x=Fd(b,Ed(b,d)|0)|0;return x|0}x=b+5240|0;k:do if(!((e&4|0)==0|(c[x>>2]&u|0?1:(c[x+4>>2]&v|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{x=ue(b,62,u,v)|0;if(!((x&k|0)==0&((E()|0)&l|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;x=w;x=ue(b,e,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&k|0)==0&((E()|0)&l|0)==0)e=e+-1|0;else break k}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;x=b+5272|0;if(!((c[x>>2]&g|0)==0?(c[x+4>>2]&j|0)==0:0)){x=d;return x|0}if(!(c[(c[h>>2]|0)+24>>2]&8)){x=d;return x|0}do if((c[r>>2]|0)==1){if(c[b+392>>2]|0){q=636;break}f=c[b+5176>>2]|0;e=64;q=637}else q=636;while(0);if((q|0)==636){e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else q=637}l:do if((q|0)==637){i=m;h=c[i>>2]|0;i=c[i+4>>2]|0;x=ue(b,58,g,j)|0;if(!((x&h|0)==0&((E()|0)&i|0)==0)){x=d;return x|0}g=59;while(1){if((g|0)==(e|0))break l;x=w;x=ue(b,g,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);x=d+8|0;return x|0}if(e){f=b+320|0;h=b+264|0;e=c[h+4>>2]&c[f+4>>2];j=e&16711680;m=b+328|0;l=m;k=c[l>>2]|0;l=c[l+4>>2]|0;e=yJ(c[h>>2]&c[f>>2]|0,e|0,8)|0;e=s&-256&e;f=t&16777215&(E()|0);h=yJ(e|0,f|0,8)|0;E()|0;h=s&-16777216&h;if(!((e|0)==0&(f|0)==0)){g=d;while(1){x=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(x|-512)+(x<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!((h|0)==0&0==0)){f=h;g=0;e=d;while(1){x=qa(f|0,g|0,0)|0;E()|0;d=pJ(f|0,g|0,-1,-1)|0;f=d&f;g=(E()|0)&g;d=e+8|0;c[e>>2]=(x|-1024)+(x<<6);if((f|0)==0&(g|0)==0)break;else e=d}}if(!(0==0&(j|0)==0)){e=yJ(0,j|0,9)|0;e=e&k;i=(E()|0)&l;yJ(0,j|0,7)|0;h=l&2130706432&(E()|0);g=yJ(0,j|0,8)|0;g=g&s;f=(E()|0)&t;if(!((e|0)==0&(i|0)==0)){j=i;i=d;while(1){x=qa(e|0,j|0,0)|0;E()|0;d=pJ(e|0,j|0,-1,-1)|0;e=d&e;j=(E()|0)&j;x=x*65|0;c[i>>2]=x+24e3;c[i+8>>2]=x+19904;d=i+24|0;c[i+16>>2]=x+15808;if((e|0)==0&(j|0)==0)break;else i=d}}if(!(0==0&(h|0)==0)){i=0;e=d;while(1){x=qa(i|0,h|0,0)|0;E()|0;d=pJ(i|0,h|0,-1,-1)|0;i=d&i;h=(E()|0)&h;x=x*65|0;c[e>>2]=x+24128;c[e+8>>2]=x+20032;d=e+24|0;c[e+16>>2]=x+15936;if((i|0)==0&(h|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;x=x*65|0;c[d>>2]=x+24064;c[d+8>>2]=x+19968;e=d+24|0;c[d+16>>2]=x+15872;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+912|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1168|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;x=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1424|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;x=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+1680|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;p=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;p=c[241376+(e*24|0)+16>>2]|0;n=241376+(e*24|0)|0;x=241376+(e*24|0)+8|0;x=vJ(c[n>>2]&u|0,c[n+4>>2]&v|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=xJ(x|0,E()|0,55)|0;E()|0;x=p+(x<<3)|0;g=(c[x>>2]|g)&s;h=(c[x+4>>2]|h)&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);switch(o|0){case 4:{if(c[b+360>>2]|0)q=686;break}case 1:{if(!(c[b+360>>2]|0)){g=64;q=687}else q=686;break}default:q=686}if((q|0)==686){g=c[b+1936>>2]|0;q=687}if((q|0)==687){f=237792+(g<<3)|0;e=c[f>>2]&s;f=c[f+4>>2]&t;if(!((e|0)==0&(f|0)==0)){h=g<<6;g=e;while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+x;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&3)){x=d;return x|0}if(a[b+5356>>0]|0){x=Hd(b,Gd(b,d)|0)|0;return x|0}x=b+5216|0;m:do if(!((e&1|0)==0|(c[x>>2]&u|0?1:(c[x+4>>2]&v|0)!=0))){f=c[b+1936>>2]|0;g=c[b+5148>>2]|0;if((f|0)==6)e=384;else{x=ue(b,6,u,v)|0;if(!((x&k|0)==0&((E()|0)&l|0)==0))break;e=5;while(1){if((e|0)==(f|0))break;x=w;x=ue(b,e,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&k|0)==0&((E()|0)&l|0)==0)e=e+-1|0;else break m}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;x=b+5224|0;if(!((c[x>>2]&g|0)==0?(c[x+4>>2]&j|0)==0:0)){x=d;return x|0}if(!(c[(c[h>>2]|0)+24>>2]&2)){x=d;return x|0}if((c[r>>2]|0)==1?(c[b+360>>2]|0)==0:0){f=c[b+5152>>2]|0;e=64;q=707}else{e=c[b+1936>>2]|0;f=c[b+5152>>2]|0;if((e|0)==2)e=2;else q=707}n:do if((q|0)==707){i=m;h=c[i>>2]|0;i=c[i+4>>2]|0;x=ue(b,2,g,j)|0;if(!((x&h|0)==0&((E()|0)&i|0)==0)){x=d;return x|0}g=3;while(1){if((g|0)==(e|0))break n;x=w;x=ue(b,g,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);x=d+8|0;return x|0}else{e=b+328|0;f=b+264|0;h=c[f>>2]&c[e>>2];j=h&65280;m=b+320|0;l=m;k=c[l>>2]|0;l=c[l+4>>2]|0;e=xJ(h|0,c[f+4>>2]&c[e+4>>2]|0,8)|0;e=s&-256&e;f=t&16777215&(E()|0);xJ(e|0,f|0,8)|0;h=t&255&(E()|0);if(!((e|0)==0&(f|0)==0)){g=d;while(1){x=qa(e|0,f|0,0)|0;E()|0;d=pJ(e|0,f|0,-1,-1)|0;e=d&e;f=(E()|0)&f;d=g+8|0;c[g>>2]=(x|512)+(x<<6);if((e|0)==0&(f|0)==0)break;else g=d}}if(!(0==0&(h|0)==0)){g=0;f=h;e=d;while(1){x=qa(g|0,f|0,0)|0;E()|0;d=pJ(g|0,f|0,-1,-1)|0;g=d&g;f=(E()|0)&f;d=e+8|0;c[e>>2]=(x|1024)+(x<<6);if((g|0)==0&(f|0)==0)break;else e=d}}if(!((j|0)==0&0==0)){e=xJ(j|0,0,9)|0;e=e&k;i=(E()|0)&l;h=xJ(j|0,0,7)|0;E()|0;h=k&254&h;g=xJ(j|0,0,8)|0;g=g&s;f=(E()|0)&t;if(!((e|0)==0&(i|0)==0)){j=i;i=d;while(1){x=qa(e|0,j|0,0)|0;E()|0;d=pJ(e|0,j|0,-1,-1)|0;e=d&e;j=(E()|0)&j;x=x*65|0;c[i>>2]=x+25152;c[i+8>>2]=x+21056;d=i+24|0;c[i+16>>2]=x+16960;if((e|0)==0&(j|0)==0)break;else i=d}}if(!((h|0)==0&0==0)){i=0;e=d;while(1){x=qa(h|0,i|0,0)|0;E()|0;d=pJ(h|0,i|0,-1,-1)|0;h=d&h;i=(E()|0)&i;x=x*65|0;c[e>>2]=x+25024;c[e+8>>2]=x+20928;d=e+24|0;c[e+16>>2]=x+16832;if((h|0)==0&(i|0)==0)break;else e=d}}if(!((g|0)==0&(f|0)==0))while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;x=x*65|0;c[d>>2]=x+25088;c[d+8>>2]=x+20992;e=d+24|0;c[d+16>>2]=x+16896;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}f=b+2960|0;e=c[f>>2]|0;if((e|0)!=64)do{h=235744+(e<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3216|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[241376+(e*24|0)+16>>2]|0;x=241376+(e*24|0)|0;h=241376+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,55)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3472|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;x=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[x>>2]&u|0,c[x+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]&s;h=c[h+4>>2]&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);f=b+3728|0;e=c[f>>2]|0;if((e|0)!=64)do{g=c[239840+(e*24|0)+16>>2]|0;p=239840+(e*24|0)|0;h=239840+(e*24|0)+8|0;h=vJ(c[p>>2]&u|0,c[p+4>>2]&v|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=xJ(h|0,E()|0,52)|0;E()|0;h=g+(h<<3)|0;g=c[h>>2]|0;h=c[h+4>>2]|0;p=c[241376+(e*24|0)+16>>2]|0;n=241376+(e*24|0)|0;x=241376+(e*24|0)+8|0;x=vJ(c[n>>2]&u|0,c[n+4>>2]&v|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=xJ(x|0,E()|0,55)|0;E()|0;x=p+(x<<3)|0;g=(c[x>>2]|g)&s;h=(c[x+4>>2]|h)&t;if(!((g|0)==0&(h|0)==0)){i=e<<6;e=d;while(1){x=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=e+8|0;c[e>>2]=i+x;if((g|0)==0&(h|0)==0)break;else e=d}}f=f+4|0;e=c[f>>2]|0}while((e|0)!=64);switch(o|0){case 4:{if(c[b+392>>2]|0)q=755;break}case 1:{if(!(c[b+392>>2]|0)){g=64;q=756}else q=755;break}default:q=755}if((q|0)==755){g=c[b+3984>>2]|0;q=756}if((q|0)==756){f=237792+(g<<3)|0;e=c[f>>2]&s;f=c[f+4>>2]&t;if(!((e|0)==0&(f|0)==0)){h=g<<6;g=e;while(1){x=qa(g|0,f|0,0)|0;E()|0;e=pJ(g|0,f|0,-1,-1)|0;g=e&g;f=(E()|0)&f;e=d+8|0;c[d>>2]=h+x;if((g|0)==0&(f|0)==0){d=e;break}else d=e}}}h=b+5352|0;e=c[(c[h>>2]|0)+24>>2]|0;if(!(e&12)){x=d;return x|0}if(a[b+5356>>0]|0){x=Jd(b,Id(b,d)|0)|0;return x|0}x=b+5240|0;o:do if(!((e&4|0)==0|(c[x>>2]&u|0?1:(c[x+4>>2]&v|0)!=0))){f=c[b+3984>>2]|0;g=c[b+5160>>2]|0;if((f|0)==62)e=3968;else{x=ue(b,62,u,v)|0;if(!((x&k|0)==0&((E()|0)&l|0)==0))break;e=61;while(1){if((e|0)==(f|0))break;x=w;x=ue(b,e,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&k|0)==0&((E()|0)&l|0)==0)e=e+-1|0;else break o}e=f<<6}c[d>>2]=g+49152+e;d=d+8|0}while(0);j=w;g=c[j>>2]|0;j=c[j+4>>2]|0;x=b+5272|0;if(!((c[x>>2]&g|0)==0?(c[x+4>>2]&j|0)==0:0)){x=d;return x|0}if(!(c[(c[h>>2]|0)+24>>2]&8)){x=d;return x|0}if((c[r>>2]|0)==1?(c[b+392>>2]|0)==0:0){f=c[b+5176>>2]|0;e=64;q=776}else{e=c[b+3984>>2]|0;f=c[b+5176>>2]|0;if((e|0)==58)e=58;else q=776}p:do if((q|0)==776){i=m;h=c[i>>2]|0;i=c[i+4>>2]|0;x=ue(b,58,g,j)|0;if(!((x&h|0)==0&((E()|0)&i|0)==0)){x=d;return x|0}g=59;while(1){if((g|0)==(e|0))break p;x=w;x=ue(b,g,c[x>>2]|0,c[x+4>>2]|0)|0;if((x&h|0)==0&((E()|0)&i|0)==0)g=g+1|0;else break}return d|0}while(0);c[d>>2]=f+49152+(e<<6);x=d+8|0;return x|0}}}return 0}function md(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=a+256|0;i=p;g=c[i>>2]|0;i=c[i+4>>2]|0;q=a+5216|0;if(!((c[q>>2]&g|0)==0?(c[q+4>>2]&i|0)==0:0)){q=b;return q|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&1)){q=b;return q|0}q=a+5360|0;o=c[q>>2]|0;if((o|0)==1?(c[a+360>>2]|0)==0:0){m=a+328|0;d=m;f=c[a+5148>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;n=1;e=64;k=8}else{e=c[a+1936>>2]|0;f=c[a+5148>>2]|0;j=a+328|0;d=j;h=c[d>>2]|0;d=c[d+4>>2]|0;if((e|0)>=6)if((e|0)==6)e=6;else{n=1;m=j;k=8}else{n=-1;m=j;k=8}}do if((k|0)==8){k=a+392|0;l=a+3984|0;j=161184+(e<<3)|0;i=o;g=6;while(1){o=237792+(((i|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;i=161184+(g<<3)|0;if(((c[i>>2]&c[o>>2]|0)==0?(c[i+4>>2]&c[o+4>>2]|0)==0:0)?(o=p,i=j,o=ue(a,g,c[i>>2]^c[o>>2],c[i+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&d|0)==0)):0){k=20;break}g=g+n|0;if((g|0)==(e|0)){k=13;break}i=c[q>>2]|0}if((k|0)==13){i=p;d=m;g=c[i>>2]|0;i=c[i+4>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;break}else if((k|0)==20)return b|0}while(0);o=161184+(f<<3)|0;p=c[6e4]|0;m=239984;n=239992;n=vJ(c[m>>2]&(c[o>>2]^g)|0,c[m+4>>2]&(c[o+4>>2]^i)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=xJ(n|0,E()|0,52)|0;E()|0;n=p+(n<<3)|0;p=a+288|0;o=a+296|0;if(!((h&c[n>>2]&(c[o>>2]|c[p>>2])|0)==0?(d&c[n+4>>2]&(c[o+4>>2]|c[p+4>>2])|0)==0:0)){if((c[q>>2]|0)==1?(c[a+392>>2]|0)==0:0)d=64;else d=c[a+3984>>2]|0;q=237792+(d<<3)|0;a=161232;if((c[a>>2]&c[q>>2]|0)==0?(c[a+4>>2]&c[q+4>>2]|0)==0:0){q=b;return q|0}}c[b>>2]=(e<<6)+49152+f;q=b+8|0;return q|0}function nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=a+256|0;i=p;g=c[i>>2]|0;i=c[i+4>>2]|0;q=a+5224|0;if(!((c[q>>2]&g|0)==0?(c[q+4>>2]&i|0)==0:0)){q=b;return q|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&2)){q=b;return q|0}q=a+5360|0;o=c[q>>2]|0;if((o|0)==1?(c[a+360>>2]|0)==0:0){m=a+328|0;d=m;f=c[a+5152>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;n=1;e=64;k=8}else{e=c[a+1936>>2]|0;f=c[a+5152>>2]|0;j=a+328|0;d=j;h=c[d>>2]|0;d=c[d+4>>2]|0;if((e|0)>=2)if((e|0)==2)e=2;else{n=1;m=j;k=8}else{n=-1;m=j;k=8}}do if((k|0)==8){k=a+392|0;l=a+3984|0;j=161184+(e<<3)|0;i=o;g=2;while(1){o=237792+(((i|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;i=161184+(g<<3)|0;if(((c[i>>2]&c[o>>2]|0)==0?(c[i+4>>2]&c[o+4>>2]|0)==0:0)?(o=p,i=j,o=ue(a,g,c[i>>2]^c[o>>2],c[i+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&d|0)==0)):0){k=20;break}g=g+n|0;if((g|0)==(e|0)){k=13;break}i=c[q>>2]|0}if((k|0)==13){i=p;d=m;g=c[i>>2]|0;i=c[i+4>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;break}else if((k|0)==20)return b|0}while(0);o=161184+(f<<3)|0;p=c[59976]|0;m=239888;n=239896;n=vJ(c[m>>2]&(c[o>>2]^g)|0,c[m+4>>2]&(c[o+4>>2]^i)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=xJ(n|0,E()|0,52)|0;E()|0;n=p+(n<<3)|0;p=a+288|0;o=a+296|0;if(!((h&c[n>>2]&(c[o>>2]|c[p>>2])|0)==0?(d&c[n+4>>2]&(c[o+4>>2]|c[p+4>>2])|0)==0:0)){if((c[q>>2]|0)==1?(c[a+392>>2]|0)==0:0)d=64;else d=c[a+3984>>2]|0;q=237792+(d<<3)|0;a=161200;if((c[a>>2]&c[q>>2]|0)==0?(c[a+4>>2]&c[q+4>>2]|0)==0:0){q=b;return q|0}}c[b>>2]=(e<<6)+49152+f;q=b+8|0;return q|0}function od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=a+256|0;n=m;l=a+5216|0;if(!((c[l>>2]&c[n>>2]|0)==0?(c[l+4>>2]&c[n+4>>2]|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&1)){n=b;return n|0}n=a+5360|0;g=c[n>>2]|0;if((g|0)==1?(c[a+360>>2]|0)==0:0){e=c[a+5148>>2]|0;d=64;f=7}else{d=c[a+1936>>2]|0;e=c[a+5148>>2]|0;if((d|0)==6)d=6;else f=7}a:do if((f|0)==7){i=a+328|0;h=c[i>>2]|0;i=c[i+4>>2]|0;k=a+392|0;l=a+3984|0;j=161184+(d<<3)|0;f=6;while(1){g=237792+(((g|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;o=161184+(f<<3)|0;if(((c[o>>2]&c[g>>2]|0)==0?(c[o+4>>2]&c[g+4>>2]|0)==0:0)?(o=m,g=j,o=ue(a,f,c[g>>2]^c[o>>2],c[g+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&i|0)==0)):0)break;f=f+-1|0;if((f|0)==(d|0))break a;g=c[n>>2]|0}return b|0}while(0);c[b>>2]=(d<<6)+49152+e;o=b+8|0;return o|0}function pd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=a+256|0;n=m;l=a+5224|0;if(!((c[l>>2]&c[n>>2]|0)==0?(c[l+4>>2]&c[n+4>>2]|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&2)){n=b;return n|0}n=a+5360|0;g=c[n>>2]|0;if((g|0)==1?(c[a+360>>2]|0)==0:0){e=c[a+5152>>2]|0;d=64;f=7}else{d=c[a+1936>>2]|0;e=c[a+5152>>2]|0;if((d|0)==2)d=2;else f=7}a:do if((f|0)==7){i=a+328|0;h=c[i>>2]|0;i=c[i+4>>2]|0;k=a+392|0;l=a+3984|0;j=161184+(d<<3)|0;f=2;while(1){g=237792+(((g|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;o=161184+(f<<3)|0;if(((c[o>>2]&c[g>>2]|0)==0?(c[o+4>>2]&c[g+4>>2]|0)==0:0)?(o=m,g=j,o=ue(a,f,c[g>>2]^c[o>>2],c[g+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&i|0)==0)):0)break;f=f+1|0;if((f|0)==(d|0))break a;g=c[n>>2]|0}return b|0}while(0);c[b>>2]=(d<<6)+49152+e;o=b+8|0;return o|0}function qd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=a+256|0;i=p;g=c[i>>2]|0;i=c[i+4>>2]|0;q=a+5240|0;if(!((c[q>>2]&g|0)==0?(c[q+4>>2]&i|0)==0:0)){q=b;return q|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&4)){q=b;return q|0}q=a+5360|0;o=c[q>>2]|0;if((o|0)==1?(c[a+392>>2]|0)==0:0){m=a+320|0;d=m;f=c[a+5160>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;n=1;e=64;k=8}else{e=c[a+3984>>2]|0;f=c[a+5160>>2]|0;j=a+320|0;d=j;h=c[d>>2]|0;d=c[d+4>>2]|0;if((e|0)>=62)if((e|0)==62)e=62;else{n=1;m=j;k=8}else{n=-1;m=j;k=8}}do if((k|0)==8){k=a+360|0;l=a+1936|0;j=161184+(e<<3)|0;i=o;g=62;while(1){o=237792+(((i|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;i=161184+(g<<3)|0;if(((c[i>>2]&c[o>>2]|0)==0?(c[i+4>>2]&c[o+4>>2]|0)==0:0)?(o=p,i=j,o=ue(a,g,c[i>>2]^c[o>>2],c[i+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&d|0)==0)):0){k=20;break}g=g+n|0;if((g|0)==(e|0)){k=13;break}i=c[q>>2]|0}if((k|0)==13){i=p;d=m;g=c[i>>2]|0;i=c[i+4>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;break}else if((k|0)==20)return b|0}while(0);o=161184+(f<<3)|0;p=c[60336]|0;m=241328;n=241336;n=vJ(c[m>>2]&(c[o>>2]^g)|0,c[m+4>>2]&(c[o+4>>2]^i)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=xJ(n|0,E()|0,52)|0;E()|0;n=p+(n<<3)|0;p=a+288|0;o=a+296|0;if(!((h&c[n>>2]&(c[o>>2]|c[p>>2])|0)==0?(d&c[n+4>>2]&(c[o+4>>2]|c[p+4>>2])|0)==0:0)){if((c[q>>2]|0)==1?(c[a+360>>2]|0)==0:0)d=64;else d=c[a+1936>>2]|0;q=237792+(d<<3)|0;a=161680;if((c[a>>2]&c[q>>2]|0)==0?(c[a+4>>2]&c[q+4>>2]|0)==0:0){q=b;return q|0}}c[b>>2]=(e<<6)+49152+f;q=b+8|0;return q|0}function rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=a+256|0;i=p;g=c[i>>2]|0;i=c[i+4>>2]|0;q=a+5272|0;if(!((c[q>>2]&g|0)==0?(c[q+4>>2]&i|0)==0:0)){q=b;return q|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&8)){q=b;return q|0}q=a+5360|0;o=c[q>>2]|0;if((o|0)==1?(c[a+392>>2]|0)==0:0){m=a+320|0;d=m;f=c[a+5176>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;n=1;e=64;k=8}else{e=c[a+3984>>2]|0;f=c[a+5176>>2]|0;j=a+320|0;d=j;h=c[d>>2]|0;d=c[d+4>>2]|0;if((e|0)>=58)if((e|0)==58)e=58;else{n=1;m=j;k=8}else{n=-1;m=j;k=8}}do if((k|0)==8){k=a+360|0;l=a+1936|0;j=161184+(e<<3)|0;i=o;g=58;while(1){o=237792+(((i|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;i=161184+(g<<3)|0;if(((c[i>>2]&c[o>>2]|0)==0?(c[i+4>>2]&c[o+4>>2]|0)==0:0)?(o=p,i=j,o=ue(a,g,c[i>>2]^c[o>>2],c[i+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&d|0)==0)):0){k=20;break}g=g+n|0;if((g|0)==(e|0)){k=13;break}i=c[q>>2]|0}if((k|0)==13){i=p;d=m;g=c[i>>2]|0;i=c[i+4>>2]|0;h=c[d>>2]|0;d=c[d+4>>2]|0;break}else if((k|0)==20)return b|0}while(0);o=161184+(f<<3)|0;p=c[60312]|0;m=241232;n=241240;n=vJ(c[m>>2]&(c[o>>2]^g)|0,c[m+4>>2]&(c[o+4>>2]^i)|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=xJ(n|0,E()|0,52)|0;E()|0;n=p+(n<<3)|0;p=a+288|0;o=a+296|0;if(!((h&c[n>>2]&(c[o>>2]|c[p>>2])|0)==0?(d&c[n+4>>2]&(c[o+4>>2]|c[p+4>>2])|0)==0:0)){if((c[q>>2]|0)==1?(c[a+360>>2]|0)==0:0)d=64;else d=c[a+1936>>2]|0;q=237792+(d<<3)|0;a=161648;if((c[a>>2]&c[q>>2]|0)==0?(c[a+4>>2]&c[q+4>>2]|0)==0:0){q=b;return q|0}}c[b>>2]=(e<<6)+49152+f;q=b+8|0;return q|0}function sd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=a+256|0;n=m;l=a+5240|0;if(!((c[l>>2]&c[n>>2]|0)==0?(c[l+4>>2]&c[n+4>>2]|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&4)){n=b;return n|0}n=a+5360|0;g=c[n>>2]|0;if((g|0)==1?(c[a+392>>2]|0)==0:0){e=c[a+5160>>2]|0;d=64;f=7}else{d=c[a+3984>>2]|0;e=c[a+5160>>2]|0;if((d|0)==62)d=62;else f=7}a:do if((f|0)==7){i=a+320|0;h=c[i>>2]|0;i=c[i+4>>2]|0;k=a+360|0;l=a+1936|0;j=161184+(d<<3)|0;f=62;while(1){g=237792+(((g|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;o=161184+(f<<3)|0;if(((c[o>>2]&c[g>>2]|0)==0?(c[o+4>>2]&c[g+4>>2]|0)==0:0)?(o=m,g=j,o=ue(a,f,c[g>>2]^c[o>>2],c[g+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&i|0)==0)):0)break;f=f+-1|0;if((f|0)==(d|0))break a;g=c[n>>2]|0}return b|0}while(0);c[b>>2]=(d<<6)+49152+e;o=b+8|0;return o|0}function td(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=a+256|0;n=m;l=a+5272|0;if(!((c[l>>2]&c[n>>2]|0)==0?(c[l+4>>2]&c[n+4>>2]|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&8)){n=b;return n|0}n=a+5360|0;g=c[n>>2]|0;if((g|0)==1?(c[a+392>>2]|0)==0:0){e=c[a+5176>>2]|0;d=64;f=7}else{d=c[a+3984>>2]|0;e=c[a+5176>>2]|0;if((d|0)==58)d=58;else f=7}a:do if((f|0)==7){i=a+320|0;h=c[i>>2]|0;i=c[i+4>>2]|0;k=a+360|0;l=a+1936|0;j=161184+(d<<3)|0;f=58;while(1){g=237792+(((g|0)==1&(c[k>>2]|0)==0?64:c[l>>2]|0)<<3)|0;o=161184+(f<<3)|0;if(((c[o>>2]&c[g>>2]|0)==0?(c[o+4>>2]&c[g+4>>2]|0)==0:0)?(o=m,g=j,o=ue(a,f,c[g>>2]^c[o>>2],c[g+4>>2]^c[o+4>>2])|0,!((o&h|0)==0&((E()|0)&i|0)==0)):0)break;f=f+1|0;if((f|0)==(d|0))break a;g=c[n>>2]|0}return b|0}while(0);c[b>>2]=(d<<6)+49152+e;o=b+8|0;return o|0} +function Md(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;p=a+5360|0;d=c[p>>2]|0;switch(d|0){case 6:case 1:{a=b;return a|0}default:{}}s=c[a+5340>>2]|0;g=s<<3;r=c[a+400+((g|6)<<8)>>2]|0;q=a+5352|0;j=(c[q>>2]|0)+56|0;h=c[j>>2]|0;j=c[j+4>>2]|0;o=a+272|0;t=a+264|0;N=t;i=h&~(c[N>>2]|c[o>>2]);o=j&~(c[N+4>>2]|c[o+4>>2]);do if((d|0)==2){n=237792+(c[a+400+((g^14)<<8)>>2]<<3)|0;m=c[n>>2]|0;n=c[n+4>>2]|0;l=a+320+((s^1)<<3)|0;k=c[l>>2]|0;l=c[l+4>>2]|0;if((h|0)==0&(j|0)==0){d=k;g=l}else{d=k;g=l;do{M=qa(h|0,j|0,0)|0;E()|0;N=pJ(h|0,j|0,-1,-1)|0;h=N&h;j=(E()|0)&j;N=237792+(M<<3)|0;M=161184+(M<<3)|0;d=(c[M>>2]|c[N>>2])&d;g=(c[M+4>>2]|c[N+4>>2])&g}while(!((h|0)==0&(j|0)==0))}N=237792+(r<<3)|0;h=(d|m)&k&~c[N>>2];d=(g|n)&l&~c[N+4>>2];if(!s){j=m;k=n;b=jd(a,b,h,d)|0;break}else{j=m;k=n;b=kd(a,b,h,d)|0;break}}else{j=0;k=0}while(0);if((i|0)==0&(o|0)==0){d=0;h=0}else{d=0;h=0;g=o;do{M=qa(i|0,g|0,0)|0;E()|0;N=pJ(i|0,g|0,-1,-1)|0;i=N&i;g=(E()|0)&g;N=194784+(M<<9)+(r<<3)|0;M=161184+(M<<3)|0;d=c[M>>2]^c[N>>2]|d;h=c[M+4>>2]^c[N+4>>2]|h}while(!((i|0)==0&(g|0)==0))}m=c[p>>2]|0;l=(m|0)==2;M=237792+(r<<3)|0;N=l?a+256|0:a+320+(s<<3)|0;g=c[M>>2]&(l?j|~d:~d)&~c[N>>2];d=c[M+4>>2]&(l?k|~h:~h)&~c[N+4>>2];if(!((g|0)==0&(d|0)==0)){i=r<<6;h=g;g=b;while(1){N=qa(h|0,d|0,0)|0;E()|0;b=pJ(h|0,d|0,-1,-1)|0;h=b&h;d=(E()|0)&d;b=g+8|0;c[g>>2]=i+N;if((h|0)==0&(d|0)==0)break;else g=b}}N=c[q>>2]|0;M=N+56|0;L=c[M>>2]|0;M=c[M+4>>2]|0;K=pJ(L|0,M|0,-1,-1)|0;if(!((K&L|0)==0&((E()|0)&M|0)==0)){a=b;return a|0}d=qa(L|0,M|0,0)|0;E()|0;K=162016+(d<<9)+(r<<3)|0;J=c[K>>2]|0;K=c[K+4>>2]|0;if(l)if(!s){l=a+320|0;i=t;o=c[i>>2]&c[l>>2];l=c[i+4>>2]&c[l+4>>2];i=l&16711680;p=l&-16711681;r=a+328|0;n=237792+(c[a+1936>>2]<<3)|0;m=c[r>>2]&J&~c[n>>2];n=c[r+4>>2]&K&~c[n+4>>2];r=a+256|0;q=c[r>>2]|0;r=c[r+4>>2]|0;j=~q;k=~r;d=yJ(o|0,p|0,8)|0;d=d&j;e=(E()|0)&k;g=yJ(d|0,e|0,8)|0;E()|0;d=d&J;e=e&K;j=J&j;k=K&k;g=j&-16777216&g;if(!((d|0)==0&(e|0)==0)){f=b;while(1){M=qa(d|0,e|0,0)|0;E()|0;b=pJ(d|0,e|0,-1,-1)|0;d=b&d;e=(E()|0)&e;b=f+8|0;c[f>>2]=(M|-512)+(M<<6);if((d|0)==0&(e|0)==0)break;else f=b}}if(!((g|0)==0&0==0)){e=g;f=0;d=b;while(1){M=qa(e|0,f|0,0)|0;E()|0;b=pJ(e|0,f|0,-1,-1)|0;e=b&e;f=(E()|0)&f;b=d+8|0;c[d>>2]=(M|-1024)+(M<<6);if((e|0)==0&(f|0)==0)break;else d=b}}if((K>>>0>16777215|(K|0)==16777215&J>>>0>4294967295)&(0!=0|(i|0)!=0)){d=yJ(0,i|0,9)|0;d=m&d;h=n&(E()|0);yJ(0,i|0,7)|0;g=(E()|0)&2130706432&n;f=yJ(0,i|0,8)|0;f=j&f;e=k&(E()|0);if(!((d|0)==0&(h|0)==0)){i=d;d=b;while(1){M=qa(i|0,h|0,0)|0;E()|0;b=pJ(i|0,h|0,-1,-1)|0;i=b&i;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+28096;c[d+8>>2]=M+24e3;c[d+16>>2]=M+19904;b=d+32|0;c[d+24>>2]=M+15808;if((i|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(g|0)==0)){h=0;d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;M=M*65|0;c[d>>2]=M+28224;c[d+8>>2]=M+24128;c[d+16>>2]=M+20032;b=d+32|0;c[d+24>>2]=M+15936;if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){M=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;M=M*65|0;c[b>>2]=M+28160;c[b+8>>2]=M+24064;c[b+16>>2]=M+19968;d=b+32|0;c[b+24>>2]=M+15872;if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(o|0,l|0,9)|0;d=d&-16843264&m;g=(E()|0)&16711422&n;f=yJ(o|0,l|0,7)|0;f=f&2139062016&m;e=(E()|0)&8355711&n;if(!((d|0)==0&(g|0)==0)){h=d;d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=M+-576+(M<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=M+-448+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+-8<<3)|0,!((c[N>>2]&J|0)==0?(c[N+4>>2]&K|0)==0:0)):0)?(w=239328+(d<<3)|0,u=c[w>>2]&o,w=c[w+4>>2]&p,!((u|0)==0&(w|0)==0)):0){g=d+8192|0;f=u;e=w;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&J;g=c[g+4>>2]&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&J;g=c[g+4>>2]&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&J;g=c[g+4>>2]&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1680|0;d=c[e>>2]|0;if((d|0)==64){a=b;return a|0}do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;N=c[241376+(d*24|0)+16>>2]|0;M=241376+(d*24|0)|0;a=241376+(d*24|0)+8|0;a=vJ(c[M>>2]&q|0,c[M+4>>2]&r|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=xJ(a|0,E()|0,55)|0;E()|0;a=N+(a<<3)|0;f=(c[a>>2]|f)&J;g=(c[a+4>>2]|g)&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){a=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+a;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);return b|0}else{o=a+328|0;i=t;l=c[i>>2]&c[o>>2];o=c[i+4>>2]&c[o+4>>2];i=l&65280;p=l&-65281;r=a+320|0;n=237792+(c[a+3984>>2]<<3)|0;m=c[r>>2]&J&~c[n>>2];n=c[r+4>>2]&K&~c[n+4>>2];r=a+256|0;q=c[r>>2]|0;r=c[r+4>>2]|0;j=~q;k=~r;d=xJ(p|0,o|0,8)|0;d=d&j;e=(E()|0)&k;xJ(d|0,e|0,8)|0;d=d&J;e=e&K;j=J&j;k=K&k;g=k&255&(E()|0);if(!((d|0)==0&(e|0)==0)){f=b;while(1){M=qa(d|0,e|0,0)|0;E()|0;b=pJ(d|0,e|0,-1,-1)|0;d=b&d;e=(E()|0)&e;b=f+8|0;c[f>>2]=(M|512)+(M<<6);if((d|0)==0&(e|0)==0)break;else f=b}}if(!(0==0&(g|0)==0)){f=0;e=g;d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=(M|1024)+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}if(!((J&255|0)==0&0==0|(i|0)==0&0==0)){d=xJ(i|0,0,9)|0;d=m&d;h=n&(E()|0);g=xJ(i|0,0,7)|0;E()|0;g=g&254&m;f=xJ(i|0,0,8)|0;f=j&f;e=k&(E()|0);if(!((d|0)==0&(h|0)==0)){i=d;d=b;while(1){M=qa(i|0,h|0,0)|0;E()|0;b=pJ(i|0,h|0,-1,-1)|0;i=b&i;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+29248;c[d+8>>2]=M+25152;c[d+16>>2]=M+21056;b=d+32|0;c[d+24>>2]=M+16960;if((i|0)==0&(h|0)==0)break;else d=b}}if(!((g|0)==0&0==0)){h=0;d=b;while(1){M=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+29120;c[d+8>>2]=M+25024;c[d+16>>2]=M+20928;b=d+32|0;c[d+24>>2]=M+16832;if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){M=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;M=M*65|0;c[b>>2]=M+29184;c[b+8>>2]=M+25088;c[b+16>>2]=M+20992;d=b+32|0;c[b+24>>2]=M+16896;if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=xJ(l|0,o|0,9)|0;d=d&2139062016&m;g=(E()|0)&8355711&n;f=xJ(l|0,o|0,7)|0;f=f&-16843264&m;e=(E()|0)&16711422&n;if(!((d|0)==0&(g|0)==0)){h=d;d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=M+576+(M<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=M+448+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+8<<3)|0,!((c[N>>2]&J|0)==0?(c[N+4>>2]&K|0)==0:0)):0)?(x=238816+(d<<3)|0,v=c[x>>2]&p,x=c[x+4>>2]&o,!((v|0)==0&(x|0)==0)):0){g=d+8192|0;f=v;e=x;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&J;g=c[g+4>>2]&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&J;g=c[g+4>>2]&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&J;g=c[g+4>>2]&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3728|0;d=c[e>>2]|0;if((d|0)==64){a=b;return a|0}do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;N=c[241376+(d*24|0)+16>>2]|0;M=241376+(d*24|0)|0;a=241376+(d*24|0)+8|0;a=vJ(c[M>>2]&q|0,c[M+4>>2]&r|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=xJ(a|0,E()|0,55)|0;E()|0;a=N+(a<<3)|0;f=(c[a>>2]|f)&J;g=(c[a+4>>2]|g)&K;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){a=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+a;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);return b|0}v=161184+(d<<3)|0;u=c[v>>2]|J;v=c[v+4>>2]|K;if((m|0)==3)if(!s){l=a+320|0;j=t;o=c[j>>2]&c[l>>2];l=c[j+4>>2]&c[l+4>>2];j=l&16711680;p=l&-16711681;n=a+328|0;m=c[n>>2]&u;n=c[n+4>>2]&v;r=a+256|0;q=c[r>>2]|0;r=c[r+4>>2]|0;i=~q;k=~r;d=yJ(o|0,p|0,8)|0;d=d&i;e=(E()|0)&k;g=yJ(d|0,e|0,8)|0;E()|0;d=d&u;e=e&v;i=u&i;k=v&k;g=i&-16777216&g;if(!((d|0)==0&(e|0)==0)){f=b;while(1){K=qa(d|0,e|0,0)|0;E()|0;b=pJ(d|0,e|0,-1,-1)|0;d=b&d;e=(E()|0)&e;b=f+8|0;c[f>>2]=(K|-512)+(K<<6);if((d|0)==0&(e|0)==0)break;else f=b}}if(!((g|0)==0&0==0)){e=g;f=0;d=b;while(1){K=qa(e|0,f|0,0)|0;E()|0;b=pJ(e|0,f|0,-1,-1)|0;e=b&e;f=(E()|0)&f;b=d+8|0;c[d>>2]=(K|-1024)+(K<<6);if((e|0)==0&(f|0)==0)break;else d=b}}if((v>>>0>16777215|(v|0)==16777215&u>>>0>4294967295)&(0!=0|(j|0)!=0)){d=yJ(0,j|0,9)|0;d=d&m;h=(E()|0)&n;yJ(0,j|0,7)|0;g=n&2130706432&(E()|0);f=yJ(0,j|0,8)|0;f=i&f;e=k&(E()|0);if(!((d|0)==0&(h|0)==0)){i=d;d=b;while(1){K=qa(i|0,h|0,0)|0;E()|0;b=pJ(i|0,h|0,-1,-1)|0;i=b&i;h=(E()|0)&h;K=K*65|0;c[d>>2]=K+28096;c[d+8>>2]=K+24e3;c[d+16>>2]=K+19904;b=d+32|0;c[d+24>>2]=K+15808;if((i|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(g|0)==0)){h=0;d=b;while(1){K=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;K=K*65|0;c[d>>2]=K+28224;c[d+8>>2]=K+24128;c[d+16>>2]=K+20032;b=d+32|0;c[d+24>>2]=K+15936;if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){K=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;K=K*65|0;c[b>>2]=K+28160;c[b+8>>2]=K+24064;c[b+16>>2]=K+19968;d=b+32|0;c[b+24>>2]=K+15872;if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(o|0,l|0,9)|0;d=d&-16843264&m;g=(E()|0)&16711422&n;f=yJ(o|0,l|0,7)|0;f=f&2139062016&m;e=(E()|0)&8355711&n;if(!((d|0)==0&(g|0)==0)){h=d;d=b;while(1){K=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=K+-576+(K<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){K=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=K+-448+(K<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+-8<<3)|0,!((c[N>>2]&u|0)==0?(c[N+4>>2]&v|0)==0:0)):0)?(A=239328+(d<<3)|0,y=c[A>>2]&o,A=c[A+4>>2]&p,!((y|0)==0&(A|0)==0)):0){g=d+8192|0;f=y;e=A;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1680|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;K=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[K>>2]&q|0,c[K+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;K=c[241376+(d*24|0)+16>>2]|0;J=241376+(d*24|0)|0;N=241376+(d*24|0)+8|0;N=vJ(c[J>>2]&q|0,c[J+4>>2]&r|0,c[N>>2]|0,c[N+4>>2]|0)|0;N=xJ(N|0,E()|0,55)|0;E()|0;N=K+(N<<3)|0;f=(c[N>>2]|f)&u;g=(c[N+4>>2]|g)&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);if(!(c[a+4496>>2]|0)){a=b;return a|0}f=u^L;e=v^M;d=f&-256;g=e&16777215;if(!((d|0)==0&(g|0)==0|(c[a+4500>>2]|0)==0))while(1){N=qa(d|0,g|0,0)|0;E()|0;h=pJ(d|0,g|0,-1,-1)|0;d=h&d;g=(E()|0)&g;h=b+8|0;c[b>>2]=(N|36864)+64;if((d|0)==0&(g|0)==0){b=h;break}else b=h}i=(f|0)==0&(e|0)==0;if(!(i|(c[a+4504>>2]|0)==0)){g=f;h=e;while(1){N=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=b+8|0;c[b>>2]=N|36992;if((g|0)==0&(h|0)==0){b=d;break}else b=d}}if(!(i|(c[a+4508>>2]|0)==0)){g=f;h=e;while(1){N=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=b+8|0;c[b>>2]=(N|36864)+192;if((g|0)==0&(h|0)==0){b=d;break}else b=d}}if(!(i|(c[a+4512>>2]|0)==0)){g=f;h=e;while(1){N=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=b+8|0;c[b>>2]=N|37120;if((g|0)==0&(h|0)==0){b=d;break}else b=d}}if(i|(c[a+4516>>2]|0)==0){a=b;return a|0}d=b;while(1){a=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=(a|36864)+320;if((f|0)==0&(e|0)==0)break;else d=b}return b|0}else{o=a+328|0;i=t;l=c[i>>2]&c[o>>2];o=c[i+4>>2]&c[o+4>>2];i=l&65280;p=l&-65281;n=a+320|0;m=c[n>>2]&u;n=c[n+4>>2]&v;r=a+256|0;q=c[r>>2]|0;r=c[r+4>>2]|0;j=~q;k=~r;d=xJ(p|0,o|0,8)|0;d=d&j;e=(E()|0)&k;xJ(d|0,e|0,8)|0;d=d&u;e=e&v;j=u&j;k=v&k;g=k&255&(E()|0);if(!((d|0)==0&(e|0)==0)){f=b;while(1){K=qa(d|0,e|0,0)|0;E()|0;b=pJ(d|0,e|0,-1,-1)|0;d=b&d;e=(E()|0)&e;b=f+8|0;c[f>>2]=(K|512)+(K<<6);if((d|0)==0&(e|0)==0)break;else f=b}}if(!(0==0&(g|0)==0)){f=0;e=g;d=b;while(1){K=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=(K|1024)+(K<<6);if((f|0)==0&(e|0)==0)break;else d=b}}if(!((u&255|0)==0&0==0|(i|0)==0&0==0)){d=xJ(i|0,0,9)|0;d=d&m;h=(E()|0)&n;g=xJ(i|0,0,7)|0;E()|0;g=m&254&g;f=xJ(i|0,0,8)|0;f=j&f;e=k&(E()|0);if(!((d|0)==0&(h|0)==0)){i=d;d=b;while(1){K=qa(i|0,h|0,0)|0;E()|0;b=pJ(i|0,h|0,-1,-1)|0;i=b&i;h=(E()|0)&h;K=K*65|0;c[d>>2]=K+29248;c[d+8>>2]=K+25152;c[d+16>>2]=K+21056;b=d+32|0;c[d+24>>2]=K+16960;if((i|0)==0&(h|0)==0)break;else d=b}}if(!((g|0)==0&0==0)){h=0;d=b;while(1){K=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;K=K*65|0;c[d>>2]=K+29120;c[d+8>>2]=K+25024;c[d+16>>2]=K+20928;b=d+32|0;c[d+24>>2]=K+16832;if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){K=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;K=K*65|0;c[b>>2]=K+29184;c[b+8>>2]=K+25088;c[b+16>>2]=K+20992;d=b+32|0;c[b+24>>2]=K+16896;if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=xJ(l|0,o|0,9)|0;d=d&2139062016&m;g=(E()|0)&8355711&n;f=xJ(l|0,o|0,7)|0;f=f&-16843264&m;e=(E()|0)&16711422&n;if(!((d|0)==0&(g|0)==0)){h=d;d=b;while(1){K=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=K+576+(K<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){K=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=K+448+(K<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+8<<3)|0,!((c[N>>2]&u|0)==0?(c[N+4>>2]&v|0)==0:0)):0)?(B=238816+(d<<3)|0,z=c[B>>2]&p,B=c[B+4>>2]&o,!((z|0)==0&(B|0)==0)):0){g=d+8192|0;f=z;e=B;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3728|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;K=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[K>>2]&q|0,c[K+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;K=c[241376+(d*24|0)+16>>2]|0;J=241376+(d*24|0)|0;N=241376+(d*24|0)+8|0;N=vJ(c[J>>2]&q|0,c[J+4>>2]&r|0,c[N>>2]|0,c[N+4>>2]|0)|0;N=xJ(N|0,E()|0,55)|0;E()|0;N=K+(N<<3)|0;f=(c[N>>2]|f)&u;g=(c[N+4>>2]|g)&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);if(!(c[a+4528>>2]|0)){a=b;return a|0}f=u^L;e=v^M;d=f&-256;g=e&16777215;if(!((d|0)==0&(g|0)==0|(c[a+4532>>2]|0)==0))while(1){N=qa(d|0,g|0,0)|0;E()|0;h=pJ(d|0,g|0,-1,-1)|0;d=h&d;g=(E()|0)&g;h=b+8|0;c[b>>2]=(N|36864)+576;if((d|0)==0&(g|0)==0){b=h;break}else b=h}i=(f|0)==0&(e|0)==0;if(!(i|(c[a+4536>>2]|0)==0)){g=f;h=e;while(1){N=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=b+8|0;c[b>>2]=N|37504;if((g|0)==0&(h|0)==0){b=d;break}else b=d}}if(!(i|(c[a+4540>>2]|0)==0)){g=f;h=e;while(1){N=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=b+8|0;c[b>>2]=(N|36864)+704;if((g|0)==0&(h|0)==0){b=d;break}else b=d}}if(!(i|(c[a+4544>>2]|0)==0)){g=f;h=e;while(1){N=qa(g|0,h|0,0)|0;E()|0;d=pJ(g|0,h|0,-1,-1)|0;g=d&g;h=(E()|0)&h;d=b+8|0;c[b>>2]=N|37632;if((g|0)==0&(h|0)==0){b=d;break}else b=d}}if(i|(c[a+4548>>2]|0)==0){a=b;return a|0}d=b;while(1){a=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=(a|36864)+832;if((f|0)==0&(e|0)==0)break;else d=b}return b|0}d=(s|0)==0;if((m|0)==4)if(d){n=a+320|0;k=t;q=c[k>>2]&c[n>>2];n=c[k+4>>2]&c[n+4>>2];k=n&16711680;r=n&-16711681;p=a+328|0;o=c[p>>2]&u;p=c[p+4>>2]&v;t=a+256|0;s=c[t>>2]|0;t=c[t+4>>2]|0;l=~s;m=~t;d=yJ(q|0,r|0,8)|0;d=d&l;g=(E()|0)&m;i=yJ(d|0,g|0,8)|0;E()|0;d=d&u;g=g&v;l=u&l;m=v&m;i=l&-65536&i;if(!((d|0)==0&(g|0)==0)){h=b;while(1){M=qa(d|0,g|0,0)|0;E()|0;b=pJ(d|0,g|0,-1,-1)|0;d=b&d;g=(E()|0)&g;b=h+8|0;c[h>>2]=(M|-512)+(M<<6);if((d|0)==0&(g|0)==0)break;else h=b}}if(!((i|0)==0&0==0)){g=i;h=0;d=b;while(1){M=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=(M|-1024)+(M<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if((v>>>0>16777215|(v|0)==16777215&u>>>0>4294967295)&(0!=0|(k|0)!=0)){d=yJ(0,k|0,9)|0;d=d&o;j=(E()|0)&p;yJ(0,k|0,7)|0;i=p&2130706432&(E()|0);h=yJ(0,k|0,8)|0;h=l&h;g=m&(E()|0);if(!((d|0)==0&(j|0)==0)){k=d;d=b;while(1){M=qa(k|0,j|0,0)|0;E()|0;b=pJ(k|0,j|0,-1,-1)|0;k=b&k;j=(E()|0)&j;M=M*65|0;c[d>>2]=M+28096;c[d+8>>2]=M+24e3;c[d+16>>2]=M+19904;b=d+32|0;c[d+24>>2]=M+15808;if((k|0)==0&(j|0)==0)break;else d=b}}if(!(0==0&(i|0)==0)){j=0;d=b;while(1){M=qa(j|0,i|0,0)|0;E()|0;b=pJ(j|0,i|0,-1,-1)|0;j=b&j;i=(E()|0)&i;M=M*65|0;c[d>>2]=M+28224;c[d+8>>2]=M+24128;c[d+16>>2]=M+20032;b=d+32|0;c[d+24>>2]=M+15936;if((j|0)==0&(i|0)==0)break;else d=b}}if(!((h|0)==0&(g|0)==0))while(1){M=qa(h|0,g|0,0)|0;E()|0;d=pJ(h|0,g|0,-1,-1)|0;h=d&h;g=(E()|0)&g;M=M*65|0;c[b>>2]=M+28160;c[b+8>>2]=M+24064;c[b+16>>2]=M+19968;d=b+32|0;c[b+24>>2]=M+15872;if((h|0)==0&(g|0)==0){b=d;break}else b=d}}d=yJ(q|0,n|0,9)|0;d=d&-16843264&o;i=(E()|0)&16711422&p;h=yJ(q|0,n|0,7)|0;h=h&2139062016&o;g=(E()|0)&8355711&p;if(!((d|0)==0&(i|0)==0)){j=d;d=b;while(1){M=qa(j|0,i|0,0)|0;E()|0;b=pJ(j|0,i|0,-1,-1)|0;j=b&j;i=(E()|0)&i;b=d+8|0;c[d>>2]=M+-576+(M<<6);if((j|0)==0&(i|0)==0)break;else d=b}}if(!((h|0)==0&(g|0)==0)){d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=M+-448+(M<<6);if((h|0)==0&(g|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+-8<<3)|0,!((c[N>>2]&u|0)==0?(c[N+4>>2]&v|0)==0:0)):0)?(e=239328+(d<<3)|0,f=c[e>>2]&q,e=c[e+4>>2]&r,!((f|0)==0&(e|0)==0)):0){g=d+8192|0;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&s|0,c[N+4>>2]&t|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&s|0,c[N+4>>2]&t|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1680|0;d=c[e>>2]|0;if((d|0)==64){a=b;return a|0}do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&s|0,c[N+4>>2]&t|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;N=c[241376+(d*24|0)+16>>2]|0;M=241376+(d*24|0)|0;a=241376+(d*24|0)+8|0;a=vJ(c[M>>2]&s|0,c[M+4>>2]&t|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=xJ(a|0,E()|0,55)|0;E()|0;a=N+(a<<3)|0;f=(c[a>>2]|f)&u;g=(c[a+4>>2]|g)&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){a=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+a;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);return b|0}else{o=a+328|0;i=t;l=c[i>>2]&c[o>>2];o=c[i+4>>2]&c[o+4>>2];i=l&65280;p=l&-65281;n=a+320|0;m=c[n>>2]&u;n=c[n+4>>2]&v;r=a+256|0;q=c[r>>2]|0;r=c[r+4>>2]|0;j=~q;k=~r;d=xJ(p|0,o|0,8)|0;d=d&j;e=(E()|0)&k;xJ(d|0,e|0,8)|0;d=d&u;e=e&v;j=u&j;k=v&k;g=k&65535&(E()|0);if(!((d|0)==0&(e|0)==0)){f=b;while(1){M=qa(d|0,e|0,0)|0;E()|0;b=pJ(d|0,e|0,-1,-1)|0;d=b&d;e=(E()|0)&e;b=f+8|0;c[f>>2]=(M|512)+(M<<6);if((d|0)==0&(e|0)==0)break;else f=b}}if(!(0==0&(g|0)==0)){f=0;e=g;d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=(M|1024)+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}if(!((u&255|0)==0&0==0|(i|0)==0&0==0)){d=xJ(i|0,0,9)|0;d=d&m;h=(E()|0)&n;g=xJ(i|0,0,7)|0;E()|0;g=m&254&g;f=xJ(i|0,0,8)|0;f=j&f;e=k&(E()|0);if(!((d|0)==0&(h|0)==0)){i=d;d=b;while(1){M=qa(i|0,h|0,0)|0;E()|0;b=pJ(i|0,h|0,-1,-1)|0;i=b&i;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+29248;c[d+8>>2]=M+25152;c[d+16>>2]=M+21056;b=d+32|0;c[d+24>>2]=M+16960;if((i|0)==0&(h|0)==0)break;else d=b}}if(!((g|0)==0&0==0)){h=0;d=b;while(1){M=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+29120;c[d+8>>2]=M+25024;c[d+16>>2]=M+20928;b=d+32|0;c[d+24>>2]=M+16832;if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){M=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;M=M*65|0;c[b>>2]=M+29184;c[b+8>>2]=M+25088;c[b+16>>2]=M+20992;d=b+32|0;c[b+24>>2]=M+16896;if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=xJ(l|0,o|0,9)|0;d=d&2139062016&m;g=(E()|0)&8355711&n;f=xJ(l|0,o|0,7)|0;f=f&-16843264&m;e=(E()|0)&16711422&n;if(!((d|0)==0&(g|0)==0)){h=d;d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=M+576+(M<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=M+448+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+8<<3)|0,!((c[N>>2]&u|0)==0?(c[N+4>>2]&v|0)==0:0)):0)?(G=238816+(d<<3)|0,C=c[G>>2]&p,G=c[G+4>>2]&o,!((C|0)==0&(G|0)==0)):0){g=d+8192|0;f=C;e=G;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3728|0;d=c[e>>2]|0;if((d|0)==64){a=b;return a|0}do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;N=c[241376+(d*24|0)+16>>2]|0;M=241376+(d*24|0)|0;a=241376+(d*24|0)+8|0;a=vJ(c[M>>2]&q|0,c[M+4>>2]&r|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=xJ(a|0,E()|0,55)|0;E()|0;a=N+(a<<3)|0;f=(c[a>>2]|f)&u;g=(c[a+4>>2]|g)&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){a=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+a;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);return b|0}else if(d){l=a+320|0;i=t;o=c[i>>2]&c[l>>2];l=c[i+4>>2]&c[l+4>>2];i=l&16711680;p=l&-16711681;n=a+328|0;m=c[n>>2]&u;n=c[n+4>>2]&v;r=a+256|0;q=c[r>>2]|0;r=c[r+4>>2]|0;j=~q;k=~r;d=yJ(o|0,p|0,8)|0;d=d&j;e=(E()|0)&k;g=yJ(d|0,e|0,8)|0;E()|0;d=d&u;e=e&v;j=u&j;k=v&k;g=j&-16777216&g;if(!((d|0)==0&(e|0)==0)){f=b;while(1){M=qa(d|0,e|0,0)|0;E()|0;b=pJ(d|0,e|0,-1,-1)|0;d=b&d;e=(E()|0)&e;b=f+8|0;c[f>>2]=(M|-512)+(M<<6);if((d|0)==0&(e|0)==0)break;else f=b}}if(!((g|0)==0&0==0)){e=g;f=0;d=b;while(1){M=qa(e|0,f|0,0)|0;E()|0;b=pJ(e|0,f|0,-1,-1)|0;e=b&e;f=(E()|0)&f;b=d+8|0;c[d>>2]=(M|-1024)+(M<<6);if((e|0)==0&(f|0)==0)break;else d=b}}if((v>>>0>16777215|(v|0)==16777215&u>>>0>4294967295)&(0!=0|(i|0)!=0)){d=yJ(0,i|0,9)|0;d=d&m;h=(E()|0)&n;yJ(0,i|0,7)|0;g=n&2130706432&(E()|0);f=yJ(0,i|0,8)|0;f=j&f;e=k&(E()|0);if(!((d|0)==0&(h|0)==0)){i=d;d=b;while(1){M=qa(i|0,h|0,0)|0;E()|0;b=pJ(i|0,h|0,-1,-1)|0;i=b&i;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+28096;c[d+8>>2]=M+24e3;c[d+16>>2]=M+19904;b=d+32|0;c[d+24>>2]=M+15808;if((i|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(g|0)==0)){h=0;d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;M=M*65|0;c[d>>2]=M+28224;c[d+8>>2]=M+24128;c[d+16>>2]=M+20032;b=d+32|0;c[d+24>>2]=M+15936;if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){M=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;M=M*65|0;c[b>>2]=M+28160;c[b+8>>2]=M+24064;c[b+16>>2]=M+19968;d=b+32|0;c[b+24>>2]=M+15872;if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(o|0,l|0,9)|0;d=d&-16843264&m;g=(E()|0)&16711422&n;f=yJ(o|0,l|0,7)|0;f=f&2139062016&m;e=(E()|0)&8355711&n;if(!((d|0)==0&(g|0)==0)){h=d;d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=M+-576+(M<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=M+-448+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+-8<<3)|0,!((c[N>>2]&u|0)==0?(c[N+4>>2]&v|0)==0:0)):0)?(H=239328+(d<<3)|0,D=c[H>>2]&o,H=c[H+4>>2]&p,!((D|0)==0&(H|0)==0)):0){g=d+8192|0;f=D;e=H;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1680|0;d=c[e>>2]|0;if((d|0)==64){a=b;return a|0}do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;N=c[241376+(d*24|0)+16>>2]|0;M=241376+(d*24|0)|0;a=241376+(d*24|0)+8|0;a=vJ(c[M>>2]&q|0,c[M+4>>2]&r|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=xJ(a|0,E()|0,55)|0;E()|0;a=N+(a<<3)|0;f=(c[a>>2]|f)&u;g=(c[a+4>>2]|g)&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){a=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+a;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);return b|0}else{o=a+328|0;i=t;l=c[i>>2]&c[o>>2];o=c[i+4>>2]&c[o+4>>2];i=l&65280;p=l&-65281;n=a+320|0;m=c[n>>2]&u;n=c[n+4>>2]&v;r=a+256|0;q=c[r>>2]|0;r=c[r+4>>2]|0;j=~q;k=~r;d=xJ(p|0,o|0,8)|0;d=d&j;e=(E()|0)&k;xJ(d|0,e|0,8)|0;d=d&u;e=e&v;j=u&j;k=v&k;g=k&255&(E()|0);if(!((d|0)==0&(e|0)==0)){f=b;while(1){M=qa(d|0,e|0,0)|0;E()|0;b=pJ(d|0,e|0,-1,-1)|0;d=b&d;e=(E()|0)&e;b=f+8|0;c[f>>2]=(M|512)+(M<<6);if((d|0)==0&(e|0)==0)break;else f=b}}if(!(0==0&(g|0)==0)){f=0;e=g;d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=(M|1024)+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}if(!((u&255|0)==0&0==0|(i|0)==0&0==0)){d=xJ(i|0,0,9)|0;d=d&m;h=(E()|0)&n;g=xJ(i|0,0,7)|0;E()|0;g=m&254&g;f=xJ(i|0,0,8)|0;f=j&f;e=k&(E()|0);if(!((d|0)==0&(h|0)==0)){i=d;d=b;while(1){M=qa(i|0,h|0,0)|0;E()|0;b=pJ(i|0,h|0,-1,-1)|0;i=b&i;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+29248;c[d+8>>2]=M+25152;c[d+16>>2]=M+21056;b=d+32|0;c[d+24>>2]=M+16960;if((i|0)==0&(h|0)==0)break;else d=b}}if(!((g|0)==0&0==0)){h=0;d=b;while(1){M=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;M=M*65|0;c[d>>2]=M+29120;c[d+8>>2]=M+25024;c[d+16>>2]=M+20928;b=d+32|0;c[d+24>>2]=M+16832;if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;M=M*65|0;c[d>>2]=M+29184;c[d+8>>2]=M+25088;c[d+16>>2]=M+20992;b=d+32|0;c[d+24>>2]=M+16896;if((f|0)==0&(e|0)==0)break;else d=b}}}d=xJ(l|0,o|0,9)|0;d=d&2139062016&m;g=(E()|0)&8355711&n;f=xJ(l|0,o|0,7)|0;f=f&-16843264&m;e=(E()|0)&16711422&n;if(!((d|0)==0&(g|0)==0)){h=d;d=b;while(1){M=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=M+576+(M<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){M=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=M+448+(M<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[N+44>>2]|0;if(((d|0)!=64?(N=161184+(d+8<<3)|0,!((c[N>>2]&u|0)==0?(c[N+4>>2]&v|0)==0:0)):0)?(I=238816+(d<<3)|0,F=c[I>>2]&p,I=c[I+4>>2]&o,!((F|0)==0&(I|0)==0)):0){g=d+8192|0;f=F;e=I;d=b;while(1){N=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(N<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[241376+(d*24|0)+16>>2]|0;N=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64)do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&u;g=c[g+4>>2]&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){N=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+N;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3728|0;d=c[e>>2]|0;if((d|0)==64){a=b;return a|0}do{f=c[239840+(d*24|0)+16>>2]|0;N=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[N>>2]&q|0,c[N+4>>2]&r|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;N=c[241376+(d*24|0)+16>>2]|0;M=241376+(d*24|0)|0;a=241376+(d*24|0)+8|0;a=vJ(c[M>>2]&q|0,c[M+4>>2]&r|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=xJ(a|0,E()|0,55)|0;E()|0;a=N+(a<<3)|0;f=(c[a>>2]|f)&u;g=(c[a+4>>2]|g)&v;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){a=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+a;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);return b|0}return 0}function Nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(Zb(a)|0){j=b;return j|0}d=c[a+5340>>2]|0;f=c[a+5352>>2]|0;g=f+336+(d<<3)|0;h=a+320+(d<<3)|0;j=a+5360|0;e=c[j>>2]|0;g=(e|0)==6|(c[h>>2]&c[g>>2]|0?1:(c[h+4>>2]&c[g+4>>2]|0)!=0);if((e|0)==4){d=d<<3|6;if(!(c[a+336+(d<<2)>>2]|0))h=64;else i=6}else{d=d<<3|6;if((e|0)==1?(c[a+336+(d<<2)>>2]|0)==0:0)h=64;else i=6}if((i|0)==6)h=c[a+400+(d<<8)>>2]|0;f=f+56|0;if((c[f>>2]|0)==0&(c[f+4>>2]|0)==0)d=Kd(a,b)|0;else d=Md(a,b)|0;if((d|0)==(b|0)){j=b;return j|0}if(g){f=b;while(1){b=c[f>>2]|0;a:do if(!((c[j>>2]|0)==3&(b&61440|0)==36864)){if(!(ve(a,b)|0)){d=d+-8|0;c[f>>2]=c[d>>2];b=f;break}if((c[j>>2]|0)==2){e=c[f>>2]|0;b=e&49152;b:do if((b|0)==49152?1:(c[a+((e&63)<<2)>>2]|0)==0){if((b|0)!=32768){i=23;break a}b=e&12288;if(b<<16>>16<8192)switch(b<<16>>16){case 4096:{i=23;break a}default:break b}else switch(b<<16>>16){case 8192:{i=23;break a}default:break b}}while(0);if(!(ve(a,e)|0)){d=d+-8|0;c[f>>2]=c[d>>2];b=f}else i=23}else i=23}else i=23;while(0);if((i|0)==23){i=0;b=f+8|0}if((b|0)==(d|0))break;else f=b}return d|0}do{f=c[b>>2]|0;g=(f&61440|0)==36864;c:do if(((g?64:(6?f>>>6:f)&63)|0)!=(h|0))if((f&49152|0)==32768){e=f&12288;if(e<<16>>16<8192)switch(e<<16>>16){case 4096:{i=31;break c}default:{i=28;break c}}else switch(e<<16>>16){case 8192:{i=31;break c}default:{i=28;break c}}}else i=31;else i=28;while(0);if((i|0)==28){i=0;if((c[j>>2]|0)!=3|g^1)if(ve(a,f)|0)i=31;else{d=d+-8|0;c[b>>2]=c[d>>2]}else i=37}d:do if((i|0)==31){i=0;if((c[j>>2]|0)==2){f=c[b>>2]|0;e=f&49152;e:do if((e|0)==49152?1:(c[a+((f&63)<<2)>>2]|0)==0){if((e|0)!=32768){i=37;break d}e=f&12288;if(e<<16>>16<8192)switch(e<<16>>16){case 4096:{i=37;break d}default:break e}else switch(e<<16>>16){case 8192:{i=37;break d}default:break e}}while(0);if(!(ve(a,f)|0)){d=d+-8|0;c[b>>2]=c[d>>2]}else i=37}else i=37}while(0);if((i|0)==37)b=b+8|0}while((b|0)!=(d|0));return d|0}function Od(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295272]=0;c[295273]=0;c[295274]=0;f=Gv(96)|0;c[295273]=f;c[295272]=f;c[295274]=f+96;Rv(f,r);f=(c[295273]|0)+12|0;c[295273]=f;Rv(f,m);f=(c[295273]|0)+12|0;c[295273]=f;Rv(f,n);f=(c[295273]|0)+12|0;c[295273]=f;Rv(f,o);f=(c[295273]|0)+12|0;c[295273]=f;Rv(f,p);f=(c[295273]|0)+12|0;c[295273]=f;Rv(f,q);f=(c[295273]|0)+12|0;c[295273]=f;Rv(f,d);f=(c[295273]|0)+12|0;c[295273]=f;Rv(f,b);c[295273]=(c[295273]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function Pd(a,b,d,e,f,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;c[a>>2]=b;c[a+4>>2]=f;c[a+8>>2]=g;c[a+12>>2]=h;c[a+20>>2]=c[j>>2];c[a+24>>2]=0;c[a+28>>2]=c[j+4>>2];c[a+32>>2]=0;c[a+36>>2]=i;c[a+40>>2]=0;c[a+72>>2]=e;h=(c[b+5352>>2]|0)+56|0;h=(c[h>>2]|0)==0&(c[h+4>>2]|0)==0?0:7;i=a+56|0;c[i>>2]=h;if(!d){b=h;d=0;a=a+16|0;c[a>>2]=d;d=(d|0)==0;d=d&1;d=b+d|0;c[i>>2]=d;return}f=xe(b,d)|0;b=c[i>>2]|0;d=f?d:0;a=a+16|0;c[a>>2]=d;d=(d|0)==0;d=d&1;d=b+d|0;c[i>>2]=d;return}function Qd(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[a>>2]=b;c[a+4>>2]=f;c[a+8>>2]=g;c[a+12>>2]=h;f=a+64|0;c[f>>2]=i;h=a+72|0;c[h>>2]=e;e=(c[b+5352>>2]|0)+56|0;g=a+56|0;c[g>>2]=(c[e>>2]|0)==0&(c[e+4>>2]|0)==0?13:7;do if((d|0)!=0?xe(b,d)|0:0){if((c[h>>2]|0)<=-5?(d&63|0)!=(c[f>>2]|0):0){d=0;break}}else d=0;while(0);c[a+16>>2]=d;c[g>>2]=(c[g>>2]|0)+((d|0)==0&1);return}function Rd(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;c[a>>2]=b;c[a+8>>2]=f;h=a+68|0;c[h>>2]=e;g=a+56|0;c[g>>2]=10;a:do if((d|0)!=0?xe(b,d)|0:0){e=c[a>>2]|0;f=d&49152;b:do if((f|0)==49152?1:(c[e+((d&63)<<2)>>2]|0)==0){if((f|0)!=32768){f=0;break a}f=d&12288;if(f<<16>>16<8192)switch(f<<16>>16){case 4096:{f=0;break a}default:break b}else switch(f<<16>>16){case 8192:{f=0;break a}default:break b}}while(0);f=Ge(e,d,c[h>>2]|0)|0;f=f?d:0}else f=0;while(0);c[a+16>>2]=f;c[g>>2]=(c[g>>2]|0)+((f|0)==0&1);return}function Sd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=a+56|0;e=a+76|0;n=a+52|0;r=a+44|0;q=a+48|0;d=c[p>>2]|0;a:while(1){switch(d|0){case 10:case 13:case 7:case 0:{o=3;break a}case 2:{o=5;break a}case 3:{o=20;break a}case 4:{o=33;break a}case 5:{m=6;o=43;break a}case 6:{o=55;break a}case 8:{o=63;break a}case 9:{o=64;break a}case 12:{o=72;break a}case 15:{o=83;break a}case 16:{o=97;break a}case 17:{o=98;break a}case 14:case 11:case 1:break;default:{d=0;o=106;break a}}c[n>>2]=e;c[r>>2]=e;c[q>>2]=hd(c[a>>2]|0,e)|0;Td(a);d=(c[p>>2]|0)+1|0;c[p>>2]=d}do if((o|0)==3){c[p>>2]=d+1;r=c[a+16>>2]|0;return r|0}else if((o|0)==5){d=c[r>>2]|0;f=c[q>>2]|0;k=a+60|0;b:do if(d>>>0>>0){j=a+16|0;i=f;while(1){g=d+8|0;if((g|0)==(i|0))f=d;else{f=d;h=d;while(1){f=(c[f+4>>2]|0)<(c[h+12>>2]|0)?g:f;h=g+8|0;if((h|0)==(i|0))break;else{s=g;g=h;h=s}}}g=d;s=c[g>>2]|0;g=c[g+4>>2]|0;h=f;i=c[h+4>>2]|0;c[d>>2]=c[h>>2];c[d+4>>2]=i;c[f>>2]=s;c[f+4>>2]=g;f=c[r>>2]|0;d=f+8|0;c[r>>2]=d;g=c[f>>2]|0;c[k>>2]=g;if((g|0)!=(c[j>>2]|0)){s=Ge(c[a>>2]|0,g,(z(c[f+4>>2]|0,-55)|0)/1024|0)|0;d=c[k>>2]|0;if(s)break;s=c[n>>2]|0;c[n>>2]=s+8;c[s>>2]=d;d=c[r>>2]|0}i=c[q>>2]|0;if(d>>>0>=i>>>0){o=14;break b}}if(d|0){s=d;return s|0}}else o=14;while(0);if((o|0)==14)c[k>>2]=0;f=a+20|0;c[r>>2]=f;d=a+44|0;c[q>>2]=d;s=c[a+36>>2]|0;if(!((c[f>>2]|0)!=(s|0)?(c[a+28>>2]|0)!=(s|0):0)){d=a+36|0;c[q>>2]=d}c[p>>2]=(c[p>>2]|0)+1;i=k;o=21}else if((o|0)==20){f=c[r>>2]|0;d=c[q>>2]|0;i=a+60|0;o=21}else if((o|0)==55){e=c[r>>2]|0;g=c[q>>2]|0}else if((o|0)==63){c[r>>2]=e;c[q>>2]=Md(c[a>>2]|0,e)|0;Vd(a);c[p>>2]=(c[p>>2]|0)+1;o=64}else if((o|0)==72){d=c[r>>2]|0;e=c[q>>2]|0;j=a+60|0;c:do if(d>>>0>>0){k=a+16|0;i=a+68|0;h=e;while(1){f=d+8|0;if((f|0)==(h|0))e=d;else{e=d;g=d;while(1){e=(c[e+4>>2]|0)<(c[g+12>>2]|0)?f:e;g=f+8|0;if((g|0)==(h|0))break;else{s=f;f=g;g=s}}}s=d;p=c[s>>2]|0;s=c[s+4>>2]|0;n=e;o=c[n+4>>2]|0;c[d>>2]=c[n>>2];c[d+4>>2]=o;c[e>>2]=p;c[e+4>>2]=s;e=c[r>>2]|0;d=e+8|0;c[r>>2]=d;e=c[e>>2]|0;c[j>>2]=e;if((e|0)!=(c[k>>2]|0)){if(Ge(c[a>>2]|0,e,c[i>>2]|0)|0)break;d=c[r>>2]|0}h=c[q>>2]|0;if(d>>>0>=h>>>0)break c}s=c[j>>2]|0;return s|0}while(0);c[j>>2]=0;s=0;return s|0}else if((o|0)==83){d=c[r>>2]|0;f=c[q>>2]|0;m=a+60|0;d:do if(d>>>0>>0){l=a+16|0;j=a+72|0;k=a+64|0;i=d;while(1){g=i+8|0;if((g|0)==(f|0))d=i;else{d=i;h=i;while(1){d=(c[d+4>>2]|0)<(c[h+12>>2]|0)?g:d;h=g+8|0;if((h|0)==(f|0))break;else{s=g;g=h;h=s}}}s=i;n=c[s>>2]|0;s=c[s+4>>2]|0;h=d;b=c[h+4>>2]|0;f=i;c[f>>2]=c[h>>2];c[f+4>>2]=b;f=d;c[f>>2]=n;c[f+4>>2]=s;f=c[r>>2]|0;i=f+8|0;c[r>>2]=i;f=c[f>>2]|0;c[m>>2]=f;if((f|0)!=(c[l>>2]|0)){d=c[j>>2]|0;if((d|0)>-5)break;if((f&63|0)==(c[k>>2]|0))break}f=c[q>>2]|0;if(i>>>0>=f>>>0){d=j;o=93;break d}}if(f){s=f;return s|0}}else{d=a+72|0;o=93}while(0);if((o|0)==93){c[m>>2]=0;d=c[d>>2]|0}if(!d){c[p>>2]=(c[p>>2]|0)+1;o=97;break}else{s=0;return s|0}}else if((o|0)==98){g=c[q>>2]|0;o=99}else if((o|0)==106)return d|0;while(0);if((o|0)==21){e:do if(f>>>0>>0){j=a+16|0;f:while(1){h=f+8|0;c[r>>2]=h;f=c[f>>2]|0;c[i>>2]=f;g:do if(!((f|0)==0?1:(f|0)==(c[j>>2]|0))?(l=c[a>>2]|0,m=f&49152,(m|0)==49152?1:(c[l+((f&63)<<2)>>2]|0)==0):0){h:do if((m|0)==32768){g=f&12288;if(g<<16>>16<8192)switch(g<<16>>16){case 4096:break h;default:{f=h;break g}}else switch(g<<16>>16){case 8192:break h;default:{f=h;break g}}}while(0);if(xe(l,f)|0)break f;f=c[r>>2]|0;d=c[q>>2]|0}else f=h;while(0);if(f>>>0>=d>>>0){o=30;break e}}d=c[i>>2]|0;if(d|0){s=d;return s|0}}else o=30;while(0);if((o|0)==30)c[i>>2]=0;c[p>>2]=(c[p>>2]|0)+1;o=33}else if((o|0)==64){d=c[r>>2]|0;e=c[q>>2]|0;j=a+60|0;i:do if(d>>>0>>0){i=a+16|0;h=d;while(1){f=h+8|0;if((f|0)==(e|0))d=h;else{d=h;g=h;while(1){d=(c[d+4>>2]|0)<(c[g+12>>2]|0)?f:d;g=f+8|0;if((g|0)==(e|0))break;else{s=f;f=g;g=s}}}s=h;a=c[s>>2]|0;s=c[s+4>>2]|0;n=d;o=c[n+4>>2]|0;p=h;c[p>>2]=c[n>>2];c[p+4>>2]=o;c[d>>2]=a;c[d+4>>2]=s;d=c[r>>2]|0;h=d+8|0;c[r>>2]=h;d=c[d>>2]|0;c[j>>2]=d;if((d|0)!=(c[i>>2]|0))break;e=c[q>>2]|0;if(h>>>0>=e>>>0)break i}return d|0}while(0);c[j>>2]=0;s=0;return s|0}else if((o|0)==97){c[r>>2]=e;g=Ld(c[a>>2]|0,e)|0;c[q>>2]=g;c[p>>2]=(c[p>>2]|0)+1;o=99}if((o|0)==99){d=c[r>>2]|0;h=a+60|0;do if(d>>>0>>0){f=c[a+16>>2]|0;e=d;while(1){d=e;e=e+8|0;d=c[d>>2]|0;if((d|0)!=(f|0)){o=104;break}if(e>>>0>=g>>>0){o=103;break}}if((o|0)==103){c[r>>2]=e;c[h>>2]=f;d=0;break}else if((o|0)==104){c[r>>2]=e;break}}else d=0;while(0);c[h>>2]=d;s=d;return s|0}if((o|0)==33){k=c[n>>2]|0;c[r>>2]=k;c[q>>2]=ld(c[a>>2]|0,k)|0;Ud(a);k=c[r>>2]|0;l=c[q>>2]|0;m=z(c[a+72>>2]|0,-4e3)|0;d=k+8|0;if(d>>>0>>0){f=k;g=k;while(1){if((c[f+12>>2]|0)>=(m|0)){j=d;i=c[j>>2]|0;j=c[j+4>>2]|0;g=g+8|0;h=g;o=c[h+4>>2]|0;s=d;c[s>>2]=c[h>>2];c[s+4>>2]=o;j:do if((g|0)==(k|0))f=k;else{h=g;while(1){f=h;h=h+-8|0;if((c[f+-4>>2]|0)>=(j|0))break j;t=h;o=c[t+4>>2]|0;s=f;c[s>>2]=c[t>>2];c[s+4>>2]=o;if((h|0)==(k|0)){f=k;break}}}while(0);t=f;c[t>>2]=i;c[t+4>>2]=j}f=d+8|0;if(f>>>0>>0){t=d;d=f;f=t}else break}}m=c[p>>2]|0;c[p>>2]=m+1;m=m+2|0;o=43}if((o|0)==43){k:do if(!b){d=c[r>>2]|0;g=c[q>>2]|0;k=a+60|0;do if(d>>>0>>0){h=c[a+16>>2]|0;i=a+20|0;l=a+28|0;j=a+36|0;f=d;while(1){d=f;f=f+8|0;d=c[d>>2]|0;if((((d|0)!=(h|0)?(d|0)!=(c[i>>2]|0):0)?(d|0)!=(c[l>>2]|0):0)?(d|0)!=(c[j>>2]|0):0)break;if(f>>>0>=g>>>0){o=51;break}}if((o|0)==51){c[k>>2]=d;c[r>>2]=f;break}c[k>>2]=d;c[r>>2]=f;if(!d)break k;return d|0}while(0);c[k>>2]=0}while(0);c[r>>2]=e;g=c[n>>2]|0;c[q>>2]=g;c[p>>2]=m}h=a+60|0;do if(e>>>0>>0){f=c[a+16>>2]|0;while(1){d=e;e=e+8|0;d=c[d>>2]|0;if((d|0)!=(f|0)){o=61;break}if(e>>>0>=g>>>0){o=60;break}}if((o|0)==60){c[r>>2]=e;c[h>>2]=f;d=0;break}else if((o|0)==61){c[r>>2]=e;break}}else d=0;while(0);c[h>>2]=d;t=d;return t|0}function Td(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c[a+44>>2]|0;k=c[a+48>>2]|0;if((d|0)==(k|0))return;l=a+8|0;do{j=c[a>>2]|0;e=c[j+5360>>2]|0;do if((e|0)!=2){g=c[d>>2]|0;i=g&63;h=c[j+(i<<2)>>2]|0;f=c[14192+(e<<7)+(h<<2)>>2]|0;if((e|0)==6){f=(z((3?i>>>3:i)^7,-200)|0)+f|0;e=6?g>>>6:g;if((g&61440|0)==36864)e=e&15;else e=c[j+((e&63)<<2)>>2]|0;e=f+(((b[(c[l>>2]|0)+(e<<10)+(i<<4)+((h&7)<<1)>>1]|0)/8|0)<<16>>16)|0;break}else{e=6?g>>>6:g;if((g&61440|0)==36864)e=e&15;else e=c[j+((e&63)<<2)>>2]|0;e=f+(((b[(c[l>>2]|0)+(e<<10)+(i<<4)+((h&7)<<1)>>1]|0)/8|0)<<16>>16)|0;break}}else{f=c[d>>2]|0;e=6?f>>>6:f;if((f&61440|0)==36864)e=e&15;else e=c[j+((e&63)<<2)>>2]|0;e=Fe(j,f,e&7,f&63)|0}while(0);c[d+4>>2]=e;d=d+8|0}while((d|0)!=(k|0));return}function Ud(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=c[a+44>>2]|0;m=c[a+48>>2]|0;if((d|0)==(m|0))return;o=a+4|0;n=a+12|0;e=c[a>>2]|0;do{i=c[d>>2]|0;j=(i&61440|0)==36864;k=i&63;g=b[(c[o>>2]|0)+((c[e+5340>>2]|0)*8320|0)+((j?k|4096:i&4095)<<1)>>1]|0;h=c[n>>2]|0;f=c[h>>2]|0;i=6?i>>>6:i;if(j){f=(b[f+((i&15)<<7)+(k<<1)>>1]|0)+g+(b[(c[h+4>>2]|0)+((i&15)<<7)+(k<<1)>>1]|0)|0;g=i&15}else{f=(b[f+(c[e+((i&63)<<2)>>2]<<7)+(k<<1)>>1]|0)+g+(b[(c[h+4>>2]|0)+(c[e+((i&63)<<2)>>2]<<7)+(k<<1)>>1]|0)|0;g=c[e+((i&63)<<2)>>2]|0}l=d+4|0;c[l>>2]=f+(b[(c[h+12>>2]|0)+(g<<7)+(k<<1)>>1]|0);if((c[e+5360>>2]|0)==1){h=e+256|0;i=161184+((j?64:i&63)<<3)|0;i=ue(e,k,c[i>>2]^c[h>>2],c[i+4>>2]^c[h+4>>2])|0;k=E()|0;e=c[a>>2]|0;j=e+320+((c[e+5340>>2]^1)<<3)|0;if(!((c[j>>2]&i|0)==0?(c[j+4>>2]&k|0)==0:0)){c[l>>2]=(c[l>>2]|0)+268435456;k=c[d>>2]|0;i=e+256|0;i=ue(e,(k&61440|0)==36864?64:(6?k>>>6:k)&63,c[i>>2]|0,c[i+4>>2]|0)|0;k=E()|0;e=c[a>>2]|0;j=e+320+((c[e+5340>>2]^1)<<3)|0;if((c[j>>2]&i|0)==0?(c[j+4>>2]&k|0)==0:0)c[l>>2]=(c[l>>2]|0)+134217728}}d=d+8|0}while((d|0)!=(m|0));return}function Vd(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=c[a+44>>2]|0;i=c[a+48>>2]|0;if((d|0)==(i|0))return;j=c[a>>2]|0;m=j+5360|0;k=a+4|0;l=j+5340|0;h=a+12|0;do{g=c[d>>2]|0;f=g&63;e=c[j+(f<<2)>>2]|0;a=g&49152;a:do if((a|0)==49152|(e|0)==0){b:do if((a|0)==32768){a=g&12288;if(a<<16>>16<8192)switch(a<<16>>16){case 4096:break b;default:{n=7;break a}}else switch(a<<16>>16){case 8192:break b;default:{n=7;break a}}}while(0);e=(g&61440|0)==36864;a=6?g>>>6:g;if(e)a=a&15;else a=c[j+((a&63)<<2)>>2]|0;a=(b[(c[k>>2]|0)+((c[l>>2]|0)*8320|0)+((e?f|4096:g&4095)<<1)>>1]|0)+-268435456+(b[(c[c[h>>2]>>2]|0)+(a<<7)+(f<<1)>>1]|0)|0}else n=7;while(0);if((n|0)==7){n=0;a=6?g>>>6:g;if((g&61440|0)==36864)a=a&15;else a=c[j+((a&63)<<2)>>2]|0;a=(c[14192+(c[m>>2]<<7)+(e<<2)>>2]|0)-(a&7)|0}c[d+4>>2]=a;d=d+8|0}while((d|0)!=(i|0));return}function Wd(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295275]=0;c[295276]=0;c[295277]=0;f=Gv(96)|0;c[295276]=f;c[295275]=f;c[295277]=f+96;Rv(f,r);f=(c[295276]|0)+12|0;c[295276]=f;Rv(f,m);f=(c[295276]|0)+12|0;c[295276]=f;Rv(f,n);f=(c[295276]|0)+12|0;c[295276]=f;Rv(f,o);f=(c[295276]|0)+12|0;c[295276]=f;Rv(f,p);f=(c[295276]|0)+12|0;c[295276]=f;Rv(f,q);f=(c[295276]|0)+12|0;c[295276]=f;Rv(f,d);f=(c[295276]|0)+12|0;c[295276]=f;Rv(f,b);c[295276]=(c[295276]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function Xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=b+5360|0;if((c[i>>2]|0)==1?(c[b+360>>2]|0)==0:0)g=64;else g=c[b+1936>>2]|0;c[a+64>>2]=g;h=b+5352|0;c[a+88>>2]=c[(c[h>>2]|0)+24>>2]&3;e=b+320|0;f=b+264|0;d=c[f>>2]&c[e>>2];e=c[f+4>>2]&c[e+4>>2];if((d|0)==0&(e|0)==0)f=0;else{f=0;do{f=f+1|0;j=227552+(g<<6)+(f<<3)|0}while((c[j>>2]&d|0)==0?(c[j+4>>2]&e|0)==0:0);f=z(f,-1048576)|0}d=Yd(a,b,g)|0;e=c[(c[h>>2]|0)+24>>2]|0;if(e&1){j=Yd(a,b,6)|0;e=c[(c[h>>2]|0)+24>>2]|0;d=(d|0)<(j|0)?j:d}if(!(e&2)){j=d;a=c[i>>2]|0;a=(a|0)==3;i=j<<16;i=a?i:f;j=i+j|0;return j|0}j=Yd(a,b,2)|0;j=(d|0)<(j|0)?j:d;a=c[i>>2]|0;a=(a|0)==3;i=j<<16;i=a?i:f;j=i+j|0;return j|0}function Yd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=b+264|0;j=161952+((3?d>>3:d)<<3)|0;i=c[h>>2]&~c[j>>2];j=c[h+4>>2]&~c[j+4>>2];h=b+320|0;g=i&c[h>>2];h=j&c[h+4>>2];e=b+328|0;i=c[e>>2]&i;j=c[e+4>>2]&j;e=xJ(i|0,j|0,8)|0;E()|0;e=(0==0?(c[161184+(d<<3)>>2]&33153&e|0)==0:0)?5:374;f=d&7;f=f>>>0<6?f:6;f=(f|0)>1?f:1;d=f+-1|0;k=c[b+5360>>2]|0;l=161696+(d<<3)|0;m=c[l>>2]|0;l=c[l+4>>2]|0;n=g&m;a=h&l;b=qa(n|0,a|0,0)|0;E()|0;b=(n|0)==0&(a|0)==0?0:3?b>>>3:b;m=m&i;l=l&j;a=qa(m|0,l|0,0)|0;E()|0;a=(m|0)==0&(l|0)==0?0:3?a>>>3:a;l=d^7;d=(l|0)<(d|0)?l:d;if((b|0)!=0&(b|0)==(a+-1|0))a=(a|0)==2?66:0;else a=c[13664+(d<<5)+(a<<2)>>2]|0;e=(c[12640+(k<<7)+(d<<5)+(b<<2)>>2]|0)+e-a|0;d=161696+(f<<3)|0;n=c[d>>2]|0;d=c[d+4>>2]|0;m=g&n;a=h&d;b=qa(m|0,a|0,0)|0;E()|0;b=(m|0)==0&(a|0)==0?0:3?b>>>3:b;n=n&i;d=d&j;a=qa(n|0,d|0,0)|0;E()|0;a=(n|0)==0&(d|0)==0?0:3?a>>>3:a;d=f^7;d=(d|0)<(f|0)?d:f;if((b|0)!=0&(b|0)==(a+-1|0))a=(a|0)==2?66:0;else a=c[13664+(d<<5)+(a<<2)>>2]|0;a=(c[12640+(k<<7)+(d<<5)+(b<<2)>>2]|0)+e-a|0;d=f+1|0;m=161696+(d<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;g=g&l;b=h&m;n=qa(g|0,b|0,0)|0;E()|0;n=(g|0)==0&(b|0)==0?0:3?n>>>3:n;l=l&i;m=m&j;b=qa(l|0,m|0,0)|0;E()|0;b=(l|0)==0&(m|0)==0?0:3?b>>>3:b;m=d^7;d=m>>>0>>0?m:d;a=(c[12640+(k<<7)+(d<<5)+(n<<2)>>2]|0)+a|0;if((n|0)!=0&(n|0)==(b+-1|0)){n=(b|0)==2?66:0;n=a-n|0;return n|0}else{n=c[13664+(d<<5)+(b<<2)>>2]|0;n=a-n|0;return n|0}return 0}function Zd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=b+5360|0;if((c[i>>2]|0)==1?(c[b+392>>2]|0)==0:0)g=64;else g=c[b+3984>>2]|0;c[a+68>>2]=g;h=b+5352|0;c[a+92>>2]=c[(c[h>>2]|0)+24>>2]&12;e=b+328|0;f=b+264|0;d=c[f>>2]&c[e>>2];e=c[f+4>>2]&c[e+4>>2];if((d|0)==0&(e|0)==0)f=0;else{f=0;do{f=f+1|0;j=227552+(g<<6)+(f<<3)|0}while((c[j>>2]&d|0)==0?(c[j+4>>2]&e|0)==0:0);f=z(f,-1048576)|0}d=_d(a,b,g)|0;e=c[(c[h>>2]|0)+24>>2]|0;if(e&4){j=_d(a,b,62)|0;e=c[(c[h>>2]|0)+24>>2]|0;d=(d|0)<(j|0)?j:d}if(!(e&8)){j=d;a=c[i>>2]|0;a=(a|0)==3;i=j<<16;i=a?i:f;j=i+j|0;return j|0}j=_d(a,b,58)|0;j=(d|0)<(j|0)?j:d;a=c[i>>2]|0;a=(a|0)==3;i=j<<16;i=a?i:f;j=i+j|0;return j|0}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=b+264|0;j=161888+((3?d>>3:d)<<3)|0;i=c[h>>2]&~c[j>>2];j=c[h+4>>2]&~c[j+4>>2];h=b+328|0;g=i&c[h>>2];h=j&c[h+4>>2];e=b+320|0;i=c[e>>2]&i;j=c[e+4>>2]&j;yJ(i|0,j|0,8)|0;e=E()|0;e=(0==0?(c[161184+(d<<3)+4>>2]&-2122252288&e|0)==0:0)?5:374;f=d&7;f=f>>>0<6?f:6;f=(f|0)>1?f:1;d=f+-1|0;k=c[b+5360>>2]|0;l=161696+(d<<3)|0;m=c[l>>2]|0;l=c[l+4>>2]|0;n=g&m;a=h&l;b=zJ(n|0,a|0,0)|0;E()|0;b=(n|0)==0&(a|0)==0?0:3?b>>>3:b;m=m&i;l=l&j;a=zJ(m|0,l|0,0)|0;E()|0;a=(m|0)==0&(l|0)==0?0:3?a>>>3:a;l=d^7;d=(l|0)<(d|0)?l:d;if((b|0)!=0&(b|0)==(a+-1|0))a=(a|0)==2?66:0;else a=c[13664+(d<<5)+(a<<2)>>2]|0;e=(c[12640+(k<<7)+(d<<5)+(b<<2)>>2]|0)+e-a|0;d=161696+(f<<3)|0;n=c[d>>2]|0;d=c[d+4>>2]|0;m=g&n;a=h&d;b=zJ(m|0,a|0,0)|0;E()|0;b=(m|0)==0&(a|0)==0?0:3?b>>>3:b;n=n&i;d=d&j;a=zJ(n|0,d|0,0)|0;E()|0;a=(n|0)==0&(d|0)==0?0:3?a>>>3:a;d=f^7;d=(d|0)<(f|0)?d:f;if((b|0)!=0&(b|0)==(a+-1|0))a=(a|0)==2?66:0;else a=c[13664+(d<<5)+(a<<2)>>2]|0;a=(c[12640+(k<<7)+(d<<5)+(b<<2)>>2]|0)+e-a|0;d=f+1|0;m=161696+(d<<3)|0;l=c[m>>2]|0;m=c[m+4>>2]|0;g=g&l;b=h&m;n=zJ(g|0,b|0,0)|0;E()|0;n=(g|0)==0&(b|0)==0?0:3?n>>>3:n;l=l&i;m=m&j;b=zJ(l|0,m|0,0)|0;E()|0;b=(l|0)==0&(m|0)==0?0:3?b>>>3:b;m=d^7;d=m>>>0>>0?m:d;a=(c[12640+(k<<7)+(d<<5)+(n<<2)>>2]|0)+a|0;if((n|0)!=0&(n|0)==(b+-1|0)){n=(b|0)==2?66:0;n=a-n|0;return n|0}else{n=c[13664+(d<<5)+(b<<2)>>2]|0;n=a-n|0;return n|0}return 0}function $d(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0;qa=0;do{ma=(qa|0)==4;y=13792+(qa<<5)+4|0;z=13792+(qa<<5)+8|0;A=13792+(qa<<5)+12|0;B=13792+(qa<<5)+16|0;C=13792+(qa<<5)+20|0;D=13792+(qa<<5)+24|0;x=13792+(qa<<5)+4|0;J=13792+(qa<<5)+8|0;E=13792+(qa<<5)+12|0;F=13792+(qa<<5)+16|0;G=13792+(qa<<5)+20|0;H=13792+(qa<<5)+24|0;I=13792+(qa<<5)+28|0;na=0;do{q=na?29>>>na:29;l=na?3>>>na:3;p=na?1>>>na:1;t=na?105>>>na:105;w=na?99>>>na:99;pa=na?343>>>na:343;i=q*65537|0;K=954960+(na*192|0)+4|0;j=l*65537|0;L=954960+(na*192|0)+8|0;n=p*65537|0;P=954960+(na*192|0)+12|0;r=t*65537|0;T=954960+(na*192|0)+16|0;u=w*65537|0;W=954960+(na*192|0)+20|0;Z=953424+(qa*384|0)+(na*192|0)+4|0;_=953424+(qa*384|0)+(na*192|0)+8|0;ca=953424+(qa*384|0)+(na*192|0)+12|0;ga=953424+(qa*384|0)+(na*192|0)+16|0;ja=953424+(qa*384|0)+(na*192|0)+20|0;ba=953424+(qa*384|0)+(na*192|0)+36|0;$=953424+(qa*384|0)+(na*192|0)+40|0;da=953424+(qa*384|0)+(na*192|0)+44|0;ha=953424+(qa*384|0)+(na*192|0)+48|0;ka=953424+(qa*384|0)+(na*192|0)+52|0;m=(q*65537|0)+1114129|0;O=954960+(na*192|0)+36|0;k=(l*65537|0)+1114129|0;M=954960+(na*192|0)+40|0;o=(p*65537|0)+1114129|0;Q=954960+(na*192|0)+44|0;s=(t*65537|0)+1114129|0;U=954960+(na*192|0)+48|0;v=(w*65537|0)+1114129|0;X=954960+(na*192|0)+52|0;fa=953424+(qa*384|0)+(na*192|0)+68|0;aa=953424+(qa*384|0)+(na*192|0)+72|0;ea=953424+(qa*384|0)+(na*192|0)+76|0;ia=953424+(qa*384|0)+(na*192|0)+80|0;la=953424+(qa*384|0)+(na*192|0)+84|0;q=(q*65537|0)+2228258|0;S=954960+(na*192|0)+68|0;l=(l*65537|0)+2228258|0;N=954960+(na*192|0)+72|0;p=(p*65537|0)+2228258|0;R=954960+(na*192|0)+76|0;t=(t*65537|0)+2228258|0;V=954960+(na*192|0)+80|0;w=(w*65537|0)+2228258|0;Y=954960+(na*192|0)+84|0;oa=0;do{if(!oa){if(ma){c[K>>2]=i;c[L>>2]=j;c[P>>2]=n;c[T>>2]=r;c[W>>2]=u;a=pa;b=4}else{a=c[y>>2]|0;a=na?a>>na:a;c[Z>>2]=(((a|0)/-4|0)<<16)+a;a=c[z>>2]|0;c[_>>2]=na?a>>na:a;a=c[A>>2]|0;a=na?a>>na:a;c[ca>>2]=(((a|0)/4|0)<<16)+a;a=c[B>>2]|0;a=na?a>>na:a;c[ga>>2]=(((a|0)/2|0)<<16)+a;a=c[C>>2]|0;a=na?a>>na:a;c[ja>>2]=(((a*3|0)/4|0)<<16)+a;a=c[D>>2]|0;a=na?a>>na:a;b=qa}c[953424+(b*384|0)+(na*192|0)+24>>2]=a*65537;if(ma){c[O>>2]=m;c[M>>2]=k;c[Q>>2]=o;c[U>>2]=s;c[X>>2]=v;a=pa;b=4}else{a=c[y>>2]|0;a=(na?a>>na:a)+17|0;c[ba>>2]=(((a|0)/-4|0)<<16)+a;a=c[z>>2]|0;c[$>>2]=(na?a>>na:a)+17;a=c[A>>2]|0;a=(na?a>>na:a)+17|0;c[da>>2]=(((a|0)/4|0)<<16)+a;a=c[B>>2]|0;a=(na?a>>na:a)+17|0;c[ha>>2]=(((a|0)/2|0)<<16)+a;a=c[C>>2]|0;a=(na?a>>na:a)+17|0;c[ka>>2]=(((a*3|0)/4|0)<<16)+a;a=c[D>>2]|0;a=na?a>>na:a;b=qa}c[953424+(b*384|0)+(na*192|0)+56>>2]=(a*65537|0)+1114129;if(ma){c[S>>2]=q;c[N>>2]=l;c[R>>2]=p;c[V>>2]=t;c[Y>>2]=w;a=pa;b=4}else{a=c[y>>2]|0;a=(na?a>>na:a)+34|0;c[fa>>2]=(((a|0)/-4|0)<<16)+a;a=c[z>>2]|0;c[aa>>2]=(na?a>>na:a)+34;a=c[A>>2]|0;a=(na?a>>na:a)+34|0;c[ea>>2]=(((a|0)/4|0)<<16)+a;a=c[B>>2]|0;a=(na?a>>na:a)+34|0;c[ia>>2]=(((a|0)/2|0)<<16)+a;a=c[C>>2]|0;a=(na?a>>na:a)+34|0;c[la>>2]=(((a*3|0)/4|0)<<16)+a;a=c[D>>2]|0;a=na?a>>na:a;b=qa}c[953424+(b*384|0)+(na*192|0)+88>>2]=(a*65537|0)+2228258}else{b=c[x>>2]|0;d=c[J>>2]|0;b=((d-b|0)/2|0)+b|0;b=na?b>>na:b;e=c[E>>2]|0;d=((e-d|0)/2|0)+d|0;d=na?d>>na:d;f=c[F>>2]|0;e=((f-e|0)/2|0)+e|0;e=na?e>>na:e;g=c[G>>2]|0;f=((g-f|0)/2|0)+f|0;f=na?f>>na:f;h=c[H>>2]|0;g=((h-g|0)/2|0)+g|0;g=na?g>>na:g;h=(((c[I>>2]|0)-h|0)/2|0)+h|0;h=na?h>>na:h;if(ma)a=b*65537|0;else a=(((b|0)/-4|0)<<16)+b|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+4>>2]=a;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+8>>2]=ma?d*65537|0:d;if(ma)a=e*65537|0;else a=(((e|0)/4|0)<<16)+e|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+12>>2]=a;if(ma)a=f*65537|0;else a=(((f|0)/2|0)<<16)+f|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+16>>2]=a;if(ma)a=g*65537|0;else a=(((g*3|0)/4|0)<<16)+g|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+20>>2]=a;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+24>>2]=h*65537;a=b+17|0;if(ma)a=a*65537|0;else a=(((a|0)/-4|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+36>>2]=a;a=d+17|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+40>>2]=ma?a*65537|0:a;a=e+17|0;if(ma)a=a*65537|0;else a=(((a|0)/4|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+44>>2]=a;a=f+17|0;if(ma)a=a*65537|0;else a=(((a|0)/2|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+48>>2]=a;a=g+17|0;if(ma)a=a*65537|0;else a=(((a*3|0)/4|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+52>>2]=a;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+56>>2]=(h*65537|0)+1114129;a=b+34|0;if(ma)a=a*65537|0;else a=(((a|0)/-4|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+68>>2]=a;a=d+34|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+72>>2]=ma?a*65537|0:a;a=e+34|0;if(ma)a=a*65537|0;else a=(((a|0)/4|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+76>>2]=a;a=f+34|0;if(ma)a=a*65537|0;else a=(((a|0)/2|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+80>>2]=a;a=g+34|0;if(ma)a=a*65537|0;else a=(((a*3|0)/4|0)<<16)+a|0;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+84>>2]=a;c[953424+(qa*384|0)+(na*192|0)+(oa*96|0)+88>>2]=(h*65537|0)+2228258}oa=oa+1|0}while((oa|0)!=2);na=na+1|0}while((na|0)!=2);qa=qa+1|0}while((qa|0)!=8);return} +function bb(){im();be();jm();ph();Wg();Qg();Og();Df();tf();Le();ib();Wd();Od();gd();Dc();tc();pc();Sb();mb();jb()}function cb(a){a=a|0;var b=0;b=Ia;Ia=Ia+a|0;Ia=Ia+15&-16;return b|0}function db(){return Ia|0}function eb(a){a=a|0;Ia=a}function fb(a,b){a=a|0;b=b|0;Ia=a;Ja=b}function gb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;b=d<<6|a|b<<13&57344|e<<12|196608-((3?b>>>3:b)<<15);return (c[54688+((5?b>>>5:b)<<2)>>2]&1<<(a&31)|0)!=0|0}function hb(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=Ia;Ia=Ia+32|0;m=p;o=Gv(3932160)|0;DJ(o|0,0,3932160)|0;i=m+4|0;j=m+8|0;l=m+12|0;n=m+16|0;k=0;do{a=k&63;c[i>>2]=a;b=(6?k>>>6:k)&63;c[j>>2]=b;d=12?k>>>12:k;f=d&1;c[m>>2]=f;d=d&56;g=48-d|(13?k>>>13:k)&3;c[l>>2]=g;do if((b|0)==(g|0)|((a|0)==(g|0)?1:(c[144800+(a<<8)+(b<<2)>>2]|0)<2))a=0;else{if(!f){f=238816+(g<<3)|0;e=161184+(b<<3)|0;if(!((c[e>>2]&c[f>>2]|0)==0?(c[e+4>>2]&c[f+4>>2]|0)==0:0)){a=0;break}if((d|0)==0?(h=g+8|0,(a|0)!=(h|0)):0){if((c[144800+(b<<8)+(h<<2)>>2]|0)>1){a=4;break}g=237792+(a<<3)|0;f=161184+(h<<3)|0;if(!((c[f>>2]&c[g>>2]|0)==0?(c[f+4>>2]&c[g+4>>2]|0)==0:0)){a=4;break}}}else{e=237792+(c[m+4+(f<<2)>>2]<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;f=f^1;b=237792+(c[m+4+(f<<2)>>2]<<3)|0;a=c[b>>2]|0;b=c[b+4>>2]|0;f=238816+(f<<9)+(g<<3)|0;if((d&~(c[f>>2]|a)|0)==0?(e&~(c[f+4>>2]|b)|0)==0:0){a=2;break}g=161184+(g<<3)|0;if(!((d&~a&c[g>>2]|0)==0?(e&~b&c[g+4>>2]|0)==0:0)){a=2;break}}a=1}while(0);c[n>>2]=a;g=o+(k*20|0)|0;c[g>>2]=c[m>>2];c[g+4>>2]=c[m+4>>2];c[g+8>>2]=c[m+8>>2];c[g+12>>2]=c[m+12>>2];c[g+16>>2]=c[m+16>>2];k=k+1|0}while((k|0)!=196608);a=0;j=0;while(1){i=o+(a*20|0)+16|0;if((c[i>>2]|0)==1){if(!(c[o+(a*20|0)>>2]|0)){h=c[o+(a*20|0)+4>>2]|0;d=237792+(h<<3)|0;b=c[d>>2]|0;d=c[d+4>>2]|0;if((b|0)==0&(d|0)==0){e=c[o+(a*20|0)+12>>2]|0;b=0}else{e=c[o+(a*20|0)+12>>2]|0;g=c[o+(a*20|0)+8>>2]<<6|e<<13&57344|196608-((3?e>>>3:e)<<15);f=b;b=0;do{n=qa(f|0,d|0,0)|0;E()|0;m=pJ(f|0,d|0,-1,-1)|0;f=m&f;d=(E()|0)&d;b=c[o+((g|n|4096)*20|0)+16>>2]|b}while(!((f|0)==0&(d|0)==0))}if((e|0)<48){n=c[o+(a*20|0)+8>>2]|0;m=e+8|0;d=n<<6;b=c[o+((h|m<<13&57344|196608-((3?m>>>3:m)<<15)|d|4096)*20|0)+16>>2]|b;if(!((e&-8|0)!=8|(m|0)==(h|0)|(m|0)==(n|0))){n=e+16|0;b=c[o+((h|n<<13&57344|196608-((3?n>>>3:n)<<15)|d|4096)*20|0)+16>>2]|b}}b=(b&4|0)==0?2-(b&1)|0:4}else{d=237792+(c[o+(a*20|0)+8>>2]<<3)|0;b=c[d>>2]|0;d=c[d+4>>2]|0;if((b|0)==0&(d|0)==0)b=0;else{f=c[o+(a*20|0)+12>>2]|0;f=f<<13&57344|c[o+(a*20|0)+4>>2]|196608-((3?f>>>3:f)<<15);e=b;b=0;do{n=qa(e|0,d|0,0)|0;E()|0;m=pJ(e|0,d|0,-1,-1)|0;e=m&e;d=(E()|0)&d;b=c[o+((f|n<<6)*20|0)+16>>2]|b}while(!((e|0)==0&(d|0)==0))}b=(b&2|0)==0?((b&1|0)==0?4:1):2}c[i>>2]=b;b=(b|0)!=1}else b=0;b=j|b&1;a=a+1|0;if((a|0)==196608)if(!b)break;else{a=0;b=0}j=b}b=0;do{a=54688+((5?b>>>5:b)<<2)|0;if((c[o+(b*20|0)+16>>2]|0)==4)c[a>>2]=c[a>>2]|1<<(b&31);b=b+1|0}while((b|0)!=196608);Jv(o);Ia=p;return}function ib(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295172]=0;c[295173]=0;c[295174]=0;f=Gv(96)|0;c[295173]=f;c[295172]=f;c[295174]=f+96;Rv(f,r);f=(c[295173]|0)+12|0;c[295173]=f;Rv(f,m);f=(c[295173]|0)+12|0;c[295173]=f;Rv(f,n);f=(c[295173]|0)+12|0;c[295173]=f;Rv(f,o);f=(c[295173]|0)+12|0;c[295173]=f;Rv(f,p);f=(c[295173]|0)+12|0;c[295173]=f;Rv(f,q);f=(c[295173]|0)+12|0;c[295173]=f;Rv(f,d);f=(c[295173]|0)+12|0;c[295173]=f;Rv(f,b);c[295173]=(c[295173]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function jb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295175]=0;c[295176]=0;c[295177]=0;f=Gv(96)|0;c[295176]=f;c[295175]=f;c[295177]=f+96;Rv(f,r);f=(c[295176]|0)+12|0;c[295176]=f;Rv(f,m);f=(c[295176]|0)+12|0;c[295176]=f;Rv(f,n);f=(c[295176]|0)+12|0;c[295176]=f;Rv(f,o);f=(c[295176]|0)+12|0;c[295176]=f;Rv(f,p);f=(c[295176]|0)+12|0;c[295176]=f;Rv(f,q);f=(c[295176]|0)+12|0;c[295176]=f;Rv(f,d);f=(c[295176]|0)+12|0;c[295176]=f;Rv(f,b);c[295176]=(c[295176]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function kb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;b=0;do{o=b-((1?b>>>1:b)&21845)|0;o=((2?o>>>2:o)&13107)+(o&13107)|0;o=((4?o>>>4:o)+o&3855)*257|0;a[79264+b>>0]=8?o>>>8:o;b=b+1|0}while((b|0)!=65536);b=0;do{m=yJ(1,0,b|0)|0;n=E()|0;o=161184+(b<<3)|0;c[o>>2]=m;c[o+4>>2]=n;b=b+1|0}while((b|0)!=64);o=161696;c[o>>2]=16843009;c[o+4>>2]=16843009;o=161704;c[o>>2]=33686018;c[o+4>>2]=33686018;o=161712;c[o>>2]=67372036;c[o+4>>2]=67372036;o=161720;c[o>>2]=134744072;c[o+4>>2]=134744072;o=161728;c[o>>2]=269488144;c[o+4>>2]=269488144;o=161736;c[o>>2]=538976288;c[o+4>>2]=538976288;o=161744;c[o>>2]=1077952576;c[o+4>>2]=1077952576;o=161752;c[o>>2]=-2139062144;c[o+4>>2]=-2139062144;o=161760;c[o>>2]=255;c[o+4>>2]=0;o=161768;c[o>>2]=65280;c[o+4>>2]=0;o=161776;c[o>>2]=16711680;c[o+4>>2]=0;o=161784;c[o>>2]=-16777216;c[o+4>>2]=0;o=161792;c[o>>2]=0;c[o+4>>2]=255;o=161800;c[o>>2]=0;c[o+4>>2]=65280;o=161808;c[o>>2]=0;c[o+4>>2]=16711680;o=161816;c[o>>2]=0;c[o+4>>2]=-16777216;o=161824;c[o>>2]=33686018;c[o+4>>2]=33686018;o=161832;c[o>>2]=84215045;c[o+4>>2]=84215045;o=161840;c[o>>2]=168430090;c[o+4>>2]=168430090;o=161848;c[o>>2]=336860180;c[o+4>>2]=336860180;o=161856;c[o>>2]=673720360;c[o+4>>2]=673720360;o=161864;c[o>>2]=1347440720;c[o+4>>2]=1347440720;o=161872;c[o>>2]=-1600085856;c[o+4>>2]=-1600085856;o=161880;c[o>>2]=1077952576;c[o+4>>2]=1077952576;o=161952;n=c[o>>2]|0;o=c[o+4>>2]|0;b=n|255;m=161960;c[m>>2]=b;c[m+4>>2]=o;m=161888;c[m>>2]=~b;c[m+4>>2]=~o;m=n|65535;b=161968;c[b>>2]=m;c[b+4>>2]=o;b=161896;c[b>>2]=~m;c[b+4>>2]=~o;n=n|16777215;b=161976;c[b>>2]=n;c[b+4>>2]=o;b=161904;c[b>>2]=~n;c[b+4>>2]=~o;b=161984;c[b>>2]=-1;c[b+4>>2]=o;b=161912;c[b>>2]=0;c[b+4>>2]=~o;b=o|255;n=161992;c[n>>2]=-1;c[n+4>>2]=b;n=161920;c[n>>2]=0;c[n+4>>2]=~b;n=o|65535;b=162e3;c[b>>2]=-1;c[b+4>>2]=n;b=161928;c[b>>2]=0;c[b+4>>2]=~n;o=o|16777215;b=162008;c[b>>2]=-1;c[b+4>>2]=o;b=161936;c[b>>2]=0;c[b+4>>2]=~o;b=0;do{m=161888+((3?b>>>3:b)<<3)|0;k=c[m>>2]|0;m=c[m+4>>2]|0;o=b&7;n=161696+(o<<3)|0;l=c[n>>2]&k;n=c[n+4>>2]&m;j=231648+(b<<3)|0;c[j>>2]=l;c[j+4>>2]=n;o=161824+(o<<3)|0;k=c[o>>2]&k;m=c[o+4>>2]&m;o=233696+(b<<3)|0;c[o>>2]=k;c[o+4>>2]=m;o=232672+(b<<3)|0;c[o>>2]=k|l;c[o+4>>2]=m|n;b=b+1|0}while((b|0)!=64);b=0;do{m=161952+((3?b>>>3:b)<<3)|0;k=c[m>>2]|0;m=c[m+4>>2]|0;o=b&7;n=161696+(o<<3)|0;l=c[n>>2]&k;n=c[n+4>>2]&m;j=232160+(b<<3)|0;c[j>>2]=l;c[j+4>>2]=n;o=161824+(o<<3)|0;k=c[o>>2]&k;m=c[o+4>>2]&m;o=234208+(b<<3)|0;c[o>>2]=k;c[o+4>>2]=m;o=233184+(b<<3)|0;c[o>>2]=k|l;c[o+4>>2]=m|n;b=b+1|0}while((b|0)!=64);e=0;do{d=e&7;b=3?e>>>3:e;f=0;do{if((e|0)!=(f|0)){o=f&7;o=d>>>0>>0?o-d|0:d-o|0;m=3?f>>>3:f;m=b>>>0>>0?m-b|0:b-m|0;o=(o|0)<(m|0)?m:o;c[144800+(e<<8)+(f<<2)>>2]=o;o=227552+(e<<6)+(o<<3)|0;m=161184+(f<<3)|0;l=o;n=c[l+4>>2]|c[m+4>>2];c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}f=f+1|0}while((f|0)!=64);e=e+1|0}while((e|0)!=64);f=0;do{g=(f|0)==0;e=0;do{d=238816+(f<<9)+(e<<3)|0;if(g){b=e+7|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+9|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}}else{b=e+-7|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+-9|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}}e=e+1|0}while((e|0)!=64);e=0;do{d=235744+(e<<3)|0;if(g){b=e+6|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+10|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+15|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+17|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}}else{b=e+-6|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+-10|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+-15|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+-17|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}}e=e+1|0}while((e|0)!=64);e=0;do{d=237792+(e<<3)|0;if(g){b=e+1|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+7|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+8|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+9|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}}else{b=e+-1|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+-7|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+-8|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}b=e+-9|0;if(b>>>0<64?(c[144800+(e<<8)+(b<<2)>>2]|0)<3:0){m=161184+(b<<3)|0;l=d;n=c[l+4>>2]|c[m+4>>2];o=d;c[o>>2]=c[l>>2]|c[m>>2];c[o+4>>2]=n}}e=e+1|0}while((e|0)!=64);f=f+1|0}while((f|0)!=2);l=0;do{k=16+(l<<4)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;i=239840+(l*24|0)+8|0;c[i>>2]=j;c[i+4>>2]=k;i=161760+((3?l>>>3:l)<<3)|0;b=161696+((l&7)<<3)|0;f=c[b>>2]&-2122219135^-2122219135|c[i>>2]&255^255;i=c[b+4>>2]&-2122219135^-2122219135|c[i+4>>2]&-16777216^-16777216;b=l+8|0;a:do if(b>>>0<64){d=0;e=0;while(1){if((c[144800+(b<<8)+(b+-8<<2)>>2]|0)!=1){b=e;break a}o=161184+(b<<3)|0;d=c[o>>2]|d;e=c[o+4>>2]|e;b=b+8|0;if(b>>>0>=64){b=e;break}}}else{d=0;b=0}while(0);h=l;l=l+1|0;b:do if(l>>>0<64){e=l;do{if((c[144800+(e<<8)+(e+-1<<2)>>2]|0)!=1)break b;o=161184+(e<<3)|0;d=c[o>>2]|d;b=c[o+4>>2]|b;e=e+1|0}while(e>>>0<64)}while(0);e=h+-8|0;c:do if(e>>>0<64)do{if((c[144800+(e<<8)+(e+8<<2)>>2]|0)!=1)break c;o=161184+(e<<3)|0;d=c[o>>2]|d;b=c[o+4>>2]|b;e=e+-8|0}while(e>>>0<64);while(0);e=h+-1|0;d:do if(e>>>0<64)do{if((c[144800+(e<<8)+(e+1<<2)>>2]|0)!=1)break d;o=161184+(e<<3)|0;d=c[o>>2]|d;b=c[o+4>>2]|b;e=e+-1|0}while(e>>>0<64);while(0);g=d&~f;b=b&~i;f=239840+(h*24|0)|0;c[f>>2]=g;c[f+4>>2]=b;f=242912+(c[16+(h<<4)+8>>2]<<3)|0;c[239840+(h*24|0)+16>>2]=f;d=0;e=0;do{o=vJ(d|0,e|0,j|0,k|0)|0;o=xJ(o|0,E()|0,52)|0;E()|0;m=lb(1040,h,d,e)|0;n=E()|0;o=f+(o<<3)|0;c[o>>2]=m;c[o+4>>2]=n;o=qJ(d|0,e|0,g|0,b|0)|0;d=o&g;e=(E()|0)&b}while(!((d|0)==0&(e|0)==0))}while((l|0)!=64);k=0;do{j=1056+(k<<4)|0;i=c[j>>2]|0;j=c[j+4>>2]|0;h=241376+(k*24|0)+8|0;c[h>>2]=i;c[h+4>>2]=j;h=161760+((3?k>>>3:k)<<3)|0;d=161696+((k&7)<<3)|0;f=c[d>>2]&-2122219135^-2122219135|c[h>>2]&255^255;h=c[d+4>>2]&-2122219135^-2122219135|c[h+4>>2]&-16777216^-16777216;d=k+9|0;e:do if(d>>>0<64){e=0;b=0;do{if((c[144800+(d<<8)+(d+-9<<2)>>2]|0)!=1)break e;o=161184+(d<<3)|0;e=c[o>>2]|e;b=c[o+4>>2]|b;d=d+9|0}while(d>>>0<64)}else{e=0;b=0}while(0);d=k+-7|0;f:do if(d>>>0<64)do{if((c[144800+(d<<8)+(d+7<<2)>>2]|0)!=1)break f;o=161184+(d<<3)|0;e=c[o>>2]|e;b=c[o+4>>2]|b;d=d+-7|0}while(d>>>0<64);while(0);d=k+-9|0;g:do if(d>>>0<64)do{if((c[144800+(d<<8)+(d+9<<2)>>2]|0)!=1)break g;o=161184+(d<<3)|0;e=c[o>>2]|e;b=c[o+4>>2]|b;d=d+-9|0}while(d>>>0<64);while(0);d=k+7|0;h:do if(d>>>0<64)do{if((c[144800+(d<<8)+(d+-7<<2)>>2]|0)!=1)break h;o=161184+(d<<3)|0;e=c[o>>2]|e;b=c[o+4>>2]|b;d=d+7|0}while(d>>>0<64);while(0);g=e&~f;b=b&~h;f=241376+(k*24|0)|0;c[f>>2]=g;c[f+4>>2]=b;f=242912+(c[1056+(k<<4)+8>>2]<<3)|0;c[241376+(k*24|0)+16>>2]=f;d=0;e=0;do{o=vJ(d|0,e|0,i|0,j|0)|0;o=xJ(o|0,E()|0,55)|0;E()|0;m=lb(2080,k,d,e)|0;n=E()|0;o=f+(o<<3)|0;c[o>>2]=m;c[o+4>>2]=n;o=qJ(d|0,e|0,g|0,b|0)|0;d=o&g;e=(E()|0)&b}while(!((d|0)==0&(e|0)==0));k=k+1|0}while((k|0)!=64);o=0;do{b=c[241376+(o*24|0)+16>>2]|0;i=241376+(o*24|0)|0;h=241376+(o*24|0)+8|0;e=b;j=c[e>>2]|0;e=c[e+4>>2]|0;l=236256+(o<<3)|0;c[l>>2]=j;c[l+4>>2]=e;l=237280+(o<<3)|0;k=l;c[k>>2]=j;c[k+4>>2]=e;k=c[239840+(o*24|0)+16>>2]|0;n=239840+(o*24|0)|0;m=239840+(o*24|0)+8|0;d=k;g=c[d>>2]|0;d=c[d+4>>2]|0;f=236768+(o<<3)|0;c[f>>2]=g;c[f+4>>2]=d;c[l>>2]=g|j;c[l+4>>2]=d|e;l=161184+(o<<3)|0;e=236256+(o<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;j=0;do{g=161184+(j<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;if(!((f&d|0)==0&(g&e|0)==0)){u=b;r=c[241376+(j*24|0)+16>>2]|0;v=r;s=l;t=c[s>>2]|0;s=c[s+4>>2]|0;p=c[v+4>>2]&c[u+4>>2]|g|s;q=194784+(o<<9)+(j<<3)|0;c[q>>2]=c[v>>2]&c[u>>2]|f|t;c[q+4>>2]=p;q=i;p=h;f=vJ(c[q>>2]&f|0,c[q+4>>2]&g|0,c[p>>2]|0,c[p+4>>2]|0)|0;f=xJ(f|0,E()|0,55)|0;E()|0;f=b+(f<<3)|0;p=c[f>>2]|0;f=c[f+4>>2]|0;g=241376+(j*24|0)|0;q=241376+(j*24|0)+8|0;q=vJ(c[g>>2]&t|0,c[g+4>>2]&s|0,c[q>>2]|0,c[q+4>>2]|0)|0;q=xJ(q|0,E()|0,55)|0;E()|0;q=r+(q<<3)|0;f=c[q+4>>2]&f;g=162016+(o<<9)+(j<<3)|0;c[g>>2]=c[q>>2]&p;c[g+4>>2]=f}j=j+1|0}while((j|0)!=64);d=236768+(o<<3)|0;b=c[d>>2]|0;d=c[d+4>>2]|0;g=0;do{f=161184+(g<<3)|0;e=c[f>>2]|0;f=c[f+4>>2]|0;if(!((e&b|0)==0&(f&d|0)==0)){q=k;v=c[239840+(g*24|0)+16>>2]|0;s=v;r=l;p=c[r>>2]|0;r=c[r+4>>2]|0;u=c[s+4>>2]&c[q+4>>2]|f|r;t=194784+(o<<9)+(g<<3)|0;c[t>>2]=c[s>>2]&c[q>>2]|e|p;c[t+4>>2]=u;t=n;u=m;u=vJ(c[t>>2]&e|0,c[t+4>>2]&f|0,c[u>>2]|0,c[u+4>>2]|0)|0;u=xJ(u|0,E()|0,52)|0;E()|0;u=k+(u<<3)|0;t=c[u>>2]|0;u=c[u+4>>2]|0;q=239840+(g*24|0)|0;s=239840+(g*24|0)+8|0;s=vJ(c[q>>2]&p|0,c[q+4>>2]&r|0,c[s>>2]|0,c[s+4>>2]|0)|0;s=xJ(s|0,E()|0,52)|0;E()|0;s=v+(s<<3)|0;u=c[s+4>>2]&u;v=162016+(o<<9)+(g<<3)|0;c[v>>2]=c[s>>2]&t;c[v+4>>2]=u}g=g+1|0}while((g|0)!=64);o=o+1|0}while((o|0)!=64);return}function lb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;i=c[a>>2]|0;g=i+b|0;a:do if(g>>>0<64){f=0;h=0;do{if((c[144800+(g<<8)+(g-i<<2)>>2]|0)!=1)break a;j=161184+(g<<3)|0;k=c[j>>2]|0;j=c[j+4>>2]|0;f=k|f;h=j|h;g=g+i|0}while((k&d|0)==0&(j&e|0)==0&g>>>0<64)}else{f=0;h=0}while(0);i=c[a+4>>2]|0;g=i+b|0;b:do if(g>>>0<64)do{if((c[144800+(g<<8)+(g-i<<2)>>2]|0)!=1)break b;k=161184+(g<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;f=j|f;h=k|h;g=g+i|0}while((j&d|0)==0&(k&e|0)==0&g>>>0<64);while(0);i=c[a+8>>2]|0;g=i+b|0;c:do if(g>>>0<64)do{if((c[144800+(g<<8)+(g-i<<2)>>2]|0)!=1)break c;k=161184+(g<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;f=j|f;h=k|h;g=g+i|0}while((j&d|0)==0&(k&e|0)==0&g>>>0<64);while(0);i=c[a+12>>2]|0;g=i+b|0;if(g>>>0>=64){j=h;k=f;D(j|0);return k|0}while(1){if((c[144800+(g<<8)+(g-i<<2)>>2]|0)!=1){g=17;break}k=161184+(g<<3)|0;j=c[k>>2]|0;k=c[k+4>>2]|0;f=j|f;h=k|h;g=g+i|0;if(!((j&d|0)==0&(k&e|0)==0&g>>>0<64)){g=17;break}}if((g|0)==17){D(h|0);return f|0}return 0}function mb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295178]=0;c[295179]=0;c[295180]=0;f=Gv(96)|0;c[295179]=f;c[295178]=f;c[295180]=f+96;Rv(f,r);f=(c[295179]|0)+12|0;c[295179]=f;Rv(f,m);f=(c[295179]|0)+12|0;c[295179]=f;Rv(f,n);f=(c[295179]|0)+12|0;c[295179]=f;Rv(f,o);f=(c[295179]|0)+12|0;c[295179]=f;Rv(f,p);f=(c[295179]|0)+12|0;c[295179]=f;Rv(f,q);f=(c[295179]|0)+12|0;c[295179]=f;Rv(f,d);f=(c[295179]|0)+12|0;c[295179]=f;Rv(f,b);c[295179]=(c[295179]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function nb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+4112|0;d=k;j=b+5340|0;e=a+8|0;if((c[j>>2]|0)==(c[e>>2]|0)?(Nd(b,d)|0)==(d|0):0){Ia=k;return 0}i=c[a+4>>2]|0;f=c[b+5360>>2]|0;h=i<<3;a=h|6;if((f|0)==1){if(!(c[b+336+(a<<2)>>2]|0))a=64;else a=c[b+400+(a<<8)>>2]|0;d=c[e>>2]<<3|6;if(!(c[b+336+(d<<2)>>2]|0))e=64;else g=8}else{d=c[e>>2]<<3|6;a=c[b+400+(a<<8)>>2]|0;g=8}if((g|0)==8)e=c[b+400+(d<<8)>>2]|0;f=(f|0)==3;d=c[b+336+((h|1)<<2)>>2]|0;if(f)d=(c[b+4496+(i<<5)+4>>2]|0)+d|0;a=(d*208|0)+(c[(c[b+5352>>2]|0)+16+(i<<2)>>2]|0)+(c[2096+(e<<2)>>2]|0)+(c[2352+(c[144800+(a<<8)+(e<<2)>>2]<<2)>>2]|0)|0;d=c[b+336+((h|5)<<2)>>2]|0;if(f)d=(c[b+4496+(i<<5)+20>>2]|0)+d|0;do if(!d){d=c[b+336+((h|4)<<2)>>2]|0;if(f)d=(c[b+4496+(i<<5)+16>>2]|0)+d|0;if(!d){d=c[b+336+((h|3)<<2)>>2]|0;if(f)d=(c[b+4496+(i<<5)+12>>2]|0)+d|0;if(d|0){d=c[b+336+((h|2)<<2)>>2]|0;if(f)d=(c[b+4496+(i<<5)+8>>2]|0)+d|0;if(d|0)break}g=b+320+(i<<3)|0;b=b+280|0;h=c[b>>2]&c[g>>2];b=c[b+4>>2]&c[g+4>>2];if((h&1437226410|0)==0&(b&1437226410|0)==0|(h&-1437226411|0)==0&(b&-1437226411|0)==0){b=a;j=c[j>>2]|0;i=(i|0)==(j|0);j=0-b|0;j=i?b:j;Ia=k;return j|0}}}while(0);b=a+1e4|0;b=(b|0)<31743?b:31743;j=c[j>>2]|0;i=(i|0)==(j|0);j=0-b|0;j=i?b:j;Ia=k;return j|0}function ob(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a+4>>2]|0;g=h<<3;e=g|6;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(e<<2)>>2]|0))f=64;else f=c[b+400+(e<<8)>>2]|0;d=c[a+8>>2]<<3|6;if(!(c[b+336+(d<<2)>>2]|0))e=64;else e=c[b+400+(d<<8)>>2]|0;d=g|3;if(!(c[b+336+(d<<2)>>2]|0)){g=64;d=f}else{a=e;i=8}}else{d=g|3;a=c[b+400+((c[a+8>>2]<<3|6)<<8)>>2]|0;f=c[b+400+(e<<8)>>2]|0;i=8}if((i|0)==8){g=c[b+400+(d<<8)>>2]|0;e=a;d=f}g=(((3?g>>>3:g)^g)&1|0)!=0;i=g?e^56:e;i=(c[2352+(c[144800+((g?d^56:d)<<8)+(i<<2)>>2]<<2)>>2]|0)+1e4+(c[2384+(i<<2)>>2]|0)|0;return ((h|0)==(c[b+5340>>2]|0)?i:0-i|0)|0}function pb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=a+4|0;j=c[k>>2]|0;i=(c[b+5360>>2]|0)==1;e=j<<3;d=e|6;if(i){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;e=e|1;if(c[b+336+(e<<2)>>2]|0)f=6}else{e=e|1;d=c[b+400+(d<<8)>>2]|0;f=6}if((f|0)==6)d=(c[b+400+(e<<8)>>2]&4|0)==0?d:d^7;g=(j|0)==1;h=g?d^56:d;d=c[a+8>>2]<<3|6;if(i){if(!(c[b+336+(d<<2)>>2]|0))a=64;else a=c[b+400+(d<<8)>>2]|0;if(!(c[b+336+(e<<2)>>2]|0)){d=64;a=g?a^56:a}else f=13}else{a=c[b+400+(d<<8)>>2]|0;f=13}do if((f|0)==13){d=c[b+400+(e<<8)>>2]|0;f=d&4;a=(f|0)==0?a:a^7;a=g?a^56:a;if(i){if(!(c[b+336+(e<<2)>>2]|0)){d=64;break}d=c[b+400+(e<<8)>>2]|0;e=d&4}else e=f;d=(e|0)==0?d:d^7}while(0);e=g?d^56:d;d=b+5340|0;if(gb(h,e,a,(j|0)!=(c[d>>2]|0)&1)|0){j=3?e>>3:e;return ((c[k>>2]|0)==(c[d>>2]|0)?j+10208|0:-10208-j|0)|0}else return 0;return 0}function qb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=c[a+4>>2]|0;e=(c[b+5360>>2]|0)==1;j=m<<3;d=j|6;if(e?(c[b+336+(d<<2)>>2]|0)==0:0){g=m*56|0;d=c[a+8>>2]|0;f=d<<3;a=f|6;i=g;g=g^64;l=5}else{i=m*56|0;g=c[b+400+(d<<8)>>2]^i;d=c[a+8>>2]|0;f=d<<3;h=f|6;if(e){a=h;l=5}else{a=f|1;f=i;j=c[b+400+((j|4)<<8)>>2]^i;e=c[b+400+(h<<8)>>2]^i;l=13}}if((l|0)==5){if(!(c[b+336+(a<<2)>>2]|0))e=i^64;else e=c[b+400+(a<<8)>>2]^i;a=j|4;if(!(c[b+336+(a<<2)>>2]|0))h=i^64;else h=c[b+400+(a<<8)>>2]^i;a=f|1;if(!(c[b+336+(a<<2)>>2]|0)){k=d;f=i;d=64;j=h;h=e}else{f=i;j=h;l=13}}if((l|0)==13){k=d;d=c[b+400+(a<<8)>>2]|0;h=e}f=d^f;e=f&7;l=231648+(g<<3)|0;i=161184+(f<<3)|0;if(!((c[i>>2]&c[l>>2]|0)==0?(c[i+4>>2]&c[l+4>>2]|0)==0:0)){n=c[b+5340>>2]|0;b=1378-(c[144800+(g<<8)+(f<<2)>>2]|0)|0;m=(m|0)==(n|0);n=0-b|0;n=m?b:n;return n|0}a=c[144800+(h<<8)+(f<<2)>>2]|0;d=c[b+5340>>2]|0;if((a|0)>=(((d|0)==(k|0)?4:3)|0)?(c[144800+(h<<8)+(j<<2)>>2]|0)>2:0){n=d;b=1378-(c[144800+(g<<8)+(f<<2)>>2]|0)|0;m=(m|0)==(n|0);n=0-b|0;n=m?b:n;return n|0}if((g|0)>23&((h|0)<24&(a|0)==1)?(n=c[144800+(g<<8)+(f<<2)>>2]|0,(n|0)>(((d|0)==(m|0)?3:2)|0)):0){l=d;b=80-(n<<3)|0;m=(m|0)==(l|0);n=0-b|0;n=m?b:n;return n|0}b=f+-8|0;n=d;b=200-((c[144800+(g<<8)+(b<<2)>>2]|0)-(c[144800+(h<<8)+(b<<2)>>2]|0)-(c[144800+(f<<8)+(e<<2)>>2]|0)<<3)|0;m=(m|0)==(n|0);n=0-b|0;n=m?b:n;return n|0}function rb(a,b){a=a|0;b=b|0;var d=0;d=c[a+8>>2]<<3|6;if((c[b+5360>>2]|0)==1?(c[b+336+(d<<2)>>2]|0)==0:0)d=64;else d=c[b+400+(d<<8)>>2]|0;d=c[2096+(d<<2)>>2]|0;return ((c[a+4>>2]|0)==(c[b+5340>>2]|0)?d:0-d|0)|0}function sb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=c[a+8>>2]<<3;e=d|6;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(e<<2)>>2]|0))e=64;else e=c[b+400+(e<<8)>>2]|0;d=d|2;if(!(c[b+336+(d<<2)>>2]|0)){f=64;d=e}else g=6}else{d=d|2;e=c[b+400+(e<<8)>>2]|0;g=6}if((g|0)==6){f=c[b+400+(d<<8)>>2]|0;d=e}g=(c[2640+(c[144800+(d<<8)+(f<<2)>>2]<<2)>>2]|0)+(c[2096+(d<<2)>>2]|0)|0;return ((c[a+4>>2]|0)==(c[b+5340>>2]|0)?g:0-g|0)|0}function tb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=c[a+4>>2]|0;d=j<<3|6;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(d<<2)>>2]|0))h=64;else h=c[b+400+(d<<8)>>2]|0;e=c[a+8>>2]|0;d=e<<3;a=d|6;if(!(c[b+336+(a<<2)>>2]|0))g=64;else g=c[b+400+(a<<8)>>2]|0;a=d|1;if(!(c[b+336+(a<<2)>>2]|0)){f=64;d=g;a=h}else{f=a;a=h;i=8}}else{e=c[a+8>>2]|0;g=e<<3;f=g|1;g=c[b+400+((g|6)<<8)>>2]|0;a=c[b+400+(d<<8)>>2]|0;i=8}if((i|0)==8){f=c[b+400+(f<<8)>>2]|0;d=g}a=c[2352+(c[144800+(a<<8)+(d<<2)>>2]<<2)>>2]|0;if((((3?f>>3:f)^e*7|0)==6?(c[144800+(d<<8)+(f<<2)>>2]|0)==1:0)?(i=161184+(f<<3)|0,!((c[i>>2]&-1515870811|0)==0?(c[i+4>>2]&-1515870811|0)==0:0)):0){i=a;b=b+5340|0;b=c[b>>2]|0;j=(j|0)==(b|0);b=0-i|0;b=j?i:b;return b|0}i=a+2479|0;b=b+5340|0;b=c[b>>2]|0;j=(j|0)==(b|0);b=0-i|0;b=j?i:b;return b|0}function ub(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+4>>2]|0;d=f<<3|6;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;a=c[a+8>>2]<<3|6;if(!(c[b+336+(a<<2)>>2]|0)){e=64;a=d}else g=6}else{a=c[a+8>>2]<<3|6;d=c[b+400+(d<<8)>>2]|0;g=6}if((g|0)==6){e=c[b+400+(a<<8)>>2]|0;a=d}g=(c[2096+(e<<2)>>2]|0)+1309+(c[2352+(c[144800+(a<<8)+(e<<2)>>2]<<2)>>2]|0)|0;return ((f|0)==(c[b+5340>>2]|0)?g:0-g|0)|0}function vb(a,b){a=a|0;b=b|0;return 0}function wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=c[a+4>>2]|0;o=b+320+(p<<3)|0;f=b+264|0;h=c[f>>2]|0;f=c[f+4>>2]|0;n=h&c[o>>2];o=f&c[o+4>>2];l=qa(n|0,o|0,0)|0;E()|0;e=l&7;a:do switch(l&7){case 0:case 7:{m=161696+(e<<3)|0;if((n&~c[m>>2]|0)==0?(o&~c[m+4>>2]|0)==0:0){f=(c[b+5360>>2]|0)==1;d=p<<3|3;if(f?(c[b+336+(d<<2)>>2]|0)==0:0)g=64;else g=c[b+400+(d<<8)>>2]|0;e=(e|56)^p*56;d=c[a+8>>2]<<3|6;if(f?(c[b+336+(d<<2)>>2]|0)==0:0)d=64;else d=c[b+400+(d<<8)>>2]|0;b=g^e;if(((3?b>>>3:b)^b)&1|0?(c[144800+(e<<8)+(d<<2)>>2]|0)<2:0){b=0;return b|0}}break}case 1:case 6:{l=161696+(e<<3)|0;if(((h&~c[l>>2]|0)==0?(f&~c[l+4>>2]|0)==0:0)?(g=c[a+8>>2]|0,(c[(c[b+5352>>2]|0)+16+(g<<2)>>2]|0)==0):0){a=c[b+5360>>2]|0;l=(a|0)==3;i=g<<3;d=c[b+336+((i|1)<<2)>>2]|0;if(l)d=(c[b+4496+(g<<5)+4>>2]|0)+d|0;if((d|0)>0){k=b+320+(g<<3)|0;e=c[k>>2]&h;k=c[k+4>>2]&f;h=(g|0)==0;j=qa(e|0,k|0,0)|0;E()|0;k=zJ(e|0,k|0,0)|0;E()|0;k=h?j:k^63;j=p<<3;e=j|6;if((a|0)==1){if(!(c[b+336+(e<<2)>>2]|0))g=64;else g=c[b+400+(e<<8)>>2]|0;d=i|6;if(!(c[b+336+(d<<2)>>2]|0))e=64;else e=c[b+400+(d<<8)>>2]|0;d=j|3;if(!(c[b+336+(d<<2)>>2]|0)){d=64;f=e}else{f=e;e=g;m=23}}else{d=j|3;f=c[b+400+((i|6)<<8)>>2]|0;e=c[b+400+(e<<8)>>2]|0;m=23}if((m|0)==23){d=c[b+400+(d<<8)>>2]|0;g=e}e=p*7|0;if(((3?k>>3:k)^e|0)==6?(m=161184+(k+(h?8:-8)<<3)|0,!((c[m>>2]&n|0)==0?(c[m+4>>2]&o|0)==0:0)):0){o=d^k;if(!(((3?o>>>3:o)^o)&1)){d=c[b+336+((j|1)<<2)>>2]|0;if(l)d=(c[b+4496+(p<<5)+4>>2]|0)+d|0;if((d|0)!=1)break a}b=c[144800+(k<<8)+(f<<2)>>2]|0;if(!((b|0)>(c[144800+(k<<8)+(g<<2)>>2]|0)|((b|0)>2?1:((3?f>>3:f)^e|0)<6))){b=0;return b|0}}}}break}default:{}}while(0);b=255;return b|0}function xb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=c[a+8>>2]|0;i=(c[b+5360>>2]|0)==1;d=j<<3;e=d|6;if(i){if(!(c[b+336+(e<<2)>>2]|0))e=64;else e=c[b+400+(e<<8)>>2]|0;d=d|4;if(!(c[b+336+(d<<2)>>2]|0))h=64;else f=6}else{d=d|4;e=c[b+400+(e<<8)>>2]|0;f=6}if((f|0)==6)h=c[b+400+(d<<8)>>2]|0;g=j*7|0;if(((3?e>>3:e)^g|0)<2){f=c[a+4>>2]|0;d=f<<3|6;if(i?(c[b+336+(d<<2)>>2]|0)==0:0)d=8;else{d=c[b+400+(d<<8)>>2]|0;d=3?d>>3:d}if(((d^g|0)>2?((3?h>>3:h)^g|0)==2:0)?(i=b+320+(j<<3)|0,a=b+264|0,j=237792+(e<<3)|0,b=238816+(f<<9)+(h<<3)|0,!((c[a>>2]&c[i>>2]&c[j>>2]&c[b>>2]|0)==0?(c[a+4>>2]&c[i+4>>2]&c[j+4>>2]&c[b+4>>2]|0)==0:0)):0){b=0;return b|0}}b=255;return b|0}function yb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;p=c[a+4>>2]|0;i=(c[b+5360>>2]|0)==1;g=p<<3;d=g|6;if(i){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;e=g|1;if(c[b+336+(e<<2)>>2]|0)n=6}else{e=g|1;d=c[b+400+(d<<8)>>2]|0;n=6}if((n|0)==6)d=(c[b+400+(e<<8)>>2]&4|0)==0?d:d^7;m=(p|0)==1;o=m?d^56:d;j=c[a+8>>2]<<3;d=j|6;if(i){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;if(!(c[b+336+(e<<2)>>2]|0)){a=g|4;h=m?d^56:d;n=14}else n=13}else{d=c[b+400+(d<<8)>>2]|0;n=13}if((n|0)==13){a=c[b+400+(e<<8)>>2]|0;f=a&4;h=(f|0)==0?d:d^7;h=m?h^56:h;d=g|4;if(i){a=d;n=14}else{g=c[b+400+(d<<8)>>2]|0;g=(f|0)==0?g:g^7;a=(f|0)==0?a:a^7;d=c[b+400+((j|4)<<8)>>2]|0;a=m?a^56:a;g=m?g^56:g;e=h;n=26}}if((n|0)==14){if(!(c[b+336+(a<<2)>>2]|0))d=64;else d=c[b+400+(a<<8)>>2]|0;if(c[b+336+(e<<2)>>2]|0){d=(c[b+400+(e<<8)>>2]&4|0)==0?d:d^7;d=m?d^56:d;if(!(c[b+336+(e<<2)>>2]|0))n=20;else{a=c[b+400+(e<<8)>>2]|0;a=(a&4|0)==0?a:a^7;a=m?a^56:a;g=d}}else{d=m?d^56:d;n=20}if((n|0)==20){a=m?120:64;g=d}d=j|4;if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;if(!(c[b+336+(e<<2)>>2]|0)){l=a;k=h}else{f=c[b+400+(e<<8)>>2]&4;e=h;n=26}}if((n|0)==26){d=(f|0)==0?d:d^7;l=a;k=e}f=m?d^56:d;j=l&7;i=3?l>>3:l;h=j|56;e=(c[b+5340>>2]|0)==(p|0);a=e&1;d=(l|0)<40;do if(d){if((o|0)<40?(c[144800+(k<<8)+(h<<2)>>2]|0)<2:0){if((f&-8|0)==40){t=0;return t|0}if(!((l|0)>23|(g&-8|0)==40)){t=0;return t|0}}}else{if(((i|0)==5?(c[144800+(k<<8)+(h<<2)>>2]|0)<2:0)?((3?o>>3:o)+a|0)<6:0){if(f>>>0<8){t=0;return t|0}if(e)break;b=f&7;if(((b>>>0>>0?j-b|0:b-j|0)|0)>2)d=0;else break;return d|0}if((k|0)==(h|0)&f>>>0<8){if(!e){t=0;return t|0}if((c[144800+(o<<8)+(l<<2)>>2]|0)>1){t=0;return t|0}}}while(0);if((k|1|0)==55&((g|0)==56&(l|0)==48)&(f&7|0)==0?(o|0)<40|((o&7)>>>0>2|(f|0)<24):0){t=0;return t|0}if(d){if(((k|0)==(l+8|0)?((c[144800+(o<<8)+(l<<2)>>2]|0)-a|0)>1:0)?((c[144800+(o<<8)+(f<<2)>>2]|0)-a|0)>1:0){t=0;return t|0}if(j|0)n=53}else{d=(j|0)!=0;if((((i|0)==6&d?!((g&7|0)!=(j|0)|(g|0)==(h|0)):0)?(q=c[144800+(o<<8)+(h<<2)>>2]|0,(q|0)<((e?-1:-2)+(c[144800+(k<<8)+(h<<2)>>2]|0)|0)):0)?(q|0)<((c[144800+(k<<8)+(g<<2)>>2]|0)+a|0):0){t=128-(q<<1)|0;return t|0}if(d)n=53;else{t=255;return t|0}}do if((((n|0)==53?(g|0)<(l|0)&(g&7|0)==(j|0):0)?(r=c[144800+(o<<8)+(h<<2)>>2]|0,t=e?-1:-2,(r|0)<(t+(c[144800+(k<<8)+(h<<2)>>2]|0)|0)):0)?(q=l+8|0,s=c[144800+(o<<8)+(q<<2)>>2]|0,(s|0)<(t+(c[144800+(k<<8)+(q<<2)>>2]|0)|0)):0){t=(c[144800+(k<<8)+(g<<2)>>2]|0)+a|0;if((t|0)<=2?!((r|0)<(t|0)&(s|0)<(t|0)):0)break;t=128-(r<<1)-(c[144800+(l<<8)+(h<<2)>>2]<<3)|0;return t|0}while(0);if(!((l|0)<32&(k|0)>(l|0))){t=255;return t|0}d=k&7;if((d|0)==(j|0)){t=10;return t|0}if(((d>>>0>>0?j-d|0:d-j|0)|0)==1){t=c[144800+(o<<8)+(k<<2)>>2]|0;return ((t|0)>2?24-(t<<1)|0:255)|0}else{t=255;return t|0}return 0}function zb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=b+264|0;if((c[k>>2]&-2122219135|0)==0?(c[k+4>>2]&-2122219135|0)==0:0){b=255;return b|0}k=(c[b+5360>>2]|0)==1;f=c[a+8>>2]<<3;e=f|6;if(k){if(!(c[b+336+(e<<2)>>2]|0))e=64;else e=c[b+400+(e<<8)>>2]|0;d=f|3;if(!(c[b+336+(d<<2)>>2]|0))g=64;else g=c[b+400+(d<<8)>>2]|0;d=c[a+4>>2]|0;f=d<<3;a=f|1;if(!(c[b+336+(a<<2)>>2]|0)){i=64;h=e;a=f}else j=9}else{d=c[a+4>>2]|0;j=d<<3;a=j|1;g=c[b+400+((f|3)<<8)>>2]|0;e=c[b+400+(e<<8)>>2]|0;f=j;j=9}if((j|0)==9){i=c[b+400+(a<<8)>>2]|0;h=e;a=f}e=(d|0)==0?8:-8;a:do switch((3?i>>3:i)^d*7|0){case 4:{j=i^g;if(((3?j>>>3:j)^j)&1|0){b=255;return b|0}d=c[144800+((e*3|0)+i<<8)+(h<<2)>>2]|0;if((d|0)<3){if(d|0){d=24;break a}d=a|6;if(k?(c[b+336+(d<<2)>>2]|0)==0:0)d=64;else d=c[b+400+(d<<8)>>2]|0;if((h|0)!=(d+(e<<1)|0)){d=24;break a}}d=48;break}case 5:{if((c[144800+((e<<1)+i<<8)+(h<<2)>>2]|0)>=2){b=255;return b|0}b=236256+(g<<3)|0;k=161184+(i+e<<3)|0;if((c[k>>2]&c[b>>2]|0)==0?(c[k+4>>2]&c[b+4>>2]|0)==0:0){b=255;return b|0}k=g&7;b=i&7;if(((k>>>0>>0?b-k|0:k-b|0)|0)>1)d=8;else{b=255;return b|0}break}default:{b=255;return b|0}}while(0);b=d;return b|0}function Ab(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=c[a+4>>2]|0;k=m<<3;o=k|1;n=c[b+400+(o<<8)>>2]|0;o=c[b+400+(o<<8)+4>>2]|0;d=c[b+5360>>2]|0;a=c[a+8>>2]<<3|6;if((d|0)==1)if(!(c[b+336+(a<<2)>>2]|0)){d=0;a=64;l=7}else{d=0;a=c[b+400+(a<<8)>>2]|0;l=7}else{a=c[b+400+(a<<8)>>2]|0;if((d|0)==4)if(!(c[b+336+((k|6)<<2)>>2]|0)){f=b+320+((m^1)<<3)|0;i=b+264|0;h=c[i>>2]|0;i=c[i+4>>2]|0;e=h&c[f>>2];f=i&c[f+4>>2];g=231648;d=1;j=a}else{d=1;l=7}else{d=0;l=7}}if((l|0)==7){f=b+320+((m^1)<<3)|0;i=b+264|0;h=c[i>>2]|0;i=c[i+4>>2]|0;e=h&c[f>>2];f=i&c[f+4>>2];g=232672;j=a}l=g+(m<<9)+(n<<3)|0;if((e&c[l>>2]|0)==0?(f&c[l+4>>2]|0)==0:0){o=255;return o|0}if(d?(c[b+336+((k|6)<<2)>>2]|0)==0:0)a=231648;else a=232672;l=b+320+((m^1)<<3)|0;b=a+(m<<9)+(o<<3)|0;if((h&c[l>>2]&c[b>>2]|0)==0?(i&c[l+4>>2]&c[b+4>>2]|0)==0:0){o=255;return o|0}e=m*7|0;a=(3?n>>3:n)^e;d=(3?o>>3:o)^e;a=(a|0)<(d|0)?d:a;d=j&7;n=n&7;if(((d>>>0>>0?n-d|0:d-n|0)|0)>=2){o=255;return o|0}o=o&7;if(((d>>>0>>0?o-d|0:d-o|0)|0)>=2){o=255;return o|0}if(((3?j>>3:j)^e|0)<=(a|0)){o=255;return o|0}o=c[2672+(a<<2)>>2]|0;return o|0}function Bb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a+8>>2]|0;d=f<<3|6;if((c[b+5360>>2]|0)==1?(c[b+336+(d<<2)>>2]|0)==0:0)e=64;else e=c[b+400+(d<<8)>>2]|0;a=b+320+(c[a+4>>2]<<3)|0;b=b+264|0;d=c[b>>2]&c[a>>2];b=c[b+4>>2]&c[a+4>>2];f=161888+(f<<6)+((3?e>>3:e)<<3)|0;if((((d&~c[f>>2]|0)==0?(b&~c[f+4>>2]|0)==0:0)?(d&-16843010|0)==0&(b&-16843010|0)==0|(d&2139062143|0)==0&(b&2139062143|0)==0:0)?(f=qa(d|0,b|0,0)|0,E()|0,e=e&7,f=f&7,((e>>>0>>0?f-e|0:e-f|0)|0)<2):0){f=0;return f|0}f=255;return f|0}function Cb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;i=c[a+4>>2]|0;e=i<<3;d=e|1;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(d<<2)>>2]|0))h=64;else h=c[b+400+(d<<8)>>2]|0;d=e|3;if(!(c[b+336+(d<<2)>>2]|0))g=64;else g=c[b+400+(d<<8)>>2]|0;e=c[a+8>>2]<<3;d=e|3;if(!(c[b+336+(d<<2)>>2]|0))a=64;else a=c[b+400+(d<<8)>>2]|0;d=e|6;if(!(c[b+336+(d<<2)>>2]|0)){f=64;e=g;d=h}else{f=d;e=g;d=h;k=10}}else{a=c[a+8>>2]<<3;f=a|6;a=c[b+400+((a|3)<<8)>>2]|0;e=c[b+400+((e|3)<<8)>>2]|0;d=c[b+400+(d<<8)>>2]|0;k=10}if((k|0)==10)f=c[b+400+(f<<8)>>2]|0;if((((f^d)&7|0)==0?(k=i*7|0,j=(3?f>>3:f)^k,((3?d>>3:d)^k|0)<(j|0)):0)?(k=f^e,(j|0)<6?1:(((3?k>>>3:k)^k)&1|0)!=0):0){k=0;return k|0}k=e^a;k=(((3?k>>>3:k)^k)&1|0)==0?255:0;return k|0}function Db(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=c[a+4>>2]|0;i=(c[b+5360>>2]|0)==1;j=o<<3;d=j|3;if(i){if(!(c[b+336+(d<<2)>>2]|0))g=64;else g=c[b+400+(d<<8)>>2]|0;a=c[a+8>>2]|0;e=a<<3;d=e|3;if(!(c[b+336+(d<<2)>>2]|0)){n=a;m=64;d=g;a=e}else{f=d;d=g;h=6}}else{a=c[a+8>>2]|0;e=a<<3;f=e|3;d=c[b+400+(d<<8)>>2]|0;h=6}if((h|0)==6){n=a;m=c[b+400+(f<<8)>>2]|0;a=e}l=m^d;if(!(((3?l>>>3:l)^l)&1)){b=255;return b|0}a=a|6;if(i?(c[b+336+(a<<2)>>2]|0)==0:0)l=64;else l=c[b+400+(a<<8)>>2]|0;e=j|1;a=c[b+400+(e<<8)>>2]|0;e=c[b+400+(e<<8)+4>>2]|0;k=3?a>>3:a;j=3?e>>3:e;i=o*7|0;if((k^i|0)>(j^i|0)){e=e&7;f=a;g=a&7;h=e;e=e|a&-8}else{a=a&7;f=e;g=a;h=e&7;e=e&-8|a}a=f+((o|0)==0?8:-8)|0;switch((g>>>0>>0?h-g|0:g-h|0)|0){case 0:{if((((a^l)&7|0)==0?((3?l>>3:l)^i|0)>=((3?a>>3:a)^i|0):0)?(b=l^d,((3?b>>>3:b)^b)&1|0):0){b=0;return b|0}b=255;return b|0}case 1:{if((l|0)==(a|0)?(o=l^d,((3?o>>>3:o)^o)&1|0):0){if((m|0)==(e|0)){b=0;return b|0}o=b+256|0;h=c[241376+(e*24|0)+16>>2]|0;g=241376+(e*24|0)|0;i=241376+(e*24|0)+8|0;i=vJ(c[g>>2]&c[o>>2]|0,c[g+4>>2]&c[o+4>>2]|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,55)|0;E()|0;i=h+(i<<3)|0;h=b+320+(n<<3)|0;o=b+280|0;if(!((c[h>>2]&c[i>>2]&c[o>>2]|0)==0?(c[h+4>>2]&c[i+4>>2]&c[o+4>>2]|0)==0:0)){b=0;return b|0}if((((k|0)<(j|0)?j-k|0:k-j|0)|0)>1){b=0;return b|0}}if((l|0)==(e|0)?(o=l^d,((3?o>>>3:o)^o)&1|0):0){if((m|0)==(a|0)){b=0;return b|0}l=b+256|0;m=c[241376+(a*24|0)+16>>2]|0;k=241376+(a*24|0)|0;o=241376+(a*24|0)+8|0;o=vJ(c[k>>2]&c[l>>2]|0,c[k+4>>2]&c[l+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;o=xJ(o|0,E()|0,55)|0;E()|0;o=m+(o<<3)|0;n=b+320+(n<<3)|0;b=b+280|0;if(!((c[n>>2]&c[o>>2]&c[b>>2]|0)==0?(c[n+4>>2]&c[o+4>>2]&c[b+4>>2]|0)==0:0)){b=0;return b|0}}b=255;return b|0}default:{b=255;return b|0}}return 0}function Eb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=c[a+4>>2]|0;f=h<<3;d=f|1;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;e=f|3;if(!(c[b+336+(e<<2)>>2]|0))g=64;else g=c[b+400+(e<<8)>>2]|0;e=c[a+8>>2]<<3|6;if(!(c[b+336+(e<<2)>>2]|0)){f=64;e=g}else j=8}else{e=c[a+8>>2]<<3|6;g=c[b+400+((f|3)<<8)>>2]|0;d=c[b+400+(d<<8)>>2]|0;j=8}if((j|0)==8){f=c[b+400+(e<<8)>>2]|0;e=g}if((((f^d)&7|0)==0?(j=h*7|0,i=(3?f>>3:f)^j,((3?d>>3:d)^j|0)<(i|0)):0)?(j=f^e,(i|0)<6?1:(((3?j>>>3:j)^j)&1|0)!=0):0){j=0;return j|0}j=255;return j|0}function Fb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=c[a+4>>2]|0;f=(c[b+5360>>2]|0)==1;g=d<<3|1;if(f?(c[b+336+(g<<2)>>2]|0)==0:0)e=64;else{e=c[b+400+(g<<8)>>2]|0;e=(e&4|0)==0?e:e^7}h=(d|0)==1;e=h?e^56:e;d=c[a+8>>2]<<3|6;if(f){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;if(c[b+336+(g<<2)>>2]|0)i=9}else{d=c[b+400+(d<<8)>>2]|0;i=9}if((i|0)==9)d=(c[b+400+(g<<8)>>2]&4|0)==0?d:d^7;if((e|0)==48?(c[159136+((h?d^56:d)<<2)>>2]|0)<2:0){i=0;return i|0}i=255;return i|0}function Gb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=c[a+4>>2]|0;d=h<<3|1;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(d<<2)>>2]|0))e=64;else e=c[b+400+(d<<8)>>2]|0;d=c[a+8>>2]<<3;a=d|3;if(!(c[b+336+(a<<2)>>2]|0))f=64;else f=c[b+400+(a<<8)>>2]|0;a=d|6;if(!(c[b+336+(a<<2)>>2]|0)){g=64;d=f;a=e}else i=8}else{f=c[a+8>>2]<<3;a=f|6;f=c[b+400+((f|3)<<8)>>2]|0;e=c[b+400+(d<<8)>>2]|0;i=8}if((i|0)==8){g=c[b+400+(a<<8)>>2]|0;d=f;a=e}i=231648+(h<<9)+(a<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;e=b+256|0;f=c[241376+(d*24|0)+16>>2]|0;j=241376+(d*24|0)|0;b=241376+(d*24|0)+8|0;b=vJ(c[j>>2]&c[e>>2]|0,c[j+4>>2]&c[e+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=xJ(b|0,E()|0,55)|0;E()|0;b=f+(b<<3)|0;if((c[b>>2]&h|0)==0?(c[b+4>>2]&i|0)==0:0){j=255;return j|0}j=c[144800+(g<<8)+(a<<2)>>2]|0;return j|0}function Hb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;j=c[a+4>>2]|0;i=(c[b+5360>>2]|0)==1;e=j<<3;d=e|6;if(i){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;e=e|1;if(c[b+336+(e<<2)>>2]|0)f=6}else{e=e|1;d=c[b+400+(d<<8)>>2]|0;f=6}if((f|0)==6)d=(c[b+400+(e<<8)>>2]&4|0)==0?d:d^7;g=(j|0)==1;h=g?d^56:d;d=c[a+8>>2]<<3|6;if(i){if(!(c[b+336+(d<<2)>>2]|0))a=64;else a=c[b+400+(d<<8)>>2]|0;if(!(c[b+336+(e<<2)>>2]|0)){d=64;e=g?a^56:a}else f=13}else{a=c[b+400+(d<<8)>>2]|0;f=13}do if((f|0)==13){d=c[b+400+(e<<8)>>2]|0;f=d&4;a=(f|0)==0?a:a^7;a=g?a^56:a;if(i){if(!(c[b+336+(e<<2)>>2]|0)){d=64;e=a;break}d=c[b+400+(e<<8)>>2]|0;e=d&4}else e=f;d=(e|0)==0?d:d^7;e=a}while(0);d=g?d^56:d;if(!((d|0)<32|(d&7|0)==0)){b=255;return b|0}b=gb(h,d,e,(j|0)!=(c[b+5340>>2]|0)&1)|0;b=b?255:0;return b|0}function Ib(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=c[a+4>>2]|0;d=i<<3|4;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(d<<2)>>2]|0))g=64;else g=c[b+400+(d<<8)>>2]|0;a=c[a+8>>2]|0;d=a<<3|6;if(!(c[b+336+(d<<2)>>2]|0)){f=a;e=64;a=g}else{e=d;d=g;h=6}}else{e=c[a+8>>2]|0;a=e;e=e<<3|6;d=c[b+400+(d<<8)>>2]|0;h=6}if((h|0)==6){f=a;e=c[b+400+(e<<8)>>2]|0;a=d}d=(c[2352+(c[144800+(a<<8)+(e<<2)>>2]<<2)>>2]|0)+(c[2096+(e<<2)>>2]|0)|0;g=3?a>>3:a;h=3?e>>3:e;h=(g|0)<(h|0)?h-g|0:g-h|0;a=a&7;g=e&7;g=a>>>0>>0?g-a|0:a-g|0;a=(h|0)<(g|0)?g:h;switch(((g|0)<(h|0)?g:h)|0){case 0:{h=c[b+5340>>2]|0;b=h;h=((a|0)>1|(i|0)==(h|0)?-1e4:1e4)+d|0;i=(i|0)==(b|0);b=0-h|0;b=i?h:b;return b|0}case 1:{h=c[b+5340>>2]|0;b=h;h=((a|0)>1&(f|0)==(h|0)?-1e4:1e4)+d|0;i=(i|0)==(b|0);b=0-h|0;b=i?h:b;return b|0}default:{b=c[b+5340>>2]|0;h=d+1e4|0;i=(i|0)==(b|0);b=0-h|0;b=i?h:b;return b|0}}return 0}function Jb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=c[a+4>>2]|0;d=i<<3|6;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(d<<2)>>2]|0))e=64;else e=c[b+400+(d<<8)>>2]|0;a=c[a+8>>2]|0;d=a<<3|2;if(!(c[b+336+(d<<2)>>2]|0)){g=a;f=64}else{f=d;d=e;h=6}}else{f=c[a+8>>2]|0;a=f;f=f<<3|2;d=c[b+400+(d<<8)>>2]|0;h=6}if((h|0)==6){g=a;f=c[b+400+(f<<8)>>2]|0;e=d}d=c[b+5340>>2]|0;a=(d|0)==(i|0);if(a?(i=235744+(f<<3)|0,h=161184+(e<<3)|0,!((c[h>>2]&c[i>>2]|0)==0?(c[h+4>>2]&c[i+4>>2]|0)==0:0)):0){i=-1e4;return i|0}if((d|0)!=(g|0)){i=2096+(f<<2)|0;i=c[i>>2]|0;i=i+1e4|0;h=2096+(e<<2)|0;h=c[h>>2]|0;h=i-h|0;i=0-h|0;i=a?h:i;return i|0}i=235744+(f<<3)|0;h=237792+(e<<3)|0;if((c[h>>2]&c[i>>2]|0)==0?(c[h+4>>2]&c[i+4>>2]|0)==0:0){i=2096+(f<<2)|0;i=c[i>>2]|0;i=i+1e4|0;h=2096+(e<<2)|0;h=c[h>>2]|0;h=i-h|0;i=0-h|0;i=a?h:i;return i|0}else{i=1e4;return i|0}return 0}function Kb(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[b+5340>>2]<<3;a=d|2;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(a<<2)>>2]|0))a=64;else a=c[b+400+(a<<8)>>2]|0;d=d^10;if(!(c[b+336+(d<<2)>>2]|0))d=64;else e=6}else{d=d^10;a=c[b+400+(a<<8)>>2]|0;e=6}if((e|0)==6)d=c[b+400+(d<<8)>>2]|0;e=c[2352+(c[144800+(a<<8)+(d<<2)>>2]<<2)>>2]|0;b=d^a;return ((((3?b>>>3:b)^b)&1|0)==0?e+1e4|0:-1e4-e|0)|0}function Lb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=Ia;Ia=Ia+4112|0;d=l;k=b+5340|0;e=a+8|0;if((c[k>>2]|0)==(c[e>>2]|0)?(Nd(b,d)|0)==(d|0):0){Ia=l;return 0}j=c[a+4>>2]|0;f=c[b+5360>>2]|0;i=j<<3;a=i|6;if((f|0)==1){if(!(c[b+336+(a<<2)>>2]|0))a=64;else a=c[b+400+(a<<8)>>2]|0;d=c[e>>2]<<3|6;if(!(c[b+336+(d<<2)>>2]|0))e=64;else g=8}else{d=c[e>>2]<<3|6;a=c[b+400+(a<<8)>>2]|0;g=8}if((g|0)==8)e=c[b+400+(d<<8)>>2]|0;h=(f|0)==3;d=c[b+336+((i|1)<<2)>>2]|0;if(h)d=(c[b+4496+(j<<5)+4>>2]|0)+d|0;f=(d*208|0)+(c[(c[b+5352>>2]|0)+16+(j<<2)>>2]|0)+(c[2384+(e<<2)>>2]|0)+(c[2640+(c[144800+(a<<8)+(e<<2)>>2]<<2)>>2]|0)|0;d=c[b+336+((i|5)<<2)>>2]|0;if(h)d=(c[b+4496+(j<<5)+20>>2]|0)+d|0;if(!d){d=c[b+336+((i|4)<<2)>>2]|0;if(h)d=(c[b+4496+(j<<5)+16>>2]|0)+d|0;if(!d)g=20;else g=17}else g=17;if((g|0)==17){d=c[b+336+(i<<2)>>2]|0;if(h)d=(c[b+4496+(j<<5)>>2]|0)+d|0;if((d|0)<=2)g=20}if((g|0)==20){a=c[b+336+((i|3)<<2)>>2]|0;if(h){e=c[b+336+((i|2)<<2)>>2]|0;d=e;e=(c[b+4496+(j<<5)+8>>2]|0)+e|0;a=(c[b+4496+(j<<5)+12>>2]|0)+a|0}else{e=c[b+336+((i|2)<<2)>>2]|0;d=e}if((e+a|0)<=2){b=f;k=c[k>>2]|0;j=(j|0)==(k|0);k=0-b|0;k=j?b:k;Ia=l;return k|0}if(h)d=(c[b+4496+(j<<5)+8>>2]|0)+d|0;if((d|0)<=1?(h=b+320+(j<<3)|0,b=b+280|0,i=c[b>>2]&c[h>>2],b=c[b+4>>2]&c[h+4>>2],(i&-1437226411|0)==0&(b&-1437226411|0)==0|(i&1437226410|0)==0&(b&1437226410|0)==0):0){b=f;k=c[k>>2]|0;j=(j|0)==(k|0);k=0-b|0;k=j?b:k;Ia=l;return k|0}}b=f+1e4|0;b=(b|0)<31743?b:31743;k=c[k>>2]|0;j=(j|0)==(k|0);k=0-b|0;k=j?b:k;Ia=l;return k|0}function Mb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;h=c[a+4>>2]|0;i=(c[b+5360>>2]|0)==1;g=h<<3;d=g|6;if(i){if(!(c[b+336+(d<<2)>>2]|0))d=64;else d=c[b+400+(d<<8)>>2]|0;a=c[a+8>>2]<<3|6;if(!(c[b+336+(a<<2)>>2]|0)){e=64;a=d}else f=6}else{a=c[a+8>>2]<<3|6;d=c[b+400+(d<<8)>>2]|0;f=6}if((f|0)==6){e=c[b+400+(a<<8)>>2]|0;a=d}d=c[144800+(a<<8)+(e<<2)>>2]|0;e=(h|0)==(c[b+5340>>2]|0);if((d|0)<=((e?1:2)|0))return 0;a=g|1;if(i?(c[b+336+(a<<2)>>2]|0)==0:0){i=8;b=h*7|0;b=i^b;b=2640+(b<<2)|0;b=c[b>>2]|0;b=b+367|0;i=2640+(d<<2)|0;i=c[i>>2]|0;i=b+i|0;b=0-i|0;b=e?i:b;return b|0}i=c[b+400+(a<<8)>>2]|0;i=3?i>>3:i;b=h*7|0;b=i^b;b=2640+(b<<2)|0;b=c[b>>2]|0;b=b+367|0;i=2640+(d<<2)|0;i=c[i>>2]|0;i=b+i|0;b=0-i|0;b=e?i:b;return b|0}function Nb(a,b){a=a|0;b=b|0;return 0}function Ob(a,b){a=a|0;b=b|0;return 0}function Pb(a,b){a=a|0;b=b|0;return 0}function Qb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=Ia;Ia=Ia+4112|0;d=i;h=b+5340|0;e=a+8|0;if((c[h>>2]|0)==(c[e>>2]|0)?(Nd(b,d)|0)==(d|0):0){Ia=i;return 0}f=c[a+4>>2]|0;a=f<<3|6;if((c[b+5360>>2]|0)==1){if(!(c[b+336+(a<<2)>>2]|0))a=64;else a=c[b+400+(a<<8)>>2]|0;d=c[e>>2]<<3|6;if(!(c[b+336+(d<<2)>>2]|0)){e=64;d=a}else g=8}else{d=c[e>>2]<<3|6;a=c[b+400+(a<<8)>>2]|0;g=8}if((g|0)==8){e=c[b+400+(d<<8)>>2]|0;d=a}a=c[144800+(d<<8)+(e<<2)>>2]|0;d=(f|0)==(c[h>>2]|0);if((a|0)>((d?1:2)|0)){b=(c[2096+(e<<2)>>2]|0)+(c[(c[b+5352>>2]|0)+16+(f<<2)>>2]|0)+(c[2640+(a<<2)>>2]|0)|0;b=(a|0)<((d?3:4)|0)?b:b+1e4|0;Ia=i;return (d?b:0-b|0)|0}else{Ia=i;return 0}return 0}function Rb(a,b){a=a|0;b=b|0;return 0}function Sb(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295181]=0;c[295182]=0;c[295183]=0;f=Gv(96)|0;c[295182]=f;c[295181]=f;c[295183]=f+96;Rv(f,r);f=(c[295182]|0)+12|0;c[295182]=f;Rv(f,m);f=(c[295182]|0)+12|0;c[295182]=f;Rv(f,n);f=(c[295182]|0)+12|0;c[295182]=f;Rv(f,o);f=(c[295182]|0)+12|0;c[295182]=f;Rv(f,p);f=(c[295182]|0)+12|0;c[295182]=f;Rv(f,q);f=(c[295182]|0)+12|0;c[295182]=f;Rv(f,d);f=(c[295182]|0)+12|0;c[295182]=f;Rv(f,b);c[295182]=(c[295182]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function Tb(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+16|0;l=m+12|0;i=m;k=m+8|0;Xl(i,b);if(!(a[i>>0]|0)){Yl(i);Ia=m;return b|0}j=(c[b>>2]|0)+-12|0;c[k>>2]=c[b+(c[j>>2]|0)+24>>2];j=b+(c[j>>2]|0)|0;h=c[j+4>>2]|0;g=d+e|0;f=j+76|0;e=c[f>>2]|0;if((e|0)==-1){Ql(l,j);e=qn(l,1182988)|0;e=Na[c[(c[e>>2]|0)+28>>2]&127](e,32)|0;rn(l);e=e<<24>>24;c[f>>2]=e}c[l>>2]=c[k>>2];if(Ub(l,d,(h&176|0)==32?g:d,g,j,e&255)|0){Yl(i);Ia=m;return b|0}l=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;Nl(l,c[l+16>>2]|5);Yl(i);Ia=m;return b|0}function Ub(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=Ia;Ia=Ia+16|0;m=o;n=c[b>>2]|0;if(!n){b=0;Ia=o;return b|0}i=d;j=f-i|0;l=g+12|0;k=c[l>>2]|0;j=(k|0)>(j|0)?k-j|0:0;k=e;g=k-i|0;if((g|0)>0?(Oa[c[(c[n>>2]|0)+48>>2]&31](n,d,g)|0)!=(g|0):0){c[b>>2]=0;b=0;Ia=o;return b|0}do if((j|0)>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;if(j>>>0<11){i=m+11|0;a[i>>0]=j;g=m;d=m}else{g=j+16&-16;d=Gv(g)|0;c[m>>2]=d;c[m+8>>2]=g|-2147483648;c[m+4>>2]=j;g=m;i=m+11|0}DJ(d|0,h|0,j|0)|0;a[d+j>>0]=0;if((Oa[c[(c[n>>2]|0)+48>>2]&31](n,(a[i>>0]|0)<0?c[g>>2]|0:m,j)|0)==(j|0)){if((a[i>>0]|0)<0)Jv(c[g>>2]|0);break}c[b>>2]=0;if((a[i>>0]|0)<0)Jv(c[g>>2]|0);b=0;Ia=o;return b|0}while(0);f=f-k|0;if((f|0)>0?(Oa[c[(c[n>>2]|0)+48>>2]&31](n,e,f)|0)!=(f|0):0){c[b>>2]=0;b=0;Ia=o;return b|0}c[l>>2]=0;b=n;Ia=o;return b|0}function Vb(a){a=a|0;J(a|0)|0;sx()}function Wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;switch(b|0){case 8:case 9:case 14:case 16:{Tb(Tb(Tb(a,41172,11)|0,42426,3)|0,41172,11)|0;d=953088+(b<<3)|0;b=953088+(b<<3)+4|0;break}default:{d=953088+(b<<3)|0;g=c[d>>2]|0;c[a+(c[(c[a>>2]|0)+-12>>2]|0)+12>>2]=5;e=g<<16;e=Tb(fm(a,+((16?e>>16:e)|0)/208.0)|0,49392,1)|0;c[e+(c[(c[e>>2]|0)+-12>>2]|0)+12>>2]=5;g=g+32768|0;fm(e,+((16?g>>16:g)|0)/208.0)|0;g=Tb(a,42426,3)|0;b=953088+(b<<3)+4|0;e=c[b>>2]|0;c[g+(c[(c[g>>2]|0)+-12>>2]|0)+12>>2]=5;f=e<<16;f=Tb(fm(g,+((16?f>>16:f)|0)/208.0)|0,49392,1)|0;c[f+(c[(c[f>>2]|0)+-12>>2]|0)+12>>2]=5;e=e+32768|0;fm(f,+((16?e>>16:e)|0)/208.0)|0}}g=Tb(a,42426,3)|0;f=(c[d>>2]|0)-(c[b>>2]|0)|0;c[g+(c[(c[g>>2]|0)+-12>>2]|0)+12>>2]=5;e=f<<16;e=Tb(fm(g,+((16?e>>16:e)|0)/208.0)|0,49392,1)|0;c[e+(c[(c[e>>2]|0)+-12>>2]|0)+12>>2]=5;f=f+32768|0;fm(e,+((16?f>>16:f)|0)/208.0)|0;Tb(g,44551,1)|0;return a|0}function Xb(a){a=a|0;var b=0,d=0;b=Ia;Ia=Ia+224|0;d=b;c[d>>2]=a;c[d+32>>2]=0;c[d+36>>2]=0;a=Yb(d)|0;Ia=b;return a|0} +function hd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,F=0,G=0,H=0,I=0;g=c[a+5340>>2]|0;d=a+320+((g^1)<<3)|0;I=d;H=c[I>>2]|0;I=c[I+4>>2]|0;F=c[a+5360>>2]|0;switch(F|0){case 1:{if(id(a)|0){o=d;p=c[o>>2]&H;o=c[o+4>>2]&I}else{p=H;o=I}if(!g){n=a+320|0;m=c[n>>2]|0;n=c[n+4>>2]|0;j=a+264|0;k=c[j>>2]&m;j=c[j+4>>2]&n;d=j&16711680;l=j&-16711681;if(!(0==0&(d|0)==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=yJ(0,d|0,9)|0;g=g&p;h=(E()|0)&o;yJ(0,d|0,7)|0;i=o&2130706432&(E()|0);I=yJ(0,d|0,8)|0;f=I&p&f;e=(E()|0)&o&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){I=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;I=I*65|0;c[d>>2]=I+28096;c[d+8>>2]=I+24e3;c[d+16>>2]=I+19904;c[d+24>>2]=I+15808;b=d+40|0;c[d+32>>2]=I+40384;if((g|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(i|0)==0)){h=0;g=i;d=b;while(1){I=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;I=I*65|0;c[d>>2]=I+28224;c[d+8>>2]=I+24128;c[d+16>>2]=I+20032;c[d+24>>2]=I+15936;b=d+40|0;c[d+32>>2]=I+40512;if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){I=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;I=I*65|0;c[b>>2]=I+28160;c[b+8>>2]=I+24064;c[b+16>>2]=I+19968;c[b+24>>2]=I+15872;d=b+40|0;c[b+32>>2]=I+40448;if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(k|0,j|0,9)|0;d=p&-16843264&d;g=o&16711422&(E()|0);f=yJ(k|0,j|0,7)|0;f=p&2139062016&f;e=o&8355711&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){I=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=I+-576+(I<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){I=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=I+-448+(I<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(C=239328+(d<<3)|0,A=k&c[C>>2],C=l&c[C+4>>2],!((A|0)==0&(C|0)==0)):0){g=d+8192|0;f=A;e=C;while(1){I=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(I<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&p;g=c[g+4>>2]&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;I=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[I>>2]&i|0,c[I+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&p;g=c[g+4>>2]&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;I=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[I>>2]&i|0,c[I+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&p;g=c[g+4>>2]&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1680|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;H=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[H>>2]&i|0,c[H+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;H=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;I=241376+(d*24|0)+8|0;I=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[I>>2]|0,c[I+4>>2]|0)|0;I=xJ(I|0,E()|0,55)|0;E()|0;I=H+(I<<3)|0;f=(c[I>>2]|f)&p;g=(c[I+4>>2]|g)&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+304|0;d=c[e>>2]&m;e=c[e+4>>2]&n;if(!((d|0)==0&(e|0)==0))do{f=qa(d|0,e|0,0)|0;E()|0;h=pJ(d|0,e|0,-1,-1)|0;d=h&d;e=(E()|0)&e;h=237792+(f<<3)|0;g=c[h>>2]&p;h=c[h+4>>2]&o;if(!((g|0)==0&(h|0)==0)){i=f<<6;f=b;while(1){I=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=f+8|0;c[f>>2]=i+I;if((g|0)==0&(h|0)==0)break;else f=b}}}while(!((d|0)==0&(e|0)==0));id(a)|0;a=b;return a|0}else{n=a+328|0;m=c[n>>2]|0;n=c[n+4>>2]|0;k=a+264|0;j=c[k>>2]&m;k=c[k+4>>2]&n;d=j&65280;l=j&-65281;if(!((d|0)==0&0==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=xJ(d|0,0,9)|0;g=g&p;h=(E()|0)&o;i=xJ(d|0,0,7)|0;E()|0;i=p&254&i;I=xJ(d|0,0,8)|0;f=I&p&f;e=(E()|0)&o&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){I=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;I=I*65|0;c[d>>2]=I+29248;c[d+8>>2]=I+25152;c[d+16>>2]=I+21056;c[d+24>>2]=I+16960;b=d+40|0;c[d+32>>2]=I+41536;if((g|0)==0&(h|0)==0)break;else d=b}}if(!((i|0)==0&0==0)){g=i;h=0;d=b;while(1){I=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;I=I*65|0;c[d>>2]=I+29120;c[d+8>>2]=I+25024;c[d+16>>2]=I+20928;c[d+24>>2]=I+16832;b=d+40|0;c[d+32>>2]=I+41408;if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){I=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;I=I*65|0;c[d>>2]=I+29184;c[d+8>>2]=I+25088;c[d+16>>2]=I+20992;c[d+24>>2]=I+16896;b=d+40|0;c[d+32>>2]=I+41472;if((f|0)==0&(e|0)==0)break;else d=b}}}d=xJ(j|0,k|0,9)|0;d=p&2139062016&d;g=o&8355711&(E()|0);f=xJ(j|0,k|0,7)|0;f=p&-16843264&f;e=o&16711422&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){I=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=I+576+(I<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){I=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=I+448+(I<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(D=238816+(d<<3)|0,B=l&c[D>>2],D=k&c[D+4>>2],!((B|0)==0&(D|0)==0)):0){g=d+8192|0;f=B;e=D;d=b;while(1){I=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+(I<<6|24576);if((f|0)==0&(e|0)==0)break;else d=b}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&p;g=c[g+4>>2]&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;I=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[I>>2]&i|0,c[I+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&p;g=c[g+4>>2]&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;I=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[I>>2]&i|0,c[I+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&p;g=c[g+4>>2]&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3728|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;H=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[H>>2]&i|0,c[H+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;H=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;I=241376+(d*24|0)+8|0;I=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[I>>2]|0,c[I+4>>2]|0)|0;I=xJ(I|0,E()|0,55)|0;E()|0;I=H+(I<<3)|0;f=(c[I>>2]|f)&p;g=(c[I+4>>2]|g)&o;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){I=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+I;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+304|0;d=c[e>>2]&m;e=c[e+4>>2]&n;if(!((d|0)==0&(e|0)==0))do{f=qa(d|0,e|0,0)|0;E()|0;h=pJ(d|0,e|0,-1,-1)|0;d=h&d;e=(E()|0)&e;h=237792+(f<<3)|0;g=c[h>>2]&p;h=c[h+4>>2]&o;if(!((g|0)==0&(h|0)==0)){i=f<<6;f=b;while(1){I=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=f+8|0;c[f>>2]=i+I;if((g|0)==0&(h|0)==0)break;else f=b}}}while(!((d|0)==0&(e|0)==0));id(a)|0;a=b;return a|0}}case 2:{d=237792+(c[a+400+((g<<3|6)<<8)>>2]<<3)|0;e=H&~c[d>>2];d=I&~c[d+4>>2];if(!g){a=jd(a,b,e,d)|0;return a|0}else{a=kd(a,b,e,d)|0;return a|0}}case 3:if(!g){j=a+320|0;d=a+264|0;k=c[d>>2]&c[j>>2];j=c[d+4>>2]&c[j+4>>2];d=j&16711680;l=j&-16711681;if(!(0==0&(d|0)==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=yJ(0,d|0,9)|0;g=g&H;h=(E()|0)&I;yJ(0,d|0,7)|0;i=I&2130706432&(E()|0);G=yJ(0,d|0,8)|0;f=G&f;e=(E()|0)&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){G=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=G+28096+(G<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(i|0)==0)){h=0;g=i;d=b;while(1){G=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=G+28224+(G<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=(G|28160)+(G<<6);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(k|0,j|0,9)|0;d=H&-16843264&d;g=I&16711422&(E()|0);f=yJ(k|0,j|0,7)|0;f=H&2139062016&f;e=I&8355711&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){G=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=G+-576+(G<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){G=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=G+-448+(G<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(v=239328+(d<<3)|0,o=k&c[v>>2],v=l&c[v+4>>2],!((o|0)==0&(v|0)==0)):0){g=d+8192|0;f=o;e=v;while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(G<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;G=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1680|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;F=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[F>>2]&i|0,c[F+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;F=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;G=241376+(d*24|0)+8|0;G=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=F+(G<<3)|0;f=(c[G>>2]|f)&H;g=(c[G+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}d=c[a+1936>>2]|0;f=237792+(d<<3)|0;e=c[f>>2]&H;f=c[f+4>>2]&I;if((e|0)==0&(f|0)==0){a=b;return a|0}g=d<<6;d=b;while(1){a=qa(e|0,f|0,0)|0;E()|0;b=pJ(e|0,f|0,-1,-1)|0;e=b&e;f=(E()|0)&f;b=d+8|0;c[d>>2]=g+a;if((e|0)==0&(f|0)==0)break;else d=b}return b|0}else{m=a+328|0;d=a+264|0;l=c[d>>2]&c[m>>2];m=c[d+4>>2]&c[m+4>>2];d=l&65280;n=l&-65281;if(!((d|0)==0&0==0)){g=a+256|0;h=~c[g>>2];g=~c[g+4>>2];i=xJ(d|0,0,9)|0;i=i&H;j=(E()|0)&I;k=xJ(d|0,0,7)|0;E()|0;k=H&254&k;G=xJ(d|0,0,8)|0;h=G&h;g=(E()|0)&g;if(!((i|0)==0&(j|0)==0)){d=b;while(1){G=qa(i|0,j|0,0)|0;E()|0;b=pJ(i|0,j|0,-1,-1)|0;i=b&i;j=(E()|0)&j;b=d+8|0;c[d>>2]=G+29248+(G<<6);if((i|0)==0&(j|0)==0)break;else d=b}}if(!((k|0)==0&0==0)){i=k;j=0;d=b;while(1){G=qa(i|0,j|0,0)|0;E()|0;b=pJ(i|0,j|0,-1,-1)|0;i=b&i;j=(E()|0)&j;b=d+8|0;c[d>>2]=G+29120+(G<<6);if((i|0)==0&(j|0)==0)break;else d=b}}if(!((h|0)==0&(g|0)==0))while(1){G=qa(h|0,g|0,0)|0;E()|0;d=pJ(h|0,g|0,-1,-1)|0;h=d&h;g=(E()|0)&g;d=b+8|0;c[b>>2]=(G|29184)+(G<<6);if((h|0)==0&(g|0)==0){b=d;break}else b=d}}d=xJ(l|0,m|0,9)|0;d=H&2139062016&d;i=I&8355711&(E()|0);h=xJ(l|0,m|0,7)|0;h=H&-16843264&h;g=I&16711422&(E()|0);if(!((d|0)==0&(i|0)==0)){j=i;i=b;while(1){G=qa(d|0,j|0,0)|0;E()|0;b=pJ(d|0,j|0,-1,-1)|0;d=b&d;j=(E()|0)&j;b=i+8|0;c[i>>2]=G+576+(G<<6);if((d|0)==0&(j|0)==0)break;else i=b}}if(!((h|0)==0&(g|0)==0)){d=b;while(1){G=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=G+448+(G<<6);if((h|0)==0&(g|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(e=238816+(d<<3)|0,f=n&c[e>>2],e=m&c[e+4>>2],!((f|0)==0&(e|0)==0)):0){g=d+8192|0;while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(G<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;G=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3728|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;F=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[F>>2]&i|0,c[F+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;F=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;G=241376+(d*24|0)+8|0;G=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=F+(G<<3)|0;f=(c[G>>2]|f)&H;g=(c[G+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}d=c[a+3984>>2]|0;f=237792+(d<<3)|0;e=c[f>>2]&H;f=c[f+4>>2]&I;if((e|0)==0&(f|0)==0){a=b;return a|0}g=d<<6;d=b;while(1){a=qa(e|0,f|0,0)|0;E()|0;b=pJ(e|0,f|0,-1,-1)|0;e=b&e;f=(E()|0)&f;b=d+8|0;c[d>>2]=g+a;if((e|0)==0&(f|0)==0)break;else d=b}return b|0}case 4:if(!g){j=a+320|0;d=a+264|0;k=c[d>>2]&c[j>>2];j=c[d+4>>2]&c[j+4>>2];d=j&16711680;l=j&-16711681;if(!(0==0&(d|0)==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=yJ(0,d|0,9)|0;g=g&H;h=(E()|0)&I;yJ(0,d|0,7)|0;i=I&2130706432&(E()|0);G=yJ(0,d|0,8)|0;f=G&f;e=(E()|0)&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){G=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=G+28096+(G<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(i|0)==0)){h=0;g=i;d=b;while(1){G=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=G+28224+(G<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=(G|28160)+(G<<6);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(k|0,j|0,9)|0;d=H&-16843264&d;g=I&16711422&(E()|0);f=yJ(k|0,j|0,7)|0;f=H&2139062016&f;e=I&8355711&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){G=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=G+-576+(G<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){G=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=G+-448+(G<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(p=239328+(d<<3)|0,m=k&c[p>>2],p=l&c[p+4>>2],!((m|0)==0&(p|0)==0)):0){g=d+8192|0;f=m;e=p;while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(G<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;G=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1680|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;F=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[F>>2]&i|0,c[F+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;F=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;G=241376+(d*24|0)+8|0;G=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=F+(G<<3)|0;f=(c[G>>2]|f)&H;g=(c[G+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}if(!(c[a+360>>2]|0)){a=b;return a|0}d=c[a+1936>>2]|0;f=237792+(d<<3)|0;e=c[f>>2]&H;f=c[f+4>>2]&I;if((e|0)==0&(f|0)==0){a=b;return a|0}g=d<<6;d=b;while(1){a=qa(e|0,f|0,0)|0;E()|0;b=pJ(e|0,f|0,-1,-1)|0;e=b&e;f=(E()|0)&f;b=d+8|0;c[d>>2]=g+a;if((e|0)==0&(f|0)==0)break;else d=b}return b|0}else{k=a+328|0;d=a+264|0;j=c[d>>2]&c[k>>2];k=c[d+4>>2]&c[k+4>>2];d=j&65280;l=j&-65281;if(!((d|0)==0&0==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=xJ(d|0,0,9)|0;g=g&H;h=(E()|0)&I;i=xJ(d|0,0,7)|0;E()|0;i=H&254&i;G=xJ(d|0,0,8)|0;f=G&f;e=(E()|0)&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){G=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=G+29248+(G<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!((i|0)==0&0==0)){g=i;h=0;d=b;while(1){G=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=G+29120+(G<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=(G|29184)+(G<<6);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=xJ(j|0,k|0,9)|0;d=H&2139062016&d;g=I&8355711&(E()|0);f=xJ(j|0,k|0,7)|0;f=H&-16843264&f;e=I&16711422&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){G=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=G+576+(G<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){G=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=G+448+(G<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(q=238816+(d<<3)|0,n=l&c[q>>2],q=k&c[q+4>>2],!((n|0)==0&(q|0)==0)):0){g=d+8192|0;f=n;e=q;while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(G<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;G=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3728|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;F=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[F>>2]&i|0,c[F+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;F=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;G=241376+(d*24|0)+8|0;G=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=F+(G<<3)|0;f=(c[G>>2]|f)&H;g=(c[G+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}if(!(c[a+392>>2]|0)){a=b;return a|0}d=c[a+3984>>2]|0;f=237792+(d<<3)|0;e=c[f>>2]&H;f=c[f+4>>2]&I;if((e|0)==0&(f|0)==0){a=b;return a|0}g=d<<6;d=b;while(1){a=qa(e|0,f|0,0)|0;E()|0;b=pJ(e|0,f|0,-1,-1)|0;e=b&e;f=(E()|0)&f;b=d+8|0;c[d>>2]=g+a;if((e|0)==0&(f|0)==0)break;else d=b}return b|0}default:{d=(g|0)==0;if((F|0)==6)if(d){j=a+320|0;d=a+264|0;k=c[d>>2]&c[j>>2];j=c[d+4>>2]&c[j+4>>2];d=j&16711680;l=j&-16711681;if(!(0==0&(d|0)==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=yJ(0,d|0,9)|0;g=g&H;h=(E()|0)&I;yJ(0,d|0,7)|0;i=I&2130706432&(E()|0);G=yJ(0,d|0,8)|0;f=G&f;e=(E()|0)&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){G=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=G+28096+(G<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(i|0)==0)){h=0;g=i;d=b;while(1){G=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=G+28224+(G<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=(G|28160)+(G<<6);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(k|0,j|0,9)|0;d=H&-16843264&d;g=I&16711422&(E()|0);f=yJ(k|0,j|0,7)|0;f=H&2139062016&f;e=I&8355711&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){G=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=G+-576+(G<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){G=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=G+-448+(G<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(w=239328+(d<<3)|0,r=k&c[w>>2],w=l&c[w+4>>2],!((r|0)==0&(w|0)==0)):0){g=d+8192|0;f=r;e=w;while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(G<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;G=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1680|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;F=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[F>>2]&i|0,c[F+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;F=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;G=241376+(d*24|0)+8|0;G=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=F+(G<<3)|0;f=(c[G>>2]|f)&H;g=(c[G+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}f=c[a+1936>>2]|0;e=237792+(f<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;G=232672+(f<<3)|0;a=a+256|0;d=c[G>>2]&d&~c[a>>2]|d&H;e=c[G+4>>2]&e&~c[a+4>>2]|e&I;if((d|0)==0&(e|0)==0){a=b;return a|0}g=f<<6;f=d;d=b;while(1){a=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+a;if((f|0)==0&(e|0)==0)break;else d=b}return b|0}else{k=a+328|0;d=a+264|0;j=c[d>>2]&c[k>>2];k=c[d+4>>2]&c[k+4>>2];d=j&65280;l=j&-65281;if(!((d|0)==0&0==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=xJ(d|0,0,9)|0;g=g&H;h=(E()|0)&I;i=xJ(d|0,0,7)|0;E()|0;i=H&254&i;G=xJ(d|0,0,8)|0;f=G&f;e=(E()|0)&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){G=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=G+29248+(G<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!((i|0)==0&0==0)){g=i;h=0;d=b;while(1){G=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=G+29120+(G<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=(G|29184)+(G<<6);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=xJ(j|0,k|0,9)|0;d=H&2139062016&d;g=I&8355711&(E()|0);f=xJ(j|0,k|0,7)|0;f=H&-16843264&f;e=I&16711422&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){G=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=G+576+(G<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){G=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=G+448+(G<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(x=238816+(d<<3)|0,s=l&c[x>>2],x=k&c[x+4>>2],!((s|0)==0&(x|0)==0)):0){g=d+8192|0;f=s;e=x;while(1){G=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(G<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;G=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;G=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[G>>2]&i|0,c[G+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3728|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;F=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[F>>2]&i|0,c[F+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;F=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;G=241376+(d*24|0)+8|0;G=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[G>>2]|0,c[G+4>>2]|0)|0;G=xJ(G|0,E()|0,55)|0;E()|0;G=F+(G<<3)|0;f=(c[G>>2]|f)&H;g=(c[G+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){G=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+G;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}f=c[a+3984>>2]|0;e=237792+(f<<3)|0;d=c[e>>2]|0;e=c[e+4>>2]|0;G=232672+(f<<3)|0;a=a+256|0;d=c[G>>2]&d&~c[a>>2]|d&H;e=c[G+4>>2]&e&~c[a+4>>2]|e&I;if((d|0)==0&(e|0)==0){a=b;return a|0}g=f<<6;f=d;d=b;while(1){a=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+a;if((f|0)==0&(e|0)==0)break;else d=b}return b|0}if(d){j=a+320|0;d=a+264|0;k=c[d>>2]&c[j>>2];j=c[d+4>>2]&c[j+4>>2];d=j&16711680;l=j&-16711681;if(!(0==0&(d|0)==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=yJ(0,d|0,9)|0;g=g&H;h=(E()|0)&I;yJ(0,d|0,7)|0;i=I&2130706432&(E()|0);D=yJ(0,d|0,8)|0;f=D&f;e=(E()|0)&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){D=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=D+28096+(D<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!(0==0&(i|0)==0)){h=0;g=i;d=b;while(1){D=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=d+8|0;c[d>>2]=D+28224+(D<<6);if((h|0)==0&(g|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){D=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=(D|28160)+(D<<6);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=yJ(k|0,j|0,9)|0;d=H&-16843264&d;g=I&16711422&(E()|0);f=yJ(k|0,j|0,7)|0;f=H&2139062016&f;e=I&8355711&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){D=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=D+-576+(D<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){D=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=D+-448+(D<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(y=239328+(d<<3)|0,t=k&c[y>>2],y=l&c[y+4>>2],!((t|0)==0&(y|0)==0)):0){g=d+8192|0;f=t;e=y;while(1){D=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(D<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+912|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+1168|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1424|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;D=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+1680|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;C=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[C>>2]&i|0,c[C+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;C=c[241376+(d*24|0)+16>>2]|0;B=241376+(d*24|0)|0;D=241376+(d*24|0)+8|0;D=vJ(c[B>>2]&i|0,c[B+4>>2]&j|0,c[D>>2]|0,c[D+4>>2]|0)|0;D=xJ(D|0,E()|0,55)|0;E()|0;D=C+(D<<3)|0;f=(c[D>>2]|f)&H;g=(c[D+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}switch(F|0){case 4:{if(!(c[a+360>>2]|0)){a=b;return a|0}else G=446;break}case 1:{if(!(c[a+360>>2]|0))f=64;else G=446;break}default:G=446}if((G|0)==446)f=c[a+1936>>2]|0;e=237792+(f<<3)|0;d=c[e>>2]&H;e=c[e+4>>2]&I;if((d|0)==0&(e|0)==0){a=b;return a|0}g=f<<6;f=d;d=b;while(1){a=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+a;if((f|0)==0&(e|0)==0)break;else d=b}return b|0}else{k=a+328|0;d=a+264|0;j=c[d>>2]&c[k>>2];k=c[d+4>>2]&c[k+4>>2];d=j&65280;l=j&-65281;if(!((d|0)==0&0==0)){e=a+256|0;f=~c[e>>2];e=~c[e+4>>2];g=xJ(d|0,0,9)|0;g=g&H;h=(E()|0)&I;i=xJ(d|0,0,7)|0;E()|0;i=H&254&i;D=xJ(d|0,0,8)|0;f=D&f;e=(E()|0)&e;if(!((g|0)==0&(h|0)==0)){d=b;while(1){D=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=D+29248+(D<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!((i|0)==0&0==0)){g=i;h=0;d=b;while(1){D=qa(g|0,h|0,0)|0;E()|0;b=pJ(g|0,h|0,-1,-1)|0;g=b&g;h=(E()|0)&h;b=d+8|0;c[d>>2]=D+29120+(D<<6);if((g|0)==0&(h|0)==0)break;else d=b}}if(!((f|0)==0&(e|0)==0))while(1){D=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=(D|29184)+(D<<6);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}d=xJ(j|0,k|0,9)|0;d=H&2139062016&d;g=I&8355711&(E()|0);f=xJ(j|0,k|0,7)|0;f=H&-16843264&f;e=I&16711422&(E()|0);if(!((d|0)==0&(g|0)==0)){h=g;g=b;while(1){D=qa(d|0,h|0,0)|0;E()|0;b=pJ(d|0,h|0,-1,-1)|0;d=b&d;h=(E()|0)&h;b=g+8|0;c[g>>2]=D+576+(D<<6);if((d|0)==0&(h|0)==0)break;else g=b}}if(!((f|0)==0&(e|0)==0)){d=b;while(1){D=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=D+448+(D<<6);if((f|0)==0&(e|0)==0)break;else d=b}}d=c[(c[a+5352>>2]|0)+44>>2]|0;if((d|0)!=64?(z=238816+(d<<3)|0,u=l&c[z>>2],z=k&c[z+4>>2],!((u|0)==0&(z|0)==0)):0){g=d+8192|0;f=u;e=z;while(1){D=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=b+8|0;c[b>>2]=g+(D<<6|24576);if((f|0)==0&(e|0)==0){b=d;break}else b=d}}e=a+2960|0;d=c[e>>2]|0;if((d|0)!=64)do{g=235744+(d<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64);e=a+3216|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[241376+(d*24|0)+16>>2]|0;D=241376+(d*24|0)|0;g=241376+(d*24|0)+8|0;g=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,55)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3472|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;D=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[D>>2]&i|0,c[D+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]&H;g=c[g+4>>2]&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}e=a+3728|0;d=c[e>>2]|0;if((d|0)!=64){j=a+256|0;i=c[j>>2]|0;j=c[j+4>>2]|0;do{f=c[239840+(d*24|0)+16>>2]|0;C=239840+(d*24|0)|0;g=239840+(d*24|0)+8|0;g=vJ(c[C>>2]&i|0,c[C+4>>2]&j|0,c[g>>2]|0,c[g+4>>2]|0)|0;g=xJ(g|0,E()|0,52)|0;E()|0;g=f+(g<<3)|0;f=c[g>>2]|0;g=c[g+4>>2]|0;C=c[241376+(d*24|0)+16>>2]|0;B=241376+(d*24|0)|0;D=241376+(d*24|0)+8|0;D=vJ(c[B>>2]&i|0,c[B+4>>2]&j|0,c[D>>2]|0,c[D+4>>2]|0)|0;D=xJ(D|0,E()|0,55)|0;E()|0;D=C+(D<<3)|0;f=(c[D>>2]|f)&H;g=(c[D+4>>2]|g)&I;if(!((f|0)==0&(g|0)==0)){h=d<<6;d=b;while(1){D=qa(f|0,g|0,0)|0;E()|0;b=pJ(f|0,g|0,-1,-1)|0;f=b&f;g=(E()|0)&g;b=d+8|0;c[d>>2]=h+D;if((f|0)==0&(g|0)==0)break;else d=b}}e=e+4|0;d=c[e>>2]|0}while((d|0)!=64)}switch(F|0){case 4:{if(!(c[a+392>>2]|0)){a=b;return a|0}else G=497;break}case 1:{if(!(c[a+392>>2]|0))f=64;else G=497;break}default:G=497}if((G|0)==497)f=c[a+3984>>2]|0;e=237792+(f<<3)|0;d=c[e>>2]&H;e=c[e+4>>2]&I;if((d|0)==0&(e|0)==0){a=b;return a|0}g=f<<6;f=d;d=b;while(1){a=qa(f|0,e|0,0)|0;E()|0;b=pJ(f|0,e|0,-1,-1)|0;f=b&f;e=(E()|0)&e;b=d+8|0;c[d>>2]=g+a;if((f|0)==0&(e|0)==0)break;else d=b}return b|0}}}return 0}function id(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;if((c[(c[a+5352>>2]|0)+44>>2]|0)!=64){a=1;return a|0}i=c[a+5340>>2]|0;l=a+320+((i^1)<<3)|0;k=c[l>>2]|0;l=c[l+4>>2]|0;g=a+320+(i<<3)|0;j=c[g>>2]|0;g=c[g+4>>2]|0;d=a+264|0;b=c[d>>2]&j;d=c[d+4>>2]&g;g=qJ(j|0,g|0,b|0,d|0)|0;j=E()|0;if(!i){f=yJ(b|0,d|0,7)|0;e=(E()|0)&2139062143;d=yJ(b|0,d|0,9)|0;b=f&2139062016;d=d&-16843264;f=(E()|0)&-16843010}else{f=xJ(b|0,d|0,9)|0;e=(E()|0)&8355711;d=xJ(b|0,d|0,7)|0;b=f&2139062143;d=d&-16843010;f=(E()|0)&16711422}if(!(((b|d)&k|0)==0&((e|f)&l|0)==0)){a=1;return a|0}if((g|0)==0&(j|0)==0){a=0;return a|0}i=a+256|0;h=c[i>>2]|0;i=c[i+4>>2]|0;f=g;e=j;while(1){b=qa(f|0,e|0,0)|0;E()|0;d=pJ(f|0,e|0,-1,-1)|0;f=d&f;e=(E()|0)&e;d=c[a+(b<<2)>>2]|0;switch(d&7){case 3:{j=c[241376+(b*24|0)+16>>2]|0;g=241376+(b*24|0)|0;d=241376+(b*24|0)+8|0;d=xJ(vJ(c[g>>2]&h|0,c[g+4>>2]&i|0,c[d>>2]|0,c[d+4>>2]|0)|0,E()|0,55)|0;E()|0;d=j+(d<<3)|0;b=c[d>>2]|0;d=c[d+4>>2]|0;break}case 4:{j=c[239840+(b*24|0)+16>>2]|0;g=239840+(b*24|0)|0;d=239840+(b*24|0)+8|0;d=xJ(vJ(c[g>>2]&h|0,c[g+4>>2]&i|0,c[d>>2]|0,c[d+4>>2]|0)|0,E()|0,52)|0;E()|0;d=j+(d<<3)|0;b=c[d>>2]|0;d=c[d+4>>2]|0;break}case 5:{g=c[241376+(b*24|0)+16>>2]|0;m=241376+(b*24|0)|0;d=241376+(b*24|0)+8|0;d=xJ(vJ(c[m>>2]&h|0,c[m+4>>2]&i|0,c[d>>2]|0,c[d+4>>2]|0)|0,E()|0,55)|0;E()|0;d=g+(d<<3)|0;g=c[d>>2]|0;d=c[d+4>>2]|0;m=c[239840+(b*24|0)+16>>2]|0;n=239840+(b*24|0)|0;j=239840+(b*24|0)+8|0;j=xJ(vJ(c[n>>2]&h|0,c[n+4>>2]&i|0,c[j>>2]|0,c[j+4>>2]|0)|0,E()|0,52)|0;E()|0;j=m+(j<<3)|0;b=c[j>>2]|g;d=c[j+4>>2]|d;break}default:{d=234720+((d&7)<<9)+(b<<3)|0;b=c[d>>2]|0;d=c[d+4>>2]|0}}if(!((b&k|0)==0&(d&l|0)==0)){b=1;d=15;break}if((f|0)==0&(e|0)==0){b=0;d=15;break}}if((d|0)==15)return b|0;return 0}function jd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;n=a+320|0;f=a+264|0;o=c[f>>2]&c[n>>2];n=c[f+4>>2]&c[n+4>>2];f=n&16711680;p=n&-16711681;if(!(0==0&(f|0)==0)){r=a+256|0;j=~c[r>>2];r=~c[r+4>>2];i=(c[a+5352>>2]|0)+56|0;i=(c[i>>2]|0)==0&(c[i+4>>2]|0)==0;k=yJ(0,f|0,9)|0;k=k&d;l=(E()|0)&e;yJ(0,f|0,7)|0;m=e&2130706432&(E()|0);f=yJ(0,f|0,8)|0;j=f&j&(i?-1:d);i=(E()|0)&r&(i?-1:e);if(!((k|0)==0&(l|0)==0)){f=b;while(1){r=qa(k|0,l|0,0)|0;E()|0;b=pJ(k|0,l|0,-1,-1)|0;k=b&k;l=(E()|0)&l;b=f+8|0;c[f>>2]=r+28096+(r<<6);if((k|0)==0&(l|0)==0)break;else f=b}}if(!(0==0&(m|0)==0)){l=0;k=m;f=b;while(1){r=qa(l|0,k|0,0)|0;E()|0;b=pJ(l|0,k|0,-1,-1)|0;l=b&l;k=(E()|0)&k;b=f+8|0;c[f>>2]=r+28224+(r<<6);if((l|0)==0&(k|0)==0)break;else f=b}}if(!((j|0)==0&(i|0)==0)){f=b;while(1){r=qa(j|0,i|0,0)|0;E()|0;b=pJ(j|0,i|0,-1,-1)|0;j=b&j;i=(E()|0)&i;b=f+8|0;c[f>>2]=(r|28160)+(r<<6);if((j|0)==0&(i|0)==0)break;else f=b}}}f=yJ(o|0,n|0,9)|0;f=d&-16843264&f;k=e&16711422&(E()|0);j=yJ(o|0,n|0,7)|0;j=d&2139062016&j;i=e&8355711&(E()|0);if(!((f|0)==0&(k|0)==0)){l=k;k=b;while(1){r=qa(f|0,l|0,0)|0;E()|0;b=pJ(f|0,l|0,-1,-1)|0;f=b&f;l=(E()|0)&l;b=k+8|0;c[k>>2]=r+-576+(r<<6);if((f|0)==0&(l|0)==0)break;else k=b}}if(!((j|0)==0&(i|0)==0)){f=b;while(1){r=qa(j|0,i|0,0)|0;E()|0;b=pJ(j|0,i|0,-1,-1)|0;j=b&j;i=(E()|0)&i;b=f+8|0;c[f>>2]=r+-448+(r<<6);if((j|0)==0&(i|0)==0)break;else f=b}}f=c[(c[a+5352>>2]|0)+44>>2]|0;if((f|0)!=64?(g=239328+(f<<3)|0,h=o&c[g>>2],g=p&c[g+4>>2],!((h|0)==0&(g|0)==0)):0){i=f+8192|0;f=b;while(1){r=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=f+8|0;c[f>>2]=i+(r<<6|24576);if((h|0)==0&(g|0)==0)break;else f=b}}g=a+912|0;f=c[g>>2]|0;if((f|0)!=64)do{i=235744+(f<<3)|0;h=c[i>>2]&d;i=c[i+4>>2]&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64);g=a+1168|0;f=c[g>>2]|0;if((f|0)!=64){l=a+256|0;k=c[l>>2]|0;l=c[l+4>>2]|0;do{h=c[241376+(f*24|0)+16>>2]|0;r=241376+(f*24|0)|0;i=241376+(f*24|0)+8|0;i=vJ(c[r>>2]&k|0,c[r+4>>2]&l|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,55)|0;E()|0;i=h+(i<<3)|0;h=c[i>>2]&d;i=c[i+4>>2]&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64)}g=a+1424|0;f=c[g>>2]|0;if((f|0)!=64){l=a+256|0;k=c[l>>2]|0;l=c[l+4>>2]|0;do{h=c[239840+(f*24|0)+16>>2]|0;r=239840+(f*24|0)|0;i=239840+(f*24|0)+8|0;i=vJ(c[r>>2]&k|0,c[r+4>>2]&l|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,52)|0;E()|0;i=h+(i<<3)|0;h=c[i>>2]&d;i=c[i+4>>2]&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64)}g=a+1680|0;f=c[g>>2]|0;if((f|0)!=64){l=a+256|0;k=c[l>>2]|0;l=c[l+4>>2]|0;do{h=c[239840+(f*24|0)+16>>2]|0;p=239840+(f*24|0)|0;i=239840+(f*24|0)+8|0;i=vJ(c[p>>2]&k|0,c[p+4>>2]&l|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,52)|0;E()|0;i=h+(i<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;p=c[241376+(f*24|0)+16>>2]|0;o=241376+(f*24|0)|0;r=241376+(f*24|0)+8|0;r=vJ(c[o>>2]&k|0,c[o+4>>2]&l|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=xJ(r|0,E()|0,55)|0;E()|0;r=p+(r<<3)|0;h=(c[r>>2]|h)&d;i=(c[r+4>>2]|i)&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64)}switch(c[a+5360>>2]|0){case 4:{if(!(c[a+360>>2]|0)){r=b;return r|0}else q=48;break}case 1:{if(!(c[a+360>>2]|0))h=64;else q=48;break}default:q=48}if((q|0)==48)h=c[a+1936>>2]|0;g=237792+(h<<3)|0;f=c[g>>2]&d;g=c[g+4>>2]&e;if((f|0)==0&(g|0)==0){r=b;return r|0}i=h<<6;h=f;while(1){r=qa(h|0,g|0,0)|0;E()|0;f=pJ(h|0,g|0,-1,-1)|0;h=f&h;g=(E()|0)&g;f=b+8|0;c[b>>2]=i+r;if((h|0)==0&(g|0)==0)break;else b=f}return f|0}function kd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+328|0;f=a+264|0;n=c[f>>2]&c[o>>2];o=c[f+4>>2]&c[o+4>>2];f=n&65280;p=n&-65281;if(!((f|0)==0&0==0)){r=a+256|0;j=~c[r>>2];r=~c[r+4>>2];i=(c[a+5352>>2]|0)+56|0;i=(c[i>>2]|0)==0&(c[i+4>>2]|0)==0;k=xJ(f|0,0,9)|0;k=k&d;l=(E()|0)&e;m=xJ(f|0,0,7)|0;E()|0;m=d&254&m;f=xJ(f|0,0,8)|0;j=f&j&(i?-1:d);i=(E()|0)&r&(i?-1:e);if(!((k|0)==0&(l|0)==0)){f=b;while(1){r=qa(k|0,l|0,0)|0;E()|0;b=pJ(k|0,l|0,-1,-1)|0;k=b&k;l=(E()|0)&l;b=f+8|0;c[f>>2]=r+29248+(r<<6);if((k|0)==0&(l|0)==0)break;else f=b}}if(!((m|0)==0&0==0)){k=m;l=0;f=b;while(1){r=qa(k|0,l|0,0)|0;E()|0;b=pJ(k|0,l|0,-1,-1)|0;k=b&k;l=(E()|0)&l;b=f+8|0;c[f>>2]=r+29120+(r<<6);if((k|0)==0&(l|0)==0)break;else f=b}}if(!((j|0)==0&(i|0)==0)){f=b;while(1){r=qa(j|0,i|0,0)|0;E()|0;b=pJ(j|0,i|0,-1,-1)|0;j=b&j;i=(E()|0)&i;b=f+8|0;c[f>>2]=(r|29184)+(r<<6);if((j|0)==0&(i|0)==0)break;else f=b}}}f=xJ(n|0,o|0,9)|0;f=d&2139062016&f;k=e&8355711&(E()|0);j=xJ(n|0,o|0,7)|0;j=d&-16843264&j;i=e&16711422&(E()|0);if(!((f|0)==0&(k|0)==0)){l=k;k=b;while(1){r=qa(f|0,l|0,0)|0;E()|0;b=pJ(f|0,l|0,-1,-1)|0;f=b&f;l=(E()|0)&l;b=k+8|0;c[k>>2]=r+576+(r<<6);if((f|0)==0&(l|0)==0)break;else k=b}}if(!((j|0)==0&(i|0)==0)){f=b;while(1){r=qa(j|0,i|0,0)|0;E()|0;b=pJ(j|0,i|0,-1,-1)|0;j=b&j;i=(E()|0)&i;b=f+8|0;c[f>>2]=r+448+(r<<6);if((j|0)==0&(i|0)==0)break;else f=b}}f=c[(c[a+5352>>2]|0)+44>>2]|0;if((f|0)!=64?(g=238816+(f<<3)|0,h=p&c[g>>2],g=o&c[g+4>>2],!((h|0)==0&(g|0)==0)):0){i=f+8192|0;f=b;while(1){r=qa(h|0,g|0,0)|0;E()|0;b=pJ(h|0,g|0,-1,-1)|0;h=b&h;g=(E()|0)&g;b=f+8|0;c[f>>2]=i+(r<<6|24576);if((h|0)==0&(g|0)==0)break;else f=b}}g=a+2960|0;f=c[g>>2]|0;if((f|0)!=64)do{i=235744+(f<<3)|0;h=c[i>>2]&d;i=c[i+4>>2]&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64);g=a+3216|0;f=c[g>>2]|0;if((f|0)!=64){l=a+256|0;k=c[l>>2]|0;l=c[l+4>>2]|0;do{h=c[241376+(f*24|0)+16>>2]|0;r=241376+(f*24|0)|0;i=241376+(f*24|0)+8|0;i=vJ(c[r>>2]&k|0,c[r+4>>2]&l|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,55)|0;E()|0;i=h+(i<<3)|0;h=c[i>>2]&d;i=c[i+4>>2]&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64)}g=a+3472|0;f=c[g>>2]|0;if((f|0)!=64){l=a+256|0;k=c[l>>2]|0;l=c[l+4>>2]|0;do{h=c[239840+(f*24|0)+16>>2]|0;r=239840+(f*24|0)|0;i=239840+(f*24|0)+8|0;i=vJ(c[r>>2]&k|0,c[r+4>>2]&l|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,52)|0;E()|0;i=h+(i<<3)|0;h=c[i>>2]&d;i=c[i+4>>2]&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64)}g=a+3728|0;f=c[g>>2]|0;if((f|0)!=64){l=a+256|0;k=c[l>>2]|0;l=c[l+4>>2]|0;do{h=c[239840+(f*24|0)+16>>2]|0;p=239840+(f*24|0)|0;i=239840+(f*24|0)+8|0;i=vJ(c[p>>2]&k|0,c[p+4>>2]&l|0,c[i>>2]|0,c[i+4>>2]|0)|0;i=xJ(i|0,E()|0,52)|0;E()|0;i=h+(i<<3)|0;h=c[i>>2]|0;i=c[i+4>>2]|0;p=c[241376+(f*24|0)+16>>2]|0;o=241376+(f*24|0)|0;r=241376+(f*24|0)+8|0;r=vJ(c[o>>2]&k|0,c[o+4>>2]&l|0,c[r>>2]|0,c[r+4>>2]|0)|0;r=xJ(r|0,E()|0,55)|0;E()|0;r=p+(r<<3)|0;h=(c[r>>2]|h)&d;i=(c[r+4>>2]|i)&e;if(!((h|0)==0&(i|0)==0)){j=f<<6;f=b;while(1){r=qa(h|0,i|0,0)|0;E()|0;b=pJ(h|0,i|0,-1,-1)|0;h=b&h;i=(E()|0)&i;b=f+8|0;c[f>>2]=j+r;if((h|0)==0&(i|0)==0)break;else f=b}}g=g+4|0;f=c[g>>2]|0}while((f|0)!=64)}switch(c[a+5360>>2]|0){case 4:{if(!(c[a+392>>2]|0)){r=b;return r|0}else q=48;break}case 1:{if(!(c[a+392>>2]|0))h=64;else q=48;break}default:q=48}if((q|0)==48)h=c[a+3984>>2]|0;g=237792+(h<<3)|0;f=c[g>>2]&d;g=c[g+4>>2]&e;if((f|0)==0&(g|0)==0){r=b;return r|0}i=h<<6;h=f;while(1){r=qa(h|0,g|0,0)|0;E()|0;f=pJ(h|0,g|0,-1,-1)|0;h=f&h;g=(E()|0)&g;f=b+8|0;c[b>>2]=i+r;if((h|0)==0&(g|0)==0)break;else b=f}return f|0} +function bc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=c[d+48>>2]|0;if(e&16|0){g=d+44|0;e=c[g>>2]|0;f=c[d+24>>2]|0;if(e>>>0>>0){c[g>>2]=f;e=f}f=c[d+20>>2]|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=e-f|0;if(d>>>0>4294967279)Pv(b);if(d>>>0<11)a[b+11>>0]=d;else{h=d+16&-16;g=Gv(h)|0;c[b>>2]=g;c[b+8>>2]=h|-2147483648;c[b+4>>2]=d;b=g}if((f|0)!=(e|0)){g=b;while(1){a[g>>0]=a[f>>0]|0;f=f+1|0;if((f|0)==(e|0))break;else g=g+1|0}b=b+d|0}a[b>>0]=0;return}if(!(e&8)){c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;return}e=c[d+8>>2]|0;g=c[d+16>>2]|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=g-e|0;if(d>>>0>4294967279)Pv(b);if(d>>>0<11)a[b+11>>0]=d;else{f=d+16&-16;h=Gv(f)|0;c[b>>2]=h;c[b+8>>2]=f|-2147483648;c[b+4>>2]=d;b=h}if((e|0)!=(g|0)){f=b;while(1){a[f>>0]=a[e>>0]|0;e=e+1|0;if((e|0)==(g|0))break;else f=f+1|0}b=b+d|0}a[b>>0]=0;return}function cc(b){b=b|0;var d=0;c[b>>2]=33340;d=b+32|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);Dk(b);return}function dc(b){b=b|0;var d=0;c[b>>2]=33340;d=b+32|0;if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);Dk(b);Jv(b);return}function ec(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;j=d+44|0;i=c[j>>2]|0;o=d+24|0;n=c[o>>2]|0;if(i>>>0>>0){c[j>>2]=n;m=n}else m=i;l=h&24;a:do if((l|0)!=0?!((g|0)==1&(l|0)==24):0){if(!m){k=0;l=0}else{i=d+32|0;if((a[i+11>>0]|0)<0)i=c[i>>2]|0;l=m-i|0;k=((l|0)<0)<<31>>31}b:do switch(g|0){case 0:{i=0;j=0;break}case 1:if(!(h&8)){j=n-(c[d+20>>2]|0)|0;i=j;j=((j|0)<0)<<31>>31;break b}else{j=(c[d+12>>2]|0)-(c[d+8>>2]|0)|0;i=j;j=((j|0)<0)<<31>>31;break b}case 2:{i=l;j=k;break}default:{j=-1;i=-1;break a}}while(0);j=pJ(i|0,j|0,e|0,f|0)|0;i=E()|0;if(!((i|0)<0|((k|0)<(i|0)|(k|0)==(i|0)&l>>>0>>0))){k=h&8;if(!((j|0)==0&(i|0)==0)){if(k|0?(c[d+12>>2]|0)==0:0){j=-1;i=-1;break}if((h&16|0)!=0&(n|0)==0){j=-1;i=-1;break}}if(k|0){c[d+12>>2]=(c[d+8>>2]|0)+j;c[d+16>>2]=m}if(h&16)c[o>>2]=(c[d+20>>2]|0)+j}else{j=-1;i=-1}}else{j=-1;i=-1}while(0);d=b;c[d>>2]=0;c[d+4>>2]=0;b=b+8|0;c[b>>2]=j;c[b+4>>2]=i;return}function fc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;d=d+8|0;ab[c[(c[b>>2]|0)+16>>2]&15](a,b,c[d>>2]|0,c[d+4>>2]|0,0,e);return}function gc(a){a=a|0;var b=0,e=0,f=0;f=a+44|0;b=c[f>>2]|0;e=c[a+24>>2]|0;if(b>>>0>>0){c[f>>2]=e;b=e}if(!(c[a+48>>2]&8)){a=-1;return a|0}f=a+16|0;e=c[f>>2]|0;if(e>>>0>>0){c[f>>2]=b;e=b}b=c[a+12>>2]|0;if(b>>>0>=e>>>0){a=-1;return a|0}a=d[b>>0]|0;return a|0}function hc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=b+44|0;e=c[g>>2]|0;f=c[b+24>>2]|0;if(e>>>0>>0){c[g>>2]=f;e=f}h=b+12|0;f=c[h>>2]|0;if((c[b+8>>2]|0)>>>0>=f>>>0){b=-1;return b|0}if((d|0)==-1){c[h>>2]=f+-1;c[b+16>>2]=e;b=0;return b|0}if(!(c[b+48>>2]&16)){g=d&255;f=f+-1|0;if((a[f>>0]|0)!=g<<24>>24){b=-1;return b|0}}else{f=f+-1|0;g=d&255}c[h>>2]=f;c[b+16>>2]=e;a[f>>0]=g;b=d;return b|0}function ic(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=Ia;Ia=Ia+16|0;o=t;if((d|0)==-1){b=0;Ia=t;return b|0}q=b+12|0;p=b+8|0;s=(c[q>>2]|0)-(c[p>>2]|0)|0;r=b+24|0;k=c[r>>2]|0;m=b+28|0;e=c[m>>2]|0;if((k|0)==(e|0)){g=b+48|0;if(!(c[g>>2]&16)){b=-1;Ia=t;return b|0}j=b+20|0;i=c[j>>2]|0;n=b+44|0;l=(c[n>>2]|0)-i|0;h=b+32|0;fw(h,0);e=h+11|0;if((a[e>>0]|0)<0)f=(c[b+40>>2]&2147483647)+-1|0;else f=10;aw(h,f,0);e=a[e>>0]|0;if(e<<24>>24<0){f=c[b+36>>2]|0;e=c[h>>2]|0}else{f=e&255;e=h}h=e+f|0;c[j>>2]=e;c[m>>2]=h;k=e+(k-i)|0;c[r>>2]=k;f=e+l|0;c[n>>2]=f;i=n;j=h;e=n}else{g=b+44|0;i=g;f=c[g>>2]|0;j=e;e=g;g=b+48|0}h=k+1|0;c[o>>2]=h;f=c[(h>>>0>>0?e:o)>>2]|0;c[i>>2]=f;if(c[g>>2]&8|0){e=b+32|0;if((a[e+11>>0]|0)<0)e=c[e>>2]|0;c[p>>2]=e;c[q>>2]=e+s;c[b+16>>2]=f}if((k|0)==(j|0)){b=Na[c[(c[b>>2]|0)+52>>2]&127](b,d&255)|0;Ia=t;return b|0}else{c[r>>2]=h;a[k>>0]=d;b=d&255;Ia=t;return b|0}return 0}function jc(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=33244;f=b+64|0;c[f>>2]=33284;c[b+8>>2]=33264;d=b+12|0;c[d>>2]=33340;e=b+44|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);Ll(b,33296);yk(f);return}function kc(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=33244;f=b+64|0;c[f>>2]=33284;c[b+8>>2]=33264;d=b+12|0;c[d>>2]=33340;e=b+44|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);Ll(b,33296);yk(f);Jv(b);return}function lc(b){b=b|0;var d=0,e=0,f=0;b=b+-8|0;c[b>>2]=33244;f=b+64|0;c[f>>2]=33284;c[b+8>>2]=33264;d=b+12|0;c[d>>2]=33340;e=b+44|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);Ll(b,33296);yk(f);return}function mc(b){b=b|0;var d=0,e=0,f=0;b=b+-8|0;c[b>>2]=33244;f=b+64|0;c[f>>2]=33284;c[b+8>>2]=33264;d=b+12|0;c[d>>2]=33340;e=b+44|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);Ll(b,33296);yk(f);Jv(b);return}function nc(b){b=b|0;var d=0,e=0,f=0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;c[b>>2]=33244;f=b+64|0;c[f>>2]=33284;c[b+8>>2]=33264;d=b+12|0;c[d>>2]=33340;e=b+44|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);Ll(b,33296);yk(f);return}function oc(b){b=b|0;var d=0,e=0,f=0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;c[b>>2]=33244;f=b+64|0;c[f>>2]=33284;c[b+8>>2]=33264;d=b+12|0;c[d>>2]=33340;e=b+44|0;if((a[e+11>>0]|0)<0)Jv(c[e>>2]|0);Dk(d);Ll(b,33296);yk(f);Jv(b);return}function pc(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295184]=0;c[295185]=0;c[295186]=0;f=Gv(96)|0;c[295185]=f;c[295184]=f;c[295186]=f+96;Rv(f,r);f=(c[295185]|0)+12|0;c[295185]=f;Rv(f,m);f=(c[295185]|0)+12|0;c[295185]=f;Rv(f,n);f=(c[295185]|0)+12|0;c[295185]=f;Rv(f,o);f=(c[295185]|0)+12|0;c[295185]=f;Rv(f,p);f=(c[295185]|0)+12|0;c[295185]=f;Rv(f,q);f=(c[295185]|0)+12|0;c[295185]=f;Rv(f,d);f=(c[295185]|0)+12|0;c[295185]=f;Rv(f,b);c[295185]=(c[295185]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return}function qc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=Ia;Ia=Ia+48|0;b=f+24|0;d=f+12|0;e=f;Ec(d,0);g=d+11|0;h=a[g>>0]|0;i=h<<24>>24<0;h=Tb(1182116,i?c[d>>2]|0:d,i?c[d+4>>2]|0:h&255)|0;Ql(b,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);i=qn(b,1182988)|0;i=Na[c[(c[i>>2]|0)+28>>2]&127](i,10)|0;rn(b);gm(h,i)|0;Wl(h)|0;if((a[g>>0]|0)<0)Jv(c[d>>2]|0);xh(1181292);Me();kb();ie();hb();uf();$d();c[e+8>>2]=0;i=e+11|0;a[i>>0]=7;a[e>>0]=a[45110]|0;a[e+1>>0]=a[45111]|0;a[e+2>>0]=a[45112]|0;a[e+3>>0]=a[45113]|0;a[e+4>>0]=a[45114]|0;a[e+5>>0]=a[45115]|0;a[e+6>>0]=a[45116]|0;a[e+7>>0]=0;c[d>>2]=e;rc(b,1181292,e,1183424,d,f+32|0);Gg(1181196,~~+sh((c[b>>2]|0)+28|0)>>>0);if((a[i>>0]|0)>=0){vf();Ia=f;return 0}Jv(c[e>>2]|0);vf();Ia=f;return 0}function rc(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;h=d+4|0;f=c[h>>2]|0;do if(f){j=d+8|0;i=d+4|0;while(1){h=f+16|0;if(wh(j,e,h)|0){h=c[f>>2]|0;if(!h){h=5;break}else i=f}else{if(!(wh(j,h,e)|0)){h=9;break}i=f+4|0;h=c[i>>2]|0;if(!h){h=8;break}}f=h}if((h|0)==5){j=f;i=f;break}else if((h|0)==8){j=f;break}else if((h|0)==9){j=f;break}}else{j=h;i=h}while(0);f=c[i>>2]|0;if(f|0){g=0;d=f;c[b>>2]=d;d=b+4|0;a[d>>0]=g;return}h=Gv(92)|0;e=h+16|0;f=c[g>>2]|0;c[e>>2]=c[f>>2];c[e+4>>2]=c[f+4>>2];c[e+8>>2]=c[f+8>>2];c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;Gh(h+28|0,0);c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=j;c[i>>2]=h;f=c[c[d>>2]>>2]|0;if(!f)f=h;else{c[d>>2]=f;f=c[i>>2]|0}sc(c[d+4>>2]|0,f);g=d+8|0;c[g>>2]=(c[g>>2]|0)+1;g=1;d=h;c[b>>2]=d;d=b+4|0;a[d>>0]=g;return}function sc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=(d|0)==(b|0);a[d+12>>0]=i&1;if(i)return;h=d;while(1){g=h+8|0;i=c[g>>2]|0;d=i+12|0;if(a[d>>0]|0){e=24;break}f=c[i+8>>2]|0;e=c[f>>2]|0;if((e|0)==(i|0)){e=c[f+4>>2]|0;if(!e){e=7;break}e=e+12|0;if(a[e>>0]|0){e=7;break}}else{if(!e){e=16;break}e=e+12|0;if(a[e>>0]|0){e=16;break}}a[d>>0]=1;a[f+12>>0]=(f|0)==(b|0)&1;a[e>>0]=1;if((f|0)==(b|0)){e=24;break}else h=f}if((e|0)==7){b=i+8|0;if((c[i>>2]|0)==(h|0))b=f;else{h=i+4|0;e=c[h>>2]|0;d=c[e>>2]|0;c[h>>2]=d;if(!d)d=f;else{c[d+8>>2]=i;d=c[b>>2]|0}c[e+8>>2]=d;d=c[b>>2]|0;c[((c[d>>2]|0)==(i|0)?d:d+4|0)>>2]=e;c[e>>2]=i;c[b>>2]=e;b=c[e+8>>2]|0;d=e+12|0}a[d>>0]=1;a[b+12>>0]=0;d=c[b>>2]|0;f=d+4|0;e=c[f>>2]|0;c[b>>2]=e;if(e|0)c[e+8>>2]=b;i=b+8|0;c[d+8>>2]=c[i>>2];h=c[i>>2]|0;c[((c[h>>2]|0)==(b|0)?h:h+4|0)>>2]=d;c[f>>2]=b;c[i>>2]=d;return}else if((e|0)==16){b=i+8|0;if((c[i>>2]|0)==(h|0)){e=h+4|0;d=c[e>>2]|0;c[i>>2]=d;if(!d)d=f;else{c[d+8>>2]=i;d=c[b>>2]|0}c[g>>2]=d;f=c[b>>2]|0;c[((c[f>>2]|0)==(i|0)?f:f+4|0)>>2]=h;c[e>>2]=i;c[b>>2]=h;f=c[h+8>>2]|0;d=h+12|0}a[d>>0]=1;a[f+12>>0]=0;i=f+4|0;d=c[i>>2]|0;e=c[d>>2]|0;c[i>>2]=e;if(e|0)c[e+8>>2]=f;i=f+8|0;c[d+8>>2]=c[i>>2];h=c[i>>2]|0;c[((c[h>>2]|0)==(f|0)?h:h+4|0)>>2]=d;c[d>>2]=f;c[i>>2]=d;return}else if((e|0)==24)return}function tc(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295187]=0;c[295188]=0;c[295189]=0;f=Gv(96)|0;c[295188]=f;c[295187]=f;c[295189]=f+96;Rv(f,r);f=(c[295188]|0)+12|0;c[295188]=f;Rv(f,m);f=(c[295188]|0)+12|0;c[295188]=f;Rv(f,n);f=(c[295188]|0)+12|0;c[295188]=f;Rv(f,o);f=(c[295188]|0)+12|0;c[295188]=f;Rv(f,p);f=(c[295188]|0)+12|0;c[295188]=f;Rv(f,q);f=(c[295188]|0)+12|0;c[295188]=f;Rv(f,d);f=(c[295188]|0)+12|0;c[295188]=f;Rv(f,b);c[295188]=(c[295188]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){c[238309]=0;c[238310]=1;c[238308]=33404;c[238312]=1;c[238313]=0;c[238311]=33404;c[238317]=0;c[238318]=1;c[238316]=33424;c[238320]=1;c[238321]=0;c[238319]=33424;c[238325]=0;c[238326]=1;c[238324]=33444;c[238328]=1;c[238329]=0;c[238327]=33444;c[238333]=0;c[238334]=1;c[238332]=33464;c[238336]=1;c[238337]=0;c[238335]=33464;c[238341]=0;c[238342]=1;c[238340]=33484;c[238344]=1;c[238345]=0;c[238343]=33484;c[238349]=0;c[238350]=1;c[238348]=33504;c[238352]=1;c[238353]=0;c[238351]=33504;Ia=s;return}Jv(c[r>>2]|0);c[238309]=0;c[238310]=1;c[238308]=33404;c[238312]=1;c[238313]=0;c[238311]=33404;c[238317]=0;c[238318]=1;c[238316]=33424;c[238320]=1;c[238321]=0;c[238319]=33424;c[238325]=0;c[238326]=1;c[238324]=33444;c[238328]=1;c[238329]=0;c[238327]=33444;c[238333]=0;c[238334]=1;c[238332]=33464;c[238336]=1;c[238337]=0;c[238335]=33464;c[238341]=0;c[238342]=1;c[238340]=33484;c[238344]=1;c[238345]=0;c[238343]=33484;c[238349]=0;c[238350]=1;c[238348]=33504;c[238352]=1;c[238353]=0;c[238351]=33504;Ia=s;return}function uc(a){a=a|0;return}function vc(a){a=a|0;Jv(a);return}function wc(a){a=a|0;Jv(a);return}function xc(a){a=a|0;Jv(a);return}function yc(a){a=a|0;Jv(a);return}function zc(a){a=a|0;return}function Ac(a){a=a|0;Jv(a);return}function Bc(a){a=a|0;Jv(a);return}function Cc(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,A=0,B=0,C=0,D=0,F=0;F=Ia;Ia=Ia+128|0;y=F+64|0;A=F;q=d+5352|0;o=(c[q>>2]|0)+8|0;n=c[o>>2]|0;o=c[o+4>>2]|0;m=d+5348|0;C=n&8191;B=c[(c[m>>2]|0)+104>>2]|0;D=B+(C<<5)|0;w=D;if((c[w>>2]|0)==(n|0)?(c[w+4>>2]|0)==(o|0):0){Ia=F;return D|0}v=B+(C<<5)+8|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=0;v=D;c[v>>2]=n;c[v+4>>2]=o;v=B+(C<<5)+23|0;a[v>>0]=64;s=B+(C<<5)+22|0;a[s>>0]=64;u=c[q>>2]|0;t=c[u+16>>2]|0;u=c[u+20>>2]|0;r=u+t|0;f=(r|0)<15258?r:15258;w=d+5360|0;g=c[w>>2]|0;if((g|0)!=1){h=B+(C<<5)+24|0;c[h>>2]=((((f|0)>3915?f:3915)<<7)+-501120|0)/11343|0;if((g|0)==4)c[h>>2]=(c[d+336+((((c[d+360>>2]|0)!=0&1)<<3|1)<<2)>>2]<<7|0)/36|0}else c[B+(C<<5)+24>>2]=((((u|0)<(t|0)?u:t)<<8)+-501120|0)/11343|0;l=c[m>>2]|0;k=l+116|0;j=c[l+120>>2]|0;a:do if(j){f=j;while(1){i=f+16|0;h=c[i>>2]|0;i=c[i+4>>2]|0;if(!(i>>>0>o>>>0|(i|0)==(o|0)&h>>>0>n>>>0)){if(!(i>>>0>>0|(i|0)==(o|0)&h>>>0>>0))break;f=f+4|0}f=c[f>>2]|0;if(!f){x=23;break a}}g=l+120|0;while(1){h=j+16|0;f=c[h>>2]|0;h=c[h+4>>2]|0;if(o>>>0>>0|(o|0)==(h|0)&n>>>0>>0){f=c[j>>2]|0;if(!f){h=j;break}else g=j}else{if(!(h>>>0>>0|(h|0)==(o|0)&f>>>0>>0)){h=g;break}g=j+4|0;f=c[g>>2]|0;if(!f){h=g;break}}j=f}f=c[h>>2]|0;if(!f){f=Gv(32)|0;g=f+16|0;c[g>>2]=n;c[g+4>>2]=o;c[f+24>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=j;c[h>>2]=f;g=c[c[k>>2]>>2]|0;if(!g)g=f;else{c[k>>2]=g;g=c[h>>2]|0}sc(c[l+120>>2]|0,g);l=l+124|0;c[l>>2]=(c[l>>2]|0)+1}l=c[f+24>>2]|0;f=B+(C<<5)+8|0;c[f>>2]=l;if(!l){g=c[w>>2]|0;break}else{Ia=F;return D|0}}else x=23;while(0);if((x|0)==23){f=B+(C<<5)+8|0;c[f>>2]=0}b:do switch(g|0){case 0:{h=c[q>>2]|0;l=d+328|0;k=c[l>>2]|0;l=c[l+4>>2]|0;if(((pJ(k|0,l|0,-1,-1)|0)&k|0)==0&((E()|0)&l|0)==0?(c[h+16>>2]|0)>1288:0)e=0;else{l=d+320|0;k=c[l>>2]|0;l=c[l+4>>2]|0;j=pJ(k|0,l|0,-1,-1)|0;if(!((j&k|0)==0&((E()|0)&l|0)==0))break b;if((c[h+20>>2]|0)>1288)e=1;else break b}c[f>>2]=953232+(e*12|0);Ia=F;return D|0}case 2:{h=c[q>>2]|0;l=d+328|0;k=c[l>>2]|0;l=c[l+4>>2]|0;if(((pJ(k|0,l|0,-1,-1)|0)&k|0)==0&((E()|0)&l|0)==0?(c[h+16>>2]|0)>2070:0)e=0;else{l=d+320|0;k=c[l>>2]|0;l=c[l+4>>2]|0;j=pJ(k|0,l|0,-1,-1)|0;if(!((j&k|0)==0&((E()|0)&l|0)==0))break b;if((c[h+20>>2]|0)>2070)e=1;else break b}c[f>>2]=953264+(e*12|0);Ia=F;return D|0}default:{}}while(0);l=c[m>>2]|0;k=l+128|0;j=c[l+132>>2]|0;c:do if(j){f=j;while(1){i=f+16|0;h=c[i>>2]|0;i=c[i+4>>2]|0;if(!(i>>>0>o>>>0|(i|0)==(o|0)&h>>>0>n>>>0)){if(!(i>>>0>>0|(i|0)==(o|0)&h>>>0>>0))break;f=f+4|0}f=c[f>>2]|0;if(!f)break c}g=l+132|0;while(1){h=j+16|0;f=c[h>>2]|0;h=c[h+4>>2]|0;if(o>>>0>>0|(o|0)==(h|0)&n>>>0>>0){f=c[j>>2]|0;if(!f){h=j;break}else g=j}else{if(!(h>>>0>>0|(h|0)==(o|0)&f>>>0>>0)){h=g;break}g=j+4|0;f=c[g>>2]|0;if(!f){h=g;break}}j=f}f=c[h>>2]|0;if(!f){f=Gv(32)|0;g=f+16|0;c[g>>2]=n;c[g+4>>2]=o;c[f+24>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=j;c[h>>2]=f;g=c[c[k>>2]>>2]|0;if(!g)g=f;else{c[k>>2]=g;g=c[h>>2]|0}sc(c[l+132>>2]|0,g);o=l+136|0;c[o>>2]=(c[o>>2]|0)+1}f=c[f+24>>2]|0;if(!f){g=c[w>>2]|0;break}c[B+(C<<5)+12+(c[f+4>>2]<<2)>>2]=f;Ia=F;return D|0}while(0);d:do if(!g){g=c[(c[q>>2]|0)+16>>2]|0;do if((g|0)!=830){f=c[d+340>>2]|0;if((g|0)==2529&(f|0)==0)if(((c[d+356>>2]|0)==1?(c[d+384>>2]|0)==1:0)?(c[d+372>>2]|0)>0:0){c[B+(C<<5)+12>>2]=953328;f=0}else f=0}else{if((c[d+348>>2]|0)==1?(p=c[d+340>>2]|0,(p|0)>0):0){c[B+(C<<5)+12>>2]=953296;f=p;break}f=c[d+340>>2]|0}while(0);g=c[(c[q>>2]|0)+20>>2]|0;do if((g|0)!=830){e=c[d+372>>2]|0;if((g|0)==2529&(e|0)==0)if((c[d+388>>2]|0)==1?((f|0)>0?(c[d+352>>2]|0)==1:0):0){c[B+(C<<5)+16>>2]=953340;e=0}else e=0}else{if((c[d+380>>2]|0)==1?(e=c[d+372>>2]|0,(e|0)>0):0){c[B+(C<<5)+16>>2]=953308;break}e=c[d+372>>2]|0}while(0);e:do if((r|0)==0?(r=d+264|0,!((c[r>>2]|0)==0&(c[r+4>>2]|0)==0)):0){if(!e){c[B+(C<<5)+12>>2]=953360;break}switch(f|0){case 0:{c[B+(C<<5)+16>>2]=953372;break e}case 1:{x=72;break}default:{}}if((x|0)==72?(e|0)==1:0){c[B+(C<<5)+12>>2]=953392;c[B+(C<<5)+16>>2]=953404}e=c[d+348>>2]|0;f=y;g=0;x=80;break d}while(0);if((t-u|0)<831&(f|0)==0){a[s>>0]=(t|0)<1289?0:(u|0)<831?4:14;g=c[w>>2]|0;e=c[d+372>>2]|0;f=(g|0)==3?0-(c[d+4532>>2]|0)|0:0}else{f=0;g=0}if((u-t|0)<831&(e|0)==(f|0)){a[v>>0]=(u|0)<1289?0:(t|0)<831?4:14;g=c[w>>2]|0;x=79}else x=79}else x=79;while(0);if((x|0)==79){e=c[d+348>>2]|0;if((g|0)==3){e=(c[d+4508>>2]|0)+e|0;i=(e|0)>1&1;c[y>>2]=i;l=(c[d+4516>>2]|0)+(c[d+356>>2]|0)|0;m=(c[d+4512>>2]|0)+(c[d+352>>2]|0)|0;h=(c[d+4504>>2]|0)+(c[d+344>>2]|0)|0;j=(c[d+4500>>2]|0)+(c[d+340>>2]|0)|0;k=y+24|0;n=1;g=3;f=(c[d+4520>>2]|0)+(c[d+360>>2]|0)|0}else{f=y;x=80}}if((x|0)==80){i=(e|0)>1&1;c[f>>2]=i;l=c[d+356>>2]|0;m=c[d+352>>2]|0;h=c[d+344>>2]|0;j=c[d+340>>2]|0;k=y+24|0;n=0;f=c[d+360>>2]|0}c[y+4>>2]=j;c[y+8>>2]=h;c[y+12>>2]=e;c[y+16>>2]=m;c[y+20>>2]=l;c[k>>2]=f;c[y+28>>2]=0;e=y+32|0;f=c[d+380>>2]|0;if(n){f=(c[d+4540>>2]|0)+f|0;c[e>>2]=(f|0)>1&1;l=(c[d+4548>>2]|0)+(c[d+388>>2]|0)|0;m=(c[d+4544>>2]|0)+(c[d+384>>2]|0)|0;e=(c[d+4536>>2]|0)+(c[d+376>>2]|0)|0;h=(c[d+4532>>2]|0)+(c[d+372>>2]|0)|0;j=y+56|0;k=(c[d+4552>>2]|0)+(c[d+392>>2]|0)|0}else{c[e>>2]=(f|0)>1&1;l=c[d+388>>2]|0;m=c[d+384>>2]|0;e=c[d+376>>2]|0;h=c[d+372>>2]|0;j=y+56|0;k=c[d+392>>2]|0}c[y+36>>2]=h;c[y+40>>2]=e;c[y+44>>2]=f;c[y+48>>2]=m;c[y+52>>2]=l;c[j>>2]=k;c[y+60>>2]=0;if(n){j=(c[d+4496>>2]|0)==0&1;c[A>>2]=j;c[A+4>>2]=c[d+4500>>2];c[A+8>>2]=c[d+4504>>2];c[A+12>>2]=c[d+4508>>2];c[A+16>>2]=c[d+4512>>2];c[A+20>>2]=c[d+4516>>2];c[A+24>>2]=c[d+4520>>2];c[A+28>>2]=0;c[A+32>>2]=(c[d+4528>>2]|0)==0&1;c[A+36>>2]=c[d+4532>>2];c[A+40>>2]=c[d+4536>>2];c[A+44>>2]=c[d+4540>>2];c[A+48>>2]=c[d+4544>>2];c[A+52>>2]=c[d+4548>>2];c[A+56>>2]=c[d+4552>>2];c[A+60>>2]=0;f=0;k=1;e=0;while(1){if(i){g=0;h=0;do{d=z(c[y+(g<<2)>>2]|0,c[8800+(e<<5)+(g<<2)>>2]|0)|0;h=d+h+(z(c[y+32+(g<<2)>>2]|0,c[10848+(e<<5)+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=(k|0));f=(z(h,i)|0)+f|0}e=e+1|0;if((e|0)==6)break;i=c[y+(e<<2)>>2]|0;k=k+1|0}h=f;i=1;e=0;while(1){if(!j)k=h;else{f=0;g=0;do{d=z(c[A+(f<<2)>>2]|0,c[12128+(e<<5)+(f<<2)>>2]|0)|0;g=d+g+(z(c[A+32+(f<<2)>>2]|0,c[12384+(e<<5)+(f<<2)>>2]|0)|0)|0;f=f+1|0}while((f|0)!=(i|0));k=(z(g,j)|0)+h|0}e=e+1|0;if((e|0)==6)break;j=c[A+(e<<2)>>2]|0;h=k;i=i+1|0}e=c[y+32>>2]|0;if(!e)e=0;else{f=0;g=0;while(1){d=z(c[y+32+(f<<2)>>2]|0,c[8800+(f<<2)>>2]|0)|0;g=d+g+(z(c[y+(f<<2)>>2]|0,c[10848+(f<<2)>>2]|0)|0)|0;if(!f)break;else f=f+1|0}e=z(g,e)|0}f=c[y+36>>2]|0;if(f){g=0;h=0;do{d=z(c[y+32+(g<<2)>>2]|0,c[8832+(g<<2)>>2]|0)|0;h=d+h+(z(c[y+(g<<2)>>2]|0,c[10880+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=2);e=(z(h,f)|0)+e|0}f=c[y+40>>2]|0;if(f){g=0;h=0;do{d=z(c[y+32+(g<<2)>>2]|0,c[8864+(g<<2)>>2]|0)|0;h=d+h+(z(c[y+(g<<2)>>2]|0,c[10912+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=3);e=(z(h,f)|0)+e|0}f=c[y+44>>2]|0;if(f){g=0;h=0;do{d=z(c[y+32+(g<<2)>>2]|0,c[8896+(g<<2)>>2]|0)|0;h=d+h+(z(c[y+(g<<2)>>2]|0,c[10944+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=4);e=(z(h,f)|0)+e|0}f=c[y+48>>2]|0;if(f){g=0;h=0;do{d=z(c[y+32+(g<<2)>>2]|0,c[8928+(g<<2)>>2]|0)|0;h=d+h+(z(c[y+(g<<2)>>2]|0,c[10976+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=5);e=(z(h,f)|0)+e|0}f=c[y+52>>2]|0;if(f){g=0;h=0;do{d=z(c[y+32+(g<<2)>>2]|0,c[8960+(g<<2)>>2]|0)|0;h=d+h+(z(c[y+(g<<2)>>2]|0,c[11008+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=6);e=(z(h,f)|0)+e|0}f=c[A+32>>2]|0;if(f){g=0;h=0;while(1){y=z(c[A+32+(g<<2)>>2]|0,c[12128+(g<<2)>>2]|0)|0;h=y+h+(z(c[A+(g<<2)>>2]|0,c[12384+(g<<2)>>2]|0)|0)|0;if(!g)break;else g=g+1|0}e=(z(h,f)|0)+e|0}f=c[A+36>>2]|0;if(f){g=0;h=0;do{y=z(c[A+32+(g<<2)>>2]|0,c[12160+(g<<2)>>2]|0)|0;h=y+h+(z(c[A+(g<<2)>>2]|0,c[12416+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=2);e=(z(h,f)|0)+e|0}f=c[A+40>>2]|0;if(f){g=0;h=0;do{y=z(c[A+32+(g<<2)>>2]|0,c[12192+(g<<2)>>2]|0)|0;h=y+h+(z(c[A+(g<<2)>>2]|0,c[12448+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=3);e=(z(h,f)|0)+e|0}f=c[A+44>>2]|0;if(f){g=0;h=0;do{y=z(c[A+32+(g<<2)>>2]|0,c[12224+(g<<2)>>2]|0)|0;h=y+h+(z(c[A+(g<<2)>>2]|0,c[12480+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=4);e=(z(h,f)|0)+e|0}f=c[A+48>>2]|0;if(f){g=0;h=0;do{y=z(c[A+32+(g<<2)>>2]|0,c[12256+(g<<2)>>2]|0)|0;h=y+h+(z(c[A+(g<<2)>>2]|0,c[12512+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=5);e=(z(h,f)|0)+e|0}f=c[A+52>>2]|0;if(f){g=0;h=0;do{y=z(c[A+32+(g<<2)>>2]|0,c[12288+(g<<2)>>2]|0)|0;h=y+h+(z(c[A+(g<<2)>>2]|0,c[12544+(g<<2)>>2]|0)|0)|0;g=g+1|0}while((g|0)!=6);e=(z(h,f)|0)+e|0}b[B+(C<<5)+20>>1]=(k-e|0)/16|0}else{m=(g|0)==1|(g|0)==4?7:6;j=i;i=0;k=1;e=0;while(1){if(j){f=0;h=0;do{A=z(c[y+(f<<2)>>2]|0,c[8032+(g<<8)+(e<<5)+(f<<2)>>2]|0)|0;h=A+h+(z(c[y+32+(f<<2)>>2]|0,c[10080+(g<<8)+(e<<5)+(f<<2)>>2]|0)|0)|0;f=f+1|0}while((f|0)!=(k|0));i=(z(h,j)|0)+i|0}e=e+1|0;if((e|0)==(m|0))break;j=c[y+(e<<2)>>2]|0;k=k+1|0}e=0;k=1;l=0;while(1){f=c[y+32+(l<<2)>>2]|0;if(f){h=0;j=0;do{A=z(c[y+32+(h<<2)>>2]|0,c[8032+(g<<8)+(l<<5)+(h<<2)>>2]|0)|0;j=A+j+(z(c[y+(h<<2)>>2]|0,c[10080+(g<<8)+(l<<5)+(h<<2)>>2]|0)|0)|0;h=h+1|0}while((h|0)!=(k|0));e=(z(j,f)|0)+e|0}l=l+1|0;if((l|0)==(m|0))break;else k=k+1|0}b[B+(C<<5)+20>>1]=(i-e|0)/16|0}Ia=F;return D|0}function Dc(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295190]=0;c[295191]=0;c[295192]=0;f=Gv(96)|0;c[295191]=f;c[295190]=f;c[295192]=f+96;Rv(f,r);f=(c[295191]|0)+12|0;c[295191]=f;Rv(f,m);f=(c[295191]|0)+12|0;c[295191]=f;Rv(f,n);f=(c[295191]|0)+12|0;c[295191]=f;Rv(f,o);f=(c[295191]|0)+12|0;c[295191]=f;Rv(f,p);f=(c[295191]|0)+12|0;c[295191]=f;Rv(f,q);f=(c[295191]|0)+12|0;c[295191]=f;Rv(f,d);f=(c[295191]|0)+12|0;c[295191]=f;Rv(f,b);c[295191]=(c[295191]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){c[295193]=0;c[295194]=0;c[295195]=0;Ia=s;return}Jv(c[r>>2]|0);c[295193]=0;c[295194]=0;c[295195]=0;Ia=s;return}function Ec(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=Ia;Ia=Ia+352|0;y=B+340|0;x=B+328|0;w=B+316|0;A=B+304|0;z=B+160|0;v=B+16|0;j=B;f=Gv(48)|0;c[y>>2]=f;c[y+8>>2]=-2147483600;k=y+4|0;c[k>>2]=47;g=f;h=42109;i=g+47|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));a[f+47>>0]=0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;s=z+64|0;u=z+8|0;c[u>>2]=33264;t=z+12|0;c[z>>2]=29052;c[s>>2]=29072;c[z+4>>2]=0;Ol(z+64|0,t);c[z+136>>2]=0;c[z+140>>2]=-1;c[z>>2]=33244;c[s>>2]=33284;c[u>>2]=33264;Tl(t);c[t>>2]=33340;u=z+44|0;c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[z+60>>2]=24;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;f=Gv(16)|0;c[j>>2]=f;c[j+8>>2]=-2147483632;c[j+4>>2]=11;g=f;h=42157;i=g+11|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(i|0));a[f+11>>0]=0;p=v+64|0;r=v+8|0;c[r>>2]=33264;q=v+12|0;c[v>>2]=29052;c[p>>2]=29072;c[v+4>>2]=0;Ol(v+64|0,q);c[v+136>>2]=0;c[v+140>>2]=-1;c[v>>2]=33244;c[p>>2]=33284;c[r>>2]=33264;Tl(q);c[q>>2]=33340;r=v+44|0;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[v+60>>2]=24;Fc(q,j);if((a[j+11>>0]|0)<0)Jv(c[j>>2]|0);n=z+8|0;l=Tb(n,42169,10)|0;o=a[1180783]|0;m=o<<24>>24<0;o=Tb(l,m?c[295193]|0:1180772,m?c[295194]|0:o&255)|0;c[o+(c[(c[o>>2]|0)+-12>>2]|0)+76>>2]=48;o=a[1180783]|0;if(!((o<<24>>24<0?c[295194]|0:o&255)|0)){Gc(Gc(Gc(v,x)|0,w)|0,A)|0;o=a[A+11>>0]|0;f=o<<24>>24<0;o=Tb(Tb(n,f?c[A>>2]|0:A,f?c[A+4>>2]|0:o&255)|0,49997,1)|0;c[o+(c[(c[o>>2]|0)+-12>>2]|0)+12>>2]=2;f=a[y+11>>0]|0;g=f<<24>>24<0;h=g?c[y>>2]|0:y;m=a[x+11>>0]|0;j=m<<24>>24<0;l=j?c[x>>2]|0:x;m=j?c[x+4>>2]|0:m&255;if(!m)f=0;else{g=g?c[k>>2]|0:f&255;j=h+g|0;f=j;k=h;a:do if((g|0)<(m|0))g=j;else{i=d[l>>0]|0;while(1){g=g-m+1|0;if(!g){g=j;break a}h=Ai(h,i,g)|0;if(!h){g=j;break a}if(!(Vj(h,l,m)|0))break;h=h+1|0;g=f-h|0;if((g|0)<(m|0)){g=j;break a}}g=h;f=h}while(0);f=(g|0)==(j|0)?-1:f-k|0}l=Tb(cm(o,(2?f>>>2:f)+1|0)|0,49997,1)|0;c[l+(c[(c[l>>2]|0)+-12>>2]|0)+12>>2]=2;o=a[w+11>>0]|0;m=o<<24>>24<0;Tb(l,m?c[w>>2]|0:w,m?c[w+4>>2]|0:o&255)|0}o=Tb(Tb(Tb(n,1183440,0)|0,1183440,0)|0,42180,14)|0;Tb(Tb(o,e?42195:42207,e?11:4)|0,42212,29)|0;bc(b,t);c[v>>2]=33244;c[p>>2]=33284;c[v+8>>2]=33264;c[q>>2]=33340;if((a[r+11>>0]|0)<0)Jv(c[r>>2]|0);Dk(q);Ll(v,33296);yk(p);c[z>>2]=33244;c[s>>2]=33284;c[n>>2]=33264;c[t>>2]=33340;if((a[u+11>>0]|0)<0)Jv(c[u>>2]|0);Dk(t);Ll(z,33296);yk(s);if((a[A+11>>0]|0)<0)Jv(c[A>>2]|0);if((a[w+11>>0]|0)<0)Jv(c[w>>2]|0);if((a[x+11>>0]|0)<0)Jv(c[x>>2]|0);if((a[y+11>>0]|0)>=0){Ia=B;return}Jv(c[y>>2]|0);Ia=B;return}function Fc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b+32|0;Xv(e,d)|0;h=b+44|0;c[h>>2]=0;i=b+48|0;f=c[i>>2]|0;if(f&8|0){d=a[e+11>>0]|0;if(d<<24>>24<0){d=c[e>>2]|0;g=d;d=d+(c[b+36>>2]|0)|0}else{g=e;d=e+(d&255)|0}c[h>>2]=d;c[b+8>>2]=g;c[b+12>>2]=g;c[b+16>>2]=d}if(!(f&16))return;g=e+11|0;d=a[g>>0]|0;if(d<<24>>24<0){d=c[b+36>>2]|0;c[h>>2]=(c[e>>2]|0)+d;f=(c[b+40>>2]&2147483647)+-1|0}else{d=d&255;c[h>>2]=e+d;f=10}aw(e,f,0);f=a[g>>0]|0;if(f<<24>>24<0){f=c[b+36>>2]|0;e=c[e>>2]|0}else f=f&255;g=b+24|0;c[g>>2]=e;c[b+20>>2]=e;c[b+28>>2]=e+f;if(!(c[i>>2]&3))return;if((d|0)>=0){if(!d)return}else{e=e+2147483647|0;d=d+-2147483647|0;b=(d|0)<0;e=b?e+2147483647|0:e;c[g>>2]=e;d=b?1:d}c[g>>2]=e+d;return}function Gc(e,f){e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=Ia;Ia=Ia+16|0;l=m+4|0;h=m;Vl(l,e,0);if(!(a[l>>0]|0)){f=e+(c[(c[e>>2]|0)+-12>>2]|0)|0;Nl(f,c[f+16>>2]|4);Ia=m;return e|0}g=f+11|0;if((a[g>>0]|0)<0){a[c[f>>2]>>0]=0;c[f+4>>2]=0}else{a[f>>0]=0;a[g>>0]=0}g=e+(c[(c[e>>2]|0)+-12>>2]|0)|0;l=c[g+12>>2]|0;l=(l|0)<1?2147483647:l;Ql(h,g);g=qn(h,1182988)|0;rn(h);a:do if((l|0)>0){k=g+8|0;g=0;while(1){h=c[e+(c[(c[e>>2]|0)+-12>>2]|0)+24>>2]|0;i=c[h+12>>2]|0;if((i|0)==(c[h+16>>2]|0)){h=La[c[(c[h>>2]|0)+36>>2]&127](h)|0;if((h|0)==-1){h=2;break a}}else h=d[i>>0]|0;i=h&255;if(i<<24>>24>-1?(j=h<<24,b[(c[k>>2]|0)+((24?j>>24:j)<<1)>>1]&8192):0){h=0;break a}fw(f,i);g=g+1|0;h=c[e+(c[(c[e>>2]|0)+-12>>2]|0)+24>>2]|0;j=h+12|0;i=c[j>>2]|0;if((i|0)==(c[h+16>>2]|0))La[c[(c[h>>2]|0)+40>>2]&127](h)|0;else c[j>>2]=i+1;if((g|0)>=(l|0)){g=1;h=0;break}}}else{g=0;h=0}while(0);f=(c[e>>2]|0)+-12|0;c[e+(c[f>>2]|0)+12>>2]=0;f=e+(c[f>>2]|0)|0;Nl(f,c[f+16>>2]|((g|0)==0?h|4:h));Ia=m;return e|0}function Hc(){return}function Ic(b,c){b=b|0;c=c|0;if((a[1174432]|0)==0?hJ(1174432)|0:0)jJ(1174432);switch(c|0){case 0:{Cv(1180784);return b|0}case 1:{Dv(1180784);return b|0}default:return b|0}return 0}function Jc(a){a=a|0;Kc(a);return}function Kc(b){b=b|0;var d=0,e=0,f=0;if((a[1174440]|0)==0?hJ(1174440)|0:0){c[295203]=29340;c[295229]=29360;Ol(1180916,1180816);c[295247]=0;c[295248]=-1;c[295203]=33528;c[295229]=33548;Lc(1180816);f=c[1181940+(c[(c[295485]|0)+-12>>2]|0)+24>>2]|0;Tl(1180996);c[295249]=33580;c[295257]=f;c[295258]=1180816;f=c[1182116+(c[(c[295529]|0)+-12>>2]|0)+24>>2]|0;Tl(1181036);c[295259]=33580;c[295267]=f;c[295268]=1180816;jJ(1174440)}d=a[b+11>>0]|0;f=d<<24>>24<0;d=((f?c[b+4>>2]|0:d&255)|0)==0;e=(c[295220]|0)!=0;if(!(d|e)){f=uj(f?c[b>>2]|0:b,42667)|0;c[295220]=f;if(!f){f=1180812+(c[(c[295203]|0)+-12>>2]|0)|0;Nl(f,c[f+16>>2]|4)}else{c[295226]=16;Nl(1180812+(c[(c[295203]|0)+-12>>2]|0)|0,0)}f=1181940+(c[(c[295485]|0)+-12>>2]|0)|0;c[f+24>>2]=1180996;Nl(f,0);f=1182116+(c[(c[295529]|0)+-12>>2]|0)|0;c[f+24>>2]=1181036;Nl(f,0);return}if(!(d&e))return;d=1182116+(c[(c[295529]|0)+-12>>2]|0)|0;c[d+24>>2]=c[295267];Nl(d,0);d=1181940+(c[(c[295485]|0)+-12>>2]|0)|0;c[d+24>>2]=c[295257];Nl(d,0);d=c[295220]|0;do if(d|0){e=La[c[(c[1180816>>2]|0)+24>>2]&127](1180816)|0;if(Ej(d)|0){Oa[c[(c[1180816>>2]|0)+12>>2]&31](1180816,0,0)|0;break}c[295220]=0;Oa[c[(c[1180816>>2]|0)+12>>2]&31](1180816,0,0)|0;if(!e)return}while(0);f=1180812+(c[(c[295203]|0)+-12>>2]|0)|0;Nl(f,c[f+16>>2]|4);return}function Lc(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=Ia;Ia=Ia+16|0;j=k;Tl(d);c[d>>2]=33644;c[d+32>>2]=0;c[d+36>>2]=0;c[d+40>>2]=0;e=d+52|0;i=d+68|0;h=d+98|0;f=e;g=f+44|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));b[e+44>>1]=0;a[e+46>>0]=0;e=d+4|0;tv(j,e);g=wv(j,1183292)|0;rn(j);if(!g){j=c[d>>2]|0;j=j+12|0;j=c[j>>2]|0;Oa[j&31](d,0,4096)|0;Ia=k;return}tv(j,e);c[i>>2]=qn(j,1183292)|0;rn(j);j=c[i>>2]|0;a[h>>0]=(La[c[(c[j>>2]|0)+28>>2]&127](j)|0)&1;j=c[d>>2]|0;j=j+12|0;j=c[j>>2]|0;Oa[j&31](d,0,4096)|0;Ia=k;return}function Mc(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=33644;f=b+64|0;d=c[f>>2]|0;if(d|0){Oc(b)|0;if(!(Ej(d)|0))c[f>>2]=0;Oa[c[(c[b>>2]|0)+12>>2]&31](b,0,0)|0}if(a[b+96>>0]|0?(e=c[b+32>>2]|0,e|0):0)Kv(e);if(!(a[b+97>>0]|0)){Dk(b);return}d=c[b+56>>2]|0;if(!d){Dk(b);return}Kv(d);Dk(b);return}function Nc(a){a=a|0;var b=0;c[a>>2]=33528;b=a+104|0;c[b>>2]=33548;Mc(a+4|0);zl(a,33560);yk(b);return}function Oc(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;m=Ia;Ia=Ia+16|0;k=m;l=b+64|0;if(!(c[l>>2]|0)){l=0;Ia=m;return l|0}j=b+68|0;d=c[j>>2]|0;if(!d){m=I(4)|0;gJ(m);L(m|0,33160,234)}i=b+92|0;e=c[i>>2]|0;do if(!(e&16)){if(e&8|0){f=b+80|0;g=c[f+4>>2]|0;h=k;c[h>>2]=c[f>>2];c[h+4>>2]=g;do if(!(a[b+98>>0]|0)){e=La[c[(c[d>>2]|0)+24>>2]&127](d)|0;h=b+36|0;g=c[h>>2]|0;f=(c[b+40>>2]|0)-g|0;d=((f|0)<0)<<31>>31;if((e|0)>0){e=z((c[b+16>>2]|0)-(c[b+12>>2]|0)|0,e)|0;f=pJ(e|0,((e|0)<0)<<31>>31|0,f|0,d|0)|0;d=E()|0;e=0;break}e=c[b+12>>2]|0;if((e|0)==(c[b+16>>2]|0))e=0;else{n=c[j>>2]|0;j=b+32|0;e=Ra[c[(c[n>>2]|0)+32>>2]&31](n,k,c[j>>2]|0,g,e-(c[b+8>>2]|0)|0)|0;e=(c[h>>2]|0)-e-(c[j>>2]|0)|0;f=pJ(e|0,((e|0)<0)<<31>>31|0,f|0,d|0)|0;d=E()|0;e=1}}else{d=(c[b+16>>2]|0)-(c[b+12>>2]|0)|0;f=d;d=((d|0)<0)<<31>>31;e=0}while(0);l=c[l>>2]|0;n=qJ(0,0,f|0,d|0)|0;if(tj(l,n,E()|0,1)|0){n=-1;Ia=m;return n|0}if(e){l=c[k+4>>2]|0;n=b+72|0;c[n>>2]=c[k>>2];c[n+4>>2]=l}n=c[b+32>>2]|0;c[b+40>>2]=n;c[b+36>>2]=n;c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[i>>2]=0}}else{if((c[b+24>>2]|0)!=(c[b+20>>2]|0)?(Na[c[(c[b>>2]|0)+52>>2]&127](b,-1)|0)==-1:0){n=-1;Ia=m;return n|0}g=b+72|0;f=b+32|0;d=b+52|0;a:while(1){b=c[j>>2]|0;e=c[f>>2]|0;e=Ra[c[(c[b>>2]|0)+20>>2]&31](b,g,e,e+(c[d>>2]|0)|0,k)|0;b=c[f>>2]|0;n=(c[k>>2]|0)-b|0;if((pj(b,1,n,c[l>>2]|0)|0)!=(n|0)){d=-1;e=24;break}switch(e|0){case 1:break;case 2:{d=-1;e=24;break a}default:{e=10;break a}}}if((e|0)==10){if(!(Dj(c[l>>2]|0)|0))break;else d=-1;Ia=m;return d|0}else if((e|0)==24){Ia=m;return d|0}}while(0);n=0;Ia=m;return n|0}function Pc(a){a=a|0;Mc(a);Jv(a);return}function Qc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;La[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=qn(d,1183292)|0;c[b+68>>2]=d;g=b+98|0;h=a[g>>0]|0;d=La[c[(c[d>>2]|0)+28>>2]&127](d)|0;a[g>>0]=d&1;if((h&255|0)==(d&1|0))return;h=b+8|0;g=b+96|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;h=(a[g>>0]|0)!=0;if(d){d=b+32|0;if(h?(i=c[d>>2]|0,i|0):0)Kv(i);i=b+97|0;a[g>>0]=a[i>>0]|0;h=b+60|0;c[b+52>>2]=c[h>>2];b=b+56|0;c[d>>2]=c[b>>2];c[h>>2]=0;c[b>>2]=0;a[i>>0]=0;return}if(!h?(f=b+32|0,e=c[f>>2]|0,(e|0)!=(b+44|0)):0){i=c[b+52>>2]|0;c[b+60>>2]=i;c[b+56>>2]=e;a[b+97>>0]=0;c[f>>2]=Iv(i)|0;a[g>>0]=1;return}i=c[b+52>>2]|0;c[b+60>>2]=i;c[b+56>>2]=Iv(i)|0;a[b+97>>0]=1;return}function Rc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0;j=b+8|0;i=b+96|0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=0;c[j+20>>2]=0;if(a[i>>0]|0?(f=c[b+32>>2]|0,f|0):0)Kv(f);j=b+97|0;if(a[j>>0]|0?(g=c[b+56>>2]|0,g|0):0)Kv(g);f=b+52|0;c[f>>2]=e;do if(e>>>0>8){f=a[b+98>>0]|0;if((d|0)!=0&f<<24>>24!=0){c[b+32>>2]=d;a[i>>0]=0;break}else{c[b+32>>2]=Iv(e)|0;a[i>>0]=1;h=f;k=12;break}}else{c[b+32>>2]=b+44;c[f>>2]=8;a[i>>0]=0;h=a[b+98>>0]|0;k=12}while(0);if((k|0)==12?h<<24>>24==0:0){f=(e|0)>8?e:8;c[b+60>>2]=f;if((d|0)!=0&f>>>0>7){k=0;i=d;d=b+56|0;c[d>>2]=i;a[j>>0]=k;return b|0}d=1;i=Iv(f)|0;k=b+56|0;c[k>>2]=i;a[j>>0]=d;return b|0}c[b+60>>2]=0;d=0;i=0;k=b+56|0;c[k>>2]=i;a[j>>0]=d;return b|0}function Sc(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;g=c[b+68>>2]|0;if(!g){a=I(4)|0;gJ(a);L(a|0,33160,234)}h=La[c[(c[g>>2]|0)+24>>2]&127](g)|0;g=b+64|0;if((((c[g>>2]|0)!=0?!(((d|0)!=0|(e|0)!=0)&(h|0)<1):0)?(La[c[(c[b>>2]|0)+24>>2]&127](b)|0)==0&f>>>0<3:0)?(j=c[g>>2]|0,i=(h|0)>0,d=vJ(h|0,((h|0)<0)<<31>>31|0,d|0,e|0)|0,e=E()|0,(tj(j,i?d:0,i?e:0,f)|0)==0):0){d=Kj(c[g>>2]|0)|0;e=E()|0;h=b+72|0;g=c[h>>2]|0;h=c[h+4>>2]|0}else{g=0;h=0;d=-1;e=-1}j=a;c[j>>2]=g;c[j+4>>2]=h;j=a+8|0;c[j>>2]=d;c[j+4>>2]=e;return}function Tc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;e=b+64|0;if(c[e>>2]|0?(La[c[(c[b>>2]|0)+24>>2]&127](b)|0)==0:0){f=d+8|0;if(!(tj(c[e>>2]|0,c[f>>2]|0,c[f+4>>2]|0,0)|0)){g=d;e=c[g+4>>2]|0;f=b+72|0;c[f>>2]=c[g>>2];c[f+4>>2]=e;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];return}else{g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}}g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function Uc(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;u=Ia;Ia=Ia+16|0;t=u+4|0;p=u;n=b+64|0;if(!(c[n>>2]|0)){t=-1;Ia=u;return t|0}e=b+92|0;if(!(c[e>>2]&8)){c[b+24>>2]=0;c[b+20>>2]=0;c[b+28>>2]=0;f=(a[b+98>>0]|0)==0;s=c[(f?b+56|0:b+32|0)>>2]|0;f=s+(c[(f?b+60|0:b+52|0)>>2]|0)|0;c[b+8>>2]=s;s=b+12|0;c[s>>2]=f;c[b+16>>2]=f;c[e>>2]=8;e=f;f=1}else{s=b+12|0;e=c[s>>2]|0;f=0}if(!e){e=t+1|0;c[b+8>>2]=t;c[s>>2]=e;c[b+16>>2]=e}r=b+16|0;if(f){f=c[r>>2]|0;o=0}else{f=c[r>>2]|0;o=(f-(c[b+8>>2]|0)|0)/2|0;o=o>>>0<4?o:4}do if((e|0)==(f|0)){f=b+8|0;CJ(c[f>>2]|0,e+(0-o)|0,o|0)|0;if(a[b+98>>0]|0){e=c[f>>2]|0;e=yj(e+o|0,1,(c[r>>2]|0)-o-e|0,c[n>>2]|0)|0;if(!e){e=-1;break}q=(c[f>>2]|0)+o|0;c[s>>2]=q;c[r>>2]=q+e;e=d[q>>0]|0;break}l=b+40|0;k=c[l>>2]|0;m=b+36|0;e=c[m>>2]|0;g=k;h=e;if((k|0)==(e|0)){k=l;j=b+32|0}else{j=b+32|0;CJ(c[j>>2]|0,e|0,g-h|0)|0;k=l;g=c[l>>2]|0;h=c[m>>2]|0}i=c[j>>2]|0;g=i+(g-h)|0;c[m>>2]=g;if((i|0)==(b+44|0))e=8;else e=c[b+52>>2]|0;v=i+e|0;c[l>>2]=v;h=b+60|0;e=(c[h>>2]|0)-o|0;v=v-g|0;i=b+72|0;y=i;x=c[y+4>>2]|0;w=b+80|0;c[w>>2]=c[y>>2];c[w+4>>2]=x;g=yj(g,1,v>>>0>>0?v:e,c[n>>2]|0)|0;if(!g)e=-1;else{e=c[b+68>>2]|0;if(!e){y=I(4)|0;gJ(y);L(y|0,33160,234)}x=(c[m>>2]|0)+g|0;c[l>>2]=x;y=c[f>>2]|0;if((Va[c[(c[e>>2]|0)+16>>2]&15](e,i,c[j>>2]|0,x,m,y+o|0,y+(c[h>>2]|0)|0,p)|0)!=3){g=c[p>>2]|0;e=(c[f>>2]|0)+o|0;if((g|0)==(e|0))e=-1;else{c[s>>2]=e;c[r>>2]=g;q=26}}else{e=c[j>>2]|0;q=c[k>>2]|0;c[f>>2]=e;c[s>>2]=e;c[r>>2]=q;q=26}if((q|0)==26)e=d[e>>0]|0}}else{f=b+8|0;e=d[e>>0]|0}while(0);if((c[f>>2]|0)==(t|0)){c[f>>2]=0;c[s>>2]=0;c[r>>2]=0}y=e;Ia=u;return y|0}function Vc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;if(!(c[b+64>>2]|0)){g=-1;return g|0}g=b+12|0;f=c[g>>2]|0;if((c[b+8>>2]|0)>>>0>=f>>>0){g=-1;return g|0}if((d|0)==-1){c[g>>2]=f+-1;g=0;return g|0}if(!(c[b+88>>2]&16)){e=d&255;b=f+-1|0;if((a[b>>0]|0)!=e<<24>>24){g=-1;return g|0}}else{b=f+-1|0;e=d&255}c[g>>2]=b;a[b>>0]=e;g=d;return g|0}function Wc(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=Ia;Ia=Ia+16|0;k=u+8|0;s=u+4|0;r=u;t=b+64|0;if(!(c[t>>2]|0)){d=-1;Ia=u;return d|0}f=b+92|0;if(!(c[f>>2]&16)){c[b+8>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;e=c[b+52>>2]|0;do if(e>>>0>8)if(!(a[b+98>>0]|0)){e=c[b+56>>2]|0;h=e+((c[b+60>>2]|0)+-1)|0;c[b+24>>2]=e;i=b+20|0;c[i>>2]=e;j=b+28|0;c[j>>2]=h;g=e;break}else{q=c[b+32>>2]|0;h=q+(e+-1)|0;c[b+24>>2]=q;i=b+20|0;c[i>>2]=q;j=b+28|0;c[j>>2]=h;g=q;e=q;break}else{c[b+24>>2]=0;i=b+20|0;c[i>>2]=0;j=b+28|0;c[j>>2]=0;g=0;h=0;e=0}while(0);c[f>>2]=16;p=j;q=i;o=e;m=i;i=j}else{m=b+20|0;g=c[m>>2]|0;i=b+28|0;p=i;q=m;o=g;h=c[i>>2]|0}n=(d|0)==-1;e=b+24|0;f=c[e>>2]|0;if(!n){if(!f){c[e>>2]=k;c[m>>2]=k;c[i>>2]=k+1;f=k}a[f>>0]=d;f=(c[e>>2]|0)+1|0;c[e>>2]=f;g=c[m>>2]|0}a:do if((f|0)==(g|0))l=33;else{do if(!(a[b+98>>0]|0)){k=b+32|0;c[s>>2]=c[k>>2];j=b+68|0;l=b+72|0;i=b+52|0;f=c[j>>2]|0;if(!f){u=I(4)|0;gJ(u);L(u|0,33160,234)}while(1){g=c[k>>2]|0;f=Va[c[(c[f>>2]|0)+12>>2]&15](f,l,c[m>>2]|0,c[e>>2]|0,r,g,g+(c[i>>2]|0)|0,s)|0;g=c[m>>2]|0;if((c[r>>2]|0)==(g|0)){l=31;break}if((f|0)==3){l=23;break}if(f>>>0>=2){l=31;break}g=c[k>>2]|0;b=(c[s>>2]|0)-g|0;if((pj(g,1,b,c[t>>2]|0)|0)!=(b|0)){l=31;break}if((f|0)!=1){l=29;break}f=c[e>>2]|0;c[q>>2]=c[r>>2];c[p>>2]=f;c[e>>2]=f;f=c[j>>2]|0;if(!f){l=20;break}}if((l|0)==20){u=I(4)|0;gJ(u);L(u|0,33160,234)}else if((l|0)==23){s=(c[e>>2]|0)-g|0;if((pj(g,1,s,c[t>>2]|0)|0)==(s|0))l=30;else l=31}else if((l|0)==29)l=30;if((l|0)==30)break;else if((l|0)==31){e=-1;break a}}else{s=f-g|0;if((pj(g,1,s,c[t>>2]|0)|0)!=(s|0)){e=-1;break a}}while(0);c[e>>2]=o;c[q>>2]=o;c[p>>2]=h;l=33}while(0);if((l|0)==33)e=n?0:d;d=e;Ia=u;return d|0}function Xc(a){a=a|0;Dk(a);Jv(a);return}function Yc(a){a=a|0;var b=0;b=c[a+36>>2]|0;La[c[(c[b>>2]|0)+24>>2]&127](b)|0;a=c[a+32>>2]|0;return La[c[(c[a>>2]|0)+24>>2]&127](a)|0}function Zc(a){a=a|0;var b=0;a=c[a+32>>2]|0;b=c[a+12>>2]|0;if((b|0)==(c[a+16>>2]|0)){b=La[c[(c[a>>2]|0)+36>>2]&127](a)|0;return b|0}else{b=d[b>>0]|0;return b|0}return 0}function _c(b){b=b|0;var e=0,f=0,g=0,h=0;e=c[b+32>>2]|0;g=e+12|0;f=c[g>>2]|0;if((f|0)==(c[e+16>>2]|0))h=La[c[(c[e>>2]|0)+40>>2]&127](e)|0;else{c[g>>2]=f+1;h=d[f>>0]|0}e=b+36|0;if((c[8425]|0)==10){b=c[e>>2]|0;Oa[c[(c[b>>2]|0)+48>>2]&31](b,42293,3)|0}e=c[e>>2]|0;g=e+24|0;f=c[g>>2]|0;if((f|0)==(c[e+28>>2]|0)){h=Na[c[(c[e>>2]|0)+52>>2]&127](e,h&255)|0;c[8425]=h;return h|0}else{c[g>>2]=f+1;a[f>>0]=h;h=h&255;c[8425]=h;return h|0}return 0}function $c(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=c[b+32>>2]|0;g=e+24|0;f=c[g>>2]|0;if((f|0)==(c[e+28>>2]|0))d=Na[c[(c[e>>2]|0)+52>>2]&127](e,d&255)|0;else{c[g>>2]=f+1;a[f>>0]=d;d=d&255}e=b+36|0;if((c[8425]|0)==10){b=c[e>>2]|0;Oa[c[(c[b>>2]|0)+48>>2]&31](b,42289,3)|0}e=c[e>>2]|0;g=e+24|0;f=c[g>>2]|0;if((f|0)==(c[e+28>>2]|0)){b=Na[c[(c[e>>2]|0)+52>>2]&127](e,d&255)|0;c[8425]=b;return b|0}else{c[g>>2]=f+1;a[f>>0]=d;b=d&255;c[8425]=b;return b|0}return 0}function ad(a){a=a|0;var b=0;c[a>>2]=33528;b=a+104|0;c[b>>2]=33548;Mc(a+4|0);zl(a,33560);yk(b);Jv(a);return}function bd(a){a=a|0;var b=0;b=a+(c[(c[a>>2]|0)+-12>>2]|0)|0;c[b>>2]=33528;a=b+104|0;c[a>>2]=33548;Mc(b+4|0);zl(b,33560);yk(a);return}function cd(a){a=a|0;var b=0;a=a+(c[(c[a>>2]|0)+-12>>2]|0)|0;c[a>>2]=33528;b=a+104|0;c[b>>2]=33548;Mc(a+4|0);zl(a,33560);yk(b);Jv(a);return}function dd(a){a=a|0;return}function ed(a){a=a|0;return}function fd(a){a=a|0;return}function gd(){var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=Ia;Ia=Ia+96|0;r=s;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;h=r+11|0;a[h>>0]=5;a[r>>0]=a[44986]|0;a[r+1>>0]=a[44987]|0;a[r+2>>0]=a[44988]|0;a[r+3>>0]=a[44989]|0;a[r+4>>0]=a[44990]|0;a[r+5>>0]=0;m=r+12|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;i=m+11|0;a[i>>0]=8;n=m;c[n>>2]=1702259047;c[n+4>>2]=2036430689;a[r+20>>0]=0;n=r+24|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;j=n+11|0;a[j>>0]=6;a[n>>0]=a[44992]|0;a[n+1>>0]=a[44993]|0;a[n+2>>0]=a[44994]|0;a[n+3>>0]=a[44995]|0;a[n+4>>0]=a[44996]|0;a[n+5>>0]=a[44997]|0;a[n+6>>0]=0;o=r+36|0;k=o+11|0;a[k>>0]=10;e=o;f=44999;g=e+10|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[o+10>>0]=0;p=r+48|0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;l=p+11|0;a[l>>0]=5;a[p>>0]=a[45010]|0;a[p+1>>0]=a[45011]|0;a[p+2>>0]=a[45012]|0;a[p+3>>0]=a[45013]|0;a[p+4>>0]=a[45014]|0;a[p+5>>0]=0;q=r+60|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;b=Gv(16)|0;c[q>>2]=b;c[r+68>>2]=-2147483632;c[r+64>>2]=13;e=b;f=45016;g=e+13|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+13>>0]=0;d=r+72|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=Gv(16)|0;c[d>>2]=b;c[r+80>>2]=-2147483632;c[r+76>>2]=11;e=b;f=45030;g=e+11|0;do{a[e>>0]=a[f>>0]|0;e=e+1|0;f=f+1|0}while((e|0)<(g|0));a[b+11>>0]=0;b=r+84|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;g=b+11|0;a[g>>0]=6;a[b>>0]=a[45042]|0;a[b+1>>0]=a[45043]|0;a[b+2>>0]=a[45044]|0;a[b+3>>0]=a[45045]|0;a[b+4>>0]=a[45046]|0;a[b+5>>0]=a[45047]|0;a[b+6>>0]=0;c[295269]=0;c[295270]=0;c[295271]=0;f=Gv(96)|0;c[295270]=f;c[295269]=f;c[295271]=f+96;Rv(f,r);f=(c[295270]|0)+12|0;c[295270]=f;Rv(f,m);f=(c[295270]|0)+12|0;c[295270]=f;Rv(f,n);f=(c[295270]|0)+12|0;c[295270]=f;Rv(f,o);f=(c[295270]|0)+12|0;c[295270]=f;Rv(f,p);f=(c[295270]|0)+12|0;c[295270]=f;Rv(f,q);f=(c[295270]|0)+12|0;c[295270]=f;Rv(f,d);f=(c[295270]|0)+12|0;c[295270]=f;Rv(f,b);c[295270]=(c[295270]|0)+12;if((a[g>>0]|0)<0)Jv(c[b>>2]|0);if((a[d+11>>0]|0)<0)Jv(c[d>>2]|0);if((a[q+11>>0]|0)<0)Jv(c[q>>2]|0);if((a[l>>0]|0)<0)Jv(c[p>>2]|0);if((a[k>>0]|0)<0)Jv(c[o>>2]|0);if((a[j>>0]|0)<0)Jv(c[n>>2]|0);if((a[i>>0]|0)<0)Jv(c[m>>2]|0);if((a[h>>0]|0)>=0){Ia=s;return}Jv(c[r>>2]|0);Ia=s;return} +function ud(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5216|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&1)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5148>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5148>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=6)if((d|0)==6)d=6;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=6;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[6e4]|0;k=239984;m=239992;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5224|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&2)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5152>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5152>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=2)if((d|0)==2)d=2;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=2;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[59976]|0;k=239888;m=239896;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function wd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5240|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&4)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5160>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5160>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=62)if((d|0)==62)d=62;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=62;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60336]|0;k=241328;m=241336;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5272|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&8)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5176>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5176>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=58)if((d|0)==58)d=58;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=58;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60312]|0;k=241232;m=241240;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function yd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5216|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&1)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5148>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5148>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=6)if((d|0)==6)d=6;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=6;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[6e4]|0;k=239984;m=239992;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function zd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5224|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&2)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5152>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5152>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=2)if((d|0)==2)d=2;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=2;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[59976]|0;k=239888;m=239896;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Ad(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5240|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&4)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5160>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5160>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=62)if((d|0)==62)d=62;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=62;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60336]|0;k=241328;m=241336;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5272|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&8)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5176>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5176>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=58)if((d|0)==58)d=58;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=58;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60312]|0;k=241232;m=241240;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Cd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5216|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&1)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5148>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5148>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=6)if((d|0)==6)d=6;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=6;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[6e4]|0;k=239984;m=239992;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5224|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&2)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5152>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5152>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=2)if((d|0)==2)d=2;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=2;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[59976]|0;k=239888;m=239896;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5240|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&4)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5160>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5160>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=62)if((d|0)==62)d=62;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=62;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60336]|0;k=241328;m=241336;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Fd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5272|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&8)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5176>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5176>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=58)if((d|0)==58)d=58;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=58;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60312]|0;k=241232;m=241240;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Gd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5216|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&1)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5148>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5148>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=6)if((d|0)==6)d=6;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=6;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[6e4]|0;k=239984;m=239992;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Hd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5224|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&2)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+360>>2]|0)==0:0){j=a+328|0;i=j;m=c[a+5152>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+1936>>2]|0;h=c[a+5152>>2]|0;j=a+328|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=2)if((d|0)==2)d=2;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=2;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[59976]|0;k=239888;m=239896;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Id(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5240|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&4)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5160>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5160>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=62)if((d|0)==62)d=62;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=62;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60336]|0;k=241328;m=241336;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0}function Jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=a+256|0;e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;m=a+5272|0;if(!((c[m>>2]&g|0)==0?(c[m+4>>2]&e|0)==0:0)){n=b;return n|0}if(!(c[(c[a+5352>>2]|0)+24>>2]&8)){n=b;return n|0}if((c[a+5360>>2]|0)==1?(c[a+392>>2]|0)==0:0){j=a+320|0;i=j;m=c[a+5176>>2]|0;f=c[i>>2]|0;i=c[i+4>>2]|0;k=1;d=64;n=8}else{d=c[a+3984>>2]|0;h=c[a+5176>>2]|0;j=a+320|0;i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;if((d|0)>=58)if((d|0)==58)d=58;else{m=h;k=1;n=8}else{m=h;k=-1;n=8}}do if((n|0)==8){h=58;while(1){n=ue(a,h,g,e)|0;h=h+k|0;if(!((n&f|0)==0&((E()|0)&i|0)==0)){n=14;break}e=l;g=c[e>>2]|0;e=c[e+4>>2]|0;if((h|0)==(d|0)){n=11;break}}if((n|0)==11){i=j;f=c[i>>2]|0;i=c[i+4>>2]|0;h=m;break}else if((n|0)==14)return b|0}while(0);l=161184+(h<<3)|0;n=c[60312]|0;k=241232;m=241240;m=vJ(c[k>>2]&(c[l>>2]^g)|0,c[k+4>>2]&(c[l+4>>2]^e)|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=xJ(m|0,E()|0,52)|0;E()|0;m=n+(m<<3)|0;n=a+288|0;a=a+296|0;if(!((f&c[m>>2]&(c[a>>2]|c[n>>2])|0)==0?(i&c[m+4>>2]&(c[a+4>>2]|c[n+4>>2])|0)==0:0)){n=b;return n|0}c[b>>2]=(d<<6)+49152+h;n=b+8|0;return n|0} +function Zb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;switch(c[a+5360>>2]|0){case 1:{b=c[a+5340>>2]<<3;if(!(c[a+336+(b<<2)>>2]|0)){a=1;return a|0}a=(c[a+336+((b^8)<<2)>>2]|0)==0;return a|0}case 2:{b=c[a+5340>>2]<<3;if(!(c[a+336+((b^14)<<2)>>2]|0)){a=1;return a|0}a=(c[a+336+((b|6)<<2)>>2]|0)==0;return a|0}case 4:{a=(c[a+336+(((c[a+360>>2]|0)!=0&1)<<3<<2)>>2]|0)==0;return a|0}case 5:{b=c[a+5340>>2]<<3;g=c[a+400+((b|6)<<8)>>2]|0;if(((3?g>>3:g)+-3|0)>>>0<2?((g&7)+-3|0)>>>0<2:0){a=1;return a|0}b=c[a+400+((b^14)<<8)>>2]|0;if(((3?b>>3:b)+-3|0)>>>0>=2){a=0;return a|0}a=((b&7)+-3|0)>>>0<2;return a|0}case 6:{g=a+5340|0;e=c[g>>2]|0;d=e<<3;f=c[a+400+((d|6)<<8)>>2]|0;b=a+400+((d^14)<<8)|0;if((f&-8|0)==56){if((c[b>>2]&-8|0)==56){a=1;return a|0}b=a+400+((d^14)<<8)|0;if((c[b>>2]|0)<56){a=1;return a|0}}if((c[b>>2]&-8|0)!=56){a=0;return a|0}if(((3?f>>3:f)|0)<(((e|0)==0?7:6)|0)){a=1;return a|0}f=237792+(f<<3)|0;h=161816;d=a+320+(e<<3)|0;b=c[h>>2]&c[f>>2]&~c[d>>2];d=c[h+4>>2]&c[f+4>>2]&~c[d+4>>2];if((b|0)==0&(d|0)==0){h=1;return h|0}e=a+256|0;while(1){h=qa(b|0,d|0,0)|0;E()|0;i=e;i=ue(a,h,c[i>>2]|0,c[i+4>>2]|0)|0;h=E()|0;f=a+320+((c[g>>2]^1)<<3)|0;if((c[f>>2]&i|0)==0?(c[f+4>>2]&h|0)==0:0){b=0;d=22;break}i=pJ(b|0,d|0,-1,-1)|0;b=i&b;d=(E()|0)&d;if((b|0)==0&(d|0)==0){b=1;d=22;break}}if((d|0)==22)return b|0;break}case 7:{d=c[a+5352>>2]|0;b=c[a+5340>>2]|0;if((c[d+36+(b<<2)>>2]|0)==3){i=1;return i|0}i=(c[d+36+((b^1)<<2)>>2]|0)==3;return i|0}default:{i=0;return i|0}}return 0}function _b(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;switch(c[a+5360>>2]|0){case 1:{e=c[a+5340>>2]<<3;if(!(c[a+336+(e<<2)>>2]|0)){b=32e3-b|0;return b|0}else{b=(c[a+336+((e^8)<<2)>>2]|0)==0?b+-32e3|0:0;return b|0}}case 2:{e=c[a+5340>>2]<<3;if(!(c[a+336+((e^14)<<2)>>2]|0)){b=32e3-b|0;return b|0}else{b=(c[a+336+((e|6)<<2)>>2]|0)==0?b+-32e3|0:0;return b|0}}case 4:{b=(c[a+336+(((c[a+360>>2]|0)!=0&1)<<3<<2)>>2]|0)==0?b+-32e3|0:0;return b|0}case 5:{e=c[a+5340>>2]<<3;k=c[a+400+((e|6)<<8)>>2]|0;if(((3?k>>3:k)+-3|0)>>>0<2?((k&7)+-3|0)>>>0<2:0){b=32e3-b|0;return b|0}e=c[a+400+((e^14)<<8)>>2]|0;if(((3?e>>3:e)+-3|0)>>>0>=2){b=0;return b|0}b=((e&7)+-3|0)>>>0<2?b+-32e3|0:0;return b|0}case 6:{k=a+5340|0;i=c[k>>2]|0;h=i<<3;j=c[a+400+((h|6)<<8)>>2]|0;g=a+400+((h^14)<<8)|0;if((j&-8|0)==56){if((c[g>>2]&-8|0)==56){b=d;return b|0}g=a+400+((h^14)<<8)|0;if((c[g>>2]|0)<56){b=32e3-b|0;return b|0}}if((c[g>>2]&-8|0)!=56){b=0;return b|0}a:do if(((3?j>>3:j)|0)>=(((i|0)==0?7:6)|0)?(j=237792+(j<<3)|0,h=161816,e=a+320+(i<<3)|0,f=c[h>>2]&c[j>>2]&~c[e>>2],e=c[h+4>>2]&c[j+4>>2]&~c[e+4>>2],!((f|0)==0&(e|0)==0)):0){g=a+256|0;while(1){j=qa(f|0,e|0,0)|0;E()|0;h=g;h=ue(a,j,c[h>>2]|0,c[h+4>>2]|0)|0;j=E()|0;i=a+320+((c[k>>2]^1)<<3)|0;if((c[i>>2]&h|0)==0?(c[i+4>>2]&j|0)==0:0){e=0;break}j=pJ(f|0,e|0,-1,-1)|0;f=j&f;e=(E()|0)&e;if((f|0)==0&(e|0)==0)break a}return e|0}while(0);b=b+-32e3|0;return b|0}case 7:{f=c[a+5352>>2]|0;e=c[a+5340>>2]|0;if((c[f+36+(e<<2)>>2]|0)!=3)return ((c[f+36+((e^1)<<2)>>2]|0)==3?b+-32e3|0:0)|0;b=32e3-b|0;return b|0}default:{b=0;return b|0}}return 0}function $b(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;h=Ia;Ia=Ia+224|0;g=h;DJ(953088,0,136)|0;c[(c[d+5348>>2]|0)+2139836>>2]=0;c[g>>2]=d;c[g+32>>2]=0;c[g+36>>2]=0;j=ac(g)|0;j=(c[d+5340>>2]|0)==0?j:0-j|0;d=g+64|0;f=g+8|0;c[f>>2]=33264;e=g+12|0;c[g>>2]=29052;c[d>>2]=29072;c[g+4>>2]=0;Ol(g+64|0,e);c[g+136>>2]=0;c[g+140>>2]=-1;c[g>>2]=33244;c[d>>2]=33284;c[f>>2]=33264;Tl(e);c[e>>2]=33340;f=g+44|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[g+60>>2]=24;i=g+8|0;k=(c[i>>2]|0)+-12|0;l=i+(c[k>>2]|0)+4|0;c[l>>2]=c[l>>2]|1024;l=i+(c[k>>2]|0)+4|0;c[l>>2]=c[l>>2]&-2049;l=i+(c[k>>2]|0)+4|0;c[l>>2]=c[l>>2]&-261|4;c[i+(c[k>>2]|0)+8>>2]=2;Wb(Tb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Wb(Tb(Tb(Tb(Tb(i,41184,55)|0,41240,55)|0,41296,55)|0,41352,15)|0,8)|0,41368,15)|0,9)|0,41384,15)|0,14)|0,41400,15)|0,1)|0,41416,15)|0,2)|0,41432,15)|0,3)|0,41448,15)|0,4)|0,41464,15)|0,5)|0,41480,15)|0,10)|0,41496,15)|0,6)|0,41512,15)|0,11)|0,41528,15)|0,12)|0,41544,15)|0,13)|0,41560,15)|0,15)|0,41296,55)|0,41576,15)|0,16)|0;Tb(fm(Tb(i,41592,19)|0,+(j|0)/208.0)|0,41612,14)|0;bc(b,e);c[g>>2]=33244;c[d>>2]=33284;c[i>>2]=33264;c[e>>2]=33340;if((a[f+11>>0]|0)>=0){Dk(e);Ll(g,33296);yk(d);Ia=h;return}Jv(c[f>>2]|0);Dk(e);Ll(g,33296);yk(d);Ia=h;return} + +// EMSCRIPTEN_END_FUNCS +var La=[YJ,Jk,Kk,gc,Nk,Yc,Zc,_c,Oc,Uc,Jh,Mk,$k,al,cl,dl,sm,ym,Em,Fm,Km,Lm,hp,op,pp,qp,rp,sp,tp,up,Rp,Yp,Zp,_p,$p,aq,bq,cq,Mq,Nq,Sq,Xq,Yq,br,gr,hr,mr,rr,sr,xr,ws,xs,zs,Os,Ps,Rs,ut,vt,Bt,Ct,Hs,Is,Ks,Xs,Ys,_s,TI,_I,Ef,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ,YJ];var Ma=[ZJ,oi];var Na=[_J,hc,ic,nb,Lb,wb,xb,Bb,Hb,Ok,$c,Vc,Wc,Rb,Qb,Pb,Ob,Nb,Mb,Kb,Jb,Ib,Ab,Db,Eb,Cb,zb,yb,Gb,Fb,ub,tb,sb,rb,qb,ob,vb,pb,Av,Qk,el,gl,um,Am,Gm,Mm,ht,jt,lt,Mt,Ot,Qt,Ky,Ly,My,Ny,kz,xz,mA,nA,oA,pA,QE,RE,SE,TE,cG,mG,nG,eH,fH,gH,yH,zH,$H,aI,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J,_J];var Oa=[$J,Gk,Lk,Pk,Rc,Kh,Ph,Qh,Ki,Yk,bl,fl,tm,zm,Tm,$m,ks,ps,it,kt,nt,It,Nt,Pt,St,Ww,Aj,$J,$J,$J,$J,$J];var Pa=[aK,Lh,mt,Jt,Kt,Lt,Rt,aK];var Qa=[bK,Ko,Lo,$o,ap,bK,bK,bK];var Ra=[cK,Rm,Zm,Fo,Go,Io,Mo,Wo,Xo,Zo,bp,vs,ys,Ns,Qs,ot,Tt,Gs,Js,Ws,Zs,cK,cK,cK,cK,cK,cK,cK,cK,cK,cK,cK];var Sa=[dK,_r,es,dK];var Ta=[eK,en,fn,gn,hn,jn,kn,ln,mn,nn,on,pn,bo,co,eo,fo,go,ho,io,jo,ko,lo,mo,Ho,Jo,Yo,_o,ip,jp,kp,lp,mp,Sp,Tp,Up,Vp,Wp,$r,fs,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK,eK];var Ua=[fK,Aq,Gq,Cr,Dr,Qr,Rr,fK];var Va=[gK,np,Xp,ts,us,Ls,Ms,Es,Fs,Us,Vs,gK,gK,gK,gK,gK];var Wa=[hK,iK,Mw,hK];var Xa=[jK,jc,kc,lc,mc,nc,oc,ll,ml,nl,ol,cc,dc,Fl,Gl,Hl,Il,Jl,Kl,vl,wl,xl,yl,zc,Bc,Ac,uc,yc,xc,wc,vc,Nc,ad,bd,cd,Dk,Xc,Mc,Pc,ee,fe,ge,he,oe,pe,qe,re,wf,Ne,Oe,xf,Re,fg,gg,hg,ig,jg,kg,lg,mg,ng,og,pg,qg,rg,sg,tg,ug,vg,wg,xg,yg,zg,Ag,Bg,Cg,Dg,jh,kh,lh,mh,zk,Bk,Ek,Vk,Wk,ql,rl,sl,tl,Al,Bl,Cl,Dl,qm,wm,Cm,Im,Om,Pm,Qm,Xm,Ym,cn,dn,$n,ao,Do,Eo,Uo,Vo,fp,gp,Pp,Qp,yq,zq,Eq,Fq,Kq,Lq,Vq,Wq,er,fr,pr,qr,Ar,Br,Or,Pr,Yr,Zr,cs,ds,is,js,ns,os,Wm,Ds,ss,Ss,Ts,ct,dt,ft,gt,st,tt,zt,At,Gt,Ht,Ut,Vt,Wt,Sw,Tw,Uw,Vw,dx,Ry,Sy,Xy,cz,gz,nz,Az,Jz,Wz,sA,LA,QA,VA,_A,cB,hB,nB,TB,XB,$B,dC,hC,mC,rC,wC,EC,KC,SC,WC,cD,hD,lD,wD,FD,KD,PD,UD,ZD,dE,iE,pE,uE,zE,GE,WE,aF,kF,qF,wF,AF,GF,PF,UF,_F,fG,qG,DG,JG,jH,oH,sH,CH,GH,KH,OH,SH,dI,hI,FI,RI,SI,XI,YI,ZI,$I,Se,Ye,th,vh,rh,qh,xn,zn,Er,lk,jK,jK,jK,jK,jK,jK,jK,jK,jK];var Ya=[kK,Fk,Qc,Xk,rm,xm,Dm,Jm,Oq,Pq,Qq,Rq,Tq,Uq,Zq,_q,$q,ar,cr,dr,ir,jr,kr,lr,nr,or,tr,ur,vr,wr,yr,zr,ms,rs,wt,xt,yt,Dt,Et,Ft,Oy,Py,Qy,az,bz,fz,lz,mz,yz,zz,Hz,Iz,Vz,qA,rA,KA,PA,UA,ZA,bB,gB,mB,SB,WB,_B,cC,gC,jC,qC,vC,DC,JC,RC,VC,aD,bD,gD,kD,uD,vD,ED,JD,OD,SD,TD,YD,cE,hE,oE,tE,yE,FE,UE,VE,$E,iF,jF,pF,vF,zF,FF,OF,SF,TF,YF,ZF,dG,eG,oG,pG,CG,IG,hH,iH,nH,rH,AH,BH,FH,JH,NH,RH,bI,cI,gI,EI,pi,kK];var Za=[lK];var _a=[mK,fc,Ik,Tc,_k,Sm,_m,Zw,gx,cJ,mK,mK,mK,mK,mK,mK];var $a=[nK,Yw,fx,bJ];var ab=[oK,ec,Hk,Sc,Zk,ls,qs,Xw,ex,aJ,oK,oK,oK,oK,oK,oK];return{__ZSt18uncaught_exceptionv:wk,___cxa_can_catch:nJ,___cxa_is_pointer_type:oJ,___divdi3:tJ,___errno_location:Nh,___muldi3:vJ,___udivdi3:wJ,_bitshift64Lshr:xJ,_bitshift64Shl:yJ,_free:lk,_i64Add:pJ,_i64Subtract:qJ,_llvm_ctlz_i64:zJ,_llvm_cttz_i32:rJ,_llvm_round_f64:AJ,_main:qc,_malloc:kk,_memcpy:BJ,_memmove:CJ,_memset:DJ,_pthread_cond_broadcast:EJ,_sbrk:FJ,_uci_command:Xg,dynCall_ii:GJ,dynCall_iidiiii:HJ,dynCall_iii:IJ,dynCall_iiii:JJ,dynCall_iiiii:KJ,dynCall_iiiiid:LJ,dynCall_iiiiii:MJ,dynCall_iiiiiid:NJ,dynCall_iiiiiii:OJ,dynCall_iiiiiiii:PJ,dynCall_iiiiiiiii:QJ,dynCall_v:RJ,dynCall_vi:SJ,dynCall_vii:TJ,dynCall_viii:UJ,dynCall_viiii:VJ,dynCall_viiiii:WJ,dynCall_viiiiii:XJ,establishStackSpace:fb,globalCtors:bb,stackAlloc:cb,stackRestore:eb,stackSave:db}}) + + +// EMSCRIPTEN_END_ASM +(asmGlobalArg,asmLibraryArg,buffer);var __ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=asm["__ZSt18uncaught_exceptionv"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_ctlz_i64=Module["_llvm_ctlz_i64"]=asm["_llvm_ctlz_i64"];var _llvm_cttz_i32=Module["_llvm_cttz_i32"]=asm["_llvm_cttz_i32"];var _llvm_round_f64=Module["_llvm_round_f64"]=asm["_llvm_round_f64"];var _main=Module["_main"]=asm["_main"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _pthread_cond_broadcast=Module["_pthread_cond_broadcast"]=asm["_pthread_cond_broadcast"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _uci_command=Module["_uci_command"]=asm["_uci_command"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var globalCtors=Module["globalCtors"]=asm["globalCtors"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iidiiii=Module["dynCall_iidiiii"]=asm["dynCall_iidiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];Module["asm"]=asm;Module["ccall"]=ccall;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function callMain(args){args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=Module["_main"](argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="SimulateInfiniteLoop"){Module["noExitRuntime"]=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;Module["noExitRuntime"]=true;run(); + diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..ce67e17 --- /dev/null +++ b/styles.css @@ -0,0 +1,905 @@ +/* Caissa plugin styles */ + +.chess-study-block { + display: flex; + flex-direction: column; + gap: 0.5rem; + margin: 0.75rem 0; + color: var(--text-normal); + /* Lets us use container queries against the writing pane width + rather than the full viewport — important for split-pane editing. */ + container-type: inline-size; + container-name: chess-block; +} + +.chess-study-title { + font-size: 1.05em; + font-weight: 600; + letter-spacing: 0.01em; +} + +.chess-study-description { + font-size: 0.9em; + color: var(--text-muted); + font-style: italic; +} + +/* --- Game header (PGN headers strip) ----------------------------------- */ + +.chess-study-game-header { + display: flex; + flex-direction: column; + gap: 0.15rem; + padding: 0.4rem 0.6rem; + border-radius: 4px; + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); +} + +.chess-study-players { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 0.5rem; + font-size: 0.95em; + font-weight: 600; +} + +.chess-study-player { + display: inline-flex; + align-items: baseline; + gap: 0.3rem; +} + +.chess-study-player-dot { + display: inline-block; + width: 0.65rem; + height: 0.65rem; + border-radius: 50%; + border: 1px solid var(--background-modifier-border); + transform: translateY(0.05rem); +} + +.chess-study-player-white .chess-study-player-dot { + background: #f4f4f4; +} +.chess-study-player-black .chess-study-player-dot { + background: #2a2a2a; +} + +.chess-study-player-title { + font-size: 0.78em; + font-weight: 700; + color: var(--text-accent); + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.chess-study-player-elo { + font-weight: 400; + font-size: 0.85em; + color: var(--text-muted); +} + +.chess-study-versus { + font-weight: 400; + color: var(--text-muted); + font-size: 0.85em; +} + +.chess-study-result { + margin-left: auto; + font-variant-numeric: tabular-nums; + font-weight: 700; + color: var(--text-normal); +} + +.chess-study-game-meta { + font-size: 0.85em; + color: var(--text-muted); +} + +/* --- Inline category/opening/endgame/WCC picker ------------------------ */ + +.chess-study-inline-picker-wrap { + display: flex; + flex-direction: column; + gap: 0.4rem; + padding: 0.5rem 0.6rem; + border-radius: 4px; + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); +} + +.chess-study-inline-picker { + display: flex; + flex-direction: column; + gap: 0.35rem; +} + +.chess-study-inline-picker-subrows, +.chess-study-inline-picker-gamerow-wrap { + display: flex; + flex-direction: column; + gap: 0.35rem; +} + +.chess-study-inline-picker-subrows:empty, +.chess-study-inline-picker-gamerow-wrap:empty { + display: none; +} + +.chess-study-inline-picker-row { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.chess-study-inline-picker-label { + flex: 0 0 auto; + font-size: 0.85em; + font-weight: 600; + color: var(--text-muted); + min-width: 5.5rem; +} + +.chess-study-inline-picker-select { + flex: 1 1 auto; + min-width: 0; + padding: 0.25rem 0.4rem; + background: var(--background-primary); + color: var(--text-normal); + border: 1px solid var(--background-modifier-border); + border-radius: 4px; + font-size: 0.9em; +} + +/* --- Loading indicator (async game fetch) ------------------------------ */ + +.chess-study-loading { + padding: 0.5rem 0.75rem; + border-radius: 4px; + background: var(--background-secondary); + color: var(--text-muted); + font-style: italic; + font-size: 0.9em; +} + +/* --- Layout ------------------------------------------------------------ */ + +.chess-study-layout { + display: grid; + gap: 1rem; + align-items: start; + outline: none; + border-radius: 4px; +} + +/* Soft focus ring so users know keyboard shortcuts (←/→, Home/End, F) + are active. Only visible when focused via keyboard or after clicking. */ +.chess-study-layout:focus-visible { + box-shadow: 0 0 0 2px var(--interactive-accent); +} + +/* Default (`size: medium`): board capped at 360px, moves to the right. */ +.chess-study-layout.size-medium { + grid-template-columns: minmax(220px, 360px) minmax(180px, 1fr); +} +.chess-study-layout.size-medium .chess-study-board-wrap, +.chess-study-layout.size-medium .chess-study-controls { + max-width: 360px; +} + +.chess-study-layout.size-small { + grid-template-columns: minmax(180px, 240px) minmax(160px, 1fr); +} +.chess-study-layout.size-small .chess-study-board-wrap, +.chess-study-layout.size-small .chess-study-controls { + max-width: 240px; +} + +.chess-study-layout.size-large { + grid-template-columns: minmax(280px, 500px) minmax(200px, 1fr); +} +.chess-study-layout.size-large .chess-study-board-wrap, +.chess-study-layout.size-large .chess-study-controls { + max-width: 500px; +} + +/* `size: full` always stacks (board full-width, moves below). */ +.chess-study-layout.size-full { + grid-template-columns: 1fr; +} +.chess-study-layout.size-full .chess-study-board-wrap, +.chess-study-layout.size-full .chess-study-controls { + max-width: none; +} + +/* No moves panel — board takes the full row regardless of size, but caps + stay in place so a non-`full` board doesn't suddenly stretch. With nothing + to the right of the board, center the board (and its controls) within the + available width instead of letting it left-align awkwardly. */ +.chess-study-layout.no-moves { + grid-template-columns: 1fr; +} +.chess-study-layout.no-moves .chess-study-board-col { + align-items: center; +} +.chess-study-layout.no-moves .chess-study-board-wrap, +.chess-study-layout.no-moves .chess-study-controls { + width: 100%; +} + +/* Container-query collapse: when the writing area is narrow, every size + except the already-stacked `full`/`no-moves` collapses to a single column + (board on top, moves below) — this is the phone/narrow-pane behavior. */ +@container chess-block (max-width: 520px) { + .chess-study-layout.size-small, + .chess-study-layout.size-medium, + .chess-study-layout.size-large { + grid-template-columns: 1fr; + } + .chess-study-layout.size-small .chess-study-board-wrap, + .chess-study-layout.size-small .chess-study-controls, + .chess-study-layout.size-medium .chess-study-board-wrap, + .chess-study-layout.size-medium .chess-study-controls, + .chess-study-layout.size-large .chess-study-board-wrap, + .chess-study-layout.size-large .chess-study-controls { + max-width: none; + } +} + +/* --- Board column ------------------------------------------------------ */ + +.chess-study-board-col { + display: flex; + flex-direction: column; + gap: 0.5rem; + min-width: 0; +} + +.chess-study-board-wrap { + display: block; + width: 100%; + aspect-ratio: 1 / 1; + border-radius: 4px; + overflow: hidden; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); + background: var(--background-secondary); +} + +.chess-study-board { + display: block; + width: 100%; + height: 100%; +} + +/* --- Captured pieces trays + material balance -------------------------- */ + +.chess-study-captured-wrap { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 0.4rem; + min-height: 1.4rem; + padding: 0.1rem 0.15rem; + font-size: 0.85em; +} + +.chess-study-captured-wrap.is-hidden { + display: none; +} + +.chess-study-captured-group { + display: inline-flex; + align-items: center; +} + +/* Stack same-piece copies tightly so a 7-pawn capture doesn't take half + the board's width. The negative margin overlaps neighbors slightly. */ +.chess-study-captured-group .chess-study-captured-piece + .chess-study-captured-piece { + margin-left: -0.55em; +} + +.chess-study-captured-piece { + display: inline-flex; + align-items: center; + justify-content: center; + width: 1.2em; + height: 1.2em; + line-height: 1; +} + +.chess-study-captured-svg { + width: 100%; + height: 100%; + display: block; +} + +.chess-study-captured-glyph { + font-size: 1.2em; + line-height: 1; +} + +.chess-study-captured-adv { + margin-left: 0.5em; + font-weight: 600; + color: var(--text-muted); +} + +/* --- Controls ---------------------------------------------------------- */ + +.chess-study-controls { + display: flex; + align-items: center; + gap: 0.25rem; +} + +.chess-study-control { + display: inline-flex; + align-items: center; + justify-content: center; + width: 2rem; + height: 2rem; + padding: 0; + border-radius: 4px; + background: var(--background-secondary); + color: var(--text-normal); + border: 1px solid var(--background-modifier-border); + cursor: pointer; +} + +.chess-study-control:hover:not([disabled]) { + background: var(--background-modifier-hover); +} + +.chess-study-control[disabled] { + opacity: 0.4; + cursor: not-allowed; +} + +.chess-study-control-spacer { + flex: 1; +} + +/* --- Move list --------------------------------------------------------- */ + +.chess-study-side-col { + min-width: 0; +} + +.chess-study-moves-wrap { + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); + border-radius: 4px; + padding: 0.5rem 0.75rem; + max-height: 360px; + overflow-y: auto; +} + +.chess-study-moves { + display: block; + font-family: var(--font-monospace, monospace); + font-size: 0.9em; + line-height: 1.6; +} + +.chess-study-move-row { + display: grid; + grid-template-columns: 2rem 1fr 1fr; + gap: 0.25rem; + align-items: baseline; +} + +.chess-study-moves-empty { + margin-top: 0.25rem; + padding: 0.4rem 0.5rem; + color: var(--text-muted); + font-style: italic; + font-size: 0.85em; +} + +.chess-study-move-row.header { + font-size: 0.75em; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--text-muted); + border-bottom: 1px solid var(--background-modifier-border); + margin-bottom: 0.25rem; + padding-bottom: 0.15rem; +} + +.chess-study-move-row.header .chess-study-move-cell { + cursor: default; + background: transparent; +} + +.chess-study-move-num { + color: var(--text-muted); + text-align: right; + padding-right: 0.25rem; + font-variant-numeric: tabular-nums; +} + +.chess-study-move-cell { + cursor: pointer; + padding: 0 0.35rem; + border-radius: 3px; + transition: background-color 0.1s ease; + min-height: 1.4em; +} + +.chess-study-move-cell:hover { + background: var(--background-modifier-hover); +} + +.chess-study-move-cell.active { + background: var(--interactive-accent); + color: var(--text-on-accent); + font-weight: 600; +} + +.chess-study-move-cell.empty { + cursor: default; + color: transparent; + pointer-events: none; +} + +/* --- Errors ------------------------------------------------------------ */ + +.chess-study-error { + margin-top: 0.5rem; + padding: 0.5rem 0.75rem; + border-radius: 4px; + background: var(--background-modifier-error); + color: var(--text-error); + font-family: var(--font-monospace, monospace); + font-size: 0.85em; +} + +/* --- Lines (opening explorer) panel ----------------------------------- */ + +.chess-study-lines-wrap { + margin-top: 0.5rem; + padding: 0.75rem 1rem; + border-radius: 6px; + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); +} + +.chess-study-lines-header { + display: flex; + align-items: baseline; + gap: 0.5rem; + margin-bottom: 0.5rem; +} + +.chess-study-lines-title { + font-weight: 700; + font-size: 1.1em; + color: var(--text-accent); + letter-spacing: 0.02em; +} + +.chess-study-lines-meta { + font-size: 0.8em; + color: var(--text-muted); + margin-bottom: 0.5rem; +} + +.chess-study-lines-status { + font-size: 0.9em; + color: var(--text-muted); + font-style: italic; + padding: 0.25rem 0; +} + +.chess-study-lines-status.error { + color: var(--text-error); + font-style: normal; +} + +.chess-study-lines-table { + display: flex; + flex-direction: column; + gap: 0.3rem; +} + +.chess-study-lines-row { + display: grid; + grid-template-columns: 5rem 1fr; + align-items: center; + gap: 0.75rem; +} + +.chess-study-lines-label { + font-family: var(--font-monospace, monospace); + font-size: 0.95em; + font-weight: 600; + color: var(--text-accent); + text-align: right; + font-variant-numeric: tabular-nums; +} + +.chess-study-lines-bar { + display: flex; + width: 100%; + height: 1.6rem; + border-radius: 3px; + overflow: hidden; + background: var(--background-primary); +} + +.chess-study-lines-seg { + display: flex; + align-items: center; + justify-content: center; + min-width: 0; + overflow: hidden; + transition: width 0.15s ease; +} + +.chess-study-lines-seg.seg-white { + background: #2e8b3a; + color: #ffffff; +} + +.chess-study-lines-seg.seg-draws { + background: #a8a8a8; + color: #1a1a1a; +} + +.chess-study-lines-seg.seg-black { + background: #d6383b; + color: #ffffff; +} + +.chess-study-lines-seg-label { + font-size: 0.78em; + font-weight: 600; + white-space: nowrap; + padding: 0 0.25rem; +} + +/* --- Openings quiz modal ---------------------------------------------- */ + +.chess-study-quiz-modal { + max-width: 460px; +} + +.chess-study-quiz-help { + font-size: 0.9em; + color: var(--text-muted); + margin-bottom: 0.8rem; +} + +.chess-study-quiz-score { + display: flex; + align-items: center; + gap: 0.25rem; + font-weight: 600; + margin-bottom: 0.6rem; +} + +.chess-study-quiz-streak { + color: var(--text-muted); + font-weight: 400; +} + +.chess-study-quiz-board { + width: 320px; + max-width: 100%; + aspect-ratio: 1 / 1; + margin: 0 auto 0.75rem; + border-radius: 4px; + overflow: hidden; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15); + background: var(--background-secondary); +} + +.chess-study-quiz-board svg { + display: block; + width: 100%; + height: 100%; +} + +.chess-study-quiz-prompt { + font-size: 0.95em; + margin-bottom: 0.5rem; + text-align: center; +} + +.chess-study-quiz-side { + font-weight: 600; +} + +.chess-study-quiz-mystery { + color: var(--text-muted); +} + +.chess-study-quiz-input-row { + display: flex; + gap: 0.4rem; + align-items: center; + margin-bottom: 0.6rem; +} + +.chess-study-quiz-input-row .is-hidden { + display: none; +} + +.chess-study-quiz-input { + flex: 1; + padding: 0.4rem 0.6rem; + font-family: var(--font-monospace, monospace); + font-size: 0.95em; + border-radius: 4px; + border: 1px solid var(--background-modifier-border); + background: var(--background-primary); + color: var(--text-normal); +} + +.chess-study-quiz-input:focus { + outline: 2px solid var(--interactive-accent); + outline-offset: -1px; +} + +.chess-study-quiz-feedback { + min-height: 1.4em; + font-weight: 500; +} + +.chess-study-quiz-feedback.is-correct { + color: var(--text-success, #2e8b3a); +} + +.chess-study-quiz-feedback.is-incorrect { + color: var(--text-error, #d6383b); +} + +.chess-study-quiz-reveal { + font-size: 0.85em; + color: var(--text-muted); + margin-top: 0.2rem; +} + +/* --- Engine analysis panel + eval graph -------------------------------- */ + +.chess-study-analysis-wrap { + margin-top: 0.5rem; +} + +.chess-study-analysis { + display: grid; + grid-template-columns: 24px 1fr; + gap: 0.5rem; + padding: 0.4rem; + border-radius: 4px; + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); +} + +.chess-study-eval-bar { + position: relative; + width: 24px; + height: 100%; + min-height: 80px; + border-radius: 3px; + overflow: hidden; + background: #2a2a2a; +} + +.chess-study-eval-fill { + position: absolute; + left: 0; + right: 0; +} + +.chess-study-eval-fill.is-white { + bottom: 0; + background: #f1f1f1; +} + +.chess-study-eval-fill.is-black { + top: 0; + background: #2a2a2a; +} + +.chess-study-eval-label { + position: absolute; + left: 0; + right: 0; + bottom: 50%; + transform: translateY(50%); + text-align: center; + font-size: 0.7em; + font-weight: 600; + color: var(--text-on-accent, #fff); + mix-blend-mode: difference; + pointer-events: none; +} + +.chess-study-engine-lines { + display: flex; + flex-direction: column; + gap: 0.2rem; + min-width: 0; + font-family: var(--font-monospace, monospace); + font-size: 0.85em; +} + +.chess-study-engine-loading, +.chess-study-engine-empty, +.chess-study-engine-error { + color: var(--text-muted); + font-style: italic; +} + +.chess-study-engine-error { + color: var(--text-error, #d6383b); +} + +.chess-study-engine-line { + display: grid; + grid-template-columns: 4ch 3ch 1fr; + gap: 0.4rem; + align-items: baseline; + min-width: 0; +} + +.chess-study-engine-eval { + font-weight: 600; + color: var(--text-accent); + text-align: right; +} + +.chess-study-engine-depth { + color: var(--text-muted); + font-size: 0.85em; +} + +.chess-study-engine-pv { + color: var(--text-normal); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +/* Eval graph */ + +.chess-study-eval-graph-wrap { + margin-top: 0.5rem; +} + +.chess-study-eval-graph { + display: flex; + flex-direction: column; + gap: 0.3rem; + padding: 0.4rem; + border-radius: 4px; + background: var(--background-secondary); + border: 1px solid var(--background-modifier-border); +} + +.chess-study-eval-graph-header { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.chess-study-eval-graph-title { + font-weight: 600; + font-size: 0.9em; +} + +.chess-study-eval-graph-btn { + padding: 0.2rem 0.6rem; + font-size: 0.85em; + border-radius: 3px; + border: 1px solid var(--background-modifier-border); + background: var(--interactive-normal); + color: var(--text-normal); + cursor: pointer; +} + +.chess-study-eval-graph-btn:hover:not([disabled]) { + background: var(--interactive-hover); +} + +.chess-study-eval-graph-btn[disabled] { + opacity: 0.6; + cursor: progress; +} + +.chess-study-eval-graph-status { + font-size: 0.8em; + color: var(--text-muted); +} + +.chess-study-eval-graph-canvas { + width: 100%; + height: 80px; +} + +.chess-study-eval-graph-svg { + width: 100%; + height: 100%; + display: block; + cursor: crosshair; + border-radius: 3px; +} + +/* --- Play vs Stockfish ------------------------------------------------- */ + +.chess-study-play-status { + display: flex; + align-items: center; + justify-content: center; + min-height: 1.5em; + padding: 0.2rem 0; + font-size: 0.95em; +} + +.chess-study-play-status-text { + font-weight: 500; + color: var(--text-normal); +} + +.chess-study-play-status-text.is-thinking { + color: var(--text-muted); + font-style: italic; +} + +.chess-study-play-status-text.is-gameover { + color: var(--text-accent); + font-weight: 600; +} + +.chess-study-play-controls { + gap: 0.4rem; +} + +/* Make the board cursor signal that it's clickable in play mode. */ +.chess-study-board.is-clickable { + cursor: pointer; +} + +.chess-study-board-target { + cursor: pointer; +} + +/* --- Promotion picker modal ------------------------------------------- */ + +.chess-study-promotion-modal .modal-content { + min-width: 0; +} + +.chess-study-promotion-row { + display: flex; + gap: 0.5rem; + justify-content: center; + padding: 0.5rem 0; +} + +.chess-study-promotion-choice { + display: flex; + align-items: center; + justify-content: center; + width: 64px; + height: 64px; + padding: 4px; + border-radius: 6px; + border: 1px solid var(--background-modifier-border); + background: var(--background-secondary); + cursor: pointer; +} + +.chess-study-promotion-choice:hover { + background: var(--interactive-hover); +} + +.chess-study-promotion-svg { + width: 100%; + height: 100%; + display: block; +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..3c24a15 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "baseUrl": "src", + "inlineSourceMap": true, + "inlineSources": true, + "module": "ESNext", + "target": "ES6", + "allowJs": true, + "noImplicitAny": true, + "noImplicitThis": true, + "noImplicitReturns": true, + "moduleResolution": "node", + "importHelpers": true, + "noUncheckedIndexedAccess": true, + "isolatedModules": true, + "strictNullChecks": true, + "strictBindCallApply": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "useUnknownInCatchVariables": true, + "lib": [ + "DOM", + "ES5", + "ES6", + "ES7" + ] + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/version-bump.mjs b/version-bump.mjs new file mode 100644 index 0000000..55d631f --- /dev/null +++ b/version-bump.mjs @@ -0,0 +1,17 @@ +import { readFileSync, writeFileSync } from "fs"; + +const targetVersion = process.env.npm_package_version; + +// read minAppVersion from manifest.json and bump version to target version +const manifest = JSON.parse(readFileSync("manifest.json", "utf8")); +const { minAppVersion } = manifest; +manifest.version = targetVersion; +writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t")); + +// update versions.json with target version and minAppVersion from manifest.json +// but only if the target version is not already in versions.json +const versions = JSON.parse(readFileSync('versions.json', 'utf8')); +if (!Object.values(versions).includes(minAppVersion)) { + versions[targetVersion] = minAppVersion; + writeFileSync('versions.json', JSON.stringify(versions, null, '\t')); +} diff --git a/versions.json b/versions.json new file mode 100644 index 0000000..ec9428d --- /dev/null +++ b/versions.json @@ -0,0 +1,4 @@ +{ + "0.1.0": "1.4.0", + "1.0.0": "1.12.0" +}