From f6abf808dcf2eae402b9195c9d88c53b7444f66b Mon Sep 17 00:00:00 2001 From: Evan Feenstra Date: Wed, 25 Mar 2020 16:17:45 -0700 Subject: [PATCH] sphinx-relay --- .babelrc | 6 + .gitignore | 20 + Dockerfile | 16 + LICENSE | 21 + README.md | 42 + api/controllers/chats.ts | 318 + api/controllers/contacts.ts | 240 + api/controllers/details.ts | 123 + api/controllers/index.ts | 139 + api/controllers/invites.ts | 118 + api/controllers/invoices.ts | 273 + api/controllers/media.ts | 514 + api/controllers/messages.ts | 277 + api/controllers/payment.ts | 199 + api/controllers/schemas.ts | 29 + api/controllers/subscriptions.ts | 387 + api/controllers/uploads.ts | 60 + api/crypto/rsa.ts | 63 + api/grpc/index.ts | 144 + api/helpers.ts | 247 + api/hub.ts | 219 + api/models/index.ts | 16 + api/models/ts/chat.ts | 48 + api/models/ts/contact.ts | 57 + api/models/ts/invite.ts | 35 + api/models/ts/mediaKey.ts | 39 + api/models/ts/message.ts | 89 + api/models/ts/subscription.ts | 49 + api/utils/case.ts | 27 + api/utils/cron.ts | 49 + api/utils/decode/index.js | 312 + api/utils/gitinfo.ts | 49 + api/utils/json.ts | 53 + api/utils/ldat.ts | 153 + api/utils/lightning.ts | 321 + api/utils/lock.ts | 5 + api/utils/logger.ts | 28 + api/utils/msg.ts | 79 + api/utils/nodeinfo.ts | 84 + api/utils/res.ts | 19 + api/utils/setup.ts | 86 + api/utils/socket.ts | 33 + api/utils/zbase32/index.ts | 12 + api/utils/zbase32/tv42_zbase32_gopherjs.js | 23035 ++++++++ app.ts | 114 + config/app.json | 32 + config/config.json | 18 + config/constants.json | 52 + dist/api/controllers/chats.js | 308 + dist/api/controllers/chats.js.map | 1 + dist/api/controllers/contacts.js | 205 + dist/api/controllers/contacts.js.map | 1 + dist/api/controllers/details.js | 133 + dist/api/controllers/details.js.map | 1 + dist/api/controllers/index.js | 139 + dist/api/controllers/index.js.map | 1 + dist/api/controllers/invites.js | 101 + dist/api/controllers/invites.js.map | 1 + dist/api/controllers/invoices.js | 241 + dist/api/controllers/invoices.js.map | 1 + dist/api/controllers/media.js | 481 + dist/api/controllers/media.js.map | 1 + dist/api/controllers/messages.js | 239 + dist/api/controllers/messages.js.map | 1 + dist/api/controllers/payment.js | 178 + dist/api/controllers/payment.js.map | 1 + dist/api/controllers/schemas.js | 25 + dist/api/controllers/schemas.js.map | 1 + dist/api/controllers/subscriptions.js | 402 + dist/api/controllers/subscriptions.js.map | 1 + dist/api/controllers/uploads.js | 64 + dist/api/controllers/uploads.js.map | 1 + dist/api/crypto/rsa.js | 65 + dist/api/crypto/rsa.js.map | 1 + dist/api/grpc/index.js | 150 + dist/api/grpc/index.js.map | 1 + dist/api/helpers.js | 240 + dist/api/helpers.js.map | 1 + dist/api/hub.js | 201 + dist/api/hub.js.map | 1 + dist/api/models/index.js | 10 + dist/api/models/index.js.map | 1 + dist/api/models/ts/chat.js | 72 + dist/api/models/ts/chat.js.map | 1 + dist/api/models/ts/contact.js | 84 + dist/api/models/ts/contact.js.map | 1 + dist/api/models/ts/invite.js | 56 + dist/api/models/ts/invite.js.map | 1 + dist/api/models/ts/mediaKey.js | 59 + dist/api/models/ts/mediaKey.js.map | 1 + dist/api/models/ts/message.js | 128 + dist/api/models/ts/message.js.map | 1 + dist/api/models/ts/subscription.js | 76 + dist/api/models/ts/subscription.js.map | 1 + dist/api/utils/case.js | 28 + dist/api/utils/case.js.map | 1 + dist/api/utils/cron.js | 45 + dist/api/utils/cron.js.map | 1 + dist/api/utils/decode/index.js | 294 + dist/api/utils/decode/index.js.map | 1 + dist/api/utils/gitinfo.js | 52 + dist/api/utils/gitinfo.js.map | 1 + dist/api/utils/json.js | 36 + dist/api/utils/json.js.map | 1 + dist/api/utils/ldat.js | 156 + dist/api/utils/ldat.js.map | 1 + dist/api/utils/lightning.js | 334 + dist/api/utils/lightning.js.map | 1 + dist/api/utils/lock.js | 6 + dist/api/utils/lock.js.map | 1 + dist/api/utils/logger.js | 25 + dist/api/utils/logger.js.map | 1 + dist/api/utils/msg.js | 80 + dist/api/utils/msg.js.map | 1 + dist/api/utils/nodeinfo.js | 93 + dist/api/utils/nodeinfo.js.map | 1 + dist/api/utils/res.js | 21 + dist/api/utils/res.js.map | 1 + dist/api/utils/setup.js | 96 + dist/api/utils/setup.js.map | 1 + dist/api/utils/socket.js | 26 + dist/api/utils/socket.js.map | 1 + dist/api/utils/zbase32/index.js | 12 + dist/api/utils/zbase32/index.js.map | 1 + .../utils/zbase32/tv42_zbase32_gopherjs.js | 47246 ++++++++++++++++ .../zbase32/tv42_zbase32_gopherjs.js.map | 1 + dist/app.js | 121 + dist/app.js.map | 1 + dist/config/constants.json | 52 + dist/public/index.html | 11 + dist/public/js/app.js | 32444 +++++++++++ dist/public/relay.jpg | Bin 0 -> 263031 bytes dist/public/semantic.min.css | 372 + dist/public/uploads/.gitkeep | 0 dist/public/uploads/wolf.jpg | Bin 0 -> 209392 bytes frontend/api.js | 92 + frontend/components/Channels/index.jsx | 36 + frontend/components/Contacts/ContactForm.jsx | 44 + frontend/components/Contacts/ContactRow.jsx | 89 + frontend/components/Contacts/index.jsx | 88 + frontend/components/Contacts/styles.js | 32 + frontend/components/Login.jsx | 45 + frontend/components/Media/fake.js | 12 + frontend/components/Media/file.jsx | 36 + frontend/components/Media/index.jsx | 179 + frontend/components/Messages/index.jsx | 79 + frontend/components/Root.jsx | 147 + .../Subscriptions/CreateSubscription.jsx | 201 + frontend/components/Subscriptions/index.jsx | 53 + frontend/components/context.jsx | 3 + frontend/cookies.js | 28 + frontend/index.jsx | 9 + package-lock.json | 11417 ++++ package.json | 86 + public/index.html | 11 + public/js/app.js | 32444 +++++++++++ public/relay.jpg | Bin 0 -> 263031 bytes public/semantic.min.css | 372 + public/uploads/.gitkeep | 0 rpc.proto | 3077 + tsconfig.json | 28 + webpack.config.js | 25 + yarn.lock | 8275 +++ 163 files changed, 170504 insertions(+) create mode 100644 .babelrc create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 README.md create mode 100644 api/controllers/chats.ts create mode 100644 api/controllers/contacts.ts create mode 100644 api/controllers/details.ts create mode 100644 api/controllers/index.ts create mode 100644 api/controllers/invites.ts create mode 100644 api/controllers/invoices.ts create mode 100644 api/controllers/media.ts create mode 100644 api/controllers/messages.ts create mode 100644 api/controllers/payment.ts create mode 100644 api/controllers/schemas.ts create mode 100644 api/controllers/subscriptions.ts create mode 100644 api/controllers/uploads.ts create mode 100644 api/crypto/rsa.ts create mode 100644 api/grpc/index.ts create mode 100644 api/helpers.ts create mode 100644 api/hub.ts create mode 100644 api/models/index.ts create mode 100644 api/models/ts/chat.ts create mode 100644 api/models/ts/contact.ts create mode 100644 api/models/ts/invite.ts create mode 100644 api/models/ts/mediaKey.ts create mode 100644 api/models/ts/message.ts create mode 100644 api/models/ts/subscription.ts create mode 100644 api/utils/case.ts create mode 100644 api/utils/cron.ts create mode 100644 api/utils/decode/index.js create mode 100644 api/utils/gitinfo.ts create mode 100644 api/utils/json.ts create mode 100644 api/utils/ldat.ts create mode 100644 api/utils/lightning.ts create mode 100644 api/utils/lock.ts create mode 100644 api/utils/logger.ts create mode 100644 api/utils/msg.ts create mode 100644 api/utils/nodeinfo.ts create mode 100644 api/utils/res.ts create mode 100644 api/utils/setup.ts create mode 100644 api/utils/socket.ts create mode 100644 api/utils/zbase32/index.ts create mode 100644 api/utils/zbase32/tv42_zbase32_gopherjs.js create mode 100644 app.ts create mode 100644 config/app.json create mode 100644 config/config.json create mode 100644 config/constants.json create mode 100644 dist/api/controllers/chats.js create mode 100644 dist/api/controllers/chats.js.map create mode 100644 dist/api/controllers/contacts.js create mode 100644 dist/api/controllers/contacts.js.map create mode 100644 dist/api/controllers/details.js create mode 100644 dist/api/controllers/details.js.map create mode 100644 dist/api/controllers/index.js create mode 100644 dist/api/controllers/index.js.map create mode 100644 dist/api/controllers/invites.js create mode 100644 dist/api/controllers/invites.js.map create mode 100644 dist/api/controllers/invoices.js create mode 100644 dist/api/controllers/invoices.js.map create mode 100644 dist/api/controllers/media.js create mode 100644 dist/api/controllers/media.js.map create mode 100644 dist/api/controllers/messages.js create mode 100644 dist/api/controllers/messages.js.map create mode 100644 dist/api/controllers/payment.js create mode 100644 dist/api/controllers/payment.js.map create mode 100644 dist/api/controllers/schemas.js create mode 100644 dist/api/controllers/schemas.js.map create mode 100644 dist/api/controllers/subscriptions.js create mode 100644 dist/api/controllers/subscriptions.js.map create mode 100644 dist/api/controllers/uploads.js create mode 100644 dist/api/controllers/uploads.js.map create mode 100644 dist/api/crypto/rsa.js create mode 100644 dist/api/crypto/rsa.js.map create mode 100644 dist/api/grpc/index.js create mode 100644 dist/api/grpc/index.js.map create mode 100644 dist/api/helpers.js create mode 100644 dist/api/helpers.js.map create mode 100644 dist/api/hub.js create mode 100644 dist/api/hub.js.map create mode 100644 dist/api/models/index.js create mode 100644 dist/api/models/index.js.map create mode 100644 dist/api/models/ts/chat.js create mode 100644 dist/api/models/ts/chat.js.map create mode 100644 dist/api/models/ts/contact.js create mode 100644 dist/api/models/ts/contact.js.map create mode 100644 dist/api/models/ts/invite.js create mode 100644 dist/api/models/ts/invite.js.map create mode 100644 dist/api/models/ts/mediaKey.js create mode 100644 dist/api/models/ts/mediaKey.js.map create mode 100644 dist/api/models/ts/message.js create mode 100644 dist/api/models/ts/message.js.map create mode 100644 dist/api/models/ts/subscription.js create mode 100644 dist/api/models/ts/subscription.js.map create mode 100644 dist/api/utils/case.js create mode 100644 dist/api/utils/case.js.map create mode 100644 dist/api/utils/cron.js create mode 100644 dist/api/utils/cron.js.map create mode 100644 dist/api/utils/decode/index.js create mode 100644 dist/api/utils/decode/index.js.map create mode 100644 dist/api/utils/gitinfo.js create mode 100644 dist/api/utils/gitinfo.js.map create mode 100644 dist/api/utils/json.js create mode 100644 dist/api/utils/json.js.map create mode 100644 dist/api/utils/ldat.js create mode 100644 dist/api/utils/ldat.js.map create mode 100644 dist/api/utils/lightning.js create mode 100644 dist/api/utils/lightning.js.map create mode 100644 dist/api/utils/lock.js create mode 100644 dist/api/utils/lock.js.map create mode 100644 dist/api/utils/logger.js create mode 100644 dist/api/utils/logger.js.map create mode 100644 dist/api/utils/msg.js create mode 100644 dist/api/utils/msg.js.map create mode 100644 dist/api/utils/nodeinfo.js create mode 100644 dist/api/utils/nodeinfo.js.map create mode 100644 dist/api/utils/res.js create mode 100644 dist/api/utils/res.js.map create mode 100644 dist/api/utils/setup.js create mode 100644 dist/api/utils/setup.js.map create mode 100644 dist/api/utils/socket.js create mode 100644 dist/api/utils/socket.js.map create mode 100644 dist/api/utils/zbase32/index.js create mode 100644 dist/api/utils/zbase32/index.js.map create mode 100644 dist/api/utils/zbase32/tv42_zbase32_gopherjs.js create mode 100644 dist/api/utils/zbase32/tv42_zbase32_gopherjs.js.map create mode 100644 dist/app.js create mode 100644 dist/app.js.map create mode 100644 dist/config/constants.json create mode 100644 dist/public/index.html create mode 100644 dist/public/js/app.js create mode 100644 dist/public/relay.jpg create mode 100644 dist/public/semantic.min.css create mode 100644 dist/public/uploads/.gitkeep create mode 100644 dist/public/uploads/wolf.jpg create mode 100644 frontend/api.js create mode 100644 frontend/components/Channels/index.jsx create mode 100644 frontend/components/Contacts/ContactForm.jsx create mode 100644 frontend/components/Contacts/ContactRow.jsx create mode 100644 frontend/components/Contacts/index.jsx create mode 100644 frontend/components/Contacts/styles.js create mode 100644 frontend/components/Login.jsx create mode 100644 frontend/components/Media/fake.js create mode 100644 frontend/components/Media/file.jsx create mode 100644 frontend/components/Media/index.jsx create mode 100644 frontend/components/Messages/index.jsx create mode 100644 frontend/components/Root.jsx create mode 100644 frontend/components/Subscriptions/CreateSubscription.jsx create mode 100644 frontend/components/Subscriptions/index.jsx create mode 100644 frontend/components/context.jsx create mode 100644 frontend/cookies.js create mode 100644 frontend/index.jsx create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/index.html create mode 100644 public/js/app.js create mode 100644 public/relay.jpg create mode 100644 public/semantic.min.css create mode 100644 public/uploads/.gitkeep create mode 100644 rpc.proto create mode 100644 tsconfig.json create mode 100644 webpack.config.js create mode 100644 yarn.lock diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..fd6b16f --- /dev/null +++ b/.babelrc @@ -0,0 +1,6 @@ +{ + "presets": [ + "@babel/preset-env", + "@babel/preset-react" + ] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f124a61 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +dist/config/app.json +dist/config/config.json + +node_modules/* + +# Elastic Beanstalk Files +.elasticbeanstalk/* +!.elasticbeanstalk/*.cfg.yml +!.elasticbeanstalk/*.global.yml + +.pgpass +.vscode +.DS_Store + +public/uploads/* +!public/uploads/.gitkeep + +sqlite/sphinx.db +sqlite/sphinxpg.sql +sqlite/sphinxlite.sql \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6b971c2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:8 +RUN apt-get update +RUN apt-get install -f sqlite3 +USER node +ENV NPM_CONFIG_PREFIX=/home/node/.npm-global +ENV PATH=$PATH:/home/node/.npm-global/bin +WORKDIR /home/node +COPY package.json . +RUN npm install +RUN npm install -g nodemon --save-dev +RUN npm install -g express --save-dev +RUN npm install -g webpack webpack-cli --save-dev +RUN npm install -g sqlite3 --build-from-source --save-dev +RUN npm install -g --save-dev sequelize +RUN npm rebuild +COPY . . \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..baf31a6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 stakwork + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..12b9ef2 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# Relay + +**Relay** is a Node.js wrapper around [LND](https://github.com/lightningnetwork/lnd), handling connectivity and storage for [**Sphinx**](https://github.com/stakwork/sphinx). Communication between Relay nodes takes place entirely on the Lightning Network, so is decentralized, untraceable, and encrypted. Message content is also end-to-end encrypted using client public keys, on the **Sphinx** app itself. + +![Relay](https://github.com/stakwork/sphinx-node/raw/master/public/relay.jpg) + +Relay stores: +- Aliases +- Messages +- Recurring payment configurations +- Invites (so you can add your friends) +- Media Keys: keys for decrypting media files, asymetrically encrypted for each contact in a chat + +# run your own sphinx node + +You can run your own Sphinx node in order to have full ownership over your communication! + +### download + +`git clone https://github.com/stakwork/sphinx-node` + +`cd sphinx-node` + +`npm install` + +### dependencies + +sqlite3: `apt-get install sqlite3` + +### configure + +Edit the "production" section of config/app.json: + - Change `macaroon_location` to the location of your LND admin macaroon + - Change `tls_location` to the location of your LND cert + +### run + +`npm run prod` + +# Roadmap + +- linking recurring payments to files, to enable use cases such as subscribing to podcasts with BTC! \ No newline at end of file diff --git a/api/controllers/chats.ts b/api/controllers/chats.ts new file mode 100644 index 0000000..c8fa3e3 --- /dev/null +++ b/api/controllers/chats.ts @@ -0,0 +1,318 @@ +import { models } from '../models' +import * as jsonUtils from '../utils/json' +import { success, failure } from '../utils/res' +import * as helpers from '../helpers' +import * as socket from '../utils/socket' +import { sendNotification } from '../hub' +import * as md5 from 'md5' + +const constants = require(__dirname + '/../../config/constants.json') + +async function getChats(req, res) { + const chats = await models.Chat.findAll({ where:{deleted:false}, raw: true }) + const c = chats.map(chat => jsonUtils.chatToJson(chat)); + success(res, c) +} + +async function mute(req, res) { + const chatId = req.params['chat_id'] + const mute = req.params['mute_unmute'] + + if (!["mute", "unmute"].includes(mute)) { + return failure(res, "invalid option for mute") + } + + const chat = await models.Chat.findOne({ where: { id: chatId } }) + + if (!chat) { + return failure(res, 'chat not found') + } + + chat.update({ isMuted: (mute == "mute") }) + + success(res, jsonUtils.chatToJson(chat)) +} + +async function createGroupChat(req, res) { + const { + name, + contact_ids, + } = req.body + + const members: { [k: string]: {[k:string]:string} } = {} //{pubkey:{key,alias}, ...} + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + + members[owner.publicKey] = { + key:owner.contactKey, alias:owner.alias + } + await asyncForEach(contact_ids, async cid => { + const contact = await models.Contact.findOne({ where: { id: cid } }) + members[contact.publicKey] = { + key: contact.contactKey, + alias: contact.alias||'' + } + }) + + const chatParams = createGroupChatParams(owner, contact_ids, members, name) + + helpers.sendMessage({ + chat: { ...chatParams, members }, + sender: owner, + type: constants.message_types.group_create, + message: {}, + failure: function (e) { + failure(res, e) + }, + success: async function () { + const chat = await models.Chat.create(chatParams) + success(res, jsonUtils.chatToJson(chat)) + } + }) +} + +async function addGroupMembers(req, res) { + const { + contact_ids, + } = req.body + const { id } = req.params + + const members: { [k: string]: {[k:string]:string} } = {} //{pubkey:{key,alias}, ...} + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + let chat = await models.Chat.findOne({ where: { id } }) + + const contactIds = JSON.parse(chat.contactIds || '[]') + // for all members (existing and new) + members[owner.publicKey] = {key:owner.contactKey, alias:owner.alias} + const allContactIds = contactIds.concat(contact_ids) + await asyncForEach(allContactIds, async cid => { + const contact = await models.Contact.findOne({ where: { id: cid } }) + if(contact) { + members[contact.publicKey] = { + key: contact.contactKey, + alias: contact.alias + } + } + }) + + success(res, jsonUtils.chatToJson(chat)) + + helpers.sendMessage({ // send ONLY to new members + chat: { ...chat.dataValues, contactIds:contact_ids, members }, + sender: owner, + type: constants.message_types.group_invite, + message: {} + }) +} + +const deleteChat = async (req, res) => { + const { id } = req.params + + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + const chat = await models.Chat.findOne({ where: { id } }) + helpers.sendMessage({ + chat, + sender: owner, + message: {}, + type: constants.message_types.group_leave, + }) + + await chat.update({ + deleted: true, + uuid:'', + contactIds:'[]', + name:'' + }) + await models.Message.destroy({ where: { chatId: id } }) + + success(res, { chat_id: id }) +} + +async function receiveGroupLeave(payload) { + console.log('=> receiveGroupLeave') + const { sender_pub_key, chat_uuid } = await helpers.parseReceiveParams(payload) + + const chat = await models.Chat.findOne({ where: { uuid: chat_uuid } }) + if (!chat) return + + const sender = await models.Contact.findOne({ where: { publicKey: sender_pub_key } }) + if (!sender) return + + const oldContactIds = JSON.parse(chat.contactIds || '[]') + const contactIds = oldContactIds.filter(cid => cid !== sender.id) + await chat.update({ contactIds: JSON.stringify(contactIds) }) + + var date = new Date(); + date.setMilliseconds(0) + const msg = { + chatId: chat.id, + type: constants.message_types.group_leave, + sender: sender.id, + date: date, + messageContent: '', + remoteMessageContent: '', + status: constants.statuses.confirmed, + createdAt: date, + updatedAt: date + } + const message = await models.Message.create(msg) + + socket.sendJson({ + type: 'group_leave', + response: { + contact: jsonUtils.contactToJson(sender), + chat: jsonUtils.chatToJson(chat), + message: jsonUtils.messageToJson(message, null) + } + }) +} + +async function receiveGroupJoin(payload) { + console.log('=> receiveGroupJoin') + const { sender_pub_key, chat_uuid, chat_members } = await helpers.parseReceiveParams(payload) + + const chat = await models.Chat.findOne({ where: { uuid: chat_uuid } }) + if (!chat) return + + let theSender: any = null + const sender = await models.Contact.findOne({ where: { publicKey: sender_pub_key } }) + const contactIds = JSON.parse(chat.contactIds || '[]') + if (sender) { + theSender = sender // might already include?? + if(!contactIds.includes(sender.id)) contactIds.push(sender.id) + } else { + const member = chat_members[sender_pub_key] + if(member && member.key) { + const createdContact = await models.Contact.create({ + publicKey: sender_pub_key, + contactKey: member.key, + alias: member.alias||'Unknown', + status: 1 + }) + theSender = createdContact + contactIds.push(createdContact.id) + } + } + await chat.update({ contactIds: JSON.stringify(contactIds) }) + + var date = new Date(); + date.setMilliseconds(0) + const msg = { + chatId: chat.id, + type: constants.message_types.group_join, + sender: sender.id, + date: date, + messageContent: '', + remoteMessageContent: '', + status: constants.statuses.confirmed, + createdAt: date, + updatedAt: date + } + const message = await models.Message.create(msg) + + socket.sendJson({ + type: 'group_join', + response: { + contact: jsonUtils.contactToJson(theSender), + chat: jsonUtils.chatToJson(chat), + message: jsonUtils.messageToJson(message, null) + } + }) +} + +async function receiveGroupCreateOrInvite(payload) { + const { chat_members, chat_name, chat_uuid } = await helpers.parseReceiveParams(payload) + + const contactIds: number[] = [] + const newContacts: any[] = [] + for (let [pubkey, member] of Object.entries(chat_members)) { + const contact = await models.Contact.findOne({ where: { publicKey: pubkey } }) + if (!contact && member && member.key) { + const createdContact = await models.Contact.create({ + publicKey: pubkey, + contactKey: member.key, + alias: member.alias||'Unknown', + status: 1 + }) + contactIds.push(createdContact.id) + newContacts.push(createdContact.dataValues) + } else { + contactIds.push(contact.id) + } + } + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + if(!contactIds.includes(owner.id)) contactIds.push(owner.id) + // make chat + let date = new Date(); + date.setMilliseconds(0) + const chat = await models.Chat.create({ + uuid: chat_uuid, + contactIds: JSON.stringify(contactIds), + createdAt: date, + updatedAt: date, + name: chat_name, + type: constants.chat_types.group + }) + + socket.sendJson({ + type: 'group_create', + response: jsonUtils.messageToJson({ newContacts }, chat) + }) + + sendNotification(chat, chat_name, 'group') + + if (payload.type === constants.message_types.group_invite) { + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + helpers.sendMessage({ + chat: { + ...chat.dataValues, members: { + [owner.publicKey]: { + key: owner.contactKey, + alias: owner.alias||'' + } + } + }, + sender: owner, + message: {}, + type: constants.message_types.group_join, + }) + } +} + +function createGroupChatParams(owner, contactIds, members, name) { + let date = new Date(); + date.setMilliseconds(0) + if (!(owner && members && contactIds && Array.isArray(contactIds))) { + return + } + + const pubkeys: string[] = [] + for (let pubkey of Object.keys(members)) { // just the key + pubkeys.push(String(pubkey)) + } + if (!(pubkeys && pubkeys.length)) return + + const allkeys = pubkeys.includes(owner.publicKey) ? pubkeys : [owner.publicKey].concat(pubkeys) + const hash = md5(allkeys.sort().join("-")) + const theContactIds = contactIds.includes(owner.id) ? contactIds : [owner.id].concat(contactIds) + return { + uuid: `${new Date().valueOf()}-${hash}`, + contactIds: JSON.stringify(theContactIds), + createdAt: date, + updatedAt: date, + name: name, + type: constants.chat_types.group + } +} + +export { + getChats, mute, addGroupMembers, + receiveGroupCreateOrInvite, createGroupChat, + deleteChat, receiveGroupLeave, receiveGroupJoin +} + + +async function asyncForEach(array, callback) { + for (let index = 0; index < array.length; index++) { + await callback(array[index], index, array); + } +} \ No newline at end of file diff --git a/api/controllers/contacts.ts b/api/controllers/contacts.ts new file mode 100644 index 0000000..d8cf5b2 --- /dev/null +++ b/api/controllers/contacts.ts @@ -0,0 +1,240 @@ +import {models} from '../models' +import * as crypto from 'crypto' +import * as socket from '../utils/socket' +import * as helpers from '../helpers' +import * as jsonUtils from '../utils/json' +import {success, failure} from '../utils/res' + +const constants = require(__dirname + '/../../config/constants.json') + +const getContacts = async (req, res) => { + const contacts = await models.Contact.findAll({ where:{deleted:false}, raw: true }) + const invites = await models.Invite.findAll({ raw: true }) + const chats = await models.Chat.findAll({ where:{deleted:false}, raw: true }) + const subscriptions = await models.Subscription.findAll({ raw: true }) + + const contactsResponse = contacts.map(contact => { + let contactJson = jsonUtils.contactToJson(contact) + let invite = invites.find(invite => invite.contactId == contact.id) + + if (invite) { + contactJson.invite = jsonUtils.inviteToJson(invite) + } + + return contactJson + }); + + const subsResponse = subscriptions.map(s=> jsonUtils.subscriptionToJson(s,null)) + const chatsResponse = chats.map(chat => jsonUtils.chatToJson(chat)) + + success(res, { + contacts: contactsResponse, + chats: chatsResponse, + subscriptions: subsResponse + }) +} + +const generateToken = async (req, res) => { + console.log('=> generateToken called', { body: req.body, params: req.params, query: req.query }) + + const owner = await models.Contact.findOne({ where: { isOwner: true, authToken: null }}) + + if (owner) { + const hash = crypto.createHash('sha256').update(req.body['token']).digest('base64'); + + console.log("req.params['token']", req.params['token']); + console.log("hash", hash); + + owner.update({ authToken: hash }) + + success(res,{}) + } else { + failure(res,{}) + } +} + +const updateContact = async (req, res) => { + console.log('=> updateContact called', { body: req.body, params: req.params, query: req.query }) + + let attrs = extractAttrs(req.body) + + const contact = await models.Contact.findOne({ where: { id: req.params.id }}) + let shouldUpdateContactKey = (contact.isOwner && contact.contactKey == null && attrs["contact_key"] != null) + + const owner = await contact.update(jsonUtils.jsonToContact(attrs)) + success(res, jsonUtils.contactToJson(owner)) + + if (!shouldUpdateContactKey) { + return + } + // definitely "owner" now + + const contactIds = await models.Contact.findAll({where:{deleted:false}}).map(c => c.id) + if (contactIds.length == 0) { + return + } + + helpers.sendContactKeys({ + contactIds: contactIds, + sender: owner, + type: constants.message_types.contact_key, + }) +} + +const exchangeKeys = async (req, res) => { + console.log('=> exchangeKeys called', { body: req.body, params: req.params, query: req.query }) + + const contact = await models.Contact.findOne({ where: { id: req.params.id }}) + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + success(res, jsonUtils.contactToJson(contact)) + + helpers.sendContactKeys({ + contactIds: [contact.id], + sender: owner, + type: constants.message_types.contact_key, + }) +} + +const createContact = async (req, res) => { + console.log('=> createContact called', { body: req.body, params: req.params, query: req.query }) + + let attrs = extractAttrs(req.body) + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + const createdContact = await models.Contact.create(attrs) + const contact = await createdContact.update(jsonUtils.jsonToContact(attrs)) + + success(res, jsonUtils.contactToJson(contact)) + + helpers.sendContactKeys({ + contactIds: [contact.id], + sender: owner, + type: constants.message_types.contact_key, + }) +} + +const deleteContact = async (req, res) => { + const id = parseInt(req.params.id||'0') + if(!id || id===1) { + failure(res, 'Cannot delete self') + return + } + + const contact = await models.Contact.findOne({ where: { id } }) + await contact.update({ + deleted:true, + publicKey:'', + photoUrl:'', + alias:'Unknown', + contactKey:'', + }) + + // find and destroy chat & messages + const chats = await models.Chat.findAll({where:{deleted:false}}) + chats.map(async chat => { + if (chat.type === constants.chat_types.conversation) { + const contactIds = JSON.parse(chat.contactIds) + if (contactIds.includes(id)) { + await chat.update({ + deleted: true, + uuid:'', + contactIds:'[]', + name:'' + }) + await models.Message.destroy({ where: { chatId: chat.id } }) + } + } + }) + await models.Invite.destroy({ where: { contactId: id } }) + await models.Subscription.destroy({ where: { contactId: id } }) + + success(res, {}) +} + +const receiveConfirmContactKey = async (payload) => { + console.log('=> confirm contact key', { payload }) + + const dat = payload.content || payload + const sender_pub_key = dat.sender.pub_key + const sender_contact_key = dat.sender.contact_key + const sender_alias = dat.sender.alias || 'Unknown' + const sender_photo_url = dat.sender.photoUrl + + if(sender_photo_url){ + // download and store photo locally + } + + const sender = await models.Contact.findOne({ where: { publicKey: sender_pub_key, status: constants.contact_statuses.confirmed }}) + if (sender_contact_key && sender) { + if(!sender.alias || sender.alias==='Unknown') { + sender.update({ contactKey: sender_contact_key, alias: sender_alias }) + } else { + sender.update({ contactKey: sender_contact_key }) + } + + socket.sendJson({ + type: 'contact', + response: jsonUtils.contactToJson(sender) + }) + } +} + +const receiveContactKey = async (payload) => { + console.log('=> received contact key', JSON.stringify(payload)) + + const dat = payload.content || payload + const sender_pub_key = dat.sender.pub_key + const sender_contact_key = dat.sender.contact_key + const sender_alias = dat.sender.alias || 'Unknown' + const sender_photo_url = dat.sender.photoUrl + + if(sender_photo_url){ + // download and store photo locally + } + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + const sender = await models.Contact.findOne({ where: { publicKey: sender_pub_key, status: constants.contact_statuses.confirmed }}) + + if (sender_contact_key && sender) { + if(!sender.alias || sender.alias==='Unknown') { + sender.update({ contactKey: sender_contact_key, alias: sender_alias }) + } else { + sender.update({ contactKey: sender_contact_key }) + } + + socket.sendJson({ + type: 'contact', + response: jsonUtils.contactToJson(sender) + }) + } + + helpers.sendContactKeys({ + contactPubKey: sender_pub_key, + sender: owner, + type: constants.message_types.contact_key_confirmation, + }) +} + +const extractAttrs = body => { + let fields_to_update = ["public_key", "node_alias", "alias", "photo_url", "device_id", "status", "contact_key"] + let attrs = {} + Object.keys(body).forEach(key => { + if (fields_to_update.includes(key)) { + attrs[key] = body[key] + } + }) + return attrs +} + +export { + generateToken, + exchangeKeys, + getContacts, + updateContact, + createContact, + deleteContact, + receiveContactKey, + receiveConfirmContactKey +} diff --git a/api/controllers/details.ts b/api/controllers/details.ts new file mode 100644 index 0000000..82b187b --- /dev/null +++ b/api/controllers/details.ts @@ -0,0 +1,123 @@ +import {loadLightning} from '../utils/lightning' +import { success, failure } from '../utils/res' +import * as readLastLines from 'read-last-lines' +import { nodeinfo } from '../utils/nodeinfo'; + +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; + +const defaultLogFiles = [ + '/home/lnd/.pm2/logs/app-error.log', + '/var/log/syslog', +] +async function getLogsSince(req, res) { + const logFiles = config.log_file ? [config.log_file] : defaultLogFiles + let txt + let err + await asyncForEach(logFiles, async filepath=>{ + if(!txt){ + try { + const lines = await readLastLines.read(filepath, 500) + if(lines) { + var linesArray = lines.split('\n') + linesArray.reverse() + txt = linesArray.join('\n') + } + } catch(e) { + err = e + } + } + }) + if(txt) success(res, txt) + else failure(res, err) +} + +const getInfo = async (req, res) => { + const lightning = loadLightning() + var request = {} + lightning.getInfo(request, function(err, response) { + res.status(200); + if (err == null) { + res.json({ success: true, response }); + } else { + res.json({ success: false }); + } + res.end(); + }); +}; + +const getChannels = async (req, res) => { + const lightning = loadLightning() + var request = {} + lightning.listChannels(request, function(err, response) { + res.status(200); + if (err == null) { + res.json({ success: true, response }); + } else { + res.json({ success: false }); + } + res.end(); + }); +}; + +const getBalance = (req, res) => { + const lightning = loadLightning() + var request = {} + lightning.channelBalance(request, function(err, response) { + res.status(200); + if (err == null) { + res.json({ success: true, response }); + } else { + res.json({ success: false }); + } + res.end(); + }); +}; + +const getLocalRemoteBalance = async (req, res) => { + const lightning = loadLightning() + lightning.listChannels({}, (err, channelList) => { + const { channels } = channelList + + const localBalances = channels.map(c => c.local_balance) + const remoteBalances = channels.map(c => c.remote_balance) + const totalLocalBalance = localBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0) + const totalRemoteBalance = remoteBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0) + + res.status(200); + if (err == null) { + res.json({ success: true, response: { local_balance: totalLocalBalance, remote_balance: totalRemoteBalance } }); + } else { + res.json({ success: false }); + } + res.end(); + }) +}; + +const getNodeInfo = async (req, res) => { + var ipOfSource = req.connection.remoteAddress; + if(!(ipOfSource.includes('127.0.0.1') || ipOfSource.includes('localhost'))){ + res.status(401) + res.end() + return + } + const node = await nodeinfo() + res.status(200) + res.json(node) + res.end() +} + +export { + getInfo, + getBalance, + getChannels, + getLocalRemoteBalance, + getLogsSince, + getNodeInfo, +} + +async function asyncForEach(array, callback) { + for (let index = 0; index < array.length; index++) { + await callback(array[index], index, array); + } +} \ No newline at end of file diff --git a/api/controllers/index.ts b/api/controllers/index.ts new file mode 100644 index 0000000..ecc03b6 --- /dev/null +++ b/api/controllers/index.ts @@ -0,0 +1,139 @@ +import {models} from '../models' +import * as lndService from '../grpc' +import {checkTag} from '../utils/gitinfo' +import {checkConnection} from '../utils/lightning' + +const constants = require(__dirname + '/../../config/constants.json'); + +const env = process.env.NODE_ENV || 'development'; +console.log("=> env:",env) + +let controllers = { + messages: require('./messages'), + invoices: require('./invoices'), + uploads: require('./uploads'), + contacts: require('./contacts'), + invites: require('./invites'), + payments: require('./payment'), + details: require('./details'), + chats: require('./chats'), + subcriptions: require('./subscriptions'), + media: require('./media'), +} + +async function iniGrpcSubscriptions() { + try{ + await checkConnection() + const types = constants.message_types + await lndService.subscribeInvoices({ + [types.contact_key]: controllers.contacts.receiveContactKey, + [types.contact_key_confirmation]: controllers.contacts.receiveConfirmContactKey, + [types.message]: controllers.messages.receiveMessage, + [types.invoice]: controllers.invoices.receiveInvoice, + [types.direct_payment]: controllers.payments.receivePayment, + [types.confirmation]: controllers.messages.receiveConfirmation, + [types.attachment]: controllers.media.receiveAttachment, + [types.purchase]: controllers.media.receivePurchase, + [types.purchase_accept]: controllers.media.receivePurchaseAccept, + [types.purchase_deny]: controllers.media.receivePurchaseDeny, + [types.group_create]: controllers.chats.receiveGroupCreateOrInvite, + [types.group_invite]: controllers.chats.receiveGroupCreateOrInvite, + [types.group_join]: controllers.chats.receiveGroupJoin, + [types.group_leave]: controllers.chats.receiveGroupLeave, + }) + } catch(e) { + throw e + } +} + +async function set(app) { + + if(models && models.Subscription){ + controllers.subcriptions.initializeCronJobs() + } + try{ + await controllers.media.cycleMediaToken() + } catch(e) { + console.log('=> could not auth with media server', e.message) + } + + app.get('/chats', controllers.chats.getChats) + app.post('/group', controllers.chats.createGroupChat) + app.post('/chats/:chat_id/:mute_unmute', controllers.chats.mute) + app.delete('/chat/:id', controllers.chats.deleteChat) + app.put('/chat/:id', controllers.chats.addGroupMembers) + + app.post('/contacts/tokens', controllers.contacts.generateToken) + + app.post('/upload', controllers.uploads.avatarUpload.single('file'), controllers.uploads.uploadFile) + + app.post('/invites', controllers.invites.createInvite) + app.post('/invites/:invite_string/pay', controllers.invites.payInvite) + app.post('/invites/finish', controllers.invites.finishInvite) + + app.get('/contacts', controllers.contacts.getContacts) + app.put('/contacts/:id', controllers.contacts.updateContact) + app.post('/contacts/:id/keys', controllers.contacts.exchangeKeys) + app.post('/contacts', controllers.contacts.createContact) + app.delete('/contacts/:id', controllers.contacts.deleteContact) + + app.get('/messages', controllers.messages.getMessages) + app.post('/messages', controllers.messages.sendMessage) + app.post('/messages/:chat_id/read', controllers.messages.readMessages) + app.post('/messages/clear', controllers.messages.clearMessages) + + app.get('/subscriptions', controllers.subcriptions.getAllSubscriptions) + app.get('/subscription/:id', controllers.subcriptions.getSubscription) + app.delete('/subscription/:id', controllers.subcriptions.deleteSubscription) + app.post('/subscriptions', controllers.subcriptions.createSubscription) + app.put('/subscription/:id', controllers.subcriptions.editSubscription) + app.get('/subscriptions/contact/:contactId', controllers.subcriptions.getSubscriptionsForContact) + app.put('/subscription/:id/pause', controllers.subcriptions.pauseSubscription) + app.put('/subscription/:id/restart', controllers.subcriptions.restartSubscription) + + app.post('/attachment', controllers.media.sendAttachmentMessage) + app.post('/purchase', controllers.media.purchase) + app.get('/signer/:challenge', controllers.media.signer) + + app.post('/invoices', controllers.invoices.createInvoice) + app.get('/invoices', controllers.invoices.listInvoices) + app.put('/invoices', controllers.invoices.payInvoice) + app.post('/invoices/cancel', controllers.invoices.cancelInvoice) + + app.post('/payment', controllers.payments.sendPayment) + app.get('/payments', controllers.payments.listPayments) + + app.get('/channels', controllers.details.getChannels) + app.get('/balance', controllers.details.getBalance) + app.get('/balance/all', controllers.details.getLocalRemoteBalance) + app.get('/getinfo', controllers.details.getInfo) + app.get('/logs', controllers.details.getLogsSince) + app.get('/info', controllers.details.getNodeInfo) + + app.get('/version', async function(req,res) { + const version = await checkTag() + res.send({version}) + }) + + if (env != "production") { // web dashboard login + app.post('/login', login) + } +} + +const login = (req, res) => { + const { code } = req.body; + + if (code == "sphinx") { + models.Contact.findOne({ where: { isOwner: true } }).then(owner => { + res.status(200); + res.json({ success: true, token: owner.authToken }); + res.end(); + }) + } else { + res.status(200); + res.json({ success: false }); + res.end(); + } +} + +export {set, iniGrpcSubscriptions} diff --git a/api/controllers/invites.ts b/api/controllers/invites.ts new file mode 100644 index 0000000..2dd37e4 --- /dev/null +++ b/api/controllers/invites.ts @@ -0,0 +1,118 @@ +import {models} from '../models' +import * as crypto from 'crypto' +import * as jsonUtils from '../utils/json' +import {finishInviteInHub, createInviteInHub, payInviteInHub} from '../hub' + +const finishInvite = async (req, res) => { + const { + invite_string + } = req.body + const params = { + invite: { + pin: invite_string + } + } + + function onSuccess() { + res.status(200) + res.json({ success: true }) + res.end() + } + function onFailure() { + res.status(200) + res.json({ success: false }) + res.end() + } + + finishInviteInHub(params, onSuccess, onFailure) +} + +const payInvite = async (req, res) => { + const params = { + node_ip: process.env.NODE_IP + } + + const invite_string = req.params['invite_string'] + + const onSuccess = async (response) => { + const invite = response.object + + console.log("response", invite) + + const dbInvite = await models.Invite.findOne({ where: { inviteString: invite.pin }}) + + if (dbInvite.status != invite.invite_status) { + dbInvite.update({ status: invite.invite_status }) + } + + res.status(200) + res.json({ success: true, response: { invite: jsonUtils.inviteToJson(dbInvite) } }) + res.end() + } + + const onFailure = (response) => { + res.status(200) + res.json({ success: false }) + res.end() + } + + payInviteInHub(invite_string, params, onSuccess, onFailure) +} + +const createInvite = async (req, res) => { + const { + nickname, + welcome_message + } = req.body + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + const params = { + invite: { + nickname: owner.alias, + pubkey: owner.publicKey, + contact_nickname: nickname, + message: welcome_message, + pin: crypto.randomBytes(20).toString('hex') + } + } + + const onSuccess = async (response) => { + console.log("response", response) + + const inviteCreated = response.object + + const contact = await models.Contact.create({ + alias: nickname, + status: 0 + }) + const invite = await models.Invite.create({ + welcomeMessage: inviteCreated.message, + contactId: contact.id, + status: inviteCreated.invite_status, + inviteString: inviteCreated.pin + }) + let contactJson = jsonUtils.contactToJson(contact) + if (invite) { + contactJson.invite = jsonUtils.inviteToJson(invite) + } + + res.status(200) + res.json({ success: true, contact: contactJson }) + res.end() + } + + const onFailure = (response) => { + res.status(200) + res.json(response) + res.end() + } + + createInviteInHub(params, onSuccess, onFailure) +} + +export { + createInvite, + finishInvite, + payInvite +} diff --git a/api/controllers/invoices.ts b/api/controllers/invoices.ts new file mode 100644 index 0000000..1c08012 --- /dev/null +++ b/api/controllers/invoices.ts @@ -0,0 +1,273 @@ +import { models } from '../models' +import { loadLightning } from '../utils/lightning' +import * as socket from '../utils/socket' +import * as jsonUtils from '../utils/json' +import * as decodeUtils from '../utils/decode' +import * as helpers from '../helpers' +import { sendNotification } from '../hub' +import { success } from '../utils/res' + +const constants = require(__dirname + '/../../config/constants.json'); + +const payInvoice = async (req, res) => { + const lightning = await loadLightning() + const { payment_request } = req.body; + + var call = lightning.sendPayment({}) + + call.on('data', async response => { + console.log('[pay invoice data]', response) + + const message = await models.Message.findOne({ where: { payment_request } }) + if (!message) { // invoice still paid + return success(res, { + success: true, + response: { payment_request } + }) + } + + message.status = constants.statuses.confirmed; + message.save(); + + var date = new Date(); + date.setMilliseconds(0) + + const chat = await models.Chat.findOne({ where: { id: message.chatId } }) + const contactIds = JSON.parse(chat.contactIds) + const senderId = contactIds.find(id => id != message.sender) + + const paidMessage = await models.Message.create({ + chatId: message.chatId, + sender: senderId, + type: constants.message_types.payment, + amount: message.amount, + amountMsat: message.amountMsat, + paymentHash: message.paymentHash, + date: date, + expirationDate: null, + messageContent: null, + status: constants.statuses.confirmed, + createdAt: date, + updatedAt: date + }) + console.log('[pay invoice] stored message', paidMessage) + success(res, jsonUtils.messageToJson(paidMessage, chat)) + }) + + call.write({ payment_request }) +}; + + +const cancelInvoice = (req, res) => { + res.status(200); + res.json({ success: false }); + res.end(); +}; + +const createInvoice = async (req, res) => { + const lightning = await loadLightning() + + const { + amount, + memo, + remote_memo, + chat_id, + contact_id + } = req.body; + + var request = { + value: amount, + memo: remote_memo || memo + } + + if (amount == null) { + res.status(200); + res.json({ err: "no amount specified", }); + res.end(); + } else { + lightning.addInvoice(request, function (err, response) { + console.log({ err, response }) + + if (err == null) { + const { payment_request } = response + + if (!contact_id && !chat_id) { // if no contact + success(res, { + invoice: payment_request + }) + return // end here + } + + lightning.decodePayReq({ pay_req: payment_request }, async (error, invoice) => { + if (res) { + console.log('decoded pay req', { invoice }) + + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + + const chat = await helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }) + + let timestamp = parseInt(invoice.timestamp + '000') + let expiry = parseInt(invoice.expiry + '000') + + if (error) { + res.status(200) + res.json({ success: false, error }) + res.end() + } else { + const message = await models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.invoice, + amount: parseInt(invoice.num_satoshis), + amountMsat: parseInt(invoice.num_satoshis) * 1000, + paymentHash: invoice.payment_hash, + paymentRequest: payment_request, + date: new Date(timestamp), + expirationDate: new Date(timestamp + expiry), + messageContent: memo, + remoteMessageContent: remote_memo, + status: constants.statuses.pending, + createdAt: new Date(timestamp), + updatedAt: new Date(timestamp) + }) + success(res, jsonUtils.messageToJson(message, chat)) + + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.invoice, + message: { + id: message.id, + invoice: message.paymentRequest + } + }) + } + } else { + console.log('error decoding pay req', { err, res }) + res.status(500); + res.json({ err, res }) + res.end(); + } + }) + } else { + console.log({ err, response }) + } + }); + } +}; + +const listInvoices = async (req, res) => { + const lightning = await loadLightning() + + lightning.listInvoices({}, (err, response) => { + console.log({ err, response }) + if (err == null) { + res.status(200); + res.json(response); + res.end(); + } else { + console.log({ err, response }) + } + }); +}; + +const receiveInvoice = async (payload) => { + console.log('received invoice', payload) + + const total_spent = 1 + const dat = payload.content || payload + const payment_request = dat.message.invoice + var date = new Date(); + date.setMilliseconds(0) + + const { owner, sender, chat, msg_id } = await helpers.parseReceiveParams(payload) + if (!owner || !sender || !chat) { + return console.log('=> no group chat!') + } + + const { memo, sat, msat, paymentHash, invoiceDate, expirationSeconds } = decodePaymentRequest(payment_request) + + const message = await models.Message.create({ + chatId: chat.id, + type: constants.message_types.invoice, + sender: sender.id, + amount: sat, + amountMsat: msat, + paymentRequest: payment_request, + asciiEncodedTotal: total_spent, + paymentHash: paymentHash, + messageContent: memo, + expirationDate: new Date(invoiceDate + expirationSeconds), + date: new Date(invoiceDate), + status: constants.statuses.pending, + createdAt: date, + updatedAt: date + }) + console.log('received keysend invoice message', message.id) + + socket.sendJson({ + type: 'invoice', + response: jsonUtils.messageToJson(message, chat) + }) + + sendNotification(chat, sender.alias, 'message') + + sendConfirmation({ chat, sender: owner, msg_id }) +} + +const sendConfirmation = ({ chat, sender, msg_id }) => { + helpers.sendMessage({ + chat, + sender, + message: { id: msg_id }, + type: constants.message_types.confirmation, + }) +} + + +export { + listInvoices, + payInvoice, + cancelInvoice, + createInvoice, + receiveInvoice +} + +// lnd invoice stuff + +function decodePaymentRequest(paymentRequest) { + var decodedPaymentRequest: any = decodeUtils.decode(paymentRequest) + var expirationSeconds = 3600 + var paymentHash = "" + var memo = "" + + for (var i = 0; i < decodedPaymentRequest.data.tags.length; i++) { + let tag = decodedPaymentRequest.data.tags[i]; + if(tag) { + if (tag.description == 'payment_hash') { + paymentHash = tag.value; + } else if (tag.description == 'description') { + memo = tag.value; + } else if (tag.description == 'expiry') { + expirationSeconds = tag.value; + } + } + } + + expirationSeconds = parseInt(expirationSeconds.toString() + '000'); + let invoiceDate = parseInt(decodedPaymentRequest.data.time_stamp.toString() + '000'); + + let amount = decodedPaymentRequest['human_readable_part']['amount']; + var msat = 0; + var sat = 0; + if (Number.isInteger(amount)) { + msat = amount; + sat = amount / 1000; + } + + return { sat, msat, paymentHash, invoiceDate, expirationSeconds, memo } +} diff --git a/api/controllers/media.ts b/api/controllers/media.ts new file mode 100644 index 0000000..4573e75 --- /dev/null +++ b/api/controllers/media.ts @@ -0,0 +1,514 @@ +import {models} from '../models' +import * as socket from '../utils/socket' +import * as jsonUtils from '../utils/json' +import * as resUtils from '../utils/res' +import * as helpers from '../helpers' +import { sendNotification } from '../hub' +import { signBuffer, verifyMessage } from '../utils/lightning' +import * as rp from 'request-promise' +import { loadLightning } from '../utils/lightning' +import {parseLDAT, tokenFromTerms, urlBase64FromBytes, testLDAT} from '../utils/ldat' +import {CronJob} from 'cron' +import * as zbase32 from '../utils/zbase32' +import * as schemas from './schemas' + +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; +const constants = require(__dirname + '/../../config/constants.json'); + +/* + +TODO line 233: parse that from token itself, dont use getMediaInfo at all + +"attachment": sends a message to a chat with a signed receipt for a file, which can be accessed from sphinx-meme server +If the attachment has a price, then the media must be purchased to get the receipt + +"purchase" sends sats. +if the amount matches the price, the media owner +will respond ("purchase_accept" or "purchase_deny" type) +with the signed token, which can only be used by the buyer + +purchase_accept should update the original attachment message with the terms and receipt +(both Relay and client need to do this) or make new??? + +purchase_deny returns the sats +*/ + +const sendAttachmentMessage = async (req, res) => { + // try { + // schemas.attachment.validateSync(req.body) + // } catch(e) { + // return resUtils.failure(res, e.message) + // } + + const { + chat_id, + contact_id, + muid, + text, + remote_text, + remote_text_map, + media_key_map, + media_type, + file_name, + ttl, + price, // IF AMOUNT>0 THEN do NOT sign or send receipt + } = req.body + + console.log('[send attachment]', req.body) + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + const chat = await helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }) + + let TTL = ttl + if(ttl) { + TTL = parseInt(ttl) + } + if(!TTL) TTL = 31536000 // default year + + const amt = price||0 + // generate media token for self! + const myMediaToken = await tokenFromTerms({ + muid, ttl:TTL, host:'', + pubkey: owner.publicKey, + meta:{...amt && {amt}, ttl} + }) + + const date = new Date(); + date.setMilliseconds(0) + const myMediaKey = (media_key_map && media_key_map[owner.id]) || '' + const mediaType = media_type || '' + const remoteMessageContent = remote_text_map?JSON.stringify(remote_text_map) : remote_text + + const message = await models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.attachment, + status: constants.statuses.pending, + messageContent: text||file_name||'', + remoteMessageContent, + mediaToken: myMediaToken, + mediaKey: myMediaKey, + mediaType: mediaType, + date, + createdAt: date, + updatedAt: date + }) + + saveMediaKeys(muid, media_key_map, chat.id, message.id) + + const mediaTerms: {[k:string]:any} = { + muid, ttl:TTL, + meta:{...amt && {amt}}, + skipSigning: amt ? true : false // only sign if its free + } + const msg: {[k:string]:any} = { + mediaTerms, // this gets converted to mediaToken + id: message.id, + content: remote_text_map||remote_text||text||file_name||'', + mediaKey: media_key_map, + mediaType: mediaType, + } + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.attachment, + message: msg, + success: async (data) => { + console.log('attachment sent', { data }) + resUtils.success(res, jsonUtils.messageToJson(message, chat)) + }, + failure: error=> resUtils.failure(res, error.message), + }) +} + +function saveMediaKeys(muid, mediaKeyMap, chatId, messageId){ + if (typeof mediaKeyMap!=='object'){ + console.log('wrong type for mediaKeyMap') + return + } + var date = new Date(); + date.setMilliseconds(0) + for (let [contactId, key] of Object.entries(mediaKeyMap)) { + models.MediaKey.create({ + muid, chatId, contactId, key, messageId, + createdAt: date, + }) + } +} + +const purchase = async (req, res) => { + const { + chat_id, + contact_id, + amount, + mediaToken, + } = req.body + var date = new Date(); + date.setMilliseconds(0) + + try { + schemas.purchase.validateSync(req.body) + } catch(e) { + return resUtils.failure(res, e.message) + } + + console.log('purchase!') + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + const chat = await helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }) + + const message = await models.Message.create({ + sender: owner.id, + type: constants.message_types.purchase, + mediaToken: mediaToken, + date: date, + createdAt: date, + updatedAt: date + }) + + const msg={ + amount, mediaToken, id:message.id, + } + helpers.sendMessage({ + chat: {...chat, contactIds:[contact_id]}, + sender: owner, + type: constants.message_types.purchase, + message: msg, + success: async (data) => { + console.log('purchase sent', { data }) + resUtils.success(res, jsonUtils.messageToJson(message)) + }, + failure: error=> resUtils.failure(res, error.message), + }) +} + +/* RECEIVERS */ + +const receivePurchase = async (payload) => { + console.log('received purchase', { payload }) + + var date = new Date(); + date.setMilliseconds(0) + + const {owner, sender, chat, amount, mediaToken} = await helpers.parseReceiveParams(payload) + if(!owner || !sender || !chat) { + return console.log('=> group chat not found!') + } + + await models.Message.create({ + chatId: chat.id, + sender: sender.id, + type: constants.message_types.purchase, + mediaToken: mediaToken, + date: date, + createdAt: date, + updatedAt: date + }) + + const muid = mediaToken && mediaToken.split('.').length && mediaToken.split('.')[1] + if(!muid){ + return console.log('no muid') + } + + const ogMessage = models.Message.findOne({ + where:{mediaToken} + }) + if (!ogMessage){ + return console.log('no original message') + } + // find mediaKey for who sent + const mediaKey = models.MediaKey.findOne({where:{ + muid, receiver: sender.id, + }}) + + const terms = parseLDAT(mediaToken) + // get info + let TTL = terms.meta && terms.meta.ttl + let price = terms.meta && terms.meta.amt + if(!TTL || !price){ + const media = await getMediaInfo(muid) + console.log("GOT MEDIA", media) + if(media) { + TTL = media.ttl && parseInt(media.ttl) + price = media.price + } + if(!TTL) TTL = 31536000 + if(!price) price = 0 + } + + if (amount < price) { // didnt pay enough + return helpers.sendMessage({ // "purchase_deny" + chat: {...chat, contactIds:[sender.id]}, // only send back to sender + sender: owner, + amount: amount, + type: constants.message_types.purchase_deny, + message: {amount,content:'Payment Denied'}, + success: async (data) => { + console.log('purchase_deny sent', { data }) + }, + failure: error=> console.log('=> couldnt send purcahse deny', error), + }) + } + + const acceptTerms = { + muid, ttl: TTL, + meta: {amt:amount}, + } + helpers.sendMessage({ + chat: {...chat, contactIds:[sender.id]}, // only to sender + sender: owner, + type: constants.message_types.purchase_accept, + message: { + mediaTerms: acceptTerms, // converted to token in utils/msg.ts + mediaKey: mediaKey.key, + mediaType: ogMessage.mediaType, + }, + success: async (data) => { + console.log('purchase_accept sent', { data }) + }, + failure: error=> console.log('=> couldnt send purchase accept', error), + }) +} + +const receivePurchaseAccept = async (payload) => { + var date = new Date(); + date.setMilliseconds(0) + + const {owner, sender, chat, mediaToken, mediaKey, mediaType} = await helpers.parseReceiveParams(payload) + if(!owner || !sender || !chat) { + return console.log('=> no group chat!') + } + + const termsArray = mediaToken.split('.') + // const host = termsArray[0] + const muid = termsArray[1] + if(!muid){ + return console.log('wtf no muid') + } + // const attachmentMessage = await models.Message.findOne({where:{ + // mediaToken: {$like: `${host}.${muid}%`} + // }}) + // if(attachmentMessage){ + // console.log('=> updated msg!') + // attachmentMessage.update({ + // mediaToken, mediaKey + // }) + // } + + const msg = await models.Message.create({ + chatId: chat.id, + sender: sender.id, + type: constants.message_types.purchase_accept, + status: constants.statuses.received, + mediaToken, + mediaKey, + mediaType, + date: date, + createdAt: date, + updatedAt: date + }) + socket.sendJson({ + type: 'purchase_accept', + response: jsonUtils.messageToJson(msg, chat) + }) +} + +const receivePurchaseDeny = async (payload) => { + var date = new Date(); + date.setMilliseconds(0) + const {owner, sender, chat, amount, mediaToken} = await helpers.parseReceiveParams(payload) + if(!owner || !sender || !chat) { + return console.log('=> no group chat!') + } + const msg = await models.Message.create({ + chatId: chat.id, + sender: sender.id, + type: constants.message_types.purchase_deny, + status: constants.statuses.received, + messageContent:'Purchase has been denied and sats returned to you', + amount: amount, + amountMsat: parseFloat(amount) * 1000, + mediaToken, + date: date, + createdAt: date, + updatedAt: date + }) + socket.sendJson({ + type: 'purchase_deny', + response: jsonUtils.messageToJson(msg, chat) + }) +} + +const receiveAttachment = async (payload) => { + console.log('received attachment', { payload }) + + var date = new Date(); + date.setMilliseconds(0) + + const {owner, sender, chat, mediaToken, mediaKey, mediaType, content, msg_id} = await helpers.parseReceiveParams(payload) + if(!owner || !sender || !chat) { + return console.log('=> no group chat!') + } + + const msg: {[k:string]:any} = { + chatId: chat.id, + type: constants.message_types.attachment, + sender: sender.id, + date: date, + createdAt: date, + updatedAt: date + } + if(content) msg.messageContent = content + if(mediaToken) msg.mediaToken = mediaToken + if(mediaKey) msg.mediaKey = mediaKey + if(mediaType) msg.mediaType = mediaType + + const message = await models.Message.create(msg) + + console.log('saved attachment', message.dataValues) + + socket.sendJson({ + type: 'attachment', + response: jsonUtils.messageToJson(message, chat) + }) + + sendNotification(chat, sender.alias, 'message') + + sendConfirmation({ chat, sender: owner, msg_id }) +} + +const sendConfirmation = ({ chat, sender, msg_id }) => { + helpers.sendMessage({ + chat, + sender, + message: {id:msg_id}, + type: constants.message_types.confirmation, + }) +} + +async function signer(req, res) { + if(!req.params.challenge) return resUtils.failure(res, "no challenge") + try { + const sig = await signBuffer( + Buffer.from(req.params.challenge, 'base64') + ) + const sigBytes = zbase32.decode(sig) + const sigBase64 = urlBase64FromBytes(sigBytes) + resUtils.success(res, { + sig: sigBase64 + }) + } catch(e) { + resUtils.failure(res, e) + } +} + +async function verifier(msg, sig) { + try { + const res = await verifyMessage(msg, sig) + return res + } catch(e) { + console.log(e) + } +} + +async function getMyPubKey(){ + return new Promise((resolve,reject)=>{ + const lightning = loadLightning() + var request = {} + lightning.getInfo(request, function(err, response) { + if(err) reject(err) + if(!response.identity_pubkey) reject('no pub key') + else resolve(response.identity_pubkey) + }); + }) +} + +async function cycleMediaToken() { + try{ + if (process.env.TEST_LDAT) testLDAT() + + const mt = await getMediaToken(null) + if(mt) console.log('=> [meme] authed!') + + new CronJob('1 * * * *', function() { // every hour + getMediaToken(true) + }) + } catch(e) { + console.log(e.message) + } +} + +const mediaURL = 'http://' + config.media_host + '/' +let mediaToken; +async function getMediaToken(force) { + if(!force && mediaToken) return mediaToken + await helpers.sleep(3000) + try { + const res = await rp.get(mediaURL+'ask') + const r = JSON.parse(res) + if (!(r && r.challenge && r.id)) { + throw new Error('no challenge') + } + const sig = await signBuffer( + Buffer.from(r.challenge, 'base64') + ) + + if(!sig) throw new Error('no signature') + const pubkey = await getMyPubKey() + if(!pubkey){ + throw new Error('no pub key!') + } + + const sigBytes = zbase32.decode(sig) + const sigBase64 = urlBase64FromBytes(sigBytes) + + const bod = await rp.post(mediaURL+'verify', { + form:{id: r.id, sig:sigBase64, pubkey} + }) + const body = JSON.parse(bod) + if(!(body && body.token)){ + throw new Error('no token') + } + mediaToken = body.token + return body.token + } catch(e) { + throw e + } +} + +async function getMediaInfo(muid) { + try { + const token = await getMediaToken(null) + const res = await rp.get(mediaURL+'mymedia/'+muid,{ + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + json:true + }) + return res + } catch(e) { + return null + } +} + +export { + sendAttachmentMessage, + receiveAttachment, + receivePurchase, + receivePurchaseAccept, + receivePurchaseDeny, + purchase, + signer, + verifier, + getMediaToken, + cycleMediaToken +} diff --git a/api/controllers/messages.ts b/api/controllers/messages.ts new file mode 100644 index 0000000..ee3fdcd --- /dev/null +++ b/api/controllers/messages.ts @@ -0,0 +1,277 @@ +import {models} from '../models' +import { Op } from 'sequelize' +import { indexBy } from 'underscore' +import { sendNotification } from '../hub' +import * as socket from '../utils/socket' +import * as jsonUtils from '../utils/json' +import * as helpers from '../helpers' +import { success } from '../utils/res' +import lock from '../utils/lock' + +const constants = require(__dirname + '/../../config/constants.json') + +const getMessages = async (req, res) => { + const dateToReturn = req.query.date; + + if (!dateToReturn) { + return getAllMessages(req, res) + } + console.log(dateToReturn) + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + // const chatId = req.query.chat_id + + let newMessagesWhere = { + date: { [Op.gte]: dateToReturn }, + [Op.or]: [ + {receiver: owner.id}, + {receiver: null} + ] + } + + let confirmedMessagesWhere = { + updated_at: { [Op.gte]: dateToReturn }, + status: constants.statuses.received, + sender: owner.id + } + + // if (chatId) { + // newMessagesWhere.chat_id = chatId + // confirmedMessagesWhere.chat_id = chatId + // } + + const newMessages = await models.Message.findAll({ where: newMessagesWhere }) + const confirmedMessages = await models.Message.findAll({ where: confirmedMessagesWhere }) + + const chatIds: number[] = [] + newMessages.forEach(m => { + if(!chatIds.includes(m.chatId)) chatIds.push(m.chatId) + }) + confirmedMessages.forEach(m => { + if(!chatIds.includes(m.chatId)) chatIds.push(m.chatId) + }) + + let chats = chatIds.length > 0 ? await models.Chat.findAll({ where: {deleted:false, id: chatIds} }) : [] + const chatsById = indexBy(chats, 'id') + + res.json({ + success: true, + response: { + new_messages: newMessages.map(message => + jsonUtils.messageToJson(message, chatsById[parseInt(message.chatId)]) + ), + confirmed_messages: confirmedMessages.map(message => + jsonUtils.messageToJson(message, chatsById[parseInt(message.chatId)]) + ) + } + }); + res.status(200) + res.end() +} + +const getAllMessages = async (req, res) => { + const messages = await models.Message.findAll({ order: [['id', 'asc']] }) + const chatIds = messages.map(m => m.chatId) + console.log('=> getAllMessages, chatIds',chatIds) + let chats = chatIds.length > 0 ? await models.Chat.findAll({ where: {deleted:false, id: chatIds} }) : [] + const chatsById = indexBy(chats, 'id') + + success(res, { + new_messages: messages.map( + message => jsonUtils.messageToJson(message, chatsById[parseInt(message.chatId)]) + ), + confirmed_messages: [] + }) +}; + +const sendMessage = async (req, res) => { + // try { + // schemas.message.validateSync(req.body) + // } catch(e) { + // return failure(res, e.message) + // } + const { + contact_id, + text, + remote_text, + chat_id, + remote_text_map, + } = req.body + + console.log('[sendMessage]',) + + var date = new Date(); + date.setMilliseconds(0) + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + const chat = await helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id, + }) + + const remoteMessageContent = remote_text_map?JSON.stringify(remote_text_map) : remote_text + const msg={ + chatId: chat.id, + type: constants.message_types.message, + sender: owner.id, + date: date, + messageContent: text, + remoteMessageContent, + status: constants.statuses.pending, + createdAt: date, + updatedAt: date + } + // console.log(msg) + const message = await models.Message.create(msg) + + success(res, jsonUtils.messageToJson(message, chat)) + + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.message, + message: { + id: message.id, + content: remote_text_map || remote_text || text + } + }) +} + +const receiveMessage = async (payload) => { + console.log('received message', { payload }) + + var date = new Date(); + date.setMilliseconds(0) + + const total_spent = 1 + const {owner, sender, chat, content, msg_id} = await helpers.parseReceiveParams(payload) + if(!owner || !sender || !chat) { + return console.log('=> no group chat!') + } + const text = content + + const message = await models.Message.create({ + chatId: chat.id, + type: constants.message_types.message, + asciiEncodedTotal: total_spent, + sender: sender.id, + date: date, + messageContent: text, + createdAt: date, + updatedAt: date, + status: constants.statuses.received + }) + + console.log('saved message', message.dataValues) + + socket.sendJson({ + type: 'message', + response: jsonUtils.messageToJson(message, chat) + }) + + sendNotification(chat, sender.alias, 'message') + + sendConfirmation({ chat, sender: owner, msg_id }) +} + +const sendConfirmation = ({ chat, sender, msg_id }) => { + helpers.sendMessage({ + chat, + sender, + message: {id:msg_id}, + type: constants.message_types.confirmation, + }) +} + +const receiveConfirmation = async (payload) => { + console.log('received confirmation', { payload }) + + const dat = payload.content || payload + const chat_uuid = dat.chat.uuid + const msg_id = dat.message.id + const sender_pub_key = dat.sender.pub_key + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + const sender = await models.Contact.findOne({ where: { publicKey: sender_pub_key } }) + const chat = await models.Chat.findOne({ where: { uuid: chat_uuid } }) + + // new confirmation logic + if(msg_id){ + lock.acquire('confirmation', async function(done){ + console.log("update status map") + const message = await models.Message.findOne({ where:{id:msg_id} }) + if(message){ + let statusMap = {} + try{ + statusMap = JSON.parse(message.statusMap||'{}') + } catch(e){} + statusMap[sender.id] = constants.statuses.received + + await message.update({ + status: constants.statuses.received, + statusMap: JSON.stringify(statusMap) + }) + socket.sendJson({ + type: 'confirmation', + response: jsonUtils.messageToJson(message, chat) + }) + } + done() + }) + } else { // old logic + const messages = await models.Message.findAll({ + limit: 1, + where: { + chatId: chat.id, + sender: owner.id, + type: [ + constants.message_types.message, + constants.message_types.invoice, + constants.message_types.attachment, + ], + status: constants.statuses.pending, + }, + order: [['createdAt', 'desc']] + }) + + const message = messages[0] + message.update({ status: constants.statuses.received }) + + socket.sendJson({ + type: 'confirmation', + response: jsonUtils.messageToJson(message, chat) + }) + } +} + +const readMessages = async (req, res) => { + const chat_id = req.params.chat_id; + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + models.Message.update({ seen: true }, { + where: { + sender: { + [Op.ne]: owner.id + }, + chatId: chat_id + } + }); + + success(res, {}) +} + +const clearMessages = (req, res) => { + models.Message.destroy({ where: {}, truncate: true }) + + success(res, {}) +} + +export { + getMessages, + sendMessage, + receiveMessage, + receiveConfirmation, + clearMessages, + readMessages +} \ No newline at end of file diff --git a/api/controllers/payment.ts b/api/controllers/payment.ts new file mode 100644 index 0000000..7713142 --- /dev/null +++ b/api/controllers/payment.ts @@ -0,0 +1,199 @@ +import {models} from '../models' +import { sendNotification } from '../hub' +import * as socket from '../utils/socket' +import * as jsonUtils from '../utils/json' +import * as helpers from '../helpers' +import { success } from '../utils/res' +import * as lightning from '../utils/lightning' +import {tokenFromTerms} from '../utils/ldat' + +const constants = require(__dirname + '/../../config/constants.json'); + +const sendPayment = async (req, res) => { + const { + amount, + chat_id, + contact_id, + destination_key, + media_type, + muid, + text, + remote_text, + dimensions, + } = req.body + + console.log('[send payment]', req.body) + + if (destination_key && !contact_id && !chat_id) { + return helpers.performKeysendMessage({ + destination_key, + amount, + msg:'{}', + success: () => { + console.log('payment sent!') + success(res, {destination_key, amount}) + }, + failure: (error) => { + res.status(200); + res.json({ success: false, error }); + res.end(); + } + }) + } + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + const chat = await helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }) + + var date = new Date(); + date.setMilliseconds(0) + + const msg: {[k:string]:any} = { + chatId: chat.id, + sender: owner.id, + type: constants.message_types.direct_payment, + amount: amount, + amountMsat: parseFloat(amount) * 1000, + date: date, + createdAt: date, + updatedAt: date + } + if(text) msg.messageContent = text + if(remote_text) msg.remoteMessageContent = remote_text + + if(muid){ + const myMediaToken = await tokenFromTerms({ + meta:{dim:dimensions}, host:'', + muid, ttl:null, // default one year + pubkey: owner.publicKey + }) + msg.mediaToken = myMediaToken + msg.mediaType = media_type || '' + } + + const message = await models.Message.create(msg) + + const msgToSend: {[k:string]:any} = { + id:message.id, + amount, + } + if(muid) { + msgToSend.mediaType = media_type||'image/jpeg' + msgToSend.mediaTerms = {muid,meta:{dim:dimensions}} + } + if(remote_text) msgToSend.content = remote_text + + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.direct_payment, + message: msgToSend, + amount: amount, + success: async (data) => { + // console.log('payment sent', { data }) + success(res, jsonUtils.messageToJson(message, chat)) + }, + failure: (error) => { + res.status(200); + res.json({ success: false, error }); + res.end(); + } + }) +}; + +const receivePayment = async (payload) => { + console.log('received payment', { payload }) + + var date = new Date(); + date.setMilliseconds(0) + + const {owner, sender, chat, amount, content, mediaType, mediaToken} = await helpers.parseReceiveParams(payload) + if(!owner || !sender || !chat) { + return console.log('=> no group chat!') + } + + const msg: {[k:string]:any} = { + chatId: chat.id, + type: constants.message_types.direct_payment, + sender: sender.id, + amount: amount, + amountMsat: parseFloat(amount) * 1000, + date: date, + createdAt: date, + updatedAt: date + } + if(content) msg.messageContent = content + if(mediaType) msg.mediaType = mediaType + if(mediaToken) msg.mediaToken = mediaToken + + const message = await models.Message.create(msg) + + console.log('saved message', message.dataValues) + + socket.sendJson({ + type: 'direct_payment', + response: jsonUtils.messageToJson(message, chat) + }) + + sendNotification(chat, sender.alias, 'message') +} + +const listPayments = async (req, res) => { + const limit = (req.query.limit && parseInt(req.query.limit)) || 100 + const offset = (req.query.offset && parseInt(req.query.offset)) || 0 + + const payments: any[] = [] + + const response:any = await lightning.listInvoices() + const invs = response && response.invoices + if(invs && invs.length){ + invs.forEach(inv=>{ + const val = inv.value && parseInt(inv.value) + if(val && val>1) { + let payment_hash='' + if(inv.r_hash){ + payment_hash = Buffer.from(inv.r_hash).toString('hex') + } + payments.push({ + type:'invoice', + amount:parseInt(inv.value), + date:parseInt(inv.creation_date), + payment_request:inv.payment_request, + payment_hash + }) + } + }) + } + + const res2:any = await lightning.listPayments() + const pays = res2 && res2.payments + if(pays && pays.length){ + pays.forEach(pay=>{ + const val = pay.value && parseInt(pay.value) + if(val && val>1) { + payments.push({ + type:'payment', + amount:parseInt(pay.value), + date:parseInt(pay.creation_date), + pubkey:pay.path[pay.path.length-1], + payment_hash: pay.payment_hash, + }) + } + }) + } + + // latest one first + payments.sort((a,b)=> b.date - a.date) + + success(res, payments.splice(offset, limit)) +}; + +export { + sendPayment, + receivePayment, + listPayments, +} diff --git a/api/controllers/schemas.ts b/api/controllers/schemas.ts new file mode 100644 index 0000000..45f7c79 --- /dev/null +++ b/api/controllers/schemas.ts @@ -0,0 +1,29 @@ +import * as yup from 'yup' + +/* +These schemas validate payloads coming from app, +do not necessarily match up with Models +*/ + +const attachment = yup.object().shape({ + muid: yup.string().required(), + media_type: yup.string().required(), + media_key_map: yup.object().required(), +}) + +const message = yup.object().shape({ + contact_id: yup.number().required(), +}) + +const purchase = yup.object().shape({ + chat_id: yup.number().required(), + contact_id: yup.number().required(), + mediaToken: yup.string().required(), + amount: yup.number().required() +}) + +export { + attachment, + purchase, + message, +} \ No newline at end of file diff --git a/api/controllers/subscriptions.ts b/api/controllers/subscriptions.ts new file mode 100644 index 0000000..19de737 --- /dev/null +++ b/api/controllers/subscriptions.ts @@ -0,0 +1,387 @@ +import {models} from '../models' +import {success, failure} from '../utils/res' +import {CronJob} from 'cron' +import {toCamel} from '../utils/case' +import * as cronUtils from '../utils/cron' +import * as socket from '../utils/socket' +import * as jsonUtils from '../utils/json' +import * as helpers from '../helpers' +import * as rsa from '../crypto/rsa' +import * as moment from 'moment' + +const constants = require(__dirname + '/../../config/constants.json'); + +// store all current running jobs in memory +let jobs = {} + +// init jobs from DB +const initializeCronJobs = async () => { + await helpers.sleep(1000) + const subs = await getRawSubs({ where: { ended: false } }) + subs.length && subs.forEach(sub => { + console.log("=> starting subscription cron job",sub.id+":",sub.cron) + startCronJob(sub) + }) +} + +async function startCronJob(sub) { + jobs[sub.id] = new CronJob(sub.cron, async function () { + const subscription = await models.Subscription.findOne({ where: { id: sub.id } }) + if (!subscription) { + delete jobs[sub.id] + return this.stop() + } + + console.log('EXEC CRON =>', subscription.id) + if (subscription.paused) { // skip, still in jobs{} tho + return this.stop() + } + let STOP = checkSubscriptionShouldAlreadyHaveEnded(subscription) + if (STOP) { // end the job and return + console.log("stop") + subscription.update({ ended: true }) + delete jobs[subscription.id] + return this.stop() + } + // SEND PAYMENT!!! + sendSubscriptionPayment(subscription, false) + }, null, true); +} + +function checkSubscriptionShouldAlreadyHaveEnded(sub) { + if (sub.endDate) { + const now = new Date() + if (now.getTime() > sub.endDate.getTime()) { + return true + } + } + if (sub.endNumber) { + if (sub.count >= sub.endNumber) { + return true + } + } + return false +} + +function checkSubscriptionShouldEndAfterThisPayment(sub) { + if (sub.endDate) { + const { ms } = cronUtils.parse(sub.cron) + const now = new Date() + if ((now.getTime() + ms) > sub.endDate.getTime()) { + return true + } + } + if (sub.endNumber) { + if (sub.count + 1 >= sub.endNumber) { + return true + } + } + return false +} + +function msgForSubPayment(owner, sub, isFirstMessage, forMe){ + let text = '' + if (isFirstMessage) { + const alias = forMe ? 'You' : owner.alias + text = `${alias} subscribed\n` + } else { + text = 'Subscription\n' + } + text += `Amount: ${sub.amount} sats\n` + text += `Interval: ${cronUtils.parse(sub.cron).interval}\n` + if(sub.endDate) { + text += `End: ${moment(sub.endDate).format('MM/DD/YY')}\n` + text += `Status: ${sub.count+1} sent` + } else if(sub.endNumber) { + text += `Status: ${sub.count+1} of ${sub.endNumber} sent` + } + return text +} + +async function sendSubscriptionPayment(sub, isFirstMessage) { + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + + var date = new Date(); + date.setMilliseconds(0) + + const subscription = await models.Subscription.findOne({ where: { id: sub.id } }) + if (!subscription) { + return + } + const chat = await models.Chat.findOne({ where: {id:subscription.chatId} }) + if (!subscription) { + console.log("=> no sub for this payment!!!") + return + } + + const forMe = false + const text = msgForSubPayment(owner, sub, isFirstMessage, forMe) + + const contact = await models.Contact.findByPk(sub.contactId) + const enc = rsa.encrypt(contact.contactKey, text) + + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.direct_payment, + message: { amount: sub.amount, content: enc }, + amount: sub.amount, + success: async (data) => { + const shouldEnd = checkSubscriptionShouldEndAfterThisPayment(subscription) + const obj = { + totalPaid: parseFloat(subscription.totalPaid||0) + parseFloat(subscription.amount), + count: parseInt(subscription.count||0) + 1, + ended: false, + } + if(shouldEnd) { + obj.ended = true + if(jobs[sub.id]) jobs[subscription.id].stop() + delete jobs[subscription.id] + } + await subscription.update(obj) + + const forMe = true + const text2 = msgForSubPayment(owner, sub, isFirstMessage, forMe) + const encText = rsa.encrypt(owner.contactKey, text2) + const message = await models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.direct_payment, + status: constants.statuses.confirmed, + messageContent: encText, + amount: subscription.amount, + amountMsat: parseFloat(subscription.amount) * 1000, + date: date, + createdAt: date, + updatedAt: date, + subscriptionId: subscription.id, + }) + socket.sendJson({ + type: 'direct_payment', + response: jsonUtils.messageToJson(message, chat) + }) + }, + failure: async (err) => { + console.log("SEND PAY ERROR") + let errMessage = constants.payment_errors[err] || 'Unknown' + errMessage = 'Payment Failed: ' + errMessage + const message = await models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.direct_payment, + status: constants.statuses.failed, + messageContent: errMessage, + amount: sub.amount, + amountMsat: parseFloat(sub.amount) * 1000, + date: date, + createdAt: date, + updatedAt: date, + subscriptionId: sub.id, + }) + socket.sendJson({ + type: 'direct_payment', + response: jsonUtils.messageToJson(message, chat) + }) + } + }) +} + +// pause sub +async function pauseSubscription(req, res) { + const id = parseInt(req.params.id) + try { + const sub = await models.Subscription.findOne({ where: { id } }) + if (sub) { + sub.update({ paused: true }) + if (jobs[id]) jobs[id].stop() + success(res, jsonUtils.subscriptionToJson(sub,null)) + } else { + failure(res, 'not found') + } + } catch (e) { + console.log('ERROR pauseSubscription', e) + failure(res, e) + } +}; + +// restart sub +async function restartSubscription(req, res) { + const id = parseInt(req.params.id) + try { + const sub = await models.Subscription.findOne({ where: { id } }) + if (sub) { + sub.update({ paused: false }) + if (jobs[id]) jobs[id].start() + success(res, jsonUtils.subscriptionToJson(sub,null)) + } else { + failure(res, 'not found') + } + } catch (e) { + console.log('ERROR restartSubscription', e) + failure(res, e) + } +}; + +async function getRawSubs(opts = {}) { + const options: {[k: string]: any} = { order: [['id', 'asc']], ...opts } + try { + const subs = await models.Subscription.findAll(options) + return subs + } catch (e) { + throw e + } +} + +// all subs +const getAllSubscriptions = async (req, res) => { + try { + const subs = await getRawSubs() + success(res, subs.map(sub => jsonUtils.subscriptionToJson(sub,null))) + } catch (e) { + console.log('ERROR getAllSubscriptions', e) + failure(res, e) + } +}; + +// one sub by id +async function getSubscription(req, res) { + try { + const sub = await models.Subscription.findOne({ where: { id: req.params.id } }) + success(res, jsonUtils.subscriptionToJson(sub,null)) + } catch (e) { + console.log('ERROR getSubscription', e) + failure(res, e) + } +}; + +// delete sub by id +async function deleteSubscription(req, res) { + const id = req.params.id + if (!id) return + try { + if (jobs[id]) { + jobs[id].stop() + delete jobs[id] + } + models.Subscription.destroy({ where: { id } }) + success(res, true) + } catch (e) { + console.log('ERROR deleteSubscription', e) + failure(res, e) + } +}; + +// all subs for contact id +const getSubscriptionsForContact = async (req, res) => { + try { + const subs = await getRawSubs({ where: { contactId: req.params.contactId } }) + success(res, subs.map(sub => jsonUtils.subscriptionToJson(sub,null))) + } catch (e) { + console.log('ERROR getSubscriptionsForContact', e) + failure(res, e) + } +}; + +// create new sub +async function createSubscription(req, res) { + const date = new Date() + date.setMilliseconds(0) + const s = jsonToSubscription({ + ...req.body, + count: 0, + total_paid: 0, + createdAt: date, + ended: false, + paused: false + }) + if(!s.cron){ + return failure(res, 'Invalid interval') + } + try { + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + const chat = await helpers.findOrCreateChat({ + chat_id: req.body.chat_id, + owner_id: owner.id, + recipient_id: req.body.contact_id, + }) + s.chatId = chat.id // add chat id if newly created + if(!owner || !chat){ + return failure(res, 'Invalid chat or contact') + } + const sub = await models.Subscription.create(s) + startCronJob(sub) + const isFirstMessage = true + sendSubscriptionPayment(sub, isFirstMessage) + success(res, jsonUtils.subscriptionToJson(sub, chat)) + } catch (e) { + console.log('ERROR createSubscription', e) + failure(res, e) + } +}; + +async function editSubscription(req, res) { + console.log('======> editSubscription') + const date = new Date() + date.setMilliseconds(0) + const id = parseInt(req.params.id) + const s = jsonToSubscription({ + ...req.body, + count: 0, + createdAt: date, + ended: false, + paused: false + }) + try { + if(!id || !s.chatId || !s.cron){ + return failure(res, 'Invalid data') + } + const subRecord = await models.Subscription.findOne({ where: { id }}) + if(!subRecord) { + return failure(res, 'No subscription found') + } + // stop so it can be restarted + if (jobs[id]) jobs[id].stop() + const obj: {[k: string]: any} = { + cron: s.cron, + updatedAt: date, + } + if(s.amount) obj.amount = s.amount + if(s.endDate) obj.endDate = s.endDate + if(s.endNumber) obj.endNumber = s.endNumber + + const sub = await subRecord.update(obj) + const end = checkSubscriptionShouldAlreadyHaveEnded(sub) + if(end) { + await subRecord.update({ended:true}) + delete jobs[id] + } else { + startCronJob(sub) // restart + } + const chat = await models.Chat.findOne({ where: { id: s.chatId }}) + success(res, jsonUtils.subscriptionToJson(sub, chat)) + } catch (e) { + console.log('ERROR createSubscription', e) + failure(res, e) + } +}; + +function jsonToSubscription(j) { + console.log("=>",j) + const cron = cronUtils.make(j.interval) + return toCamel({ + ...j, + cron, + }) +} + +export { + initializeCronJobs, + getAllSubscriptions, + getSubscription, + createSubscription, + getSubscriptionsForContact, + pauseSubscription, + restartSubscription, + deleteSubscription, + editSubscription, +} diff --git a/api/controllers/uploads.ts b/api/controllers/uploads.ts new file mode 100644 index 0000000..50d7fe7 --- /dev/null +++ b/api/controllers/uploads.ts @@ -0,0 +1,60 @@ +import {models} from '../models' + +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; + +// setup disk storage +var multer = require('multer') +var avatarStorage = multer.diskStorage({ + destination: (req, file, cb) => { + let dir = __dirname.includes('/dist/') ? __dirname+'/..' : __dirname + cb(null, dir + '/../../public/uploads') + }, + filename: (req, file, cb) => { + const mime = file.mimetype + const extA = mime.split("/") + const ext = extA[extA.length-1] + if(req.body.chat_id){ + cb(null, `chat_${req.body.chat_id}_picture.${ext}`) + } else { + cb(null, `${req.body.contact_id}_profile_picture.${ext}`) + } + } +}) +var avatarUpload = multer({ storage: avatarStorage }) + +const uploadFile = async (req, res) => { + const { contact_id, chat_id } = req.body + const { file } = req + + const photo_url = + config.node_http_protocol + + '://' + + process.env.NODE_IP + + '/static/uploads/' + + file.filename + + if(contact_id){ + const contact = await models.Contact.findOne({ where: { id: contact_id } }) + if(contact) contact.update({ photoUrl: photo_url }) + } + + if(chat_id){ + const chat = await models.Chat.findOne({ where: { id: chat_id } }) + if(chat) chat.update({ photoUrl: photo_url }) + } + + res.status(200) + res.json({ + success: true, + contact_id: parseInt(contact_id||0), + chat_id: parseInt(chat_id||0), + photo_url + }); + res.end(); +} + +export { + avatarUpload, + uploadFile +} diff --git a/api/crypto/rsa.ts b/api/crypto/rsa.ts new file mode 100644 index 0000000..5b7d7ef --- /dev/null +++ b/api/crypto/rsa.ts @@ -0,0 +1,63 @@ +import * as crypto from "crypto"; + +export function encrypt(key, txt){ + try{ + const pubc = cert.pub(key) + const buf = crypto.publicEncrypt({ + key:pubc, + padding:crypto.constants.RSA_PKCS1_PADDING, + }, Buffer.from(txt,'utf-8')) + return buf.toString('base64') + } catch(e) { + return '' + } +} + +export function decrypt(privateKey, enc){ + try{ + const privc = cert.priv(privateKey) + const buf = crypto.privateDecrypt({ + key:privc, + padding:crypto.constants.RSA_PKCS1_PADDING, + }, Buffer.from(enc,'base64')) + return buf.toString('utf-8') + } catch(e) { + return '' + } +} + +export function testRSA(){ + crypto.generateKeyPair('rsa', { + modulusLength: 2048 + }, (err, publicKey, priv)=>{ + const pubPEM = publicKey.export({ + type:'pkcs1',format:'pem' + }) + const pub = cert.unpub(pubPEM) + + const msg = 'hi' + const enc = encrypt(pub, msg) + + const dec = decrypt(priv, enc) + console.log("FINAL:",dec) + }) +} + +const cert = { + unpub: function(key){ + let s = key + s = s.replace('-----BEGIN RSA PUBLIC KEY-----','') + s = s.replace('-----END RSA PUBLIC KEY-----','') + return s.replace(/[\r\n]+/gm, '') + }, + pub:function(key){ + return '-----BEGIN RSA PUBLIC KEY-----\n' + + key + '\n' + + '-----END RSA PUBLIC KEY-----' + }, + priv:function(key){ + return '-----BEGIN RSA PRIVATE KEY-----\n' + + key + '\n' + + '-----END RSA PRIVATE KEY-----' + } +} diff --git a/api/grpc/index.ts b/api/grpc/index.ts new file mode 100644 index 0000000..e561511 --- /dev/null +++ b/api/grpc/index.ts @@ -0,0 +1,144 @@ +import {models} from '../models' +import * as socket from '../utils/socket' +import { sendNotification } from '../hub' +import * as jsonUtils from '../utils/json' +import * as decodeUtils from '../utils/decode' +import {loadLightning, SPHINX_CUSTOM_RECORD_KEY} from '../utils/lightning' + +const constants = require(__dirname + '/../../config/constants.json'); + +function parseKeysendInvoice(i, actions){ + const recs = i.htlcs && i.htlcs[0] && i.htlcs[0].custom_records + const buf = recs && recs[SPHINX_CUSTOM_RECORD_KEY] + const data = buf && buf.toString() + const value = i && i.value && parseInt(i.value) + if(!data) return + + let payload + if(data[0]==='{'){ + try { + payload = JSON.parse(data) + } catch(e){} + } else { + const threads = weave(data) + if(threads) payload = JSON.parse(threads) + } + if(payload){ + const dat = payload.content || payload + if(value && dat && dat.message){ + dat.message.amount = value + } + if(actions[payload.type]) { + actions[payload.type](payload) + } else { + console.log('Incorrect payload type:', payload.type) + } + } +} + +const chunks = {} +function weave(p){ + const pa = p.split('_') + if(pa.length<4) return + const ts = pa[0] + const i = pa[1] + const n = pa[2] + const m = pa.filter((u,i)=>i>2).join('_') + chunks[ts] = chunks[ts] ? [...chunks[ts], {i,n,m}] : [{i,n,m}] + if(chunks[ts].length===parseInt(n)){ + // got em all! + const all = chunks[ts] + let payload = '' + all.slice().sort((a,b)=>a.i-b.i).forEach(obj=>{ + payload += obj.m + }) + delete chunks[ts] + return payload + } +} + +function subscribeInvoices(actions) { + return new Promise(async(resolve,reject)=>{ + const lightning = await loadLightning() + + var call = lightning.subscribeInvoices(); + call.on('data', async function(response) { + // console.log('subscribed invoices', { response }) + if (response['state'] !== 'SETTLED') { + return + } + // console.log("IS KEYSEND", response.is_keysend) + if(response.is_keysend) { + parseKeysendInvoice(response, actions) + } else { + const invoice = await models.Message.findOne({ where: { type: constants.message_types.invoice, payment_request: response['payment_request'] } }) + if (invoice == null) { + // console.log("ERROR: Invoice " + response['payment_request'] + " not found"); + socket.sendJson({ + type: 'invoice_payment', + response: {invoice: response['payment_request']} + }) + return + } + models.Message.update({ status: constants.statuses.confirmed }, { where: { id: invoice.id } }) + + let decodedPaymentRequest = decodeUtils.decode(response['payment_request']); + + var paymentHash = ""; + for (var i=0; i id != invoice.sender) + + const message = await models.Message.create({ + chatId: invoice.chatId, + type: constants.message_types.payment, + sender: senderId, + amount: response['amt_paid_sat'], + amountMsat: response['amt_paid_msat'], + paymentHash: paymentHash, + date: new Date(settleDate), + messageContent: response['memo'], + status: constants.statuses.confirmed, + createdAt: new Date(settleDate), + updatedAt: new Date(settleDate) + }) + socket.sendJson({ + type: 'payment', + response: jsonUtils.messageToJson(message, chat) + }) + + const sender = await models.Contact.findOne({ where: { id: senderId } }) + sendNotification(chat, sender.alias, 'message') + } + }); + call.on('status', function(status) { + console.log("Status", status); + resolve(status) + }); + call.on('error', function(err){ + // console.log(err) + reject(err) + }) + call.on('end', function() { + console.log("Closed stream"); + // The server has closed the stream. + }); + setTimeout(()=>{ + resolve(null) + },100) + }) +} + +export { + subscribeInvoices, +} diff --git a/api/helpers.ts b/api/helpers.ts new file mode 100644 index 0000000..4e5cf8d --- /dev/null +++ b/api/helpers.ts @@ -0,0 +1,247 @@ +import { models } from './models' +import * as md5 from 'md5' +import { keysendMessage } from './utils/lightning' +import {personalizeMessage} from './utils/msg' + +const constants = require('../config/constants.json'); + +const findOrCreateChat = async (params) => { + const { chat_id, owner_id, recipient_id } = params + let chat + let date = new Date(); + date.setMilliseconds(0) + + if (chat_id) { + chat = await models.Chat.findOne({ where: { id: chat_id } }) + // console.log('findOrCreateChat: chat_id exists') + } else { + console.log("chat does not exists, create new") + const owner = await models.Contact.findOne({ where: { id: owner_id } }) + const recipient = await models.Contact.findOne({ where: { id: recipient_id } }) + const uuid = md5([owner.publicKey, recipient.publicKey].sort().join("-")) + + // find by uuid + chat = await models.Chat.findOne({ where:{uuid} }) + + if(!chat){ // no chat! create new + chat = await models.Chat.create({ + uuid: uuid, + contactIds: JSON.stringify([parseInt(owner_id), parseInt(recipient_id)]), + createdAt: date, + updatedAt: date, + type: constants.chat_types.conversation + }) + } + } + return chat +} + +const sendContactKeys = async (args) => { + const { type, contactIds, contactPubKey, sender, success, failure } = args + const msg = newkeyexchangemsg(type, sender) + + let yes:any = null + let no:any = null + let cids = contactIds + + if(!contactIds) cids = [null] // nully + await asyncForEach(cids, async contactId => { + let destination_key:string + if(!contactId){ // nully + destination_key = contactPubKey + } else { + if (contactId == sender.id) { + return + } + const contact = await models.Contact.findOne({ where: { id: contactId } }) + destination_key = contact.publicKey + } + performKeysendMessage({ + destination_key, + amount: 1, + msg: JSON.stringify(msg), + success: (data) => { + yes = data + }, + failure: (error) => { + no = error + } + }) + }) + if(no && failure){ + failure(no) + } + if(!no && yes && success){ + success(yes) + } +} + +const sendMessage = async (params) => { + const { type, chat, message, sender, amount, success, failure } = params + const m = newmsg(type, chat, sender, message) + + const contactIds = typeof chat.contactIds==='string' ? JSON.parse(chat.contactIds) : chat.contactIds + + let yes:any = null + let no:any = null + console.log('all contactIds',contactIds) + await asyncForEach(contactIds, async contactId => { + if (contactId == sender.id) { + return + } + + const contact = await models.Contact.findOne({ where: { id: contactId } }) + const destkey = contact.publicKey + + const finalMsg = await personalizeMessage(m, contactId, destkey) + + const opts = { + dest: destkey, + data: JSON.stringify(finalMsg), + amt: amount || 1, + } + try { + const r = await keysendMessage(opts) + yes = r + } catch (e) { + console.log("KEYSEND ERROR", e) + no = e + } + }) + if(yes){ + if(success) success(yes) + } else { + if(failure) failure(no) + } +} + +const performKeysendMessage = async ({ destination_key, amount, msg, success, failure }) => { + const opts = { + dest: destination_key, + data: msg || JSON.stringify({}), + amt: amount || 1 + } + try { + const r = await keysendMessage(opts) + console.log("MESSAGE SENT outside SW!", r) + if (success) success(r) + } catch (e) { + console.log("MESSAGE ERROR", e) + if (failure) failure(e) + } +} + +async function findOrCreateContactByPubkey(senderPubKey) { + let sender = await models.Contact.findOne({ where: { publicKey: senderPubKey } }) + if (!sender) { + sender = await models.Contact.create({ + publicKey: senderPubKey, + alias: "Unknown", + status: 1 + }) + + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + sendContactKeys({ + contactIds: [sender.id], + sender: owner, + type: constants.message_types.contact_key, + }) + } + return sender +} + +async function findOrCreateChatByUUID(chat_uuid, contactIds) { + let chat = await models.Chat.findOne({ where: { uuid: chat_uuid } }) + if (!chat) { + var date = new Date(); + date.setMilliseconds(0) + chat = await models.Chat.create({ + uuid: chat_uuid, + contactIds: JSON.stringify(contactIds || []), + createdAt: date, + updatedAt: date, + type: 0 // conversation + }) + } + return chat +} + +async function sleep(ms) { + return new Promise(resolve => setTimeout(resolve, ms)) +} + +async function parseReceiveParams(payload) { + const dat = payload.content || payload + const sender_pub_key = dat.sender.pub_key + const chat_uuid = dat.chat.uuid + const chat_type = dat.chat.type + const chat_members: { [k: string]: any } = dat.chat.members || {} + const chat_name = dat.chat.name + const amount = dat.message.amount + const content = dat.message.content + const mediaToken = dat.message.mediaToken + const msg_id = dat.message.id||0 + const mediaKey = dat.message.mediaKey + const mediaType = dat.message.mediaType + + const isGroup = chat_type && chat_type == constants.chat_types.group + let sender + let chat + const owner = await models.Contact.findOne({ where: { isOwner: true } }) + if (isGroup) { + sender = await models.Contact.findOne({ where: { publicKey: sender_pub_key } }) + chat = await models.Chat.findOne({ where: { uuid: chat_uuid } }) + } else { + sender = await findOrCreateContactByPubkey(sender_pub_key) + chat = await findOrCreateChatByUUID( + chat_uuid, [parseInt(owner.id), parseInt(sender.id)] + ) + } + return { owner, sender, chat, sender_pub_key, chat_uuid, amount, content, mediaToken, mediaKey, mediaType, chat_type, msg_id, chat_members, chat_name } +} + +export { + findOrCreateChat, + sendMessage, + sendContactKeys, + findOrCreateContactByPubkey, + findOrCreateChatByUUID, + sleep, + parseReceiveParams, + performKeysendMessage +} + +async function asyncForEach(array, callback) { + for (let index = 0; index < array.length; index++) { + await callback(array[index], index, array); + } +} + +function newmsg(type, chat, sender, message){ + return { + type: type, + chat: { + uuid: chat.uuid, + ...chat.name && { name: chat.name }, + ...chat.type && { type: chat.type }, + ...chat.members && { members: chat.members }, + }, + message: message, + sender: { + pub_key: sender.publicKey, + // ...sender.contactKey && {contact_key: sender.contactKey} + } + } +} + +function newkeyexchangemsg(type, sender){ + return { + type: type, + sender: { + pub_key: sender.publicKey, + contact_key: sender.contactKey, + ...sender.alias && {alias: sender.alias}, + // ...sender.photoUrl && {photoUrl: sender.photoUrl} + } + } +} \ No newline at end of file diff --git a/api/hub.ts b/api/hub.ts new file mode 100644 index 0000000..c1a54ea --- /dev/null +++ b/api/hub.ts @@ -0,0 +1,219 @@ +import {models} from './models' +import * as fetch from 'node-fetch' +import { Op } from 'sequelize' +import * as socket from './utils/socket' +import * as jsonUtils from './utils/json' +import * as helpers from './helpers' +import {nodeinfo} from './utils/nodeinfo' + +const constants = require(__dirname + '/../config/constants.json'); +const env = process.env.NODE_ENV || 'development'; +const config = require('../config/app.json')[env]; + +const checkInviteHub = async (params = {}) => { + if (env != "production") { + return + } + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + //console.log('[hub] checking invites ping') + + const inviteStrings = await models.Invite.findAll({ where: { status: { [Op.notIn]: [constants.invite_statuses.complete, constants.invite_statuses.expired] } } }).map(invite => invite.inviteString) + + fetch(config.hub_api_url + '/invites/check', { + method: 'POST' , + body: JSON.stringify({ invite_strings: inviteStrings }), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + json.object.invites.map(async object => { + const invite = object.invite + const pubkey = object.pubkey + const price = object.price + + const dbInvite = await models.Invite.findOne({ where: { inviteString: invite.pin }}) + const contact = await models.Contact.findOne({ where: { id: dbInvite.contactId } }) + + if (dbInvite.status != invite.invite_status) { + dbInvite.update({ status: invite.invite_status, price: price }) + socket.sendJson({ + type: 'invite', + response: jsonUtils.inviteToJson(dbInvite) + }) + + if (dbInvite.status == constants.invite_statuses.ready && contact) { + sendNotification(-1, contact.alias, 'invite') + } + } + + if (pubkey && dbInvite.status == constants.invite_statuses.complete && contact) { + contact.update({ publicKey: pubkey, status: constants.contact_statuses.confirmed }) + + var contactJson = jsonUtils.contactToJson(contact) + contactJson.invite = jsonUtils.inviteToJson(dbInvite) + + socket.sendJson({ + type: 'contact', + response: contactJson + }) + + helpers.sendContactKeys({ + contactIds: [contact.id], + sender: owner, + type: constants.message_types.contact_key, + }) + } + }) + } + }) + .catch(error => { + console.log('[hub error]', error) + }) +} + +const pingHub = async (params = {}) => { + if (env != "production") { + return + } + + const node = await nodeinfo() + sendHubCall({ ...params, node }) +} + +const sendHubCall = (params) => { + // console.log('[hub] sending ping') + fetch(config.hub_api_url + '/ping', { + method: 'POST', + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + // ? + }) + .catch(error => { + console.log('[hub error]', error) + }) +} + +const pingHubInterval = (ms) => { + setInterval(pingHub, ms) +} + +const checkInvitesHubInterval = (ms) => { + setInterval(checkInviteHub, ms) +} + +const finishInviteInHub = (params, onSuccess, onFailure) => { + fetch(config.hub_api_url + '/invites/finish', { + method: 'POST' , + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + console.log('[hub] finished invite to hub') + onSuccess(json) + } else { + console.log('[hub] fail to finish invite in hub') + onFailure(json) + } + }) +} + +const payInviteInHub = (invite_string, params, onSuccess, onFailure) => { + fetch(config.hub_api_url + '/invites/' + invite_string + '/pay', { + method: 'POST' , + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + console.log('[hub] finished pay to hub') + onSuccess(json) + } else { + console.log('[hub] fail to pay invite in hub') + onFailure(json) + } + }) +} + +const createInviteInHub = (params, onSuccess, onFailure) => { + fetch(config.hub_api_url + '/invites', { + method: 'POST' , + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + console.log('[hub] sent invite to be created to hub') + onSuccess(json) + } else { + console.log('[hub] fail to create invite in hub') + onFailure(json) + } + }) +} + +const sendNotification = async (chat, name, type) => { + + let message = `You have a new message from ${name}` + if(type==='invite'){ + message = `Your invite to ${name} is ready` + } + if(type==='group'){ + message = `You have been added to group ${name}` + } + + if(type==='message' && chat.type==constants.chat_types.group && chat.name && chat.name.length){ + message += ` on ${chat.name}` + } + + console.log('[send notification]', { chat_id:chat.id, message }) + + if (chat.isMuted) { + console.log('[send notification] skipping. chat is muted.') + return + } + + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + if (!owner.deviceId) { + console.log('[send notification] skipping. owner.deviceId not set.') + return + } + + const unseenMessages = await models.Message.findAll({ where: { sender: { [Op.ne]: owner.id }, seen: false } }) + + const params = { + device_id: owner.deviceId, + notification: { + chat_id: chat.id, + message, + badge: unseenMessages.length + } + } + + fetch("http://hub.sphinx.chat/api/v1/nodes/notify", { + method: 'POST' , + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => console.log('[hub notification]', json)) +} + +export { + pingHubInterval, + checkInvitesHubInterval, + sendHubCall, + sendNotification, + createInviteInHub, + finishInviteInHub, + payInviteInHub +} diff --git a/api/models/index.ts b/api/models/index.ts new file mode 100644 index 0000000..c6cb1c2 --- /dev/null +++ b/api/models/index.ts @@ -0,0 +1,16 @@ +import {Sequelize} from 'sequelize-typescript'; + +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/config.json')[env]; + +const sequelize = new Sequelize({ + ...config, + logging: process.env.SQL_LOG==='true' ? console.log : false, + models: [__dirname + '/ts'] +}) +const models = sequelize.models + +export { + sequelize, + models, +} diff --git a/api/models/ts/chat.ts b/api/models/ts/chat.ts new file mode 100644 index 0000000..4dd6bbb --- /dev/null +++ b/api/models/ts/chat.ts @@ -0,0 +1,48 @@ +import { Table, Column, Model, DataType } from 'sequelize-typescript'; + +@Table({tableName: 'sphinx_chats', underscored: true}) +export default class Chat extends Model { + + @Column({ + type: DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }) + id: number + + @Column + uuid: string + + @Column + name: string + + @Column + photoUrl: string + + @Column(DataType.BIGINT) + type: number + + @Column(DataType.BIGINT) + status: number + + @Column + contactIds: string + + @Column + isMuted: boolean + + @Column + createdAt: Date + + @Column + updatedAt: Date + + @Column({ + type: DataType.BOOLEAN, + defaultValue: false, + allowNull: false + }) + deleted: boolean + +} \ No newline at end of file diff --git a/api/models/ts/contact.ts b/api/models/ts/contact.ts new file mode 100644 index 0000000..e0c0700 --- /dev/null +++ b/api/models/ts/contact.ts @@ -0,0 +1,57 @@ +import { Table, Column, Model, DataType } from 'sequelize-typescript'; + +@Table({tableName: 'sphinx_contacts', underscored: true}) +export default class Contact extends Model { + + @Column({ + type: DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }) + id: number + + @Column + publicKey: string + + @Column + nodeAlias: string + + @Column + alias: string + + @Column + photoUrl: string + + @Column + isOwner: boolean + + @Column({ + type: DataType.BOOLEAN, + defaultValue: false, + allowNull: false + }) + deleted: boolean + + @Column + authToken: string + + @Column(DataType.BIGINT) + remoteId: number + + @Column(DataType.BIGINT) + status: number + + @Column(DataType.TEXT) + contactKey: string + + @Column + deviceId: string + + @Column + createdAt: Date + + @Column + updatedAt: Date + +} \ No newline at end of file diff --git a/api/models/ts/invite.ts b/api/models/ts/invite.ts new file mode 100644 index 0000000..85cd4a3 --- /dev/null +++ b/api/models/ts/invite.ts @@ -0,0 +1,35 @@ +import { Table, Column, Model, DataType } from 'sequelize-typescript'; + +@Table({tableName: 'sphinx_invites', underscored: true}) +export default class Invite extends Model { + + @Column({ + type: DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }) + id: number + + @Column + inviteString: string + + @Column + welcomeMessage: string + + @Column(DataType.BIGINT) + contactId: number + + @Column(DataType.BIGINT) + status: number + + @Column(DataType.DECIMAL(10, 2)) + price: number + + @Column + createdAt: Date + + @Column + updatedAt: Date + +} \ No newline at end of file diff --git a/api/models/ts/mediaKey.ts b/api/models/ts/mediaKey.ts new file mode 100644 index 0000000..23d3da6 --- /dev/null +++ b/api/models/ts/mediaKey.ts @@ -0,0 +1,39 @@ +import { Table, Column, Model, DataType } from 'sequelize-typescript'; + +/* +Used for media uploads. When you upload a file, +also upload the symetric key encrypted for each chat member. +When they buy the file, they can retrieve the key from here. + +"received" media keys are not stored here, only in Message +*/ + +@Table({tableName: 'sphinx_media_keys', underscored: true}) +export default class MediaKey extends Model { + + @Column({ + type: DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }) + id: number + + @Column + muid: string + + @Column(DataType.BIGINT) + chatId: number + + @Column(DataType.BIGINT) + receiver: number + + @Column + key: string + + @Column(DataType.BIGINT) + messageId: number + + @Column + createdAt: Date +} \ No newline at end of file diff --git a/api/models/ts/message.ts b/api/models/ts/message.ts new file mode 100644 index 0000000..f4a5ec5 --- /dev/null +++ b/api/models/ts/message.ts @@ -0,0 +1,89 @@ +import { Table, Column, Model, DataType } from 'sequelize-typescript'; + +@Table({tableName: 'sphinx_messages', underscored: true}) +export default class Message extends Model { + + @Column({ + type: DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }) + id: number + + @Column(DataType.BIGINT) + chatId: number + + @Column(DataType.BIGINT) + type: number + + @Column(DataType.BIGINT) + sender: number + + @Column(DataType.BIGINT) + receiver: number + + @Column(DataType.DECIMAL) + amount: number + + @Column(DataType.DECIMAL) + amountMsat: number + + @Column + paymentHash: string + + @Column(DataType.TEXT) + paymentRequest: string + + @Column + date: Date + + @Column + expirationDate: Date + + @Column(DataType.TEXT) + messageContent: string + + @Column(DataType.TEXT) + remoteMessageContent: string + + @Column(DataType.BIGINT) + status: number + + @Column(DataType.TEXT) + statusMap: string + + @Column(DataType.BIGINT) + parentId: number + + @Column(DataType.BIGINT) + subscriptionId: number + + @Column + mediaTerms: string + + @Column + receipt: string + + @Column + mediaKey: string + + @Column + mediaType: string + + @Column + mediaToken: string + + @Column({ + type: DataType.BOOLEAN, + defaultValue: false, + allowNull: false + }) + seen: boolean + + @Column + createdAt: Date + + @Column + updatedAt: Date +} \ No newline at end of file diff --git a/api/models/ts/subscription.ts b/api/models/ts/subscription.ts new file mode 100644 index 0000000..f0693c4 --- /dev/null +++ b/api/models/ts/subscription.ts @@ -0,0 +1,49 @@ +import { Table, Column, Model, DataType } from 'sequelize-typescript'; + +@Table({tableName: 'sphinx_subscriptions', underscored: true}) +export default class Subscription extends Model { + + @Column({ + type: DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }) + id: number + + @Column(DataType.BIGINT) + chatId: number + + @Column(DataType.BIGINT) + contactId: number + + @Column(DataType.TEXT) + cron: string + + @Column(DataType.DECIMAL) + amount: number + + @Column(DataType.DECIMAL) + totalPaid: number + + @Column(DataType.BIGINT) + endNumber: number + + @Column + endDate: Date + + @Column(DataType.BIGINT) + count: number + + @Column + ended: boolean + + @Column + paused: boolean + + @Column + createdAt: Date + + @Column + updatedAt: Date +} \ No newline at end of file diff --git a/api/utils/case.ts b/api/utils/case.ts new file mode 100644 index 0000000..0244585 --- /dev/null +++ b/api/utils/case.ts @@ -0,0 +1,27 @@ +import * as changeCase from "change-case"; + +const dateKeys = ['date','createdAt','updatedAt','created_at','updated_at'] + +function toSnake(obj) { + const ret: {[k: string]: any} = {} + for (let [key, value] of Object.entries(obj)) { + if(dateKeys.includes(key) && value){ + const v: any = value + const d = new Date(v) + ret[changeCase.snakeCase(key)] = d.toISOString() + } else { + ret[changeCase.snakeCase(key)] = value + } + } + return ret +} + +function toCamel(obj) { + const ret: {[k: string]: any} = {} + for (let [key, value] of Object.entries(obj)) { + ret[changeCase.camelCase(key)] = value + } + return ret +} + +export {toSnake, toCamel} \ No newline at end of file diff --git a/api/utils/cron.ts b/api/utils/cron.ts new file mode 100644 index 0000000..e7532d0 --- /dev/null +++ b/api/utils/cron.ts @@ -0,0 +1,49 @@ +import * as parser from 'cron-parser' + +function daily() { + const now = new Date() + const minute = now.getMinutes() + const hour = now.getHours() + return `${minute} ${hour} * * *` +} + +function weekly() { + const now = new Date() + const minute = now.getMinutes() + const hour = now.getHours() + const dayOfWeek = now.getDay() + return `${minute} ${hour} * * ${dayOfWeek}` +} + +function monthly() { + const now = new Date() + const minute = now.getMinutes() + const hour = now.getHours() + const dayOfMonth = now.getDate() + return `${minute} ${hour} ${dayOfMonth} * *` +} + +function parse(s) { + var interval = parser.parseExpression(s); + const next = interval.next().toString() + + if(s.endsWith(' * * *')) { + return {interval: 'daily', next, ms:86400000} + } + if(s.endsWith(' * *')) { + return {interval: 'monthly', next, ms:86400000*30} + } + return {interval: 'weekly', next, ms:86400000*7} +} + +function make(interval) { + if(interval==='daily') return daily() + if(interval==='weekly') return weekly() + if(interval==='monthly') return monthly() +} + +export { + parse, + make, +} + diff --git a/api/utils/decode/index.js b/api/utils/decode/index.js new file mode 100644 index 0000000..e7c8110 --- /dev/null +++ b/api/utils/decode/index.js @@ -0,0 +1,312 @@ +const bech32CharValues = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'; + +module.exports = { + decode: function(paymentRequest) { + let input = paymentRequest.toLowerCase(); + let splitPosition = input.lastIndexOf('1'); + let humanReadablePart = input.substring(0, splitPosition); + let data = input.substring(splitPosition + 1, input.length - 6); + let checksum = input.substring(input.length - 6, input.length); + + if (!this.verify_checksum(humanReadablePart, this.bech32ToFiveBitArray(data + checksum))) { + return 'error'; + } + + return { + 'human_readable_part': this.decodeHumanReadablePart(humanReadablePart), + 'data': this.decodeData(data, humanReadablePart), + 'checksum': checksum + } + }, + + decodeHumanReadablePart: function(humanReadablePart) { + let prefixes = ['lnbc', 'lntb', 'lnbcrt']; + let prefix; + prefixes.forEach(value => { + if (humanReadablePart.substring(0, value.length) === value) { + prefix = value; + } + }); + if (prefix == null) return 'error'; // A reader MUST fail if it does not understand the prefix. + let amount = this.decodeAmount(humanReadablePart.substring(prefix.length, humanReadablePart.length)); + + return { + 'prefix': prefix, + 'amount': amount + } + }, + + decodeData: function(data, humanReadablePart) { + let date32 = data.substring(0, 7); + let dateEpoch = this.bech32ToInt(date32); + let signature = data.substring(data.length - 104, data.length); + let tagData = data.substring(7, data.length - 104); + let decodedTags = this.decodeTags(tagData); + let value = this.bech32ToFiveBitArray(date32 + tagData); + value = this.fiveBitArrayTo8BitArray(value, true); + value = this.textToHexString(humanReadablePart).concat(this.byteArrayToHexString(value)); + + return { + 'time_stamp': dateEpoch, + 'tags': decodedTags, + 'signature': this.decodeSignature(signature), + 'signing_data': value + } + }, + + decodeSignature: function(signature) { + let data = this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(signature)); + let recoveryFlag = data[data.length - 1]; + let r = this.byteArrayToHexString(data.slice(0, 32)); + let s = this.byteArrayToHexString(data.slice(32, data.length - 1)); + return { + 'r': r, + 's': s, + 'recovery_flag': recoveryFlag + } + }, + + decodeAmount: function(str) { + let multiplier = str.charAt(str.length - 1); + let amount = str.substring(0, str.length - 1); + if (amount.substring(0, 1) === '0') { + return 'error'; + } + amount = Number(amount); + if (amount < 0 || !Number.isInteger(amount)) { + return 'error'; + } + + switch (multiplier) { + case '': + return 'Any amount'; // A reader SHOULD indicate if amount is unspecified + case 'p': + return amount / 10; + case 'n': + return amount * 100; + case 'u': + return amount * 100000; + case 'm': + return amount * 100000000; + default: + // A reader SHOULD fail if amount is followed by anything except a defined multiplier. + return 'error'; + } + }, + + decodeTags: function(tagData) { + let tags = this.extractTags(tagData); + let decodedTags = []; + tags.forEach(value => decodedTags.push(this.decodeTag(value.type, value.length, value.data))); + return decodedTags; + }, + + extractTags: function(str) { + let tags = []; + while (str.length > 0) { + let type = str.charAt(0); + let dataLength = this.bech32ToInt(str.substring(1, 3)); + let data = str.substring(3, dataLength + 3); + tags.push({ + 'type': type, + 'length': dataLength, + 'data': data + }); + str = str.substring(3 + dataLength, str.length); + } + return tags; + }, + + decodeTag: function(type, length, data) { + switch (type) { + case 'p': + if (length !== 52) break; // A reader MUST skip over a 'p' field that does not have data_length 52 + return { + 'type': type, + 'length': length, + 'description': 'payment_hash', + 'value': this.byteArrayToHexString(this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(data))) + }; + case 'd': + return { + 'type': type, + 'length': length, + 'description': 'description', + 'value': this.bech32ToUTF8String(data) + }; + case 'n': + if (length !== 53) break; // A reader MUST skip over a 'n' field that does not have data_length 53 + return { + 'type': type, + 'length': length, + 'description': 'payee_public_key', + 'value': this.byteArrayToHexString(this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(data))) + }; + case 'h': + if (length !== 52) break; // A reader MUST skip over a 'h' field that does not have data_length 52 + return { + 'type': type, + 'length': length, + 'description': 'description_hash', + 'value': data + }; + case 'x': + return { + 'type': type, + 'length': length, + 'description': 'expiry', + 'value': this.bech32ToInt(data) + }; + case 'c': + return { + 'type': type, + 'length': length, + 'description': 'min_final_cltv_expiry', + 'value': this.bech32ToInt(data) + }; + case 'f': + let version = this.bech32ToFiveBitArray(data.charAt(0))[0]; + if (version < 0 || version > 18) break; // a reader MUST skip over an f field with unknown version. + data = data.substring(1, data.length); + return { + 'type': type, + 'length': length, + 'description': 'fallback_address', + 'value': { + 'version': version, + 'fallback_address': data + } + }; + case 'r': + data = this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(data)); + let pubkey = data.slice(0, 33); + let shortChannelId = data.slice(33, 41); + let feeBaseMsat = data.slice(41, 45); + let feeProportionalMillionths = data.slice(45, 49); + let cltvExpiryDelta = data.slice(49, 51); + return { + 'type': type, + 'length': length, + 'description': 'routing_information', + 'value': { + 'public_key': this.byteArrayToHexString(pubkey), + 'short_channel_id': this.byteArrayToHexString(shortChannelId), + 'fee_base_msat': this.byteArrayToInt(feeBaseMsat), + 'fee_proportional_millionths': this.byteArrayToInt(feeProportionalMillionths), + 'cltv_expiry_delta': this.byteArrayToInt(cltvExpiryDelta) + } + }; + default: + // reader MUST skip over unknown fields + } + }, + + polymod: function(values) { + let GEN = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]; + let chk = 1; + values.forEach((value) => { + let b = (chk >> 25); + chk = (chk & 0x1ffffff) << 5 ^ value; + for (let i = 0; i < 5; i++) { + if (((b >> i) & 1) === 1) { + chk ^= GEN[i]; + } else { + chk ^= 0; + } + } + }); + return chk; + }, + + expand: function(str) { + let array = []; + for (let i = 0; i < str.length; i++) { + array.push(str.charCodeAt(i) >> 5); + } + array.push(0); + for (let i = 0; i < str.length; i++) { + array.push(str.charCodeAt(i) & 31); + } + return array; + }, + + verify_checksum: function(hrp, data) { + hrp = this.expand(hrp); + let all = hrp.concat(data); + let bool = this.polymod(all); + return bool === 1; + }, + + byteArrayToInt: function(byteArray) { + let value = 0; + for (let i = 0; i < byteArray.length; ++i) { + value = (value << 8) + byteArray[i]; + } + return value; + }, + + bech32ToInt: function(str) { + let sum = 0; + for (let i = 0; i < str.length; i++) { + sum = sum * 32; + sum = sum + bech32CharValues.indexOf(str.charAt(i)); + } + return sum; + }, + + bech32ToFiveBitArray: function(str) { + let array = []; + for (let i = 0; i < str.length; i++) { + array.push(bech32CharValues.indexOf(str.charAt(i))); + } + return array; + }, + + fiveBitArrayTo8BitArray: function(int5Array, includeOverflow) { + let count = 0; + let buffer = 0; + let byteArray = []; + int5Array.forEach((value) => { + buffer = (buffer << 5) + value; + count += 5; + if (count >= 8) { + byteArray.push(buffer >> (count - 8) & 255); + count -= 8; + } + }); + if (includeOverflow && count > 0) { + byteArray.push(buffer << (8 - count) & 255); + } + return byteArray; + }, + + bech32ToUTF8String: function(str) { + let int5Array = this.bech32ToFiveBitArray(str); + let byteArray = this.fiveBitArrayTo8BitArray(int5Array); + + let utf8String = ''; + for (let i = 0; i < byteArray.length; i++) { + utf8String += '%' + ('0' + byteArray[i].toString(16)).slice(-2); + } + return decodeURIComponent(utf8String); + }, + + byteArrayToHexString: function(byteArray) { + return Array.prototype.map.call(byteArray, function (byte) { + return ('0' + (byte & 0xFF).toString(16)).slice(-2); + }).join(''); + }, + + textToHexString: function(text) { + let hexString = ''; + for (let i = 0; i < text.length; i++) { + hexString += text.charCodeAt(i).toString(16); + } + return hexString; + }, + + epochToDate: function(int) { + let date = new Date(int * 1000); + return date.toUTCString(); + } +} diff --git a/api/utils/gitinfo.ts b/api/utils/gitinfo.ts new file mode 100644 index 0000000..c2ba400 --- /dev/null +++ b/api/utils/gitinfo.ts @@ -0,0 +1,49 @@ +import { exec } from 'child_process' + +let commitHash +function checkCommitHash(){ + return new Promise((resolve, reject)=>{ + if(commitHash) { + return resolve(commitHash) + } + try{ + exec(`git log -1 --pretty=format:%h`, {timeout:999}, (error, stdout, stderr) => { + if(stdout){ + commitHash = stdout.trim() + return resolve(commitHash) + } else { + resolve('') + } + }) + } catch(e) { + console.log(e) + resolve('') + } + }) +} + +let tag +function checkTag(){ + return new Promise((resolve, reject)=>{ + if(tag) { + return resolve(tag) + } + try{ + exec(`git describe --abbrev=0 --tags`, {timeout:999}, (error, stdout, stderr) => { + if(stdout){ + tag = stdout.trim() + return resolve(tag) + } else { + resolve('') + } + }) + } catch(e) { + console.log(e) + resolve('') + } + }) +} + +export { + checkCommitHash, checkTag +} \ No newline at end of file diff --git a/api/utils/json.ts b/api/utils/json.ts new file mode 100644 index 0000000..a60907c --- /dev/null +++ b/api/utils/json.ts @@ -0,0 +1,53 @@ +import {toSnake,toCamel} from '../utils/case' +import * as cronUtils from './cron' + +function chatToJson(c) { + const chat = c.dataValues||c + let contactIds = chat.contactIds || null + if(chat.contactIds && typeof chat.contactIds==='string'){ + contactIds = JSON.parse(chat.contactIds) + } + return toSnake({ + ...chat, + contactIds + }) +} + +function messageToJson(msg, chat = null) { + const message = msg.dataValues||msg + let statusMap = message.statusMap || null + if(message.statusMap && typeof message.statusMap==='string'){ + statusMap = JSON.parse(message.statusMap) + } + return toSnake({ + ...message, + statusMap, + chat: chat ? chatToJson(chat) : null, + }) +} + +const contactToJson = (contact) => toSnake(contact.dataValues||contact) + +const inviteToJson = (invite) => toSnake(invite.dataValues||invite) + +const jsonToContact = (json) => toCamel(json) + +function subscriptionToJson(subscription, chat) { + const sub = subscription.dataValues || subscription + const { interval, next } = cronUtils.parse(sub.cron) + return toSnake({ + ...sub, + interval, + next, + chat: chat ? chatToJson(chat) : null, + }) +} + +export { + messageToJson, + contactToJson, + inviteToJson, + jsonToContact, + chatToJson, + subscriptionToJson, +} diff --git a/api/utils/ldat.ts b/api/utils/ldat.ts new file mode 100644 index 0000000..e390c0d --- /dev/null +++ b/api/utils/ldat.ts @@ -0,0 +1,153 @@ +import * as zbase32 from './zbase32' +import {signBuffer} from './lightning' + +const env = process.env.NODE_ENV || 'development' +const config = require(__dirname + '/../../config/app.json')[env] + +/* +Lightning Data Access Token +Base64 strings separated by dots: +{host}.{muid}.{buyerPubKey}.{exp}.{metadata}.{signature} + +- host: web host for data (ascii->base64) +- muid: ID of media +- buyerPubKey +- exp: unix timestamp expiration (encoded into 4 bytes) +- meta: key/value pairs, url query encoded (alphabetically ordered, ascii->base64) +- signature of all that (concatenated bytes of each) +*/ + +async function tokenFromTerms({host,muid,ttl,pubkey,meta}){ + const theHost = host || config.media_host || '' + + const pubkeyBytes = Buffer.from(pubkey, 'hex') + const pubkey64 = urlBase64FromBytes(pubkeyBytes) + + const now = Math.floor(Date.now()/1000) + const exp = ttl ? now + (60*60*24*365) : 0 + + const ldat = startLDAT(theHost,muid,pubkey64,exp,meta) + if(pubkey!=''){ + const sig = await signBuffer(ldat.bytes) + const sigBytes = zbase32.decode(sig) + return ldat.terms + "." + urlBase64FromBytes(sigBytes) + } else { + return ldat.terms + } +} + +// host.muid.pk.exp.meta +function startLDAT(host:string,muid:string,pk:string,exp:number,meta:{[k:string]:any}={}){ + const empty = Buffer.from([]) + var hostBuf = Buffer.from(host, 'ascii') + var muidBuf = Buffer.from(muid, 'base64') + var pkBuf = pk ? Buffer.from(pk, 'base64') : empty + var expBuf = exp ? Buffer.from(exp.toString(16), 'hex') : empty + var metaBuf = meta ? Buffer.from(serializeMeta(meta), 'ascii') : empty + + const totalLength = hostBuf.length + muidBuf.length + pkBuf.length + expBuf.length + metaBuf.length + const buf = Buffer.concat([hostBuf, muidBuf, pkBuf, expBuf, metaBuf], totalLength) + let terms = `${urlBase64(hostBuf)}.${urlBase64(muidBuf)}.${urlBase64(pkBuf)}.${urlBase64(expBuf)}.${urlBase64(metaBuf)}` + return {terms, bytes: buf} +} + +const termKeys = [{ + key:'host', + func: buf=> buf.toString('ascii') +},{ + key:'muid', + func: buf=> urlBase64(buf) +},{ + key:'pubkey', + func: buf=> buf.toString('hex') +},{ + key:'ts', + func: buf=> parseInt('0x' + buf.toString('hex')) +},{ + key:'meta', + func: buf=> { + const ascii = buf.toString('ascii') + return ascii?deserializeMeta(ascii):{} // parse this + } +},{ + key:'sig', + func: buf=> urlBase64(buf) +}] + +function parseLDAT(ldat){ + const a = ldat.split('.') + const o: {[k:string]:any} = {} + termKeys.forEach((t,i)=>{ + if(a[i]) o[t.key] = t.func(Buffer.from(a[i], 'base64')) + }) + return o +} + +export { + startLDAT, parseLDAT, tokenFromTerms, + urlBase64, urlBase64FromAscii, + urlBase64FromBytes, testLDAT +} + +async function testLDAT(){ + console.log('testLDAT') + const terms = { + host:'', + ttl:31536000, //one year + muid:'qFSOa50yWeGSG8oelsMvctLYdejPRD090dsypBSx_xg=', + pubkey:'0373ca36a331d8fd847f190908715a34997b15dc3c5d560ca032cf3412fcf494e4', + meta:{ + amt:100, + ttl:31536000, + dim:'1500x1300' + } + } + const token = await tokenFromTerms(terms) + console.log(token) + + const terms2 = { + host:'', + ttl:0, //one year + muid:'qFSOa50yWeGSG8oelsMvctLYdejPRD090dsypBSx_xg=', + pubkey:'', + meta:{ + amt:100, + ttl:31536000, + } + } + const token2 = await tokenFromTerms(terms2) + console.log(token2) + + console.log(parseLDAT(token2)) +} + +function serializeMeta(obj) { + var str: string[] = [] + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); + } + } + str.sort((a,b)=>(a > b ? 1 : -1)) + return str.join("&"); +} + +function deserializeMeta(str){ + const json = str && str.length>2 ? JSON.parse('{"' + str.replace(/&/g, '","').replace(/=/g,'":"') + '"}', function(key, value) { return key===""?value:decodeURIComponent(value) }) : {} + const ret = {} + for (let [k, v] of Object.entries(json)) { + const value = (typeof v==='string' && parseInt(v)) || v + ret[k] = value + } + return ret +} + +function urlBase64(buf){ + return buf.toString('base64').replace(/\//g, '_').replace(/\+/g, '-') +} +function urlBase64FromBytes(buf){ + return Buffer.from(buf).toString('base64').replace(/\//g, '_').replace(/\+/g, '-') +} +function urlBase64FromAscii(ascii){ + return Buffer.from(ascii,'ascii').toString('base64').replace(/\//g, '_').replace(/\+/g, '-') +} diff --git a/api/utils/lightning.ts b/api/utils/lightning.ts new file mode 100644 index 0000000..3adeb4a --- /dev/null +++ b/api/utils/lightning.ts @@ -0,0 +1,321 @@ +import * as ByteBuffer from 'bytebuffer' +import * as fs from 'fs' +import * as grpc from 'grpc' +import { sleep } from '../helpers'; +import * as sha from 'js-sha256' +import * as crypto from 'crypto' +// var protoLoader = require('@grpc/proto-loader') +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; + +const LND_KEYSEND_KEY = 5482373484 +const SPHINX_CUSTOM_RECORD_KEY = 133773310 + +var lightningClient = null; +var walletUnlocker = null; + +const loadCredentials = () => { + var lndCert = fs.readFileSync(config.tls_location); + var sslCreds = grpc.credentials.createSsl(lndCert); + var m = fs.readFileSync(config.macaroon_location); + var macaroon = m.toString('hex'); + var metadata = new grpc.Metadata() + metadata.add('macaroon', macaroon) + var macaroonCreds = grpc.credentials.createFromMetadataGenerator((_args, callback) => { + callback(null, metadata); + }); + + return grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds); +} + +// async function loadLightningNew() { +// if (lightningClient) { +// return lightningClient +// } else { +// var credentials = loadCredentials() +// const packageDefinition = await protoLoader.load("rpc.proto", {}) +// const lnrpcDescriptor = grpc.loadPackageDefinition(packageDefinition); +// var { lnrpc } = lnrpcDescriptor; +// lightningClient = new lnrpc.Lightning(config.node_ip + ':' + config.lnd_port, credentials); +// return lightningClient +// } +// } + +const loadLightning = () => { + if (lightningClient) { + return lightningClient + } else { + try{ + var credentials = loadCredentials() + var lnrpcDescriptor = grpc.load("rpc.proto"); + var lnrpc: any = lnrpcDescriptor.lnrpc + lightningClient = new lnrpc.Lightning(config.node_ip + ':' + config.lnd_port, credentials); + return lightningClient + } catch(e) { + throw e + } + } +} + +const loadWalletUnlocker = () => { + if (walletUnlocker) { + return walletUnlocker + } else { + var credentials = loadCredentials() + try{ + var lnrpcDescriptor = grpc.load("rpc.proto"); + var lnrpc: any = lnrpcDescriptor.lnrpc + walletUnlocker = new lnrpc.WalletUnlocker(config.node_ip + ':' + config.lnd_port, credentials); + return walletUnlocker + } catch(e) { + console.log(e) + } + } +} + +const getHeaders = (req) => { + return { + "X-User-Token": req.headers['x-user-token'], + "X-User-Email": req.headers['x-user-email'] + } +} + +var isLocked = false +let lockTimeout: ReturnType; +const getLock = () => isLocked +const setLock = (value) => { + isLocked = value + console.log({ isLocked }) + if (lockTimeout) clearTimeout(lockTimeout) + lockTimeout = setTimeout(() => { + isLocked = false + console.log({ isLocked }) + }, 1000 * 60 * 2) +} + +const getRoute = async (pub_key, amt, callback) => { + let lightning = await loadLightning() + lightning.queryRoutes( + { pub_key, amt }, + (err, response) => callback(err, response) + ) +} + +const keysend = (opts) => { + return new Promise(async function(resolve, reject) { + let lightning = await loadLightning() + + const randoStr = crypto.randomBytes(32).toString('hex'); + const preimage = ByteBuffer.fromHex(randoStr) + const options = { + amt: opts.amt, + final_cltv_delta: 10, + dest: ByteBuffer.fromHex(opts.dest), + dest_custom_records: { + [`${LND_KEYSEND_KEY}`]: preimage, + [`${SPHINX_CUSTOM_RECORD_KEY}`]: ByteBuffer.fromUTF8(opts.data), + }, + payment_hash: sha.sha256.arrayBuffer(preimage.toBuffer()), + dest_features:[9], + } + const call = lightning.sendPayment() + call.on('data', function(payment) { + if(payment.payment_error){ + reject(payment.payment_error) + } else { + resolve(payment) + } + }) + call.on('error', function(err) { + reject(err) + }) + call.write(options) + }) +} + +const MAX_MSG_LENGTH = 972 // 1146 - 20 +async function keysendMessage(opts) { + return new Promise(async function(resolve, reject) { + if(!opts.data || typeof opts.data!=='string') { + return reject('string plz') + } + if(opts.data.length { + const spliti = Math.ceil(opts.data.length/n) + const m = opts.data.substr(i*spliti, spliti) + try { + res = await keysend({...opts, + data: `${ts}_${i}_${n}_${m}` + }) + success = true + await sleep(432) + } catch(e) { + console.log(e) + fail = true + } + }) + if(success && !fail) { + resolve(res) + } else { + reject(new Error('fail')) + } + }) +} + +async function asyncForEach(array, callback) { + for (let index = 0; index < array.length; index++) { + await callback(array[index], index, array); + } +} + +async function signAscii(ascii) { + try { + const sig = await signMessage(ascii_to_hexa(ascii)) + return sig + } catch(e) { + throw e + } +} + +function listInvoices() { + return new Promise(async(resolve, reject)=> { + const lightning = await loadLightning() + lightning.listInvoices({ + num_max_invoices:100000, + reversed:true, + }, (err, response) => { + if(!err) { + resolve(response) + } else { + reject(err) + } + }); + }) +} + +function listPayments() { + return new Promise(async(resolve, reject)=> { + const lightning = await loadLightning() + lightning.listPayments({}, (err, response) => { + if(!err) { + resolve(response) + } else { + reject(err) + } + }); + }) +} + +const signMessage = (msg) => { + return new Promise(async(resolve, reject)=> { + let lightning = await loadLightning() + try { + const options = {msg:ByteBuffer.fromHex(msg)} + lightning.signMessage(options, function(err,sig){ + if(err || !sig.signature) { + reject(err) + } else { + resolve(sig.signature) + } + }) + } catch(e) { + reject(e) + } + }) +} + +const signBuffer = (msg) => { + return new Promise(async (resolve, reject)=> { + let lightning = await loadLightning() + try { + const options = {msg} + lightning.signMessage(options, function(err,sig){ + if(err || !sig.signature) { + reject(err) + } else { + resolve(sig.signature) + } + }) + } catch(e) { + reject(e) + } + }) +} + +const verifyMessage = (msg,sig) => { + return new Promise(async(resolve, reject)=> { + let lightning = await loadLightning() + try { + const options = { + msg:ByteBuffer.fromHex(msg), + signature:sig, + } + console.log(options) + lightning.verifyMessage(options, function(err,res){ + if(err || !res.pubkey) { + reject(err) + } else { + resolve(res) + } + }) + } catch(e) { + reject(e) + } + }) +} + +async function checkConnection(){ + return new Promise((resolve,reject)=>{ + const lightning = loadLightning() + lightning.getInfo({}, function(err, response) { + if (err == null) { + resolve(response) + } else { + reject(err) + } + }); + }) +} + +function ascii_to_hexa(str){ + var arr1 = []; + for (var n = 0, l = str.length; n < l; n ++) { + var hex = Number(str.charCodeAt(n)).toString(16); + arr1.push(hex); + } + return arr1.join(''); +} + +export { + loadCredentials, + loadLightning, + loadWalletUnlocker, + getHeaders, + getLock, + setLock, + getRoute, + keysendMessage, + signMessage, + verifyMessage, + signAscii, + signBuffer, + LND_KEYSEND_KEY, + SPHINX_CUSTOM_RECORD_KEY, + listInvoices, + listPayments, + checkConnection, +} diff --git a/api/utils/lock.ts b/api/utils/lock.ts new file mode 100644 index 0000000..cf9e97b --- /dev/null +++ b/api/utils/lock.ts @@ -0,0 +1,5 @@ +import * as AsyncLock from 'async-lock' + +const lock = new AsyncLock() + +export default lock \ No newline at end of file diff --git a/api/utils/logger.ts b/api/utils/logger.ts new file mode 100644 index 0000000..a62d6c9 --- /dev/null +++ b/api/utils/logger.ts @@ -0,0 +1,28 @@ +import * as expressWinston from 'express-winston' +import * as winston from 'winston' +import * as moment from 'moment' + +const tsFormat = (ts) => moment(ts).format('YYYY-MM-DD hh:mm:ss').trim(); + +const logger = expressWinston.logger({ + transports: [ + new winston.transports.Console() + ], + format: winston.format.combine( + winston.format.timestamp(), + winston.format.colorize(), + winston.format.printf(info=>{ + return `-> ${tsFormat(info.timestamp)}: ${info.message}` + }) + ), + meta: false, // optional: control whether you want to log the meta data about the request (default to true) + // msg: "HTTP {{req.method}} {{req.url}}", // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}" + expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true + colorize: true, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red). + ignoreRoute: function (req, res) { + if(req.path.startsWith('/json')) return true // debugger + return false; + } // optional: allows to skip some log messages based on request and/or response +}) + +export default logger \ No newline at end of file diff --git a/api/utils/msg.ts b/api/utils/msg.ts new file mode 100644 index 0000000..d285441 --- /dev/null +++ b/api/utils/msg.ts @@ -0,0 +1,79 @@ + +import { tokenFromTerms } from './ldat' + +function addInRemoteText(full:{[k:string]:any}, contactId){ + const m = full && full.message + if (!(m && m.content)) return full + if (!(typeof m.content==='object')) return full + return fillmsg(full, {content: m.content[contactId+'']}) +} + +function removeRecipientFromChatMembers(full:{[k:string]:any}, destkey){ + const c = full && full.chat + if (!(c && c.members)) return full + if (!(typeof c.members==='object')) return full + + const members = {...c.members} + if(members[destkey]) delete members[destkey] + return fillchatmsg(full, {members}) +} + +function addInMediaKey(full:{[k:string]:any}, contactId){ + const m = full && full.message + if (!(m && m.mediaKey)) return full + if (!(m && m.mediaTerms)) return full + const mediaKey = m.mediaTerms.skipSigning ? '' : m.mediaKey[contactId+''] + return fillmsg(full, {mediaKey}) +} + +// add the token if its free, but if a price just the base64(host).muid +async function finishTermsAndReceipt(full:{[k:string]:any}, destkey) { + const m = full && full.message + if (!(m && m.mediaTerms)) return full + + const t = m.mediaTerms + const meta = t.meta || {} + t.ttl = t.ttl || 31536000 + meta.ttl = t.ttl + const mediaToken = await tokenFromTerms({ + host: t.host || '', + muid: t.muid, + ttl: t.skipSigning ? 0 : t.ttl, + pubkey: t.skipSigning ? '' : destkey, + meta + }) + const fullmsg = fillmsg(full, {mediaToken}) + delete fullmsg.message.mediaTerms + return fullmsg +} + +async function personalizeMessage(m,contactId,destkey){ + const cloned = JSON.parse(JSON.stringify(m)) + const msg = addInRemoteText(cloned, contactId) + const cleanMsg = removeRecipientFromChatMembers(msg, destkey) + const msgWithMediaKey = addInMediaKey(cleanMsg, contactId) + const finalMsg = await finishTermsAndReceipt(msgWithMediaKey, destkey) + return finalMsg +} + +function fillmsg(full, props){ + return { + ...full, message: { + ...full.message, + ...props, + } + } +} + +function fillchatmsg(full, props){ + return { + ...full, chat: { + ...full.chat, + ...props, + } + } +} + +export { + personalizeMessage +} \ No newline at end of file diff --git a/api/utils/nodeinfo.ts b/api/utils/nodeinfo.ts new file mode 100644 index 0000000..83b8728 --- /dev/null +++ b/api/utils/nodeinfo.ts @@ -0,0 +1,84 @@ + +import {loadLightning} from '../utils/lightning' +import * as publicIp from 'public-ip' +import {checkTag, checkCommitHash} from '../utils/gitinfo' +import {models} from '../models' + +function nodeinfo(){ + return new Promise(async (resolve, reject)=>{ + let public_ip = "" + try { + public_ip = await publicIp.v4() + } catch(e){ + console.log(e) + } + + const commitHash = await checkCommitHash() + + const tag = await checkTag() + + const lightning = loadLightning() + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + + const clean = await isClean() + + lightning.channelBalance({}, (err, channelBalance) => { + if(err) console.log(err) + // const { balance, pending_open_balance } = channelBalance + lightning.listChannels({}, (err, channelList) => { + if(err) console.log(err) + const { channels } = channelList + + const localBalances = channels.map(c => c.local_balance) + const remoteBalances = channels.map(c => c.remote_balance) + const largestLocalBalance = Math.max(...localBalances) + const largestRemoteBalance = Math.max(...remoteBalances) + const totalLocalBalance = localBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0) + + lightning.pendingChannels({}, (err, pendingChannels) => { + if(err) console.log(err) + lightning.getInfo({}, (err, info) => { + if(err) console.log(err) + if(!err && info){ + const node = { + node_alias: process.env.NODE_ALIAS, + ip: process.env.NODE_IP, + relay_commit: commitHash, + public_ip: public_ip, + pubkey: owner.publicKey, + number_channels: channels.length, + number_active_channels: info.num_active_channels, + number_pending_channels: info.num_pending_channels, + number_peers: info.num_peers, + largest_local_balance: largestLocalBalance, + largest_remote_balance: largestRemoteBalance, + total_local_balance: totalLocalBalance, + lnd_version: info.version, + relay_version: tag, + payment_channel: '', // ? + hosting_provider: '', // ? + open_channel_data: channels, + pending_channel_data: pendingChannels, + synced_to_chain: info.synced_to_chain, + synced_to_graph: info.synced_to_graph, + best_header_timestamp: info.best_header_timestamp, + testnet: info.testnet, + clean, + } + resolve(node) + } + }) + }) + }) + }); + }) +} + +export {nodeinfo} + +async function isClean(){ + // has owner but with no auth token + const cleanOwner = await models.Contact.findOne({ where: { isOwner: true, authToken: null }}) + if(cleanOwner) return true + return false +} \ No newline at end of file diff --git a/api/utils/res.ts b/api/utils/res.ts new file mode 100644 index 0000000..cd4cec8 --- /dev/null +++ b/api/utils/res.ts @@ -0,0 +1,19 @@ +function success(res, json) { + res.status(200); + res.json({ + success: true, + response: json, + }); + res.end(); +} + +function failure(res, e) { + res.status(400); + res.json({ + success: false, + error: (e&&e.message) || e, + }); + res.end(); +} + +export {success, failure} \ No newline at end of file diff --git a/api/utils/setup.ts b/api/utils/setup.ts new file mode 100644 index 0000000..a0f380a --- /dev/null +++ b/api/utils/setup.ts @@ -0,0 +1,86 @@ +import { loadLightning } from './lightning' +import {sequelize, models} from '../models' +import { exec } from 'child_process' + +const USER_VERSION = 1 + +const setupDatabase = async () => { + console.log('=> [db] starting setup...') + await setVersion() + try { + await sequelize.sync() + console.log("=> [db] done syncing") + } catch(e) { + console.log("db sync failed",e) + } + await migrate() + setupOwnerContact() + console.log('=> [db] setup done') +} + +async function setVersion(){ + try { + await sequelize.query(`PRAGMA user_version = ${USER_VERSION}`) + } catch(e) { + console.log('=> setVersion failed',e) + } +} + +async function migrate(){ + try { + await sequelize.query(`update sphinx_chats SET deleted=false where deleted is null`) + } catch(e) { + console.log('=> migrate failed',e) + } +} + +const setupOwnerContact = async () => { + const owner = await models.Contact.findOne({ where: { isOwner: true }}) + if (!owner) { + const lightning = await loadLightning() + lightning.getInfo({}, async (err, info) => { + if (err) { + console.log('[db] error creating node owner due to lnd failure', err) + } else { + try { + const one = await models.Contact.findOne({ where: { id: 1 }}) + if(!one){ + const contact = await models.Contact.create({ + id: 1, + publicKey: info.identity_pubkey, + isOwner: true, + authToken: null + }) + console.log('[db] created node owner contact, id:', contact.id) + } + } catch(error) { + console.log('[db] error creating owner contact', error) + } + } + }) + } +} + +const runMigrations = async () => { + await new Promise((resolve, reject) => { + const migrate: any = exec('node_modules/.bin/sequelize db:migrate', + {env: process.env}, + (err, stdout, stderr) => { + if (err) { + reject(err); + } else { + resolve(); + } + } + ); + + // Forward stdout+stderr to this process + migrate.stdout.pipe(process.stdout); + migrate.stderr.pipe(process.stderr); + }); +} + +export { setupDatabase, setupOwnerContact, runMigrations } + + + diff --git a/api/utils/socket.ts b/api/utils/socket.ts new file mode 100644 index 0000000..1f133bf --- /dev/null +++ b/api/utils/socket.ts @@ -0,0 +1,33 @@ +import * as WebSocket from 'ws' + +let connections = new Map() +let connectionCounter = 0 + +const connect = (server) => { + server = new WebSocket.Server({ server }) + + console.log('[socket] connected to server') + + server.on('connection', socket => { + console.log('[socket] connection received') + var id = connectionCounter++; + connections.set(id, socket) + }) + +} + +const send = (body) => { + connections.forEach((socket, index) => { + socket.send(body) + }) +} + +const sendJson = (object) => { + send(JSON.stringify(object)) +} + +export { + connect, + send, + sendJson +} diff --git a/api/utils/zbase32/index.ts b/api/utils/zbase32/index.ts new file mode 100644 index 0000000..0ab7bac --- /dev/null +++ b/api/utils/zbase32/index.ts @@ -0,0 +1,12 @@ +import './tv42_zbase32_gopherjs' + +function encode(b){ + return global['zbase32'].Encode(b) +} +function decode(txt){ + return global['zbase32'].Decode(txt) +} +export { + encode, + decode, +} \ No newline at end of file diff --git a/api/utils/zbase32/tv42_zbase32_gopherjs.js b/api/utils/zbase32/tv42_zbase32_gopherjs.js new file mode 100644 index 0000000..982ffcb --- /dev/null +++ b/api/utils/zbase32/tv42_zbase32_gopherjs.js @@ -0,0 +1,23035 @@ +"use strict"; +(function() { + +Error.stackTraceLimit = Infinity; + +var $global, $module; +if (typeof window !== "undefined") { /* web page */ + $global = window; +} else if (typeof self !== "undefined") { /* web worker */ + $global = self; +} else if (typeof global !== "undefined") { /* Node.js */ + $global = global; + $global.require = require; +} else { /* others (e.g. Nashorn) */ + $global = this; +} + +if ($global === undefined || $global.Array === undefined) { + throw new Error("no global object found"); +} +if (typeof module !== "undefined") { + $module = module; +} + +var $packages = {}, $idCounter = 0; +var $keys = function(m) { return m ? Object.keys(m) : []; }; +var $flushConsole = function() {}; +var $throwRuntimeError; /* set by package "runtime" */ +var $throwNilPointerError = function() { $throwRuntimeError("invalid memory address or nil pointer dereference"); }; +var $call = function(fn, rcvr, args) { return fn.apply(rcvr, args); }; +var $makeFunc = function(fn) { return function() { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments, []))), $emptyInterface); }; }; +var $unused = function(v) {}; + +var $mapArray = function(array, f) { + var newArray = new array.constructor(array.length); + for (var i = 0; i < array.length; i++) { + newArray[i] = f(array[i]); + } + return newArray; +}; + +var $methodVal = function(recv, name) { + var vals = recv.$methodVals || {}; + recv.$methodVals = vals; /* noop for primitives */ + var f = vals[name]; + if (f !== undefined) { + return f; + } + var method = recv[name]; + f = function() { + $stackDepthOffset--; + try { + return method.apply(recv, arguments); + } finally { + $stackDepthOffset++; + } + }; + vals[name] = f; + return f; +}; + +var $methodExpr = function(typ, name) { + var method = typ.prototype[name]; + if (method.$expr === undefined) { + method.$expr = function() { + $stackDepthOffset--; + try { + if (typ.wrapped) { + arguments[0] = new typ(arguments[0]); + } + return Function.call.apply(method, arguments); + } finally { + $stackDepthOffset++; + } + }; + } + return method.$expr; +}; + +var $ifaceMethodExprs = {}; +var $ifaceMethodExpr = function(name) { + var expr = $ifaceMethodExprs["$" + name]; + if (expr === undefined) { + expr = $ifaceMethodExprs["$" + name] = function() { + $stackDepthOffset--; + try { + return Function.call.apply(arguments[0][name], arguments); + } finally { + $stackDepthOffset++; + } + }; + } + return expr; +}; + +var $subslice = function(slice, low, high, max) { + if (high === undefined) { + high = slice.$length; + } + if (max === undefined) { + max = slice.$capacity; + } + if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) { + $throwRuntimeError("slice bounds out of range"); + } + if (slice === slice.constructor.nil) { + return slice; + } + var s = new slice.constructor(slice.$array); + s.$offset = slice.$offset + low; + s.$length = high - low; + s.$capacity = max - low; + return s; +}; + +var $substring = function(str, low, high) { + if (low < 0 || high < low || high > str.length) { + $throwRuntimeError("slice bounds out of range"); + } + return str.substring(low, high); +}; + +var $sliceToArray = function(slice) { + if (slice.$array.constructor !== Array) { + return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length); + } + return slice.$array.slice(slice.$offset, slice.$offset + slice.$length); +}; + +var $decodeRune = function(str, pos) { + var c0 = str.charCodeAt(pos); + + if (c0 < 0x80) { + return [c0, 1]; + } + + if (c0 !== c0 || c0 < 0xC0) { + return [0xFFFD, 1]; + } + + var c1 = str.charCodeAt(pos + 1); + if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) { + return [0xFFFD, 1]; + } + + if (c0 < 0xE0) { + var r = (c0 & 0x1F) << 6 | (c1 & 0x3F); + if (r <= 0x7F) { + return [0xFFFD, 1]; + } + return [r, 2]; + } + + var c2 = str.charCodeAt(pos + 2); + if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) { + return [0xFFFD, 1]; + } + + if (c0 < 0xF0) { + var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F); + if (r <= 0x7FF) { + return [0xFFFD, 1]; + } + if (0xD800 <= r && r <= 0xDFFF) { + return [0xFFFD, 1]; + } + return [r, 3]; + } + + var c3 = str.charCodeAt(pos + 3); + if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) { + return [0xFFFD, 1]; + } + + if (c0 < 0xF8) { + var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F); + if (r <= 0xFFFF || 0x10FFFF < r) { + return [0xFFFD, 1]; + } + return [r, 4]; + } + + return [0xFFFD, 1]; +}; + +var $encodeRune = function(r) { + if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) { + r = 0xFFFD; + } + if (r <= 0x7F) { + return String.fromCharCode(r); + } + if (r <= 0x7FF) { + return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F)); + } + if (r <= 0xFFFF) { + return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); + } + return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); +}; + +var $stringToBytes = function(str) { + var array = new Uint8Array(str.length); + for (var i = 0; i < str.length; i++) { + array[i] = str.charCodeAt(i); + } + return array; +}; + +var $bytesToString = function(slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i += 10000) { + str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000))); + } + return str; +}; + +var $stringToRunes = function(str) { + var array = new Int32Array(str.length); + var rune, j = 0; + for (var i = 0; i < str.length; i += rune[1], j++) { + rune = $decodeRune(str, i); + array[j] = rune[0]; + } + return array.subarray(0, j); +}; + +var $runesToString = function(slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i++) { + str += $encodeRune(slice.$array[slice.$offset + i]); + } + return str; +}; + +var $copyString = function(dst, src) { + var n = Math.min(src.length, dst.$length); + for (var i = 0; i < n; i++) { + dst.$array[dst.$offset + i] = src.charCodeAt(i); + } + return n; +}; + +var $copySlice = function(dst, src) { + var n = Math.min(src.$length, dst.$length); + $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem); + return n; +}; + +var $copyArray = function(dst, src, dstOffset, srcOffset, n, elem) { + if (n === 0 || (dst === src && dstOffset === srcOffset)) { + return; + } + + if (src.subarray) { + dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset); + return; + } + + switch (elem.kind) { + case $kindArray: + case $kindStruct: + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + for (var i = 0; i < n; i++) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + dst[dstOffset + i] = src[srcOffset + i]; + } + return; + } + for (var i = 0; i < n; i++) { + dst[dstOffset + i] = src[srcOffset + i]; + } +}; + +var $clone = function(src, type) { + var clone = type.zero(); + type.copy(clone, src); + return clone; +}; + +var $pointerOfStructConversion = function(obj, type) { + if(obj.$proxies === undefined) { + obj.$proxies = {}; + obj.$proxies[obj.constructor.string] = obj; + } + var proxy = obj.$proxies[type.string]; + if (proxy === undefined) { + var properties = {}; + for (var i = 0; i < type.elem.fields.length; i++) { + (function(fieldProp) { + properties[fieldProp] = { + get: function() { return obj[fieldProp]; }, + set: function(value) { obj[fieldProp] = value; } + }; + })(type.elem.fields[i].prop); + } + proxy = Object.create(type.prototype, properties); + proxy.$val = proxy; + obj.$proxies[type.string] = proxy; + proxy.$proxies = obj.$proxies; + } + return proxy; +}; + +var $append = function(slice) { + return $internalAppend(slice, arguments, 1, arguments.length - 1); +}; + +var $appendSlice = function(slice, toAppend) { + if (toAppend.constructor === String) { + var bytes = $stringToBytes(toAppend); + return $internalAppend(slice, bytes, 0, bytes.length); + } + return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length); +}; + +var $internalAppend = function(slice, array, offset, length) { + if (length === 0) { + return slice; + } + + var newArray = slice.$array; + var newOffset = slice.$offset; + var newLength = slice.$length + length; + var newCapacity = slice.$capacity; + + if (newLength > newCapacity) { + newOffset = 0; + newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4)); + + if (slice.$array.constructor === Array) { + newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length); + newArray.length = newCapacity; + var zero = slice.constructor.elem.zero; + for (var i = slice.$length; i < newCapacity; i++) { + newArray[i] = zero(); + } + } else { + newArray = new slice.$array.constructor(newCapacity); + newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length)); + } + } + + $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem); + + var newSlice = new slice.constructor(newArray); + newSlice.$offset = newOffset; + newSlice.$length = newLength; + newSlice.$capacity = newCapacity; + return newSlice; +}; + +var $equal = function(a, b, type) { + if (type === $jsObjectPtr) { + return a === b; + } + switch (type.kind) { + case $kindComplex64: + case $kindComplex128: + return a.$real === b.$real && a.$imag === b.$imag; + case $kindInt64: + case $kindUint64: + return a.$high === b.$high && a.$low === b.$low; + case $kindArray: + if (a.length !== b.length) { + return false; + } + for (var i = 0; i < a.length; i++) { + if (!$equal(a[i], b[i], type.elem)) { + return false; + } + } + return true; + case $kindStruct: + for (var i = 0; i < type.fields.length; i++) { + var f = type.fields[i]; + if (!$equal(a[f.prop], b[f.prop], f.typ)) { + return false; + } + } + return true; + case $kindInterface: + return $interfaceIsEqual(a, b); + default: + return a === b; + } +}; + +var $interfaceIsEqual = function(a, b) { + if (a === $ifaceNil || b === $ifaceNil) { + return a === b; + } + if (a.constructor !== b.constructor) { + return false; + } + if (a.constructor === $jsObjectPtr) { + return a.object === b.object; + } + if (!a.constructor.comparable) { + $throwRuntimeError("comparing uncomparable type " + a.constructor.string); + } + return $equal(a.$val, b.$val, a.constructor); +}; + +var $min = Math.min; +var $mod = function(x, y) { return x % y; }; +var $parseInt = parseInt; +var $parseFloat = function(f) { + if (f !== undefined && f !== null && f.constructor === Number) { + return f; + } + return parseFloat(f); +}; + +var $froundBuf = new Float32Array(1); +var $fround = Math.fround || function(f) { + $froundBuf[0] = f; + return $froundBuf[0]; +}; + +var $imul = Math.imul || function(a, b) { + var ah = (a >>> 16) & 0xffff; + var al = a & 0xffff; + var bh = (b >>> 16) & 0xffff; + var bl = b & 0xffff; + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0); +}; + +var $floatKey = function(f) { + if (f !== f) { + $idCounter++; + return "NaN$" + $idCounter; + } + return String(f); +}; + +var $flatten64 = function(x) { + return x.$high * 4294967296 + x.$low; +}; + +var $shiftLeft64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$low << (y - 32), 0); + } + return new x.constructor(0, 0); +}; + +var $shiftRightInt64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0); + } + if (x.$high < 0) { + return new x.constructor(-1, 4294967295); + } + return new x.constructor(0, 0); +}; + +var $shiftRightUint64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(0, x.$high >>> (y - 32)); + } + return new x.constructor(0, 0); +}; + +var $mul64 = function(x, y) { + var high = 0, low = 0; + if ((y.$low & 1) !== 0) { + high = x.$high; + low = x.$low; + } + for (var i = 1; i < 32; i++) { + if ((y.$low & 1<>> (32 - i); + low += (x.$low << i) >>> 0; + } + } + for (var i = 0; i < 32; i++) { + if ((y.$high & 1< yHigh) || (xHigh === yHigh && xLow > yLow))) { + yHigh = (yHigh << 1 | yLow >>> 31) >>> 0; + yLow = (yLow << 1) >>> 0; + n++; + } + for (var i = 0; i <= n; i++) { + high = high << 1 | low >>> 31; + low = (low << 1) >>> 0; + if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) { + xHigh = xHigh - yHigh; + xLow = xLow - yLow; + if (xLow < 0) { + xHigh--; + xLow += 4294967296; + } + low++; + if (low === 4294967296) { + high++; + low = 0; + } + } + yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0; + yHigh = yHigh >>> 1; + } + + if (returnRemainder) { + return new x.constructor(xHigh * rs, xLow * rs); + } + return new x.constructor(high * s, low * s); +}; + +var $divComplex = function(n, d) { + var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity; + var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity; + var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag); + var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag); + if(nnan || dnan) { + return new n.constructor(NaN, NaN); + } + if (ninf && !dinf) { + return new n.constructor(Infinity, Infinity); + } + if (!ninf && dinf) { + return new n.constructor(0, 0); + } + if (d.$real === 0 && d.$imag === 0) { + if (n.$real === 0 && n.$imag === 0) { + return new n.constructor(NaN, NaN); + } + return new n.constructor(Infinity, Infinity); + } + var a = Math.abs(d.$real); + var b = Math.abs(d.$imag); + if (a <= b) { + var ratio = d.$real / d.$imag; + var denom = d.$real * ratio + d.$imag; + return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom); + } + var ratio = d.$imag / d.$real; + var denom = d.$imag * ratio + d.$real; + return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom); +}; + +var $kindBool = 1; +var $kindInt = 2; +var $kindInt8 = 3; +var $kindInt16 = 4; +var $kindInt32 = 5; +var $kindInt64 = 6; +var $kindUint = 7; +var $kindUint8 = 8; +var $kindUint16 = 9; +var $kindUint32 = 10; +var $kindUint64 = 11; +var $kindUintptr = 12; +var $kindFloat32 = 13; +var $kindFloat64 = 14; +var $kindComplex64 = 15; +var $kindComplex128 = 16; +var $kindArray = 17; +var $kindChan = 18; +var $kindFunc = 19; +var $kindInterface = 20; +var $kindMap = 21; +var $kindPtr = 22; +var $kindSlice = 23; +var $kindString = 24; +var $kindStruct = 25; +var $kindUnsafePointer = 26; + +var $methodSynthesizers = []; +var $addMethodSynthesizer = function(f) { + if ($methodSynthesizers === null) { + f(); + return; + } + $methodSynthesizers.push(f); +}; +var $synthesizeMethods = function() { + $methodSynthesizers.forEach(function(f) { f(); }); + $methodSynthesizers = null; +}; + +var $ifaceKeyFor = function(x) { + if (x === $ifaceNil) { + return 'nil'; + } + var c = x.constructor; + return c.string + '$' + c.keyFor(x.$val); +}; + +var $identity = function(x) { return x; }; + +var $typeIDCounter = 0; + +var $idKey = function(x) { + if (x.$id === undefined) { + $idCounter++; + x.$id = $idCounter; + } + return String(x.$id); +}; + +var $newType = function(size, kind, string, named, pkg, exported, constructor) { + var typ; + switch(kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $identity; + break; + + case $kindString: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function(x) { return "$" + x; }; + break; + + case $kindFloat32: + case $kindFloat64: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function(x) { return $floatKey(x); }; + break; + + case $kindInt64: + typ = function(high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; + break; + + case $kindUint64: + typ = function(high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; + break; + + case $kindComplex64: + typ = function(real, imag) { + this.$real = $fround(real); + this.$imag = $fround(imag); + this.$val = this; + }; + typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; + break; + + case $kindComplex128: + typ = function(real, imag) { + this.$real = real; + this.$imag = imag; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; + break; + + case $kindArray: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, function(array) { + this.$get = function() { return array; }; + this.$set = function(v) { typ.copy(this, v); }; + this.$val = array; + }); + typ.init = function(elem, len) { + typ.elem = elem; + typ.len = len; + typ.comparable = elem.comparable; + typ.keyFor = function(x) { + return Array.prototype.join.call($mapArray(x, function(e) { + return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }), "$"); + }; + typ.copy = function(dst, src) { + $copyArray(dst, src, 0, 0, src.length, elem); + }; + typ.ptr.init(typ); + Object.defineProperty(typ.ptr.nil, "nilCheck", { get: $throwNilPointerError }); + }; + break; + + case $kindChan: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $idKey; + typ.init = function(elem, sendOnly, recvOnly) { + typ.elem = elem; + typ.sendOnly = sendOnly; + typ.recvOnly = recvOnly; + }; + break; + + case $kindFunc: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function(params, results, variadic) { + typ.params = params; + typ.results = results; + typ.variadic = variadic; + typ.comparable = false; + }; + break; + + case $kindInterface: + typ = { implementedBy: {}, missingMethodFor: {} }; + typ.keyFor = $ifaceKeyFor; + typ.init = function(methods) { + typ.methods = methods; + methods.forEach(function(m) { + $ifaceNil[m.prop] = $throwNilPointerError; + }); + }; + break; + + case $kindMap: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function(key, elem) { + typ.key = key; + typ.elem = elem; + typ.comparable = false; + }; + break; + + case $kindPtr: + typ = constructor || function(getter, setter, target) { + this.$get = getter; + this.$set = setter; + this.$target = target; + this.$val = this; + }; + typ.keyFor = $idKey; + typ.init = function(elem) { + typ.elem = elem; + typ.wrapped = (elem.kind === $kindArray); + typ.nil = new typ($throwNilPointerError, $throwNilPointerError); + }; + break; + + case $kindSlice: + typ = function(array) { + if (array.constructor !== typ.nativeArray) { + array = new typ.nativeArray(array); + } + this.$array = array; + this.$offset = 0; + this.$length = array.length; + this.$capacity = array.length; + this.$val = this; + }; + typ.init = function(elem) { + typ.elem = elem; + typ.comparable = false; + typ.nativeArray = $nativeArray(elem.kind); + typ.nil = new typ([]); + }; + break; + + case $kindStruct: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor); + typ.ptr.elem = typ; + typ.ptr.prototype.$get = function() { return this; }; + typ.ptr.prototype.$set = function(v) { typ.copy(this, v); }; + typ.init = function(pkgPath, fields) { + typ.pkgPath = pkgPath; + typ.fields = fields; + fields.forEach(function(f) { + if (!f.typ.comparable) { + typ.comparable = false; + } + }); + typ.keyFor = function(x) { + var val = x.$val; + return $mapArray(fields, function(f) { + return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }).join("$"); + }; + typ.copy = function(dst, src) { + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + switch (f.typ.kind) { + case $kindArray: + case $kindStruct: + f.typ.copy(dst[f.prop], src[f.prop]); + continue; + default: + dst[f.prop] = src[f.prop]; + continue; + } + } + }; + /* nil value */ + var properties = {}; + fields.forEach(function(f) { + properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError }; + }); + typ.ptr.nil = Object.create(constructor.prototype, properties); + typ.ptr.nil.$val = typ.ptr.nil; + /* methods for embedded fields */ + $addMethodSynthesizer(function() { + var synthesizeMethod = function(target, m, f) { + if (target.prototype[m.prop] !== undefined) { return; } + target.prototype[m.prop] = function() { + var v = this.$val[f.prop]; + if (f.typ === $jsObjectPtr) { + v = new $jsObjectPtr(v); + } + if (v.$val === undefined) { + v = new f.typ(v); + } + return v[m.prop].apply(v, arguments); + }; + }; + fields.forEach(function(f) { + if (f.embedded) { + $methodSet(f.typ).forEach(function(m) { + synthesizeMethod(typ, m, f); + synthesizeMethod(typ.ptr, m, f); + }); + $methodSet($ptrType(f.typ)).forEach(function(m) { + synthesizeMethod(typ.ptr, m, f); + }); + } + }); + }); + }; + break; + + default: + $panic(new $String("invalid kind: " + kind)); + } + + switch (kind) { + case $kindBool: + case $kindMap: + typ.zero = function() { return false; }; + break; + + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8 : + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + case $kindFloat32: + case $kindFloat64: + typ.zero = function() { return 0; }; + break; + + case $kindString: + typ.zero = function() { return ""; }; + break; + + case $kindInt64: + case $kindUint64: + case $kindComplex64: + case $kindComplex128: + var zero = new typ(0, 0); + typ.zero = function() { return zero; }; + break; + + case $kindPtr: + case $kindSlice: + typ.zero = function() { return typ.nil; }; + break; + + case $kindChan: + typ.zero = function() { return $chanNil; }; + break; + + case $kindFunc: + typ.zero = function() { return $throwNilPointerError; }; + break; + + case $kindInterface: + typ.zero = function() { return $ifaceNil; }; + break; + + case $kindArray: + typ.zero = function() { + var arrayClass = $nativeArray(typ.elem.kind); + if (arrayClass !== Array) { + return new arrayClass(typ.len); + } + var array = new Array(typ.len); + for (var i = 0; i < typ.len; i++) { + array[i] = typ.elem.zero(); + } + return array; + }; + break; + + case $kindStruct: + typ.zero = function() { return new typ.ptr(); }; + break; + + default: + $panic(new $String("invalid kind: " + kind)); + } + + typ.id = $typeIDCounter; + $typeIDCounter++; + typ.size = size; + typ.kind = kind; + typ.string = string; + typ.named = named; + typ.pkg = pkg; + typ.exported = exported; + typ.methods = []; + typ.methodSetCache = null; + typ.comparable = true; + return typ; +}; + +var $methodSet = function(typ) { + if (typ.methodSetCache !== null) { + return typ.methodSetCache; + } + var base = {}; + + var isPtr = (typ.kind === $kindPtr); + if (isPtr && typ.elem.kind === $kindInterface) { + typ.methodSetCache = []; + return []; + } + + var current = [{typ: isPtr ? typ.elem : typ, indirect: isPtr}]; + + var seen = {}; + + while (current.length > 0) { + var next = []; + var mset = []; + + current.forEach(function(e) { + if (seen[e.typ.string]) { + return; + } + seen[e.typ.string] = true; + + if (e.typ.named) { + mset = mset.concat(e.typ.methods); + if (e.indirect) { + mset = mset.concat($ptrType(e.typ).methods); + } + } + + switch (e.typ.kind) { + case $kindStruct: + e.typ.fields.forEach(function(f) { + if (f.embedded) { + var fTyp = f.typ; + var fIsPtr = (fTyp.kind === $kindPtr); + next.push({typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr}); + } + }); + break; + + case $kindInterface: + mset = mset.concat(e.typ.methods); + break; + } + }); + + mset.forEach(function(m) { + if (base[m.name] === undefined) { + base[m.name] = m; + } + }); + + current = next; + } + + typ.methodSetCache = []; + Object.keys(base).sort().forEach(function(name) { + typ.methodSetCache.push(base[name]); + }); + return typ.methodSetCache; +}; + +var $Bool = $newType( 1, $kindBool, "bool", true, "", false, null); +var $Int = $newType( 4, $kindInt, "int", true, "", false, null); +var $Int8 = $newType( 1, $kindInt8, "int8", true, "", false, null); +var $Int16 = $newType( 2, $kindInt16, "int16", true, "", false, null); +var $Int32 = $newType( 4, $kindInt32, "int32", true, "", false, null); +var $Int64 = $newType( 8, $kindInt64, "int64", true, "", false, null); +var $Uint = $newType( 4, $kindUint, "uint", true, "", false, null); +var $Uint8 = $newType( 1, $kindUint8, "uint8", true, "", false, null); +var $Uint16 = $newType( 2, $kindUint16, "uint16", true, "", false, null); +var $Uint32 = $newType( 4, $kindUint32, "uint32", true, "", false, null); +var $Uint64 = $newType( 8, $kindUint64, "uint64", true, "", false, null); +var $Uintptr = $newType( 4, $kindUintptr, "uintptr", true, "", false, null); +var $Float32 = $newType( 4, $kindFloat32, "float32", true, "", false, null); +var $Float64 = $newType( 8, $kindFloat64, "float64", true, "", false, null); +var $Complex64 = $newType( 8, $kindComplex64, "complex64", true, "", false, null); +var $Complex128 = $newType(16, $kindComplex128, "complex128", true, "", false, null); +var $String = $newType( 8, $kindString, "string", true, "", false, null); +var $UnsafePointer = $newType( 4, $kindUnsafePointer, "unsafe.Pointer", true, "", false, null); + +var $nativeArray = function(elemKind) { + switch (elemKind) { + case $kindInt: + return Int32Array; + case $kindInt8: + return Int8Array; + case $kindInt16: + return Int16Array; + case $kindInt32: + return Int32Array; + case $kindUint: + return Uint32Array; + case $kindUint8: + return Uint8Array; + case $kindUint16: + return Uint16Array; + case $kindUint32: + return Uint32Array; + case $kindUintptr: + return Uint32Array; + case $kindFloat32: + return Float32Array; + case $kindFloat64: + return Float64Array; + default: + return Array; + } +}; +var $toNativeArray = function(elemKind, array) { + var nativeArray = $nativeArray(elemKind); + if (nativeArray === Array) { + return array; + } + return new nativeArray(array); +}; +var $arrayTypes = {}; +var $arrayType = function(elem, len) { + var typeKey = elem.id + "$" + len; + var typ = $arrayTypes[typeKey]; + if (typ === undefined) { + typ = $newType(12, $kindArray, "[" + len + "]" + elem.string, false, "", false, null); + $arrayTypes[typeKey] = typ; + typ.init(elem, len); + } + return typ; +}; + +var $chanType = function(elem, sendOnly, recvOnly) { + var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " ") + elem.string; + var field = sendOnly ? "SendChan" : (recvOnly ? "RecvChan" : "Chan"); + var typ = elem[field]; + if (typ === undefined) { + typ = $newType(4, $kindChan, string, false, "", false, null); + elem[field] = typ; + typ.init(elem, sendOnly, recvOnly); + } + return typ; +}; +var $Chan = function(elem, capacity) { + if (capacity < 0 || capacity > 2147483647) { + $throwRuntimeError("makechan: size out of range"); + } + this.$elem = elem; + this.$capacity = capacity; + this.$buffer = []; + this.$sendQueue = []; + this.$recvQueue = []; + this.$closed = false; +}; +var $chanNil = new $Chan(null, 0); +$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function() {}, shift: function() { return undefined; }, indexOf: function() { return -1; } }; + +var $funcTypes = {}; +var $funcType = function(params, results, variadic) { + var typeKey = $mapArray(params, function(p) { return p.id; }).join(",") + "$" + $mapArray(results, function(r) { return r.id; }).join(",") + "$" + variadic; + var typ = $funcTypes[typeKey]; + if (typ === undefined) { + var paramTypes = $mapArray(params, function(p) { return p.string; }); + if (variadic) { + paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substr(2); + } + var string = "func(" + paramTypes.join(", ") + ")"; + if (results.length === 1) { + string += " " + results[0].string; + } else if (results.length > 1) { + string += " (" + $mapArray(results, function(r) { return r.string; }).join(", ") + ")"; + } + typ = $newType(4, $kindFunc, string, false, "", false, null); + $funcTypes[typeKey] = typ; + typ.init(params, results, variadic); + } + return typ; +}; + +var $interfaceTypes = {}; +var $interfaceType = function(methods) { + var typeKey = $mapArray(methods, function(m) { return m.pkg + "," + m.name + "," + m.typ.id; }).join("$"); + var typ = $interfaceTypes[typeKey]; + if (typ === undefined) { + var string = "interface {}"; + if (methods.length !== 0) { + string = "interface { " + $mapArray(methods, function(m) { + return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substr(4); + }).join("; ") + " }"; + } + typ = $newType(8, $kindInterface, string, false, "", false, null); + $interfaceTypes[typeKey] = typ; + typ.init(methods); + } + return typ; +}; +var $emptyInterface = $interfaceType([]); +var $ifaceNil = {}; +var $error = $newType(8, $kindInterface, "error", true, "", false, null); +$error.init([{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]); + +var $mapTypes = {}; +var $mapType = function(key, elem) { + var typeKey = key.id + "$" + elem.id; + var typ = $mapTypes[typeKey]; + if (typ === undefined) { + typ = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null); + $mapTypes[typeKey] = typ; + typ.init(key, elem); + } + return typ; +}; +var $makeMap = function(keyForFunc, entries) { + var m = {}; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + m[keyForFunc(e.k)] = e; + } + return m; +}; + +var $ptrType = function(elem) { + var typ = elem.ptr; + if (typ === undefined) { + typ = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null); + elem.ptr = typ; + typ.init(elem); + } + return typ; +}; + +var $newDataPointer = function(data, constructor) { + if (constructor.elem.kind === $kindStruct) { + return data; + } + return new constructor(function() { return data; }, function(v) { data = v; }); +}; + +var $indexPtr = function(array, index, constructor) { + array.$ptr = array.$ptr || {}; + return array.$ptr[index] || (array.$ptr[index] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; })); +}; + +var $sliceType = function(elem) { + var typ = elem.slice; + if (typ === undefined) { + typ = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null); + elem.slice = typ; + typ.init(elem); + } + return typ; +}; +var $makeSlice = function(typ, length, capacity) { + capacity = capacity || length; + if (length < 0 || length > 2147483647) { + $throwRuntimeError("makeslice: len out of range"); + } + if (capacity < 0 || capacity < length || capacity > 2147483647) { + $throwRuntimeError("makeslice: cap out of range"); + } + var array = new typ.nativeArray(capacity); + if (typ.nativeArray === Array) { + for (var i = 0; i < capacity; i++) { + array[i] = typ.elem.zero(); + } + } + var slice = new typ(array); + slice.$length = length; + return slice; +}; + +var $structTypes = {}; +var $structType = function(pkgPath, fields) { + var typeKey = $mapArray(fields, function(f) { return f.name + "," + f.typ.id + "," + f.tag; }).join("$"); + var typ = $structTypes[typeKey]; + if (typ === undefined) { + var string = "struct { " + $mapArray(fields, function(f) { + return f.name + " " + f.typ.string + (f.tag !== "" ? (" \"" + f.tag.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"") : ""); + }).join("; ") + " }"; + if (fields.length === 0) { + string = "struct {}"; + } + typ = $newType(0, $kindStruct, string, false, "", false, function() { + this.$val = this; + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + var arg = arguments[i]; + this[f.prop] = arg !== undefined ? arg : f.typ.zero(); + } + }); + $structTypes[typeKey] = typ; + typ.init(pkgPath, fields); + } + return typ; +}; + +var $assertType = function(value, type, returnTuple) { + var isInterface = (type.kind === $kindInterface), ok, missingMethod = ""; + if (value === $ifaceNil) { + ok = false; + } else if (!isInterface) { + ok = value.constructor === type; + } else { + var valueTypeString = value.constructor.string; + ok = type.implementedBy[valueTypeString]; + if (ok === undefined) { + ok = true; + var valueMethodSet = $methodSet(value.constructor); + var interfaceMethods = type.methods; + for (var i = 0; i < interfaceMethods.length; i++) { + var tm = interfaceMethods[i]; + var found = false; + for (var j = 0; j < valueMethodSet.length; j++) { + var vm = valueMethodSet[j]; + if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) { + found = true; + break; + } + } + if (!found) { + ok = false; + type.missingMethodFor[valueTypeString] = tm.name; + break; + } + } + type.implementedBy[valueTypeString] = ok; + } + if (!ok) { + missingMethod = type.missingMethodFor[valueTypeString]; + } + } + + if (!ok) { + if (returnTuple) { + return [type.zero(), false]; + } + $panic(new $packages["runtime"].TypeAssertionError.ptr( + $packages["runtime"]._type.ptr.nil, + (value === $ifaceNil ? $packages["runtime"]._type.ptr.nil : new $packages["runtime"]._type.ptr(value.constructor.string)), + new $packages["runtime"]._type.ptr(type.string), + missingMethod)); + } + + if (!isInterface) { + value = value.$val; + } + if (type === $jsObjectPtr) { + value = value.object; + } + return returnTuple ? [value, true] : value; +}; + +var $stackDepthOffset = 0; +var $getStackDepth = function() { + var err = new Error(); + if (err.stack === undefined) { + return undefined; + } + return $stackDepthOffset + err.stack.split("\n").length; +}; + +var $panicStackDepth = null, $panicValue; +var $callDeferred = function(deferred, jsErr, fromPanic) { + if (!fromPanic && deferred !== null && deferred.index >= $curGoroutine.deferStack.length) { + throw jsErr; + } + if (jsErr !== null) { + var newErr = null; + try { + $curGoroutine.deferStack.push(deferred); + $panic(new $jsErrorPtr(jsErr)); + } catch (err) { + newErr = err; + } + $curGoroutine.deferStack.pop(); + $callDeferred(deferred, newErr); + return; + } + if ($curGoroutine.asleep) { + return; + } + + $stackDepthOffset--; + var outerPanicStackDepth = $panicStackDepth; + var outerPanicValue = $panicValue; + + var localPanicValue = $curGoroutine.panicStack.pop(); + if (localPanicValue !== undefined) { + $panicStackDepth = $getStackDepth(); + $panicValue = localPanicValue; + } + + try { + while (true) { + if (deferred === null) { + deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1]; + if (deferred === undefined) { + /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */ + $panicStackDepth = null; + if (localPanicValue.Object instanceof Error) { + throw localPanicValue.Object; + } + var msg; + if (localPanicValue.constructor === $String) { + msg = localPanicValue.$val; + } else if (localPanicValue.Error !== undefined) { + msg = localPanicValue.Error(); + } else if (localPanicValue.String !== undefined) { + msg = localPanicValue.String(); + } else { + msg = localPanicValue; + } + throw new Error(msg); + } + } + var call = deferred.pop(); + if (call === undefined) { + $curGoroutine.deferStack.pop(); + if (localPanicValue !== undefined) { + deferred = null; + continue; + } + return; + } + var r = call[0].apply(call[2], call[1]); + if (r && r.$blk !== undefined) { + deferred.push([r.$blk, [], r]); + if (fromPanic) { + throw null; + } + return; + } + + if (localPanicValue !== undefined && $panicStackDepth === null) { + throw null; /* error was recovered */ + } + } + } finally { + if (localPanicValue !== undefined) { + if ($panicStackDepth !== null) { + $curGoroutine.panicStack.push(localPanicValue); + } + $panicStackDepth = outerPanicStackDepth; + $panicValue = outerPanicValue; + } + $stackDepthOffset++; + } +}; + +var $panic = function(value) { + $curGoroutine.panicStack.push(value); + $callDeferred(null, null, true); +}; +var $recover = function() { + if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) { + return $ifaceNil; + } + $panicStackDepth = null; + return $panicValue; +}; +var $throw = function(err) { throw err; }; + +var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] }; +var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true; +var $mainFinished = false; +var $go = function(fun, args) { + $totalGoroutines++; + $awakeGoroutines++; + var $goroutine = function() { + try { + $curGoroutine = $goroutine; + var r = fun.apply(undefined, args); + if (r && r.$blk !== undefined) { + fun = function() { return r.$blk(); }; + args = []; + return; + } + $goroutine.exit = true; + } catch (err) { + if (!$goroutine.exit) { + throw err; + } + } finally { + $curGoroutine = $noGoroutine; + if ($goroutine.exit) { /* also set by runtime.Goexit() */ + $totalGoroutines--; + $goroutine.asleep = true; + } + if ($goroutine.asleep) { + $awakeGoroutines--; + if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock) { + console.error("fatal error: all goroutines are asleep - deadlock!"); + if ($global.process !== undefined) { + $global.process.exit(2); + } + } + } + } + }; + $goroutine.asleep = false; + $goroutine.exit = false; + $goroutine.deferStack = []; + $goroutine.panicStack = []; + $schedule($goroutine); +}; + +var $scheduled = []; +var $runScheduled = function() { + try { + var r; + while ((r = $scheduled.shift()) !== undefined) { + r(); + } + } finally { + if ($scheduled.length > 0) { + setTimeout($runScheduled, 0); + } + } +}; + +var $schedule = function(goroutine) { + if (goroutine.asleep) { + goroutine.asleep = false; + $awakeGoroutines++; + } + $scheduled.push(goroutine); + if ($curGoroutine === $noGoroutine) { + $runScheduled(); + } +}; + +var $setTimeout = function(f, t) { + $awakeGoroutines++; + return setTimeout(function() { + $awakeGoroutines--; + f(); + }, t); +}; + +var $block = function() { + if ($curGoroutine === $noGoroutine) { + $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"); + } + $curGoroutine.asleep = true; +}; + +var $send = function(chan, value) { + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv !== undefined) { + queuedRecv([value, true]); + return; + } + if (chan.$buffer.length < chan.$capacity) { + chan.$buffer.push(value); + return; + } + + var thisGoroutine = $curGoroutine; + var closedDuringSend; + chan.$sendQueue.push(function(closed) { + closedDuringSend = closed; + $schedule(thisGoroutine); + return value; + }); + $block(); + return { + $blk: function() { + if (closedDuringSend) { + $throwRuntimeError("send on closed channel"); + } + } + }; +}; +var $recv = function(chan) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend !== undefined) { + chan.$buffer.push(queuedSend(false)); + } + var bufferedValue = chan.$buffer.shift(); + if (bufferedValue !== undefined) { + return [bufferedValue, true]; + } + if (chan.$closed) { + return [chan.$elem.zero(), false]; + } + + var thisGoroutine = $curGoroutine; + var f = { $blk: function() { return this.value; } }; + var queueEntry = function(v) { + f.value = v; + $schedule(thisGoroutine); + }; + chan.$recvQueue.push(queueEntry); + $block(); + return f; +}; +var $close = function(chan) { + if (chan.$closed) { + $throwRuntimeError("close of closed channel"); + } + chan.$closed = true; + while (true) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend === undefined) { + break; + } + queuedSend(true); /* will panic */ + } + while (true) { + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv === undefined) { + break; + } + queuedRecv([chan.$elem.zero(), false]); + } +}; +var $select = function(comms) { + var ready = []; + var selection = -1; + for (var i = 0; i < comms.length; i++) { + var comm = comms[i]; + var chan = comm[0]; + switch (comm.length) { + case 0: /* default */ + selection = i; + break; + case 1: /* recv */ + if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) { + ready.push(i); + } + break; + case 2: /* send */ + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) { + ready.push(i); + } + break; + } + } + + if (ready.length !== 0) { + selection = ready[Math.floor(Math.random() * ready.length)]; + } + if (selection !== -1) { + var comm = comms[selection]; + switch (comm.length) { + case 0: /* default */ + return [selection]; + case 1: /* recv */ + return [selection, $recv(comm[0])]; + case 2: /* send */ + $send(comm[0], comm[1]); + return [selection]; + } + } + + var entries = []; + var thisGoroutine = $curGoroutine; + var f = { $blk: function() { return this.selection; } }; + var removeFromQueues = function() { + for (var i = 0; i < entries.length; i++) { + var entry = entries[i]; + var queue = entry[0]; + var index = queue.indexOf(entry[1]); + if (index !== -1) { + queue.splice(index, 1); + } + } + }; + for (var i = 0; i < comms.length; i++) { + (function(i) { + var comm = comms[i]; + switch (comm.length) { + case 1: /* recv */ + var queueEntry = function(value) { + f.selection = [i, value]; + removeFromQueues(); + $schedule(thisGoroutine); + }; + entries.push([comm[0].$recvQueue, queueEntry]); + comm[0].$recvQueue.push(queueEntry); + break; + case 2: /* send */ + var queueEntry = function() { + if (comm[0].$closed) { + $throwRuntimeError("send on closed channel"); + } + f.selection = [i]; + removeFromQueues(); + $schedule(thisGoroutine); + return comm[1]; + }; + entries.push([comm[0].$sendQueue, queueEntry]); + comm[0].$sendQueue.push(queueEntry); + break; + } + })(i); + } + $block(); + return f; +}; + +var $jsObjectPtr, $jsErrorPtr; + +var $needsExternalization = function(t) { + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return false; + default: + return t !== $jsObjectPtr; + } +}; + +var $externalize = function(v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return v; + case $kindInt64: + case $kindUint64: + return $flatten64(v); + case $kindArray: + if ($needsExternalization(t.elem)) { + return $mapArray(v, function(e) { return $externalize(e, t.elem); }); + } + return v; + case $kindFunc: + return $externalizeFunction(v, t, false); + case $kindInterface: + if (v === $ifaceNil) { + return null; + } + if (v.constructor === $jsObjectPtr) { + return v.$val.object; + } + return $externalize(v.$val, v.constructor); + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var entry = v[keys[i]]; + m[$externalize(entry.k, t.key)] = $externalize(entry.v, t.elem); + } + return m; + case $kindPtr: + if (v === t.nil) { + return null; + } + return $externalize(v.$get(), t.elem); + case $kindSlice: + if ($needsExternalization(t.elem)) { + return $mapArray($sliceToArray(v), function(e) { return $externalize(e, t.elem); }); + } + return $sliceToArray(v); + case $kindString: + if ($isASCII(v)) { + return v; + } + var s = "", r; + for (var i = 0; i < v.length; i += r[1]) { + r = $decodeRune(v, i); + var c = r[0]; + if (c > 0xFFFF) { + var h = Math.floor((c - 0x10000) / 0x400) + 0xD800; + var l = (c - 0x10000) % 0x400 + 0xDC00; + s += String.fromCharCode(h, l); + continue; + } + s += String.fromCharCode(c); + } + return s; + case $kindStruct: + var timePkg = $packages["time"]; + if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) { + var milli = $div64(v.UnixNano(), new $Int64(0, 1000000)); + return new Date($flatten64(milli)); + } + + var noJsObject = {}; + var searchJsObject = function(v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindPtr: + if (v === t.nil) { + return noJsObject; + } + return searchJsObject(v.$get(), t.elem); + case $kindStruct: + var f = t.fields[0]; + return searchJsObject(v[f.prop], f.typ); + case $kindInterface: + return searchJsObject(v.$val, v.constructor); + default: + return noJsObject; + } + }; + var o = searchJsObject(v, t); + if (o !== noJsObject) { + return o; + } + + o = {}; + for (var i = 0; i < t.fields.length; i++) { + var f = t.fields[i]; + if (!f.exported) { + continue; + } + o[f.name] = $externalize(v[f.prop], f.typ); + } + return o; + } + $throwRuntimeError("cannot externalize " + t.string); +}; + +var $externalizeFunction = function(v, t, passThis) { + if (v === $throwNilPointerError) { + return null; + } + if (v.$externalizeWrapper === undefined) { + $checkForDeadlock = false; + v.$externalizeWrapper = function() { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = []; + for (var j = i; j < arguments.length; j++) { + varargs.push($internalize(arguments[j], vt)); + } + args.push(new (t.params[i])(varargs)); + break; + } + args.push($internalize(arguments[i], t.params[i])); + } + var result = v.apply(passThis ? this : undefined, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $externalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $externalize(result[i], t.results[i]); + } + return result; + } + }; + } + return v.$externalizeWrapper; +}; + +var $internalize = function(v, t, recv) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + if (v && v.__internal_object__ !== undefined) { + return $assertType(v.__internal_object__, t, false); + } + var timePkg = $packages["time"]; + if (timePkg !== undefined && t === timePkg.Time) { + if (!(v !== null && v !== undefined && v.constructor === Date)) { + $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date"); + } + return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000)); + } + switch (t.kind) { + case $kindBool: + return !!v; + case $kindInt: + return parseInt(v); + case $kindInt8: + return parseInt(v) << 24 >> 24; + case $kindInt16: + return parseInt(v) << 16 >> 16; + case $kindInt32: + return parseInt(v) >> 0; + case $kindUint: + return parseInt(v); + case $kindUint8: + return parseInt(v) << 24 >>> 24; + case $kindUint16: + return parseInt(v) << 16 >>> 16; + case $kindUint32: + case $kindUintptr: + return parseInt(v) >>> 0; + case $kindInt64: + case $kindUint64: + return new t(0, v); + case $kindFloat32: + case $kindFloat64: + return parseFloat(v); + case $kindArray: + if (v.length !== t.len) { + $throwRuntimeError("got array with wrong size from JavaScript native"); + } + return $mapArray(v, function(e) { return $internalize(e, t.elem); }); + case $kindFunc: + return function() { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = arguments[i]; + for (var j = 0; j < varargs.$length; j++) { + args.push($externalize(varargs.$array[varargs.$offset + j], vt)); + } + break; + } + args.push($externalize(arguments[i], t.params[i])); + } + var result = v.apply(recv, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $internalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $internalize(result[i], t.results[i]); + } + return result; + } + }; + case $kindInterface: + if (t.methods.length !== 0) { + $throwRuntimeError("cannot internalize " + t.string); + } + if (v === null) { + return $ifaceNil; + } + if (v === undefined) { + return new $jsObjectPtr(undefined); + } + switch (v.constructor) { + case Int8Array: + return new ($sliceType($Int8))(v); + case Int16Array: + return new ($sliceType($Int16))(v); + case Int32Array: + return new ($sliceType($Int))(v); + case Uint8Array: + return new ($sliceType($Uint8))(v); + case Uint16Array: + return new ($sliceType($Uint16))(v); + case Uint32Array: + return new ($sliceType($Uint))(v); + case Float32Array: + return new ($sliceType($Float32))(v); + case Float64Array: + return new ($sliceType($Float64))(v); + case Array: + return $internalize(v, $sliceType($emptyInterface)); + case Boolean: + return new $Bool(!!v); + case Date: + if (timePkg === undefined) { + /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */ + return new $jsObjectPtr(v); + } + return new timePkg.Time($internalize(v, timePkg.Time)); + case Function: + var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true); + return new funcType($internalize(v, funcType)); + case Number: + return new $Float64(parseFloat(v)); + case String: + return new $String($internalize(v, $String)); + default: + if ($global.Node && v instanceof $global.Node) { + return new $jsObjectPtr(v); + } + var mapType = $mapType($String, $emptyInterface); + return new mapType($internalize(v, mapType)); + } + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var k = $internalize(keys[i], t.key); + m[t.key.keyFor(k)] = { k: k, v: $internalize(v[keys[i]], t.elem) }; + } + return m; + case $kindPtr: + if (t.elem.kind === $kindStruct) { + return $internalize(v, t.elem); + } + case $kindSlice: + return new t($mapArray(v, function(e) { return $internalize(e, t.elem); })); + case $kindString: + v = String(v); + if ($isASCII(v)) { + return v; + } + var s = ""; + var i = 0; + while (i < v.length) { + var h = v.charCodeAt(i); + if (0xD800 <= h && h <= 0xDBFF) { + var l = v.charCodeAt(i + 1); + var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000; + s += $encodeRune(c); + i += 2; + continue; + } + s += $encodeRune(h); + i++; + } + return s; + case $kindStruct: + var noJsObject = {}; + var searchJsObject = function(t) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + switch (t.kind) { + case $kindPtr: + return searchJsObject(t.elem); + case $kindStruct: + var f = t.fields[0]; + var o = searchJsObject(f.typ); + if (o !== noJsObject) { + var n = new t.ptr(); + n[f.prop] = o; + return n; + } + return noJsObject; + default: + return noJsObject; + } + }; + var o = searchJsObject(t); + if (o !== noJsObject) { + return o; + } + } + $throwRuntimeError("cannot internalize " + t.string); +}; + +/* $isASCII reports whether string s contains only ASCII characters. */ +var $isASCII = function(s) { + for (var i = 0; i < s.length; i++) { + if (s.charCodeAt(i) >= 128) { + return false; + } + } + return true; +}; + +$packages["github.com/gopherjs/gopherjs/js"] = (function() { + var $pkg = {}, $init, Object, Error, sliceType, ptrType, ptrType$1, MakeFunc, init; + Object = $pkg.Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function(object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = null; + return; + } + this.object = object_; + }); + Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(Object); + ptrType$1 = $ptrType(Error); + Object.ptr.prototype.Get = function(key) { + var key, o; + o = this; + return o.object[$externalize(key, $String)]; + }; + Object.prototype.Get = function(key) { return this.$val.Get(key); }; + Object.ptr.prototype.Set = function(key, value) { + var key, o, value; + o = this; + o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + Object.prototype.Set = function(key, value) { return this.$val.Set(key, value); }; + Object.ptr.prototype.Delete = function(key) { + var key, o; + o = this; + delete o.object[$externalize(key, $String)]; + }; + Object.prototype.Delete = function(key) { return this.$val.Delete(key); }; + Object.ptr.prototype.Length = function() { + var o; + o = this; + return $parseInt(o.object.length); + }; + Object.prototype.Length = function() { return this.$val.Length(); }; + Object.ptr.prototype.Index = function(i) { + var i, o; + o = this; + return o.object[i]; + }; + Object.prototype.Index = function(i) { return this.$val.Index(i); }; + Object.ptr.prototype.SetIndex = function(i, value) { + var i, o, value; + o = this; + o.object[i] = $externalize(value, $emptyInterface); + }; + Object.prototype.SetIndex = function(i, value) { return this.$val.SetIndex(i, value); }; + Object.ptr.prototype.Call = function(name, args) { + var args, name, o, obj; + o = this; + return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType))); + }; + Object.prototype.Call = function(name, args) { return this.$val.Call(name, args); }; + Object.ptr.prototype.Invoke = function(args) { + var args, o; + o = this; + return o.object.apply(undefined, $externalize(args, sliceType)); + }; + Object.prototype.Invoke = function(args) { return this.$val.Invoke(args); }; + Object.ptr.prototype.New = function(args) { + var args, o; + o = this; + return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType)))); + }; + Object.prototype.New = function(args) { return this.$val.New(args); }; + Object.ptr.prototype.Bool = function() { + var o; + o = this; + return !!(o.object); + }; + Object.prototype.Bool = function() { return this.$val.Bool(); }; + Object.ptr.prototype.String = function() { + var o; + o = this; + return $internalize(o.object, $String); + }; + Object.prototype.String = function() { return this.$val.String(); }; + Object.ptr.prototype.Int = function() { + var o; + o = this; + return $parseInt(o.object) >> 0; + }; + Object.prototype.Int = function() { return this.$val.Int(); }; + Object.ptr.prototype.Int64 = function() { + var o; + o = this; + return $internalize(o.object, $Int64); + }; + Object.prototype.Int64 = function() { return this.$val.Int64(); }; + Object.ptr.prototype.Uint64 = function() { + var o; + o = this; + return $internalize(o.object, $Uint64); + }; + Object.prototype.Uint64 = function() { return this.$val.Uint64(); }; + Object.ptr.prototype.Float = function() { + var o; + o = this; + return $parseFloat(o.object); + }; + Object.prototype.Float = function() { return this.$val.Float(); }; + Object.ptr.prototype.Interface = function() { + var o; + o = this; + return $internalize(o.object, $emptyInterface); + }; + Object.prototype.Interface = function() { return this.$val.Interface(); }; + Object.ptr.prototype.Unsafe = function() { + var o; + o = this; + return o.object; + }; + Object.prototype.Unsafe = function() { return this.$val.Unsafe(); }; + Error.ptr.prototype.Error = function() { + var err; + err = this; + return "JavaScript error: " + $internalize(err.Object.message, $String); + }; + Error.prototype.Error = function() { return this.$val.Error(); }; + Error.ptr.prototype.Stack = function() { + var err; + err = this; + return $internalize(err.Object.stack, $String); + }; + Error.prototype.Stack = function() { return this.$val.Stack(); }; + MakeFunc = function(fn) { + var fn; + return $makeFunc(fn); + }; + $pkg.MakeFunc = MakeFunc; + init = function() { + var e; + e = new Error.ptr(null); + $unused(e); + }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false)}]; + ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false)}]; + Object.init("github.com/gopherjs/gopherjs/js", [{prop: "object", name: "object", embedded: false, exported: false, typ: ptrType, tag: ""}]); + Error.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/cpu"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/bytealg"] = (function() { + var $pkg = {}, $init, cpu, IndexByteString; + cpu = $packages["internal/cpu"]; + IndexByteString = function(s, c) { + var c, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (s.charCodeAt(i) === c) { + return i; + } + i = i + (1) >> 0; + } + return -1; + }; + $pkg.IndexByteString = IndexByteString; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = cpu.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["runtime/internal/sys"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["runtime"] = (function() { + var $pkg = {}, $init, js, bytealg, sys, _type, TypeAssertionError, errorString, ptrType, ptrType$4, init, GOROOT, Goexit, SetFinalizer, KeepAlive, throw$1; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + sys = $packages["runtime/internal/sys"]; + _type = $pkg._type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + TypeAssertionError = $pkg.TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function(_interface_, concrete_, asserted_, missingMethod_) { + this.$val = this; + if (arguments.length === 0) { + this._interface = ptrType.nil; + this.concrete = ptrType.nil; + this.asserted = ptrType.nil; + this.missingMethod = ""; + return; + } + this._interface = _interface_; + this.concrete = concrete_; + this.asserted = asserted_; + this.missingMethod = missingMethod_; + }); + errorString = $pkg.errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); + ptrType = $ptrType(_type); + ptrType$4 = $ptrType(TypeAssertionError); + _type.ptr.prototype.string = function() { + var t; + t = this; + return t.str; + }; + _type.prototype.string = function() { return this.$val.string(); }; + _type.ptr.prototype.pkgpath = function() { + var t; + t = this; + return ""; + }; + _type.prototype.pkgpath = function() { return this.$val.pkgpath(); }; + init = function() { + var e, jsPkg; + jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; + $jsObjectPtr = jsPkg.Object.ptr; + $jsErrorPtr = jsPkg.Error.ptr; + $throwRuntimeError = throw$1; + e = $ifaceNil; + e = new TypeAssertionError.ptr(ptrType.nil, ptrType.nil, ptrType.nil, ""); + $unused(e); + }; + GOROOT = function() { + var process, v, v$1; + process = $global.process; + if (process === undefined) { + return "/"; + } + v = process.env.GOPHERJS_GOROOT; + if (!(v === undefined)) { + return $internalize(v, $String); + } else { + v$1 = process.env.GOROOT; + if (!(v$1 === undefined)) { + return $internalize(v$1, $String); + } + } + return "/usr/local/go"; + }; + $pkg.GOROOT = GOROOT; + Goexit = function() { + $curGoroutine.exit = $externalize(true, $Bool); + $throw(null); + }; + $pkg.Goexit = Goexit; + SetFinalizer = function(x, f) { + var f, x; + }; + $pkg.SetFinalizer = SetFinalizer; + KeepAlive = function(param) { + var param; + }; + $pkg.KeepAlive = KeepAlive; + throw$1 = function(s) { + var s; + $panic(new errorString((s))); + }; + TypeAssertionError.ptr.prototype.RuntimeError = function() { + }; + TypeAssertionError.prototype.RuntimeError = function() { return this.$val.RuntimeError(); }; + TypeAssertionError.ptr.prototype.Error = function() { + var as, cs, e, inter, msg; + e = this; + inter = "interface"; + if (!(e._interface === ptrType.nil)) { + inter = e._interface.string(); + } + as = e.asserted.string(); + if (e.concrete === ptrType.nil) { + return "interface conversion: " + inter + " is nil, not " + as; + } + cs = e.concrete.string(); + if (e.missingMethod === "") { + msg = "interface conversion: " + inter + " is " + cs + ", not " + as; + if (cs === as) { + if (!(e.concrete.pkgpath() === e.asserted.pkgpath())) { + msg = msg + (" (types from different packages)"); + } else { + msg = msg + (" (types from different scopes)"); + } + } + return msg; + } + return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod; + }; + TypeAssertionError.prototype.Error = function() { return this.$val.Error(); }; + errorString.prototype.RuntimeError = function() { + var e; + e = this.$val; + }; + $ptrType(errorString).prototype.RuntimeError = function() { return new errorString(this.$get()).RuntimeError(); }; + errorString.prototype.Error = function() { + var e; + e = this.$val; + return "runtime error: " + (e); + }; + $ptrType(errorString).prototype.Error = function() { return new errorString(this.$get()).Error(); }; + ptrType.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + _type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sys.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["errors"] = (function() { + var $pkg = {}, $init, errorString, ptrType, New; + errorString = $pkg.errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + return; + } + this.s = s_; + }); + ptrType = $ptrType(errorString); + New = function(text) { + var text; + return new errorString.ptr(text); + }; + $pkg.New = New; + errorString.ptr.prototype.Error = function() { + var e; + e = this; + return e.s; + }; + errorString.prototype.Error = function() { return this.$val.Error(); }; + ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.init("errors", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math/bits"] = (function() { + var $pkg = {}, $init, deBruijn32tab, deBruijn64tab, len8tab, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, Len64; + LeadingZeros64 = function(x) { + var x; + return 64 - Len64(x) >> 0; + }; + $pkg.LeadingZeros64 = LeadingZeros64; + TrailingZeros = function(x) { + var x; + if (true) { + return TrailingZeros32(((x >>> 0))); + } + return TrailingZeros64((new $Uint64(0, x))); + }; + $pkg.TrailingZeros = TrailingZeros; + TrailingZeros32 = function(x) { + var x, x$1; + if (x === 0) { + return 32; + } + return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0)); + }; + $pkg.TrailingZeros32 = TrailingZeros32; + TrailingZeros64 = function(x) { + var x, x$1, x$2; + if ((x.$high === 0 && x.$low === 0)) { + return 64; + } + return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0)); + }; + $pkg.TrailingZeros64 = TrailingZeros64; + Len64 = function(x) { + var n, x; + n = 0; + if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) { + x = $shiftRightUint64(x, (32)); + n = 32; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) { + x = $shiftRightUint64(x, (16)); + n = n + (16) >> 0; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) { + x = $shiftRightUint64(x, (8)); + n = n + (8) >> 0; + } + n = n + (((($flatten64(x) < 0 || $flatten64(x) >= len8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : len8tab[$flatten64(x)]) >> 0)) >> 0; + return n; + }; + $pkg.Len64 = Len64; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]); + deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]); + len8tab = $toNativeArray($kindUint8, [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math"] = (function() { + var $pkg = {}, $init, js, bits, arrayType, arrayType$1, arrayType$2, structType, math, zero, posInf, negInf, nan, buf, Inf, NaN, init, Float32bits, Float32frombits, Float64bits, Float64frombits; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bits = $packages["math/bits"]; + arrayType = $arrayType($Uint32, 2); + arrayType$1 = $arrayType($Float32, 2); + arrayType$2 = $arrayType($Float64, 1); + structType = $structType("math", [{prop: "uint32array", name: "uint32array", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "float32array", name: "float32array", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "float64array", name: "float64array", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + Inf = function(sign) { + var sign; + if (sign >= 0) { + return posInf; + } else { + return negInf; + } + }; + $pkg.Inf = Inf; + NaN = function() { + return nan; + }; + $pkg.NaN = NaN; + init = function() { + var ab; + ab = new ($global.ArrayBuffer)(8); + buf.uint32array = new ($global.Uint32Array)(ab); + buf.float32array = new ($global.Float32Array)(ab); + buf.float64array = new ($global.Float64Array)(ab); + }; + Float32bits = function(f) { + var f; + buf.float32array[0] = f; + return buf.uint32array[0]; + }; + $pkg.Float32bits = Float32bits; + Float32frombits = function(b) { + var b; + buf.uint32array[0] = b; + return buf.float32array[0]; + }; + $pkg.Float32frombits = Float32frombits; + Float64bits = function(f) { + var f, x, x$1; + buf.float64array[0] = f; + return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + $pkg.Float64bits = Float64bits; + Float64frombits = function(b) { + var b; + buf.uint32array[0] = ((b.$low >>> 0)); + buf.uint32array[1] = (($shiftRightUint64(b, 32).$low >>> 0)); + return buf.float64array[0]; + }; + $pkg.Float64frombits = Float64frombits; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero()); + math = $global.Math; + zero = 0; + posInf = 1 / zero; + negInf = -1 / zero; + nan = 0 / zero; + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode/utf8"] = (function() { + var $pkg = {}, $init, acceptRange, first, acceptRanges, DecodeRune, DecodeRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, ValidString, ValidRune; + acceptRange = $pkg.acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function(lo_, hi_) { + this.$val = this; + if (arguments.length === 0) { + this.lo = 0; + this.hi = 0; + return; + } + this.lo = lo_; + this.hi = hi_; + }); + DecodeRune = function(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1; + r = 0; + size = 0; + n = p.$length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]); + x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]); + if (b1 < accept.lo || accept.hi < b1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]); + if (b2 < 128 || 191 < b2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]); + if (b3 < 128 || 191 < b3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRune = DecodeRune; + DecodeRuneInString = function(s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1; + r = 0; + size = 0; + n = s.length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + s0 = s.charCodeAt(0); + x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + s1 = s.charCodeAt(1); + if (s1 < accept.lo || accept.hi < s1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + s2 = s.charCodeAt(2); + if (s2 < 128 || 191 < s2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + s3 = s.charCodeAt(3); + if (s3 < 128 || 191 < s3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRuneInString = DecodeRuneInString; + RuneLen = function(r) { + var r; + if (r < 0) { + return -1; + } else if (r <= 127) { + return 1; + } else if (r <= 2047) { + return 2; + } else if (55296 <= r && r <= 57343) { + return -1; + } else if (r <= 65535) { + return 3; + } else if (r <= 1114111) { + return 4; + } + return -1; + }; + $pkg.RuneLen = RuneLen; + EncodeRune = function(p, r) { + var i, p, r; + i = ((r >>> 0)); + if (i <= 127) { + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24))); + return 1; + } else if (i <= 2047) { + $unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 2; + } else if ((i > 1114111) || (55296 <= i && i <= 57343)) { + r = 65533; + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else if (i <= 65535) { + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else { + $unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 4; + } + }; + $pkg.EncodeRune = EncodeRune; + RuneCount = function(p) { + var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4; + np = p.$length; + n = 0; + i = 0; + while (true) { + if (!(i < np)) { break; } + n = n + (1) >> 0; + c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + if (c < 128) { + i = i + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > np) { + i = i + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2])); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3])); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4])); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + } + return n; + }; + $pkg.RuneCount = RuneCount; + RuneCountInString = function(s) { + var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1; + n = 0; + ns = s.length; + i = 0; + while (true) { + if (!(i < ns)) { break; } + c = s.charCodeAt(i); + if (c < 128) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > ns) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = s.charCodeAt((i + 1 >> 0)); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = s.charCodeAt((i + 2 >> 0)); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = s.charCodeAt((i + 3 >> 0)); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + n = n + (1) >> 0; + } + n = n; + return n; + }; + $pkg.RuneCountInString = RuneCountInString; + ValidString = function(s) { + var accept, c, c$1, c$2, i, n, s, si, size, x, x$1; + n = s.length; + i = 0; + while (true) { + if (!(i < n)) { break; } + si = s.charCodeAt(i); + if (si < 128) { + i = i + (1) >> 0; + continue; + } + x = ((si < 0 || si >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[si]); + if (x === 241) { + return false; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > n) { + return false; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c = s.charCodeAt((i + 1 >> 0)); + if (c < accept.lo || accept.hi < c) { + return false; + } else if (size === 2) { + } else { + c$1 = s.charCodeAt((i + 2 >> 0)); + if (c$1 < 128 || 191 < c$1) { + return false; + } else if (size === 3) { + } else { + c$2 = s.charCodeAt((i + 3 >> 0)); + if (c$2 < 128 || 191 < c$2) { + return false; + } + } + } + i = i + (size) >> 0; + } + return true; + }; + $pkg.ValidString = ValidString; + ValidRune = function(r) { + var r; + if (0 <= r && r < 55296) { + return true; + } else if (57343 < r && r <= 1114111) { + return true; + } + return false; + }; + $pkg.ValidRune = ValidRune; + acceptRange.init("unicode/utf8", [{prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]); + acceptRanges = $toNativeArray($kindStruct, [new acceptRange.ptr(128, 191), new acceptRange.ptr(160, 191), new acceptRange.ptr(128, 159), new acceptRange.ptr(144, 191), new acceptRange.ptr(128, 143)]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strconv"] = (function() { + var $pkg = {}, $init, errors, bytealg, math, bits, utf8, NumError, decimal, leftCheat, extFloat, floatInfo, decimalSlice, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, arrayType, sliceType$6, ptrType, arrayType$1, arrayType$2, ptrType$1, arrayType$3, arrayType$4, ptrType$2, ptrType$3, ptrType$4, optimize, powtab, float64pow10, float32pow10, leftcheats, smallPowersOfTen, powersOfTen, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, ParseBool, FormatBool, equalIgnoreCase, special, readFloat, atof64exact, atof32exact, atof32, atof64, ParseFloat, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, frexp10Many, adjustLastDigitFixed, adjustLastDigit, FormatFloat, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, min, max, FormatUint, FormatInt, Itoa, small, formatBits, isPowerOfTwo, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, contains, bsearch16, bsearch32, IsPrint, isInGraphicList; + errors = $packages["errors"]; + bytealg = $packages["internal/bytealg"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + utf8 = $packages["unicode/utf8"]; + NumError = $pkg.NumError = $newType(0, $kindStruct, "strconv.NumError", true, "strconv", true, function(Func_, Num_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Func = ""; + this.Num = ""; + this.Err = $ifaceNil; + return; + } + this.Func = Func_; + this.Num = Num_; + this.Err = Err_; + }); + decimal = $pkg.decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function(d_, nd_, dp_, neg_, trunc_) { + this.$val = this; + if (arguments.length === 0) { + this.d = arrayType.zero(); + this.nd = 0; + this.dp = 0; + this.neg = false; + this.trunc = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + this.trunc = trunc_; + }); + leftCheat = $pkg.leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function(delta_, cutoff_) { + this.$val = this; + if (arguments.length === 0) { + this.delta = 0; + this.cutoff = ""; + return; + } + this.delta = delta_; + this.cutoff = cutoff_; + }); + extFloat = $pkg.extFloat = $newType(0, $kindStruct, "strconv.extFloat", true, "strconv", false, function(mant_, exp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.mant = new $Uint64(0, 0); + this.exp = 0; + this.neg = false; + return; + } + this.mant = mant_; + this.exp = exp_; + this.neg = neg_; + }); + floatInfo = $pkg.floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function(mantbits_, expbits_, bias_) { + this.$val = this; + if (arguments.length === 0) { + this.mantbits = 0; + this.expbits = 0; + this.bias = 0; + return; + } + this.mantbits = mantbits_; + this.expbits = expbits_; + this.bias = bias_; + }); + decimalSlice = $pkg.decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function(d_, nd_, dp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.d = sliceType$6.nil; + this.nd = 0; + this.dp = 0; + this.neg = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + }); + sliceType = $sliceType($Int); + sliceType$1 = $sliceType($Float64); + sliceType$2 = $sliceType($Float32); + sliceType$3 = $sliceType(leftCheat); + sliceType$4 = $sliceType($Uint16); + sliceType$5 = $sliceType($Uint32); + arrayType = $arrayType($Uint8, 800); + sliceType$6 = $sliceType($Uint8); + ptrType = $ptrType(NumError); + arrayType$1 = $arrayType($Uint8, 24); + arrayType$2 = $arrayType($Uint8, 32); + ptrType$1 = $ptrType(floatInfo); + arrayType$3 = $arrayType($Uint8, 65); + arrayType$4 = $arrayType($Uint8, 4); + ptrType$2 = $ptrType(decimal); + ptrType$3 = $ptrType(decimalSlice); + ptrType$4 = $ptrType(extFloat); + ParseBool = function(str) { + var _1, str; + _1 = str; + if (_1 === ("1") || _1 === ("t") || _1 === ("T") || _1 === ("true") || _1 === ("TRUE") || _1 === ("True")) { + return [true, $ifaceNil]; + } else if (_1 === ("0") || _1 === ("f") || _1 === ("F") || _1 === ("false") || _1 === ("FALSE") || _1 === ("False")) { + return [false, $ifaceNil]; + } + return [false, syntaxError("ParseBool", str)]; + }; + $pkg.ParseBool = ParseBool; + FormatBool = function(b) { + var b; + if (b) { + return "true"; + } + return "false"; + }; + $pkg.FormatBool = FormatBool; + equalIgnoreCase = function(s1, s2) { + var c1, c2, i, s1, s2; + if (!((s1.length === s2.length))) { + return false; + } + i = 0; + while (true) { + if (!(i < s1.length)) { break; } + c1 = s1.charCodeAt(i); + if (65 <= c1 && c1 <= 90) { + c1 = c1 + (32) << 24 >>> 24; + } + c2 = s2.charCodeAt(i); + if (65 <= c2 && c2 <= 90) { + c2 = c2 + (32) << 24 >>> 24; + } + if (!((c1 === c2))) { + return false; + } + i = i + (1) >> 0; + } + return true; + }; + special = function(s) { + var _1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, f, ok, s; + f = 0; + ok = false; + if (s.length === 0) { + return [f, ok]; + } + _1 = s.charCodeAt(0); + if (_1 === (43)) { + if (equalIgnoreCase(s, "+inf") || equalIgnoreCase(s, "+infinity")) { + _tmp = math.Inf(1); + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } + } else if (_1 === (45)) { + if (equalIgnoreCase(s, "-inf") || equalIgnoreCase(s, "-infinity")) { + _tmp$2 = math.Inf(-1); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } + } else if ((_1 === (110)) || (_1 === (78))) { + if (equalIgnoreCase(s, "nan")) { + _tmp$4 = math.NaN(); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + } else if ((_1 === (105)) || (_1 === (73))) { + if (equalIgnoreCase(s, "inf") || equalIgnoreCase(s, "infinity")) { + _tmp$6 = math.Inf(1); + _tmp$7 = true; + f = _tmp$6; + ok = _tmp$7; + return [f, ok]; + } + } else { + return [f, ok]; + } + return [f, ok]; + }; + decimal.ptr.prototype.set = function(s) { + var b, e, esign, i, ok, s, sawdigits, sawdot, x, x$1; + ok = false; + b = this; + i = 0; + b.neg = false; + b.trunc = false; + if (i >= s.length) { + return ok; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } else if ((s.charCodeAt(i) === 45)) { + b.neg = true; + i = i + (1) >> 0; + } + sawdot = false; + sawdigits = false; + while (true) { + if (!(i < s.length)) { break; } + if ((s.charCodeAt(i) === 46)) { + if (sawdot) { + return ok; + } + sawdot = true; + b.dp = b.nd; + i = i + (1) >> 0; + continue; + } else if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) { + sawdigits = true; + if ((s.charCodeAt(i) === 48) && (b.nd === 0)) { + b.dp = b.dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + if (b.nd < 800) { + (x = b.d, x$1 = b.nd, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = s.charCodeAt(i))); + b.nd = b.nd + (1) >> 0; + } else if (!((s.charCodeAt(i) === 48))) { + b.trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return ok; + } + if (!sawdot) { + b.dp = b.nd; + } + if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { + i = i + (1) >> 0; + if (i >= s.length) { + return ok; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return ok; + } + e = 0; + while (true) { + if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { break; } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + b.dp = b.dp + (($imul(e, esign))) >> 0; + } + if (!((i === s.length))) { + return ok; + } + ok = true; + return ok; + }; + decimal.prototype.set = function(s) { return this.$val.set(s); }; + readFloat = function(s) { + var _1, c, dp, e, esign, exp, i, mantissa, nd, ndMant, neg, ok, s, sawdigits, sawdot, trunc, x; + mantissa = new $Uint64(0, 0); + exp = 0; + neg = false; + trunc = false; + ok = false; + i = 0; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, ok]; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } else if ((s.charCodeAt(i) === 45)) { + neg = true; + i = i + (1) >> 0; + } + sawdot = false; + sawdigits = false; + nd = 0; + ndMant = 0; + dp = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + _1 = true; + if (_1 === ((c === 46))) { + if (sawdot) { + return [mantissa, exp, neg, trunc, ok]; + } + sawdot = true; + dp = nd; + i = i + (1) >> 0; + continue; + } else if (_1 === (48 <= c && c <= 57)) { + sawdigits = true; + if ((c === 48) && (nd === 0)) { + dp = dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + nd = nd + (1) >> 0; + if (ndMant < 19) { + mantissa = $mul64(mantissa, (new $Uint64(0, 10))); + mantissa = (x = (new $Uint64(0, (c - 48 << 24 >>> 24))), new $Uint64(mantissa.$high + x.$high, mantissa.$low + x.$low)); + ndMant = ndMant + (1) >> 0; + } else if (!((s.charCodeAt(i) === 48))) { + trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return [mantissa, exp, neg, trunc, ok]; + } + if (!sawdot) { + dp = nd; + } + if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { + i = i + (1) >> 0; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, ok]; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return [mantissa, exp, neg, trunc, ok]; + } + e = 0; + while (true) { + if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { break; } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + dp = dp + (($imul(e, esign))) >> 0; + } + if (!((i === s.length))) { + return [mantissa, exp, neg, trunc, ok]; + } + if (!((mantissa.$high === 0 && mantissa.$low === 0))) { + exp = dp - ndMant >> 0; + } + ok = true; + return [mantissa, exp, neg, trunc, ok]; + }; + decimal.ptr.prototype.floatBits = function(flt) { + var _tmp, _tmp$1, b, bits$1, d, exp, flt, mant, n, n$1, n$2, overflow, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, y$1, y$2, y$3, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + b = new $Uint64(0, 0); + overflow = false; + d = this; + exp = 0; + mant = new $Uint64(0, 0); + /* */ if (d.nd === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (d.nd === 0) { */ case 1: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; continue; + /* } */ case 2: + /* */ if (d.dp > 310) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (d.dp > 310) { */ case 4: + /* goto overflow */ $s = 6; continue; + /* } */ case 5: + /* */ if (d.dp < -330) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (d.dp < -330) { */ case 7: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; continue; + /* } */ case 8: + exp = 0; + while (true) { + if (!(d.dp > 0)) { break; } + n = 0; + if (d.dp >= powtab.$length) { + n = 27; + } else { + n = (x = d.dp, ((x < 0 || x >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x])); + } + d.Shift(-n); + exp = exp + (n) >> 0; + } + while (true) { + if (!(d.dp < 0 || (d.dp === 0) && d.d[0] < 53)) { break; } + n$1 = 0; + if (-d.dp >= powtab.$length) { + n$1 = 27; + } else { + n$1 = (x$1 = -d.dp, ((x$1 < 0 || x$1 >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x$1])); + } + d.Shift(n$1); + exp = exp - (n$1) >> 0; + } + exp = exp - (1) >> 0; + if (exp < (flt.bias + 1 >> 0)) { + n$2 = (flt.bias + 1 >> 0) - exp >> 0; + d.Shift(-n$2); + exp = exp + (n$2) >> 0; + } + /* */ if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { */ case 9: + /* goto overflow */ $s = 6; continue; + /* } */ case 10: + d.Shift((((1 + flt.mantbits >>> 0) >> 0))); + mant = d.RoundedInteger(); + /* */ if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { */ case 11: + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + /* */ if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { */ case 13: + /* goto overflow */ $s = 6; continue; + /* } */ case 14: + /* } */ case 12: + if ((x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$4.$high, (mant.$low & x$4.$low) >>> 0)), (x$3.$high === 0 && x$3.$low === 0))) { + exp = flt.bias; + } + /* goto out */ $s = 3; continue; + /* overflow: */ case 6: + mant = new $Uint64(0, 0); + exp = (((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; + overflow = true; + /* out: */ case 3: + bits$1 = (x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$6.$high - 0, x$6.$low - 1)), new $Uint64(mant.$high & x$5.$high, (mant.$low & x$5.$low) >>> 0)); + bits$1 = (x$7 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$3 = flt.expbits, y$3 < 32 ? (1 << y$3) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$7.$high, (bits$1.$low | x$7.$low) >>> 0)); + if (d.neg) { + bits$1 = (x$8 = $shiftLeft64($shiftLeft64(new $Uint64(0, 1), flt.mantbits), flt.expbits), new $Uint64(bits$1.$high | x$8.$high, (bits$1.$low | x$8.$low) >>> 0)); + } + _tmp = bits$1; + _tmp$1 = overflow; + b = _tmp; + overflow = _tmp$1; + $s = -1; return [b, overflow]; + /* */ } return; } + }; + decimal.prototype.floatBits = function(flt) { return this.$val.floatBits(flt); }; + atof64exact = function(mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float64info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } else if (exp > 0 && exp <= 37) { + if (exp > 22) { + f = f * ((x$1 = exp - 22 >> 0, ((x$1 < 0 || x$1 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$1]))); + exp = 22; + } + if (f > 1e+15 || f < -1e+15) { + return [f, ok]; + } + _tmp$2 = f * ((exp < 0 || exp >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + exp]); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } else if (exp < 0 && exp >= -22) { + _tmp$4 = f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$2])); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atof32exact = function(mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float32info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } else if (exp > 0 && exp <= 17) { + if (exp > 10) { + f = $fround(f * ((x$1 = exp - 10 >> 0, ((x$1 < 0 || x$1 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$1])))); + exp = 10; + } + if (f > 1e+07 || f < -1e+07) { + return [f, ok]; + } + _tmp$2 = $fround(f * ((exp < 0 || exp >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + exp])); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } else if (exp < 0 && exp >= -10) { + _tmp$4 = $fround(f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$2]))); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atof32 = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; + f = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = ($fround(val)); + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + return [f, err]; + } + if (optimize) { + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + ok$1 = _tuple$1[4]; + if (ok$1) { + if (!trunc) { + _tuple$2 = atof32exact(mantissa, exp, neg); + f$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + _tmp$2 = f$1; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + return [f, err]; + } + } + ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); + ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float32info); + if (ok$3) { + _tuple$3 = ext.floatBits(float32info); + b = _tuple$3[0]; + ovf = _tuple$3[1]; + f = math.Float32frombits(((b.$low >>> 0))); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$4 = f; + _tmp$5 = err; + f = _tmp$4; + err = _tmp$5; + return [f, err]; + } + } + } + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + if (!d.set(s)) { + _tmp$6 = 0; + _tmp$7 = syntaxError("ParseFloat", s); + f = _tmp$6; + err = _tmp$7; + return [f, err]; + } + _tuple$4 = d.floatBits(float32info); + b$1 = _tuple$4[0]; + ovf$1 = _tuple$4[1]; + f = math.Float32frombits(((b$1.$low >>> 0))); + if (ovf$1) { + err = rangeError("ParseFloat", s); + } + _tmp$8 = f; + _tmp$9 = err; + f = _tmp$8; + err = _tmp$9; + return [f, err]; + }; + atof64 = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; + f = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = val; + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + return [f, err]; + } + if (optimize) { + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + ok$1 = _tuple$1[4]; + if (ok$1) { + if (!trunc) { + _tuple$2 = atof64exact(mantissa, exp, neg); + f$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + _tmp$2 = f$1; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + return [f, err]; + } + } + ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); + ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float64info); + if (ok$3) { + _tuple$3 = ext.floatBits(float64info); + b = _tuple$3[0]; + ovf = _tuple$3[1]; + f = math.Float64frombits(b); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$4 = f; + _tmp$5 = err; + f = _tmp$4; + err = _tmp$5; + return [f, err]; + } + } + } + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + if (!d.set(s)) { + _tmp$6 = 0; + _tmp$7 = syntaxError("ParseFloat", s); + f = _tmp$6; + err = _tmp$7; + return [f, err]; + } + _tuple$4 = d.floatBits(float64info); + b$1 = _tuple$4[0]; + ovf$1 = _tuple$4[1]; + f = math.Float64frombits(b$1); + if (ovf$1) { + err = rangeError("ParseFloat", s); + } + _tmp$8 = f; + _tmp$9 = err; + f = _tmp$8; + err = _tmp$9; + return [f, err]; + }; + ParseFloat = function(s, bitSize) { + var _tuple, bitSize, err, f, s; + if (bitSize === 32) { + _tuple = atof32(s); + f = _tuple[0]; + err = _tuple[1]; + return [(f), err]; + } + return atof64(s); + }; + $pkg.ParseFloat = ParseFloat; + NumError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: NumError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + NumError.prototype.Error = function() { return this.$val.Error(); }; + syntaxError = function(fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrSyntax); + }; + rangeError = function(fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrRange); + }; + baseError = function(fn, str, base) { + var base, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid base " + Itoa(base))); + }; + bitSizeError = function(fn, str, bitSize) { + var bitSize, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid bit size " + Itoa(bitSize))); + }; + ParseUint = function(s, base, bitSize) { + var _1, _i, _ref, base, bitSize, c, cutoff, d, maxVal, n, n1, s, s0, x, x$1, x$2; + if (s.length === 0) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s)]; + } + s0 = s; + if (2 <= base && base <= 36) { + } else if ((base === 0)) { + if ((s.charCodeAt(0) === 48) && s.length > 1 && ((s.charCodeAt(1) === 120) || (s.charCodeAt(1) === 88))) { + if (s.length < 3) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + base = 16; + s = $substring(s, 2); + } else if ((s.charCodeAt(0) === 48)) { + base = 8; + s = $substring(s, 1); + } else { + base = 10; + } + } else { + return [new $Uint64(0, 0), baseError("ParseUint", s0, base)]; + } + if (bitSize === 0) { + bitSize = 32; + } else if (bitSize < 0 || bitSize > 64) { + return [new $Uint64(0, 0), bitSizeError("ParseUint", s0, bitSize)]; + } + cutoff = new $Uint64(0, 0); + _1 = base; + if (_1 === (10)) { + cutoff = new $Uint64(429496729, 2576980378); + } else if (_1 === (16)) { + cutoff = new $Uint64(268435456, 0); + } else { + cutoff = (x = $div64(new $Uint64(4294967295, 4294967295), (new $Uint64(0, base)), false), new $Uint64(x.$high + 0, x.$low + 1)); + } + maxVal = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((bitSize >>> 0))), new $Uint64(x$1.$high - 0, x$1.$low - 1)); + n = new $Uint64(0, 0); + _ref = (new sliceType$6($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + d = 0; + if (48 <= c && c <= 57) { + d = c - 48 << 24 >>> 24; + } else if (97 <= c && c <= 122) { + d = (c - 97 << 24 >>> 24) + 10 << 24 >>> 24; + } else if (65 <= c && c <= 90) { + d = (c - 65 << 24 >>> 24) + 10 << 24 >>> 24; + } else { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if (d >= ((base << 24 >>> 24))) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = $mul64(n, ((new $Uint64(0, base)))); + n1 = (x$2 = (new $Uint64(0, d)), new $Uint64(n.$high + x$2.$high, n.$low + x$2.$low)); + if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = n1; + _i++; + } + return [n, $ifaceNil]; + }; + $pkg.ParseUint = ParseUint; + ParseInt = function(s, base, bitSize) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, base, bitSize, cutoff, err, i, n, neg, s, s0, un, x, x$1; + i = new $Int64(0, 0); + err = $ifaceNil; + if (s.length === 0) { + _tmp = new $Int64(0, 0); + _tmp$1 = syntaxError("ParseInt", s); + i = _tmp; + err = _tmp$1; + return [i, err]; + } + s0 = s; + neg = false; + if (s.charCodeAt(0) === 43) { + s = $substring(s, 1); + } else if (s.charCodeAt(0) === 45) { + neg = true; + s = $substring(s, 1); + } + un = new $Uint64(0, 0); + _tuple = ParseUint(s, base, bitSize); + un = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual($assertType(err, ptrType).Err, $pkg.ErrRange))) { + $assertType(err, ptrType).Func = "ParseInt"; + $assertType(err, ptrType).Num = s0; + _tmp$2 = new $Int64(0, 0); + _tmp$3 = err; + i = _tmp$2; + err = _tmp$3; + return [i, err]; + } + if (bitSize === 0) { + bitSize = 32; + } + cutoff = ($shiftLeft64(new $Uint64(0, 1), (((bitSize - 1 >> 0) >>> 0)))); + if (!neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low >= cutoff.$low))) { + _tmp$4 = ((x = new $Uint64(cutoff.$high - 0, cutoff.$low - 1), new $Int64(x.$high, x.$low))); + _tmp$5 = rangeError("ParseInt", s0); + i = _tmp$4; + err = _tmp$5; + return [i, err]; + } + if (neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low > cutoff.$low))) { + _tmp$6 = (x$1 = (new $Int64(cutoff.$high, cutoff.$low)), new $Int64(-x$1.$high, -x$1.$low)); + _tmp$7 = rangeError("ParseInt", s0); + i = _tmp$6; + err = _tmp$7; + return [i, err]; + } + n = (new $Int64(un.$high, un.$low)); + if (neg) { + n = new $Int64(-n.$high, -n.$low); + } + _tmp$8 = n; + _tmp$9 = $ifaceNil; + i = _tmp$8; + err = _tmp$9; + return [i, err]; + }; + $pkg.ParseInt = ParseInt; + decimal.ptr.prototype.String = function() { + var a, buf, n, w; + a = this; + n = 10 + a.nd >> 0; + if (a.dp > 0) { + n = n + (a.dp) >> 0; + } + if (a.dp < 0) { + n = n + (-a.dp) >> 0; + } + buf = $makeSlice(sliceType$6, n); + w = 0; + if ((a.nd === 0)) { + return "0"; + } else if (a.dp <= 0) { + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + w = w + (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + } else if (a.dp < a.nd) { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0; + } else { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0; + } + return ($bytesToString($subslice(buf, 0, w))); + }; + decimal.prototype.String = function() { return this.$val.String(); }; + digitZero = function(dst) { + var _i, _ref, dst, i; + _ref = dst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48); + _i++; + } + return dst.$length; + }; + trim = function(a) { + var a, x, x$1; + while (true) { + if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { break; } + a.nd = a.nd - (1) >> 0; + } + if (a.nd === 0) { + a.dp = 0; + } + }; + decimal.ptr.prototype.Assign = function(v) { + var a, buf, n, v, v1, x, x$1, x$2; + a = this; + buf = arrayType$1.zero(); + n = 0; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n + (1) >> 0; + v = v1; + } + a.nd = 0; + n = n - (1) >> 0; + while (true) { + if (!(n >= 0)) { break; } + (x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n]))); + a.nd = a.nd + (1) >> 0; + n = n - (1) >> 0; + } + a.dp = a.nd; + trim(a); + }; + decimal.prototype.Assign = function(v) { return this.$val.Assign(v); }; + rightShift = function(a, k) { + var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4; + r = 0; + w = 0; + n = 0; + while (true) { + if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { break; } + if (r >= a.nd) { + if (n === 0) { + a.nd = 0; + return; + } + while (true) { + if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; } + n = n * 10 >>> 0; + r = r + (1) >> 0; + } + break; + } + c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)); + n = ((n * 10 >>> 0) + c >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + a.dp = a.dp - ((r - 1 >> 0)) >> 0; + mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0; + while (true) { + if (!(r < a.nd)) { break; } + c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0)); + dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; + n = (n & (mask)) >>> 0; + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + n = ((n * 10 >>> 0) + c$1 >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; + n = (n & (mask)) >>> 0; + if (w < 800) { + (x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + } else if (dig$1 > 0) { + a.trunc = true; + } + n = n * 10 >>> 0; + } + a.nd = w; + trim(a); + }; + prefixIsLessThan = function(b, s) { + var b, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (i >= b.$length) { + return true; + } + if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) { + return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i); + } + i = i + (1) >> 0; + } + return false; + }; + leftShift = function(a, k) { + var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y; + delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta; + if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) { + delta = delta - (1) >> 0; + } + r = a.nd; + w = a.nd + delta >> 0; + n = 0; + r = r - (1) >> 0; + while (true) { + if (!(r >= 0)) { break; } + n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0; + quo = (_q = n / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rem = n - (10 * quo >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem === 0))) { + a.trunc = true; + } + n = quo; + r = r - (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + rem$1 = n - (10 * quo$1 >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem$1 === 0))) { + a.trunc = true; + } + n = quo$1; + } + a.nd = a.nd + (delta) >> 0; + if (a.nd >= 800) { + a.nd = 800; + } + a.dp = a.dp + (delta) >> 0; + trim(a); + }; + decimal.ptr.prototype.Shift = function(k) { + var a, k; + a = this; + if ((a.nd === 0)) { + } else if (k > 0) { + while (true) { + if (!(k > 28)) { break; } + leftShift(a, 28); + k = k - (28) >> 0; + } + leftShift(a, ((k >>> 0))); + } else if (k < 0) { + while (true) { + if (!(k < -28)) { break; } + rightShift(a, 28); + k = k + (28) >> 0; + } + rightShift(a, ((-k >>> 0))); + } + }; + decimal.prototype.Shift = function(k) { return this.$val.Shift(k); }; + shouldRoundUp = function(a, nd) { + var _r, a, nd, x, x$1, x$2, x$3; + if (nd < 0 || nd >= a.nd) { + return false; + } + if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) { + if (a.trunc) { + return true; + } + return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)); + } + return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53; + }; + decimal.ptr.prototype.Round = function(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + if (shouldRoundUp(a, nd)) { + a.RoundUp(nd); + } else { + a.RoundDown(nd); + } + }; + decimal.prototype.Round = function(nd) { return this.$val.Round(nd); }; + decimal.ptr.prototype.RoundDown = function(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + a.nd = nd; + trim(a); + }; + decimal.prototype.RoundDown = function(nd) { return this.$val.RoundDown(nd); }; + decimal.ptr.prototype.RoundUp = function(nd) { + var a, c, i, nd, x, x$1, x$2; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + i = nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + if (c < 57) { + (x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24))); + a.nd = i + 1 >> 0; + return; + } + i = i - (1) >> 0; + } + a.d[0] = 49; + a.nd = 1; + a.dp = a.dp + (1) >> 0; + }; + decimal.prototype.RoundUp = function(nd) { return this.$val.RoundUp(nd); }; + decimal.ptr.prototype.RoundedInteger = function() { + var a, i, n, x, x$1, x$2, x$3; + a = this; + if (a.dp > 20) { + return new $Uint64(4294967295, 4294967295); + } + i = 0; + n = new $Uint64(0, 0); + i = 0; + while (true) { + if (!(i < a.dp && i < a.nd)) { break; } + n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + i = i + (1) >> 0; + } + while (true) { + if (!(i < a.dp)) { break; } + n = $mul64(n, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + if (shouldRoundUp(a, a.dp)) { + n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low)); + } + return n; + }; + decimal.prototype.RoundedInteger = function() { return this.$val.RoundedInteger(); }; + extFloat.ptr.prototype.floatBits = function(flt) { + var bits$1, exp, f, flt, mant, n, overflow, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2; + bits$1 = new $Uint64(0, 0); + overflow = false; + f = this; + f.Normalize(); + exp = f.exp + 63 >> 0; + if (exp < (flt.bias + 1 >> 0)) { + n = (flt.bias + 1 >> 0) - exp >> 0; + f.mant = $shiftRightUint64(f.mant, (((n >>> 0)))); + exp = exp + (n) >> 0; + } + mant = $shiftRightUint64(f.mant, ((63 - flt.mantbits >>> 0))); + if (!((x = (x$1 = f.mant, x$2 = $shiftLeft64(new $Uint64(0, 1), ((62 - flt.mantbits >>> 0))), new $Uint64(x$1.$high & x$2.$high, (x$1.$low & x$2.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + mant = (x$3 = new $Uint64(0, 1), new $Uint64(mant.$high + x$3.$high, mant.$low + x$3.$low)); + } + if ((x$4 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$4.$high && mant.$low === x$4.$low))) { + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + } + if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { + mant = new $Uint64(0, 0); + exp = (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; + overflow = true; + } else if ((x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$6.$high, (mant.$low & x$6.$low) >>> 0)), (x$5.$high === 0 && x$5.$low === 0))) { + exp = flt.bias; + } + bits$1 = (x$7 = (x$8 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$8.$high - 0, x$8.$low - 1)), new $Uint64(mant.$high & x$7.$high, (mant.$low & x$7.$low) >>> 0)); + bits$1 = (x$9 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$9.$high, (bits$1.$low | x$9.$low) >>> 0)); + if (f.neg) { + bits$1 = (x$10 = $shiftLeft64(new $Uint64(0, 1), ((flt.mantbits + flt.expbits >>> 0))), new $Uint64(bits$1.$high | x$10.$high, (bits$1.$low | x$10.$low) >>> 0)); + } + return [bits$1, overflow]; + }; + extFloat.prototype.floatBits = function(flt) { return this.$val.floatBits(flt); }; + extFloat.ptr.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { + var _tmp, _tmp$1, exp, expBiased, f, flt, lower, mant, neg, upper, x, x$1, x$2, x$3, x$4; + lower = new extFloat.ptr(new $Uint64(0, 0), 0, false); + upper = new extFloat.ptr(new $Uint64(0, 0), 0, false); + f = this; + f.mant = mant; + f.exp = exp - ((flt.mantbits >> 0)) >> 0; + f.neg = neg; + if (f.exp <= 0 && (x = $shiftLeft64(($shiftRightUint64(mant, ((-f.exp >>> 0)))), ((-f.exp >>> 0))), (mant.$high === x.$high && mant.$low === x.$low))) { + f.mant = $shiftRightUint64(f.mant, (((-f.exp >>> 0)))); + f.exp = 0; + _tmp = $clone(f, extFloat); + _tmp$1 = $clone(f, extFloat); + extFloat.copy(lower, _tmp); + extFloat.copy(upper, _tmp$1); + return [lower, upper]; + } + expBiased = exp - flt.bias >> 0; + extFloat.copy(upper, new extFloat.ptr((x$1 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$1.$high + 0, x$1.$low + 1)), f.exp - 1 >> 0, f.neg)); + if (!((x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) || (expBiased === 1)) { + extFloat.copy(lower, new extFloat.ptr((x$3 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$3.$high - 0, x$3.$low - 1)), f.exp - 1 >> 0, f.neg)); + } else { + extFloat.copy(lower, new extFloat.ptr((x$4 = $mul64(new $Uint64(0, 4), f.mant), new $Uint64(x$4.$high - 0, x$4.$low - 1)), f.exp - 2 >> 0, f.neg)); + } + return [lower, upper]; + }; + extFloat.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { return this.$val.AssignComputeBounds(mant, exp, neg, flt); }; + extFloat.ptr.prototype.Normalize = function() { + var f, shift, x; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + return 0; + } + shift = bits.LeadingZeros64(f.mant); + f.mant = $shiftLeft64(f.mant, (((shift >>> 0)))); + f.exp = f.exp - (shift) >> 0; + return ((shift >>> 0)); + }; + extFloat.prototype.Normalize = function() { return this.$val.Normalize(); }; + extFloat.ptr.prototype.Multiply = function(g) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, cross1, cross2, f, fhi, flo, g, ghi, glo, rem, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + _tmp = $shiftRightUint64(f.mant, 32); + _tmp$1 = (new $Uint64(0, ((f.mant.$low >>> 0)))); + fhi = _tmp; + flo = _tmp$1; + _tmp$2 = $shiftRightUint64(g.mant, 32); + _tmp$3 = (new $Uint64(0, ((g.mant.$low >>> 0)))); + ghi = _tmp$2; + glo = _tmp$3; + cross1 = $mul64(fhi, glo); + cross2 = $mul64(flo, ghi); + f.mant = (x = (x$1 = $mul64(fhi, ghi), x$2 = $shiftRightUint64(cross1, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)), x$3 = $shiftRightUint64(cross2, 32), new $Uint64(x.$high + x$3.$high, x.$low + x$3.$low)); + rem = (x$4 = (x$5 = (new $Uint64(0, ((cross1.$low >>> 0)))), x$6 = (new $Uint64(0, ((cross2.$low >>> 0)))), new $Uint64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)), x$7 = $shiftRightUint64(($mul64(flo, glo)), 32), new $Uint64(x$4.$high + x$7.$high, x$4.$low + x$7.$low)); + rem = (x$8 = new $Uint64(0, 2147483648), new $Uint64(rem.$high + x$8.$high, rem.$low + x$8.$low)); + f.mant = (x$9 = f.mant, x$10 = ($shiftRightUint64(rem, 32)), new $Uint64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); + f.exp = (f.exp + g.exp >> 0) + 64 >> 0; + }; + extFloat.prototype.Multiply = function(g) { return this.$val.Multiply(g); }; + extFloat.ptr.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { + var _q, _r, adjExp, denormalExp, errors$1, exp10, extrabits, f, flt, halfway, i, mant_extra, mantissa, neg, ok, shift, trunc, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y; + ok = false; + f = this; + errors$1 = 0; + if (trunc) { + errors$1 = errors$1 + (4) >> 0; + } + f.mant = mantissa; + f.exp = 0; + f.neg = neg; + i = (_q = ((exp10 - -348 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (exp10 < -348 || i >= 87) { + ok = false; + return ok; + } + adjExp = (_r = ((exp10 - -348 >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + if (adjExp < 19 && (x = (x$1 = 19 - adjExp >> 0, ((x$1 < 0 || x$1 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$1])), (mantissa.$high < x.$high || (mantissa.$high === x.$high && mantissa.$low < x.$low)))) { + f.mant = $mul64(f.mant, (((adjExp < 0 || adjExp >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[adjExp]))); + f.Normalize(); + } else { + f.Normalize(); + f.Multiply($clone(((adjExp < 0 || adjExp >= smallPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : smallPowersOfTen[adjExp]), extFloat)); + errors$1 = errors$1 + (4) >> 0; + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + if (errors$1 > 0) { + errors$1 = errors$1 + (1) >> 0; + } + errors$1 = errors$1 + (4) >> 0; + shift = f.Normalize(); + errors$1 = (y = (shift), y < 32 ? (errors$1 << y) : 0) >> 0; + denormalExp = flt.bias - 63 >> 0; + extrabits = 0; + if (f.exp <= denormalExp) { + extrabits = ((63 - flt.mantbits >>> 0) + 1 >>> 0) + (((denormalExp - f.exp >> 0) >>> 0)) >>> 0; + } else { + extrabits = 63 - flt.mantbits >>> 0; + } + halfway = $shiftLeft64(new $Uint64(0, 1), ((extrabits - 1 >>> 0))); + mant_extra = (x$2 = f.mant, x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), extrabits), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); + if ((x$5 = (x$6 = (new $Int64(halfway.$high, halfway.$low)), x$7 = (new $Int64(0, errors$1)), new $Int64(x$6.$high - x$7.$high, x$6.$low - x$7.$low)), x$8 = (new $Int64(mant_extra.$high, mant_extra.$low)), (x$5.$high < x$8.$high || (x$5.$high === x$8.$high && x$5.$low < x$8.$low))) && (x$9 = (new $Int64(mant_extra.$high, mant_extra.$low)), x$10 = (x$11 = (new $Int64(halfway.$high, halfway.$low)), x$12 = (new $Int64(0, errors$1)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), (x$9.$high < x$10.$high || (x$9.$high === x$10.$high && x$9.$low < x$10.$low)))) { + ok = false; + return ok; + } + ok = true; + return ok; + }; + extFloat.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { return this.$val.AssignDecimal(mantissa, exp10, neg, trunc, flt); }; + extFloat.ptr.prototype.frexp10 = function() { + var _q, _q$1, _tmp, _tmp$1, approxExp10, exp, exp10, f, i, index; + exp10 = 0; + index = 0; + f = this; + approxExp10 = (_q = ($imul(((-46 - f.exp >> 0)), 28)) / 93, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + i = (_q$1 = ((approxExp10 - -348 >> 0)) / 8, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + Loop: + while (true) { + exp = (f.exp + ((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]).exp >> 0) + 64 >> 0; + if (exp < -60) { + i = i + (1) >> 0; + } else if (exp > -32) { + i = i - (1) >> 0; + } else { + break Loop; + } + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + _tmp = -((-348 + ($imul(i, 8)) >> 0)); + _tmp$1 = i; + exp10 = _tmp; + index = _tmp$1; + return [exp10, index]; + }; + extFloat.prototype.frexp10 = function() { return this.$val.frexp10(); }; + frexp10Many = function(a, b, c) { + var _tuple, a, b, c, exp10, i; + exp10 = 0; + _tuple = c.frexp10(); + exp10 = _tuple[0]; + i = _tuple[1]; + a.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + b.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + return exp10; + }; + extFloat.ptr.prototype.FixedDecimal = function(d, n) { + var $CE$B5, _q, _q$1, _tmp, _tmp$1, _tuple, buf, d, digit, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, n, nd, needed, ok, pos, pow, pow10, rest, shift, v, v1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if (n === 0) { + $panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0")); + } + f.Normalize(); + _tuple = f.frexp10(); + exp10 = _tuple[0]; + shift = ((-f.exp >>> 0)); + integer = (($shiftRightUint64(f.mant, shift).$low >>> 0)); + fraction = (x$1 = f.mant, x$2 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + $CE$B5 = new $Uint64(0, 1); + needed = n; + integerDigits = 0; + pow10 = new $Uint64(0, 1); + _tmp = 0; + _tmp$1 = new $Uint64(0, 1); + i = _tmp; + pow = _tmp$1; + while (true) { + if (!(i < 20)) { break; } + if ((x$3 = (new $Uint64(0, integer)), (pow.$high > x$3.$high || (pow.$high === x$3.$high && pow.$low > x$3.$low)))) { + integerDigits = i; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + rest = integer; + if (integerDigits > needed) { + pow10 = (x$4 = integerDigits - needed >> 0, ((x$4 < 0 || x$4 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$4])); + integer = (_q = integer / (((pow10.$low >>> 0))), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rest = rest - (($imul(integer, ((pow10.$low >>> 0))) >>> 0)) >>> 0; + } else { + rest = 0; + } + buf = arrayType$2.zero(); + pos = 32; + v = integer; + while (true) { + if (!(v > 0)) { break; } + v1 = (_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + v = v - (($imul(10, v1) >>> 0)) >>> 0; + pos = pos - (1) >> 0; + ((pos < 0 || pos >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[pos] = (((v + 48 >>> 0) << 24 >>> 24))); + v = v1; + } + i$1 = pos; + while (true) { + if (!(i$1 < 32)) { break; } + (x$5 = d.d, x$6 = i$1 - pos >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = ((i$1 < 0 || i$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i$1]))); + i$1 = i$1 + (1) >> 0; + } + nd = 32 - pos >> 0; + d.nd = nd; + d.dp = integerDigits + exp10 >> 0; + needed = needed - (nd) >> 0; + if (needed > 0) { + if (!((rest === 0)) || !((pow10.$high === 0 && pow10.$low === 1))) { + $panic(new $String("strconv: internal error, rest != 0 but needed > 0")); + } + while (true) { + if (!(needed > 0)) { break; } + fraction = $mul64(fraction, (new $Uint64(0, 10))); + $CE$B5 = $mul64($CE$B5, (new $Uint64(0, 10))); + if ((x$7 = $mul64(new $Uint64(0, 2), $CE$B5), x$8 = $shiftLeft64(new $Uint64(0, 1), shift), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) { + return false; + } + digit = $shiftRightUint64(fraction, shift); + (x$9 = d.d, ((nd < 0 || nd >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + nd] = ((new $Uint64(digit.$high + 0, digit.$low + 48).$low << 24 >>> 24)))); + fraction = (x$10 = $shiftLeft64(digit, shift), new $Uint64(fraction.$high - x$10.$high, fraction.$low - x$10.$low)); + nd = nd + (1) >> 0; + needed = needed - (1) >> 0; + } + d.nd = nd; + } + ok = adjustLastDigitFixed(d, (x$11 = $shiftLeft64((new $Uint64(0, rest)), shift), new $Uint64(x$11.$high | fraction.$high, (x$11.$low | fraction.$low) >>> 0)), pow10, shift, $CE$B5); + if (!ok) { + return false; + } + i$2 = d.nd - 1 >> 0; + while (true) { + if (!(i$2 >= 0)) { break; } + if (!(((x$12 = d.d, ((i$2 < 0 || i$2 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i$2])) === 48))) { + d.nd = i$2 + 1 >> 0; + break; + } + i$2 = i$2 - (1) >> 0; + } + return true; + }; + extFloat.prototype.FixedDecimal = function(d, n) { return this.$val.FixedDecimal(d, n); }; + adjustLastDigitFixed = function(d, num, den, shift, $CE$B5) { + var $CE$B5, d, den, i, num, shift, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $shiftLeft64(den, shift), (num.$high > x.$high || (num.$high === x.$high && num.$low > x.$low)))) { + $panic(new $String("strconv: num > den< x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + $panic(new $String("strconv: \xCE\xB5 > (den< x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { + i = d.nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if ((x$7 = d.d, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])) === 57) { + d.nd = d.nd - (1) >> 0; + } else { + break; + } + i = i - (1) >> 0; + } + if (i < 0) { + (x$8 = d.d, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 49)); + d.nd = 1; + d.dp = d.dp + (1) >> 0; + } else { + (x$10 = d.d, ((i < 0 || i >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + i] = ((x$9 = d.d, ((i < 0 || i >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i])) + (1) << 24 >>> 24))); + } + return true; + } + return false; + }; + extFloat.ptr.prototype.ShortestDecimal = function(d, lower, upper) { + var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, allowance, buf, currentDiff, d, digit, digit$1, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, lower, multiplier, n, nd, pow, pow$1, shift, targetDiff, upper, v, v1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if ((f.exp === 0) && $equal(lower, f, extFloat) && $equal(lower, upper, extFloat)) { + buf = arrayType$1.zero(); + n = 23; + v = f.mant; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x$1 = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x$1.$high, v.$low - x$1.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n - (1) >> 0; + v = v1; + } + nd = (24 - n >> 0) - 1 >> 0; + i = 0; + while (true) { + if (!(i < nd)) { break; } + (x$3 = d.d, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = (x$2 = (n + 1 >> 0) + i >> 0, ((x$2 < 0 || x$2 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$2])))); + i = i + (1) >> 0; + } + _tmp = nd; + _tmp$1 = nd; + d.nd = _tmp; + d.dp = _tmp$1; + while (true) { + if (!(d.nd > 0 && ((x$4 = d.d, x$5 = d.nd - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 48))) { break; } + d.nd = d.nd - (1) >> 0; + } + if (d.nd === 0) { + d.dp = 0; + } + d.neg = f.neg; + return true; + } + upper.Normalize(); + if (f.exp > upper.exp) { + f.mant = $shiftLeft64(f.mant, ((((f.exp - upper.exp >> 0) >>> 0)))); + f.exp = upper.exp; + } + if (lower.exp > upper.exp) { + lower.mant = $shiftLeft64(lower.mant, ((((lower.exp - upper.exp >> 0) >>> 0)))); + lower.exp = upper.exp; + } + exp10 = frexp10Many(lower, f, upper); + upper.mant = (x$6 = upper.mant, x$7 = new $Uint64(0, 1), new $Uint64(x$6.$high + x$7.$high, x$6.$low + x$7.$low)); + lower.mant = (x$8 = lower.mant, x$9 = new $Uint64(0, 1), new $Uint64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)); + shift = ((-upper.exp >>> 0)); + integer = (($shiftRightUint64(upper.mant, shift).$low >>> 0)); + fraction = (x$10 = upper.mant, x$11 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$10.$high - x$11.$high, x$10.$low - x$11.$low)); + allowance = (x$12 = upper.mant, x$13 = lower.mant, new $Uint64(x$12.$high - x$13.$high, x$12.$low - x$13.$low)); + targetDiff = (x$14 = upper.mant, x$15 = f.mant, new $Uint64(x$14.$high - x$15.$high, x$14.$low - x$15.$low)); + integerDigits = 0; + _tmp$2 = 0; + _tmp$3 = new $Uint64(0, 1); + i$1 = _tmp$2; + pow = _tmp$3; + while (true) { + if (!(i$1 < 20)) { break; } + if ((x$16 = (new $Uint64(0, integer)), (pow.$high > x$16.$high || (pow.$high === x$16.$high && pow.$low > x$16.$low)))) { + integerDigits = i$1; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < integerDigits)) { break; } + pow$1 = (x$17 = (integerDigits - i$2 >> 0) - 1 >> 0, ((x$17 < 0 || x$17 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$17])); + digit = (_q = integer / ((pow$1.$low >>> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$18 = d.d, ((i$2 < 0 || i$2 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$2] = (((digit + 48 >>> 0) << 24 >>> 24)))); + integer = integer - (($imul(digit, ((pow$1.$low >>> 0))) >>> 0)) >>> 0; + currentDiff = (x$19 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$19.$high + fraction.$high, x$19.$low + fraction.$low)); + if ((currentDiff.$high < allowance.$high || (currentDiff.$high === allowance.$high && currentDiff.$low < allowance.$low))) { + d.nd = i$2 + 1 >> 0; + d.dp = integerDigits + exp10 >> 0; + d.neg = f.neg; + return adjustLastDigit(d, currentDiff, targetDiff, allowance, $shiftLeft64(pow$1, shift), new $Uint64(0, 2)); + } + i$2 = i$2 + (1) >> 0; + } + d.nd = integerDigits; + d.dp = d.nd + exp10 >> 0; + d.neg = f.neg; + digit$1 = 0; + multiplier = new $Uint64(0, 1); + while (true) { + fraction = $mul64(fraction, (new $Uint64(0, 10))); + multiplier = $mul64(multiplier, (new $Uint64(0, 10))); + digit$1 = (($shiftRightUint64(fraction, shift).$low >> 0)); + (x$20 = d.d, x$21 = d.nd, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = (((digit$1 + 48 >> 0) << 24 >>> 24)))); + d.nd = d.nd + (1) >> 0; + fraction = (x$22 = $shiftLeft64((new $Uint64(0, digit$1)), shift), new $Uint64(fraction.$high - x$22.$high, fraction.$low - x$22.$low)); + if ((x$23 = $mul64(allowance, multiplier), (fraction.$high < x$23.$high || (fraction.$high === x$23.$high && fraction.$low < x$23.$low)))) { + return adjustLastDigit(d, fraction, $mul64(targetDiff, multiplier), $mul64(allowance, multiplier), $shiftLeft64(new $Uint64(0, 1), shift), $mul64(multiplier, new $Uint64(0, 2))); + } + } + }; + extFloat.prototype.ShortestDecimal = function(d, lower, upper) { return this.$val.ShortestDecimal(d, lower, upper); }; + adjustLastDigit = function(d, currentDiff, targetDiff, maxDiff, ulpDecimal, ulpBinary) { + var _index, currentDiff, d, maxDiff, targetDiff, ulpBinary, ulpDecimal, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $mul64(new $Uint64(0, 2), ulpBinary), (ulpDecimal.$high < x.$high || (ulpDecimal.$high === x.$high && ulpDecimal.$low < x.$low)))) { + return false; + } + while (true) { + if (!((x$1 = (x$2 = (x$3 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(currentDiff.$high + x$3.$high, currentDiff.$low + x$3.$low)), new $Uint64(x$2.$high + ulpBinary.$high, x$2.$low + ulpBinary.$low)), (x$1.$high < targetDiff.$high || (x$1.$high === targetDiff.$high && x$1.$low < targetDiff.$low))))) { break; } + _index = d.nd - 1 >> 0; + (x$5 = d.d, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = d.d, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) - (1) << 24 >>> 24))); + currentDiff = (x$6 = ulpDecimal, new $Uint64(currentDiff.$high + x$6.$high, currentDiff.$low + x$6.$low)); + } + if ((x$7 = new $Uint64(currentDiff.$high + ulpDecimal.$high, currentDiff.$low + ulpDecimal.$low), x$8 = (x$9 = (x$10 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(targetDiff.$high + x$10.$high, targetDiff.$low + x$10.$low)), new $Uint64(x$9.$high + ulpBinary.$high, x$9.$low + ulpBinary.$low)), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low <= x$8.$low)))) { + return false; + } + if ((currentDiff.$high < ulpBinary.$high || (currentDiff.$high === ulpBinary.$high && currentDiff.$low < ulpBinary.$low)) || (x$11 = new $Uint64(maxDiff.$high - ulpBinary.$high, maxDiff.$low - ulpBinary.$low), (currentDiff.$high > x$11.$high || (currentDiff.$high === x$11.$high && currentDiff.$low > x$11.$low)))) { + return false; + } + if ((d.nd === 1) && ((x$12 = d.d, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])) === 48)) { + d.nd = 0; + d.dp = 0; + } + return true; + }; + FormatFloat = function(f, fmt, prec, bitSize) { + var bitSize, f, fmt, prec; + return ($bytesToString(genericFtoa($makeSlice(sliceType$6, 0, max(prec + 4 >> 0, 24)), f, fmt, prec, bitSize))); + }; + $pkg.FormatFloat = FormatFloat; + AppendFloat = function(dst, f, fmt, prec, bitSize) { + var bitSize, dst, f, fmt, prec; + return genericFtoa(dst, f, fmt, prec, bitSize); + }; + $pkg.AppendFloat = AppendFloat; + genericFtoa = function(dst, val, fmt, prec, bitSize) { + var _1, _2, _3, _4, _tuple, bitSize, bits$1, buf, buf$1, digits, digs, dst, exp, f, f$1, flt, fmt, lower, mant, neg, ok, prec, s, shortest, upper, val, x, x$1, x$2, x$3, y, y$1; + bits$1 = new $Uint64(0, 0); + flt = ptrType$1.nil; + _1 = bitSize; + if (_1 === (32)) { + bits$1 = (new $Uint64(0, math.Float32bits(($fround(val))))); + flt = float32info; + } else if (_1 === (64)) { + bits$1 = math.Float64bits(val); + flt = float64info; + } else { + $panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize")); + } + neg = !((x = $shiftRightUint64(bits$1, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0))); + exp = (($shiftRightUint64(bits$1, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)); + mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits$1.$high & x$1.$high, (bits$1.$low & x$1.$low) >>> 0)); + _2 = exp; + if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) { + s = ""; + if (!((mant.$high === 0 && mant.$low === 0))) { + s = "NaN"; + } else if (neg) { + s = "-Inf"; + } else { + s = "+Inf"; + } + return $appendSlice(dst, s); + } else if (_2 === (0)) { + exp = exp + (1) >> 0; + } else { + mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0)); + } + exp = exp + (flt.bias) >> 0; + if (fmt === 98) { + return fmtB(dst, neg, mant, exp, flt); + } + if (!optimize) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + ok = false; + shortest = prec < 0; + if (shortest) { + f = new extFloat.ptr(new $Uint64(0, 0), 0, false); + _tuple = f.AssignComputeBounds(mant, exp, neg, flt); + lower = $clone(_tuple[0], extFloat); + upper = $clone(_tuple[1], extFloat); + buf = arrayType$2.zero(); + digs.d = new sliceType$6(buf); + ok = f.ShortestDecimal(digs, lower, upper); + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + _3 = fmt; + if ((_3 === (101)) || (_3 === (69))) { + prec = max(digs.nd - 1 >> 0, 0); + } else if (_3 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_3 === (103)) || (_3 === (71))) { + prec = digs.nd; + } + } else if (!((fmt === 102))) { + digits = prec; + _4 = fmt; + if ((_4 === (101)) || (_4 === (69))) { + digits = digits + (1) >> 0; + } else if ((_4 === (103)) || (_4 === (71))) { + if (prec === 0) { + prec = 1; + } + digits = prec; + } + if (digits <= 15) { + buf$1 = arrayType$1.zero(); + digs.d = new sliceType$6(buf$1); + f$1 = new extFloat.ptr(mant, exp - ((flt.mantbits >> 0)) >> 0, neg); + ok = f$1.FixedDecimal(digs, digits); + } + } + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + bigFtoa = function(dst, prec, fmt, neg, mant, exp, flt) { + var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest; + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + d.Assign(mant); + d.Shift(exp - ((flt.mantbits >> 0)) >> 0); + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + shortest = prec < 0; + if (shortest) { + roundShortest(d, mant, exp, flt); + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + prec = digs.nd - 1 >> 0; + } else if (_1 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_1 === (103)) || (_1 === (71))) { + prec = digs.nd; + } + } else { + _2 = fmt; + if ((_2 === (101)) || (_2 === (69))) { + d.Round(prec + 1 >> 0); + } else if (_2 === (102)) { + d.Round(d.dp + prec >> 0); + } else if ((_2 === (103)) || (_2 === (71))) { + if (prec === 0) { + prec = 1; + } + d.Round(prec); + } + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + formatDigits = function(dst, shortest, neg, digs, prec, fmt) { + var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest; + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt); + } else if (_1 === (102)) { + return fmtF(dst, neg, $clone(digs, decimalSlice), prec); + } else if ((_1 === (103)) || (_1 === (71))) { + eprec = prec; + if (eprec > digs.nd && digs.nd >= digs.dp) { + eprec = digs.nd; + } + if (shortest) { + eprec = 6; + } + exp = digs.dp - 1 >> 0; + if (exp < -4 || exp >= eprec) { + if (prec > digs.nd) { + prec = digs.nd; + } + return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24); + } + if (prec > digs.dp) { + prec = digs.nd; + } + return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0)); + } + return $append(dst, 37, fmt); + }; + roundShortest = function(d, mant, exp, flt) { + var d, exp, explo, flt, i, inclusive, l, lower, m, mant, mantlo, minexp, okdown, okup, u, upper, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + if ((mant.$high === 0 && mant.$low === 0)) { + d.nd = 0; + return; + } + minexp = flt.bias + 1 >> 0; + if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) { + return; + } + upper = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1))); + upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + mantlo = new $Uint64(0, 0); + explo = 0; + if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) { + mantlo = new $Uint64(mant.$high - 0, mant.$low - 1); + explo = exp; + } else { + mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1)); + explo = exp - 1 >> 0; + } + lower = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + lower.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1))); + lower.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0)); + i = 0; + while (true) { + if (!(i < d.nd)) { break; } + l = 48; + if (i < lower.nd) { + l = (x$5 = lower.d, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])); + } + m = (x$6 = d.d, ((i < 0 || i >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i])); + u = 48; + if (i < upper.nd) { + u = (x$7 = upper.d, ((i < 0 || i >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[i])); + } + okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.nd); + okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.nd); + if (okdown && okup) { + d.Round(i + 1 >> 0); + return; + } else if (okdown) { + d.RoundDown(i + 1 >> 0); + return; + } else if (okup) { + d.RoundUp(i + 1 >> 0); + return; + } + i = i + (1) >> 0; + } + }; + fmtE = function(dst, neg, d, prec, fmt) { + var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + ch = 48; + if (!((d.nd === 0))) { + ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + dst = $append(dst, ch); + if (prec > 0) { + dst = $append(dst, 46); + i = 1; + m = min(d.nd, prec + 1 >> 0); + if (i < m) { + dst = $appendSlice(dst, $subslice(d.d, i, m)); + i = m; + } + while (true) { + if (!(i <= prec)) { break; } + dst = $append(dst, 48); + i = i + (1) >> 0; + } + } + dst = $append(dst, fmt); + exp = d.dp - 1 >> 0; + if (d.nd === 0) { + exp = 0; + } + if (exp < 0) { + ch = 45; + exp = -exp; + } else { + ch = 43; + } + dst = $append(dst, ch); + if (exp < 10) { + dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24); + } else if (exp < 100) { + dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } else { + dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } + return dst; + }; + fmtF = function(dst, neg, d, prec) { + var ch, d, dst, i, j, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + if (d.dp > 0) { + m = min(d.nd, d.dp); + dst = $appendSlice(dst, $subslice(d.d, 0, m)); + while (true) { + if (!(m < d.dp)) { break; } + dst = $append(dst, 48); + m = m + (1) >> 0; + } + } else { + dst = $append(dst, 48); + } + if (prec > 0) { + dst = $append(dst, 46); + i = 0; + while (true) { + if (!(i < prec)) { break; } + ch = 48; + j = d.dp + i >> 0; + if (0 <= j && j < d.nd) { + ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + } + dst = $append(dst, ch); + i = i + (1) >> 0; + } + } + return dst; + }; + fmtB = function(dst, neg, mant, exp, flt) { + var _tuple, _tuple$1, dst, exp, flt, mant, neg; + if (neg) { + dst = $append(dst, 45); + } + _tuple = formatBits(dst, mant, 10, false, true); + dst = _tuple[0]; + dst = $append(dst, 112); + exp = exp - (((flt.mantbits >> 0))) >> 0; + if (exp >= 0) { + dst = $append(dst, 43); + } + _tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true); + dst = _tuple$1[0]; + return dst; + }; + min = function(a, b) { + var a, b; + if (a < b) { + return a; + } + return b; + }; + max = function(a, b) { + var a, b; + if (a > b) { + return a; + } + return b; + }; + FormatUint = function(i, base) { + var _tuple, base, i, s; + if (true && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small(((i.$low >> 0))); + } + _tuple = formatBits(sliceType$6.nil, i, base, false, false); + s = _tuple[1]; + return s; + }; + $pkg.FormatUint = FormatUint; + FormatInt = function(i, base) { + var _tuple, base, i, s; + if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0))); + } + _tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false); + s = _tuple[1]; + return s; + }; + $pkg.FormatInt = FormatInt; + Itoa = function(i) { + var i; + return FormatInt((new $Int64(0, i)), 10); + }; + $pkg.Itoa = Itoa; + small = function(i) { + var i; + if (i < 10) { + return $substring("0123456789abcdefghijklmnopqrstuvwxyz", i, (i + 1 >> 0)); + } + return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0)); + }; + formatBits = function(dst, u, base, neg, append_) { + var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, shift, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5; + d = sliceType$6.nil; + s = ""; + if (base < 2 || base > 36) { + $panic(new $String("strconv: illegal AppendInt/FormatInt base")); + } + a = arrayType$3.zero(); + i = 65; + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if (base === 10) { + if (true) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { break; } + q = $div64(u, new $Uint64(0, 1000000000), false); + us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0)); + j = 4; + while (true) { + if (!(j > 0)) { break; } + is = (_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us = (_q = us / (100), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0)))); + (x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0)))); + j = j - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((us * 2 >>> 0) + 1 >>> 0))); + u = q; + } + } + us$1 = ((u.$low >>> 0)); + while (true) { + if (!(us$1 >= 100)) { break; } + is$1 = (_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0)))); + (x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0)))); + } + is$2 = us$1 * 2 >>> 0; + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0))); + if (us$1 >= 10) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2)); + } + } else if (isPowerOfTwo(base)) { + shift = (((bits.TrailingZeros(((base >>> 0))) >>> 0)) & 7) >>> 0; + b = (new $Uint64(0, base)); + m = ((base >>> 0)) - 1 >>> 0; + while (true) { + if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0))); + u = $shiftRightUint64(u, (shift)); + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } else { + b$1 = (new $Uint64(0, base)); + while (true) { + if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { break; } + i = i - (1) >> 0; + q$1 = $div64(u, b$1, false); + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0)))); + u = q$1; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } + if (neg) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45); + } + if (append_) { + d = $appendSlice(dst, $subslice(new sliceType$6(a), i)); + return [d, s]; + } + s = ($bytesToString($subslice(new sliceType$6(a), i))); + return [d, s]; + }; + isPowerOfTwo = function(x) { + var x; + return (x & ((x - 1 >> 0))) === 0; + }; + quoteWith = function(s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _q, graphicOnly, quote, s; + return ($bytesToString(appendQuotedWith($makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), s, quote, ASCIIonly, graphicOnly))); + }; + appendQuotedWith = function(buf, s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _tuple, buf, graphicOnly, quote, r, s, width; + buf = $append(buf, quote); + width = 0; + while (true) { + if (!(s.length > 0)) { break; } + r = ((s.charCodeAt(0) >> 0)); + width = 1; + if (r >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + width = _tuple[1]; + } + if ((width === 1) && (r === 65533)) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0))); + s = $substring(s, width); + continue; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + s = $substring(s, width); + } + buf = $append(buf, quote); + return buf; + }; + appendQuotedRuneWith = function(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, buf, graphicOnly, quote, r; + buf = $append(buf, quote); + if (!utf8.ValidRune(r)) { + r = 65533; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + buf = $append(buf, quote); + return buf; + }; + appendEscapedRune = function(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1; + runeTmp = arrayType$4.zero(); + if ((r === ((quote >> 0))) || (r === 92)) { + buf = $append(buf, 92); + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + if (ASCIIonly) { + if (r < 128 && IsPrint(r)) { + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + } else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) { + n = utf8.EncodeRune(new sliceType$6(runeTmp), r); + buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n)); + return buf; + } + _1 = r; + if (_1 === (7)) { + buf = $appendSlice(buf, "\\a"); + } else if (_1 === (8)) { + buf = $appendSlice(buf, "\\b"); + } else if (_1 === (12)) { + buf = $appendSlice(buf, "\\f"); + } else if (_1 === (10)) { + buf = $appendSlice(buf, "\\n"); + } else if (_1 === (13)) { + buf = $appendSlice(buf, "\\r"); + } else if (_1 === (9)) { + buf = $appendSlice(buf, "\\t"); + } else if (_1 === (11)) { + buf = $appendSlice(buf, "\\v"); + } else { + if (r < 32) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0))); + } else if (r > 1114111) { + r = 65533; + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else if (r < 65536) { + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else { + buf = $appendSlice(buf, "\\U"); + s$1 = 28; + while (true) { + if (!(s$1 >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15))); + s$1 = s$1 - (4) >> 0; + } + } + } + return buf; + }; + Quote = function(s) { + var s; + return quoteWith(s, 34, false, false); + }; + $pkg.Quote = Quote; + AppendQuote = function(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, false, false); + }; + $pkg.AppendQuote = AppendQuote; + AppendQuoteToASCII = function(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, true, false); + }; + $pkg.AppendQuoteToASCII = AppendQuoteToASCII; + AppendQuoteRune = function(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, false, false); + }; + $pkg.AppendQuoteRune = AppendQuoteRune; + AppendQuoteRuneToASCII = function(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, true, false); + }; + $pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII; + CanBackquote = function(s) { + var _tuple, r, s, wid; + while (true) { + if (!(s.length > 0)) { break; } + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + wid = _tuple[1]; + s = $substring(s, wid); + if (wid > 1) { + if (r === 65279) { + return false; + } + continue; + } + if (r === 65533) { + return false; + } + if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) { + return false; + } + } + return true; + }; + $pkg.CanBackquote = CanBackquote; + unhex = function(b) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v; + v = 0; + ok = false; + c = ((b >> 0)); + if (48 <= c && c <= 57) { + _tmp = c - 48 >> 0; + _tmp$1 = true; + v = _tmp; + ok = _tmp$1; + return [v, ok]; + } else if (97 <= c && c <= 102) { + _tmp$2 = (c - 97 >> 0) + 10 >> 0; + _tmp$3 = true; + v = _tmp$2; + ok = _tmp$3; + return [v, ok]; + } else if (65 <= c && c <= 70) { + _tmp$4 = (c - 65 >> 0) + 10 >> 0; + _tmp$5 = true; + v = _tmp$4; + ok = _tmp$5; + return [v, ok]; + } + return [v, ok]; + }; + UnquoteChar = function(s, quote) { + var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1; + value = 0; + multibyte = false; + tail = ""; + err = $ifaceNil; + if (s.length === 0) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c = s.charCodeAt(0); + if ((c === quote) && ((quote === 39) || (quote === 34))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } else if (c >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + _tmp = r; + _tmp$1 = true; + _tmp$2 = $substring(s, size); + _tmp$3 = $ifaceNil; + value = _tmp; + multibyte = _tmp$1; + tail = _tmp$2; + err = _tmp$3; + return [value, multibyte, tail, err]; + } else if (!((c === 92))) { + _tmp$4 = ((s.charCodeAt(0) >> 0)); + _tmp$5 = false; + _tmp$6 = $substring(s, 1); + _tmp$7 = $ifaceNil; + value = _tmp$4; + multibyte = _tmp$5; + tail = _tmp$6; + err = _tmp$7; + return [value, multibyte, tail, err]; + } + if (s.length <= 1) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c$1 = s.charCodeAt(1); + s = $substring(s, 2); + switch (0) { default: + _1 = c$1; + if (_1 === (97)) { + value = 7; + } else if (_1 === (98)) { + value = 8; + } else if (_1 === (102)) { + value = 12; + } else if (_1 === (110)) { + value = 10; + } else if (_1 === (114)) { + value = 13; + } else if (_1 === (116)) { + value = 9; + } else if (_1 === (118)) { + value = 11; + } else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) { + n = 0; + _2 = c$1; + if (_2 === (120)) { + n = 2; + } else if (_2 === (117)) { + n = 4; + } else if (_2 === (85)) { + n = 8; + } + v = 0; + if (s.length < n) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j = 0; + while (true) { + if (!(j < n)) { break; } + _tuple$1 = unhex(s.charCodeAt(j)); + x = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v = (v << 4 >> 0) | x; + j = j + (1) >> 0; + } + s = $substring(s, n); + if (c$1 === 120) { + value = v; + break; + } + if (v > 1114111) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v; + multibyte = true; + } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + v$1 = ((c$1 >> 0)) - 48 >> 0; + if (s.length < 2) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j$1 = 0; + while (true) { + if (!(j$1 < 2)) { break; } + x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0; + if (x$1 < 0 || x$1 > 7) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v$1 = ((v$1 << 3 >> 0)) | x$1; + j$1 = j$1 + (1) >> 0; + } + s = $substring(s, 2); + if (v$1 > 255) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v$1; + } else if (_1 === (92)) { + value = 92; + } else if ((_1 === (39)) || (_1 === (34))) { + if (!((c$1 === quote))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = ((c$1 >> 0)); + } else { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + } + tail = s; + return [value, multibyte, tail, err]; + }; + $pkg.UnquoteChar = UnquoteChar; + Unquote = function(s) { + var _1, _q, _tuple, _tuple$1, buf, buf$1, c, err, i, multibyte, n, n$1, quote, r, runeTmp, s, size, ss; + n = s.length; + if (n < 2) { + return ["", $pkg.ErrSyntax]; + } + quote = s.charCodeAt(0); + if (!((quote === s.charCodeAt((n - 1 >> 0))))) { + return ["", $pkg.ErrSyntax]; + } + s = $substring(s, 1, (n - 1 >> 0)); + if (quote === 96) { + if (contains(s, 96)) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 13)) { + buf = $makeSlice(sliceType$6, 0, (s.length - 1 >> 0)); + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (!((s.charCodeAt(i) === 13))) { + buf = $append(buf, s.charCodeAt(i)); + } + i = i + (1) >> 0; + } + return [($bytesToString(buf)), $ifaceNil]; + } + return [s, $ifaceNil]; + } + if (!((quote === 34)) && !((quote === 39))) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 10)) { + return ["", $pkg.ErrSyntax]; + } + if (!contains(s, 92) && !contains(s, quote)) { + _1 = quote; + if (_1 === (34)) { + if (utf8.ValidString(s)) { + return [s, $ifaceNil]; + } + } else if (_1 === (39)) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + if ((size === s.length) && (!((r === 65533)) || !((size === 1)))) { + return [s, $ifaceNil]; + } + } + } + runeTmp = arrayType$4.zero(); + buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + while (true) { + if (!(s.length > 0)) { break; } + _tuple$1 = UnquoteChar(s, quote); + c = _tuple$1[0]; + multibyte = _tuple$1[1]; + ss = _tuple$1[2]; + err = _tuple$1[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return ["", err]; + } + s = ss; + if (c < 128 || !multibyte) { + buf$1 = $append(buf$1, ((c << 24 >>> 24))); + } else { + n$1 = utf8.EncodeRune(new sliceType$6(runeTmp), c); + buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(runeTmp), 0, n$1)); + } + if ((quote === 39) && !((s.length === 0))) { + return ["", $pkg.ErrSyntax]; + } + } + return [($bytesToString(buf$1)), $ifaceNil]; + }; + $pkg.Unquote = Unquote; + contains = function(s, c) { + var c, s; + return !((bytealg.IndexByteString(s, c) === -1)); + }; + bsearch16 = function(a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + bsearch32 = function(a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + IsPrint = function(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3; + if (r <= 255) { + if (32 <= r && r <= 126) { + return true; + } + if (161 <= r && r <= 255) { + return !((r === 173)); + } + return false; + } + if (0 <= r && r < 65536) { + _tmp = ((r << 16 >>> 16)); + _tmp$1 = isPrint16; + _tmp$2 = isNotPrint16; + rr = _tmp; + isPrint = _tmp$1; + isNotPrint = _tmp$2; + i = bsearch16(isPrint, rr); + if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) { + return false; + } + j = bsearch16(isNotPrint, rr); + return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr)); + } + _tmp$3 = ((r >>> 0)); + _tmp$4 = isPrint32; + _tmp$5 = isNotPrint32; + rr$1 = _tmp$3; + isPrint$1 = _tmp$4; + isNotPrint$1 = _tmp$5; + i$1 = bsearch32(isPrint$1, rr$1); + if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) { + return false; + } + if (r >= 131072) { + return true; + } + r = r - (65536) >> 0; + j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16))); + return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16)))); + }; + $pkg.IsPrint = IsPrint; + isInGraphicList = function(r) { + var i, r, rr; + if (r > 65535) { + return false; + } + rr = ((r << 16 >>> 16)); + i = bsearch16(isGraphic, rr); + return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i])); + }; + ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}]; + ptrType$4.methods = [{prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "AssignComputeBounds", name: "AssignComputeBounds", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, ptrType$1], [extFloat, extFloat], false)}, {prop: "Normalize", name: "Normalize", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([extFloat], [], false)}, {prop: "AssignDecimal", name: "AssignDecimal", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, $Bool, ptrType$1], [$Bool], false)}, {prop: "frexp10", name: "frexp10", pkg: "strconv", typ: $funcType([], [$Int, $Int], false)}, {prop: "FixedDecimal", name: "FixedDecimal", pkg: "", typ: $funcType([ptrType$3, $Int], [$Bool], false)}, {prop: "ShortestDecimal", name: "ShortestDecimal", pkg: "", typ: $funcType([ptrType$3, ptrType$4, ptrType$4], [$Bool], false)}]; + NumError.init("", [{prop: "Func", name: "Func", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Num", name: "Num", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + decimal.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trunc", name: "trunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + leftCheat.init("strconv", [{prop: "delta", name: "delta", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cutoff", name: "cutoff", embedded: false, exported: false, typ: $String, tag: ""}]); + extFloat.init("strconv", [{prop: "mant", name: "mant", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]); + floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]); + decimalSlice.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + optimize = true; + powtab = new sliceType([1, 3, 6, 9, 13, 16, 19, 23, 26]); + float64pow10 = new sliceType$1([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, 1e+21, 1e+22]); + float32pow10 = new sliceType$2([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10]); + $pkg.ErrRange = errors.New("value out of range"); + $pkg.ErrSyntax = errors.New("invalid syntax"); + leftcheats = new sliceType$3([new leftCheat.ptr(0, ""), new leftCheat.ptr(1, "5"), new leftCheat.ptr(1, "25"), new leftCheat.ptr(1, "125"), new leftCheat.ptr(2, "625"), new leftCheat.ptr(2, "3125"), new leftCheat.ptr(2, "15625"), new leftCheat.ptr(3, "78125"), new leftCheat.ptr(3, "390625"), new leftCheat.ptr(3, "1953125"), new leftCheat.ptr(4, "9765625"), new leftCheat.ptr(4, "48828125"), new leftCheat.ptr(4, "244140625"), new leftCheat.ptr(4, "1220703125"), new leftCheat.ptr(5, "6103515625"), new leftCheat.ptr(5, "30517578125"), new leftCheat.ptr(5, "152587890625"), new leftCheat.ptr(6, "762939453125"), new leftCheat.ptr(6, "3814697265625"), new leftCheat.ptr(6, "19073486328125"), new leftCheat.ptr(7, "95367431640625"), new leftCheat.ptr(7, "476837158203125"), new leftCheat.ptr(7, "2384185791015625"), new leftCheat.ptr(7, "11920928955078125"), new leftCheat.ptr(8, "59604644775390625"), new leftCheat.ptr(8, "298023223876953125"), new leftCheat.ptr(8, "1490116119384765625"), new leftCheat.ptr(9, "7450580596923828125"), new leftCheat.ptr(9, "37252902984619140625"), new leftCheat.ptr(9, "186264514923095703125"), new leftCheat.ptr(10, "931322574615478515625"), new leftCheat.ptr(10, "4656612873077392578125"), new leftCheat.ptr(10, "23283064365386962890625"), new leftCheat.ptr(10, "116415321826934814453125"), new leftCheat.ptr(11, "582076609134674072265625"), new leftCheat.ptr(11, "2910383045673370361328125"), new leftCheat.ptr(11, "14551915228366851806640625"), new leftCheat.ptr(12, "72759576141834259033203125"), new leftCheat.ptr(12, "363797880709171295166015625"), new leftCheat.ptr(12, "1818989403545856475830078125"), new leftCheat.ptr(13, "9094947017729282379150390625"), new leftCheat.ptr(13, "45474735088646411895751953125"), new leftCheat.ptr(13, "227373675443232059478759765625"), new leftCheat.ptr(13, "1136868377216160297393798828125"), new leftCheat.ptr(14, "5684341886080801486968994140625"), new leftCheat.ptr(14, "28421709430404007434844970703125"), new leftCheat.ptr(14, "142108547152020037174224853515625"), new leftCheat.ptr(15, "710542735760100185871124267578125"), new leftCheat.ptr(15, "3552713678800500929355621337890625"), new leftCheat.ptr(15, "17763568394002504646778106689453125"), new leftCheat.ptr(16, "88817841970012523233890533447265625"), new leftCheat.ptr(16, "444089209850062616169452667236328125"), new leftCheat.ptr(16, "2220446049250313080847263336181640625"), new leftCheat.ptr(16, "11102230246251565404236316680908203125"), new leftCheat.ptr(17, "55511151231257827021181583404541015625"), new leftCheat.ptr(17, "277555756156289135105907917022705078125"), new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), new leftCheat.ptr(19, "867361737988403547205962240695953369140625")]); + smallPowersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(2147483648, 0), -63, false), new extFloat.ptr(new $Uint64(2684354560, 0), -60, false), new extFloat.ptr(new $Uint64(3355443200, 0), -57, false), new extFloat.ptr(new $Uint64(4194304000, 0), -54, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3276800000, 0), -47, false), new extFloat.ptr(new $Uint64(4096000000, 0), -44, false), new extFloat.ptr(new $Uint64(2560000000, 0), -40, false)]); + powersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(4203730336, 136053384), -1220, false), new extFloat.ptr(new $Uint64(3132023167, 2722021238), -1193, false), new extFloat.ptr(new $Uint64(2333539104, 810921078), -1166, false), new extFloat.ptr(new $Uint64(3477244234, 1573795306), -1140, false), new extFloat.ptr(new $Uint64(2590748842, 1432697645), -1113, false), new extFloat.ptr(new $Uint64(3860516611, 1025131999), -1087, false), new extFloat.ptr(new $Uint64(2876309015, 3348809418), -1060, false), new extFloat.ptr(new $Uint64(4286034428, 3200048207), -1034, false), new extFloat.ptr(new $Uint64(3193344495, 1097586188), -1007, false), new extFloat.ptr(new $Uint64(2379227053, 2424306748), -980, false), new extFloat.ptr(new $Uint64(3545324584, 827693699), -954, false), new extFloat.ptr(new $Uint64(2641472655, 2913388981), -927, false), new extFloat.ptr(new $Uint64(3936100983, 602835915), -901, false), new extFloat.ptr(new $Uint64(2932623761, 1081627501), -874, false), new extFloat.ptr(new $Uint64(2184974969, 1572261463), -847, false), new extFloat.ptr(new $Uint64(3255866422, 1308317239), -821, false), new extFloat.ptr(new $Uint64(2425809519, 944281679), -794, false), new extFloat.ptr(new $Uint64(3614737867, 629291719), -768, false), new extFloat.ptr(new $Uint64(2693189581, 2545915892), -741, false), new extFloat.ptr(new $Uint64(4013165208, 388672741), -715, false), new extFloat.ptr(new $Uint64(2990041083, 708162190), -688, false), new extFloat.ptr(new $Uint64(2227754207, 3536207675), -661, false), new extFloat.ptr(new $Uint64(3319612455, 450088378), -635, false), new extFloat.ptr(new $Uint64(2473304014, 3139815830), -608, false), new extFloat.ptr(new $Uint64(3685510180, 2103616900), -582, false), new extFloat.ptr(new $Uint64(2745919064, 224385782), -555, false), new extFloat.ptr(new $Uint64(4091738259, 3737383206), -529, false), new extFloat.ptr(new $Uint64(3048582568, 2868871352), -502, false), new extFloat.ptr(new $Uint64(2271371013, 1820084875), -475, false), new extFloat.ptr(new $Uint64(3384606560, 885076051), -449, false), new extFloat.ptr(new $Uint64(2521728396, 2444895829), -422, false), new extFloat.ptr(new $Uint64(3757668132, 1881767613), -396, false), new extFloat.ptr(new $Uint64(2799680927, 3102062735), -369, false), new extFloat.ptr(new $Uint64(4171849679, 2289335700), -343, false), new extFloat.ptr(new $Uint64(3108270227, 2410191823), -316, false), new extFloat.ptr(new $Uint64(2315841784, 3205436779), -289, false), new extFloat.ptr(new $Uint64(3450873173, 1697722806), -263, false), new extFloat.ptr(new $Uint64(2571100870, 3497754540), -236, false), new extFloat.ptr(new $Uint64(3831238852, 707476230), -210, false), new extFloat.ptr(new $Uint64(2854495385, 1769181907), -183, false), new extFloat.ptr(new $Uint64(4253529586, 2197867022), -157, false), new extFloat.ptr(new $Uint64(3169126500, 2450594539), -130, false), new extFloat.ptr(new $Uint64(2361183241, 1867548876), -103, false), new extFloat.ptr(new $Uint64(3518437208, 3793315116), -77, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3906250000, 0), -24, false), new extFloat.ptr(new $Uint64(2910383045, 2892103680), 3, false), new extFloat.ptr(new $Uint64(2168404344, 4170451332), 30, false), new extFloat.ptr(new $Uint64(3231174267, 3372684723), 56, false), new extFloat.ptr(new $Uint64(2407412430, 2078956656), 83, false), new extFloat.ptr(new $Uint64(3587324068, 2884206696), 109, false), new extFloat.ptr(new $Uint64(2672764710, 395977285), 136, false), new extFloat.ptr(new $Uint64(3982729777, 3569679143), 162, false), new extFloat.ptr(new $Uint64(2967364920, 2361961896), 189, false), new extFloat.ptr(new $Uint64(2210859150, 447440347), 216, false), new extFloat.ptr(new $Uint64(3294436857, 1114709402), 242, false), new extFloat.ptr(new $Uint64(2454546732, 2786846552), 269, false), new extFloat.ptr(new $Uint64(3657559652, 443583978), 295, false), new extFloat.ptr(new $Uint64(2725094297, 2599384906), 322, false), new extFloat.ptr(new $Uint64(4060706939, 3028118405), 348, false), new extFloat.ptr(new $Uint64(3025462433, 2044532855), 375, false), new extFloat.ptr(new $Uint64(2254145170, 1536935362), 402, false), new extFloat.ptr(new $Uint64(3358938053, 3365297469), 428, false), new extFloat.ptr(new $Uint64(2502603868, 4204241075), 455, false), new extFloat.ptr(new $Uint64(3729170365, 2577424355), 481, false), new extFloat.ptr(new $Uint64(2778448436, 3677981733), 508, false), new extFloat.ptr(new $Uint64(4140210802, 2744688476), 534, false), new extFloat.ptr(new $Uint64(3084697427, 1424604878), 561, false), new extFloat.ptr(new $Uint64(2298278679, 4062331362), 588, false), new extFloat.ptr(new $Uint64(3424702107, 3546052773), 614, false), new extFloat.ptr(new $Uint64(2551601907, 2065781727), 641, false), new extFloat.ptr(new $Uint64(3802183132, 2535403578), 667, false), new extFloat.ptr(new $Uint64(2832847187, 1558426518), 694, false), new extFloat.ptr(new $Uint64(4221271257, 2762425404), 720, false), new extFloat.ptr(new $Uint64(3145092172, 2812560400), 747, false), new extFloat.ptr(new $Uint64(2343276271, 3057687578), 774, false), new extFloat.ptr(new $Uint64(3491753744, 2790753324), 800, false), new extFloat.ptr(new $Uint64(2601559269, 3918606633), 827, false), new extFloat.ptr(new $Uint64(3876625403, 2711358621), 853, false), new extFloat.ptr(new $Uint64(2888311001, 1648096297), 880, false), new extFloat.ptr(new $Uint64(2151959390, 2057817989), 907, false), new extFloat.ptr(new $Uint64(3206669376, 61660461), 933, false), new extFloat.ptr(new $Uint64(2389154863, 1581580175), 960, false), new extFloat.ptr(new $Uint64(3560118173, 2626467905), 986, false), new extFloat.ptr(new $Uint64(2652494738, 3034782633), 1013, false), new extFloat.ptr(new $Uint64(3952525166, 3135207385), 1039, false), new extFloat.ptr(new $Uint64(2944860731, 2616258155), 1066, false)]); + uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); + float32info = new floatInfo.ptr(23, 8, -127); + float64info = new floatInfo.ptr(52, 11, -1023); + isPrint16 = new sliceType$4([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1520, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2048, 2093, 2096, 2139, 2142, 2154, 2208, 2237, 2260, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2557, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2677, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3192, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3455, 3458, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3716, 3719, 3722, 3725, 3725, 3732, 3751, 3754, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6846, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7360, 7367, 7376, 7417, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11157, 11160, 11193, 11197, 11218, 11244, 11247, 11264, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11849, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12590, 12593, 12730, 12736, 12771, 12784, 19893, 19904, 40938, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42935, 42999, 43051, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43261, 43264, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43877, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); + isNotPrint16 = new sliceType$4([173, 907, 909, 930, 1328, 1376, 1416, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3076, 3085, 3089, 3113, 3141, 3145, 3159, 3204, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3332, 3341, 3345, 3397, 3401, 3460, 3506, 3516, 3541, 3543, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3770, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11209, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12687, 12831, 13055, 42927, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); + isPrint32 = new sliceType$5([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65947, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68147, 68152, 68154, 68159, 68167, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68863, 69216, 69246, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69955, 69968, 70006, 70016, 70093, 70096, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70457, 70460, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70749, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71351, 71360, 71369, 71424, 71449, 71453, 71467, 71472, 71487, 71840, 71922, 71935, 71935, 72192, 72263, 72272, 72323, 72326, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73728, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93952, 94020, 94032, 94078, 94095, 94111, 94176, 94177, 94208, 100332, 100352, 101106, 110592, 110878, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119552, 119638, 119648, 119665, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 124928, 125124, 125127, 125142, 125184, 125258, 125264, 125273, 125278, 125279, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127244, 127248, 127339, 127344, 127404, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128724, 128736, 128748, 128752, 128760, 128768, 128883, 128896, 128980, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129280, 129291, 129296, 129356, 129360, 129387, 129408, 129431, 129472, 129472, 129488, 129510, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999]); + isNotPrint32 = new sliceType$4([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 5210, 5212, 6813, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 61743, 63807]); + isGraphic = new sliceType$4([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/race"] = (function() { + var $pkg = {}, $init, Acquire, Release, ReleaseMerge, Disable, Enable, ReadRange, WriteRange; + Acquire = function(addr) { + var addr; + }; + $pkg.Acquire = Acquire; + Release = function(addr) { + var addr; + }; + $pkg.Release = Release; + ReleaseMerge = function(addr) { + var addr; + }; + $pkg.ReleaseMerge = ReleaseMerge; + Disable = function() { + }; + $pkg.Disable = Disable; + Enable = function() { + }; + $pkg.Enable = Enable; + ReadRange = function(addr, len) { + var addr, len; + }; + $pkg.ReadRange = ReadRange; + WriteRange = function(addr, len) { + var addr, len; + }; + $pkg.WriteRange = WriteRange; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync/atomic"] = (function() { + var $pkg = {}, $init, js, Value, ptrType, CompareAndSwapInt32, CompareAndSwapUint64, AddInt32, LoadInt32, LoadUint64, StoreInt32, StoreUint32; + js = $packages["github.com/gopherjs/gopherjs/js"]; + Value = $pkg.Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = $ifaceNil; + return; + } + this.v = v_; + }); + ptrType = $ptrType(Value); + CompareAndSwapInt32 = function(addr, old, new$1) { + var addr, new$1, old; + if (addr.$get() === old) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapInt32 = CompareAndSwapInt32; + CompareAndSwapUint64 = function(addr, old, new$1) { + var addr, new$1, old, x; + if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapUint64 = CompareAndSwapUint64; + AddInt32 = function(addr, delta) { + var addr, delta, new$1; + new$1 = addr.$get() + delta >> 0; + addr.$set(new$1); + return new$1; + }; + $pkg.AddInt32 = AddInt32; + LoadInt32 = function(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadInt32 = LoadInt32; + LoadUint64 = function(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadUint64 = LoadUint64; + StoreInt32 = function(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreInt32 = StoreInt32; + StoreUint32 = function(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreUint32 = StoreUint32; + Value.ptr.prototype.Load = function() { + var v, x; + x = $ifaceNil; + v = this; + x = v.v; + return x; + }; + Value.prototype.Load = function() { return this.$val.Load(); }; + Value.ptr.prototype.Store = function(x) { + var v, x; + v = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + $panic(new $String("sync/atomic: store of nil value into Value")); + } + if (!($interfaceIsEqual(v.v, $ifaceNil)) && !(x.constructor === v.v.constructor)) { + $panic(new $String("sync/atomic: store of inconsistently typed value into Value")); + } + v.v = x; + }; + Value.prototype.Store = function(x) { return this.$val.Store(x); }; + ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; + Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync"] = (function() { + var $pkg = {}, $init, js, race, runtime, atomic, Pool, Mutex, Locker, poolLocalInternal, poolLocal, notifyList, RWMutex, rlocker, ptrType, sliceType, ptrType$1, chanType, sliceType$1, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, funcType, ptrType$16, arrayType$2, semWaiters, semAwoken, expunged, allPools, runtime_registerPoolCleanup, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, poolCleanup, init, indexLocal, init$1, runtime_doSpin; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + Pool = $pkg.Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(local_, localSize_, store_, New_) { + this.$val = this; + if (arguments.length === 0) { + this.local = 0; + this.localSize = 0; + this.store = sliceType$4.nil; + this.New = $throwNilPointerError; + return; + } + this.local = local_; + this.localSize = localSize_; + this.store = store_; + this.New = New_; + }); + Mutex = $pkg.Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function(state_, sema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = 0; + this.sema = 0; + return; + } + this.state = state_; + this.sema = sema_; + }); + Locker = $pkg.Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null); + poolLocalInternal = $pkg.poolLocalInternal = $newType(0, $kindStruct, "sync.poolLocalInternal", true, "sync", false, function(private$0_, shared_, Mutex_) { + this.$val = this; + if (arguments.length === 0) { + this.private$0 = $ifaceNil; + this.shared = sliceType$4.nil; + this.Mutex = new Mutex.ptr(0, 0); + return; + } + this.private$0 = private$0_; + this.shared = shared_; + this.Mutex = Mutex_; + }); + poolLocal = $pkg.poolLocal = $newType(0, $kindStruct, "sync.poolLocal", true, "sync", false, function(poolLocalInternal_, pad_) { + this.$val = this; + if (arguments.length === 0) { + this.poolLocalInternal = new poolLocalInternal.ptr($ifaceNil, sliceType$4.nil, new Mutex.ptr(0, 0)); + this.pad = arrayType$2.zero(); + return; + } + this.poolLocalInternal = poolLocalInternal_; + this.pad = pad_; + }); + notifyList = $pkg.notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function(wait_, notify_, lock_, head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.wait = 0; + this.notify = 0; + this.lock = 0; + this.head = 0; + this.tail = 0; + return; + } + this.wait = wait_; + this.notify = notify_; + this.lock = lock_; + this.head = head_; + this.tail = tail_; + }); + RWMutex = $pkg.RWMutex = $newType(0, $kindStruct, "sync.RWMutex", true, "sync", true, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + rlocker = $pkg.rlocker = $newType(0, $kindStruct, "sync.rlocker", true, "sync", false, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + ptrType = $ptrType(Pool); + sliceType = $sliceType(ptrType); + ptrType$1 = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType$1 = $sliceType(chanType); + ptrType$6 = $ptrType($Int32); + ptrType$7 = $ptrType(poolLocal); + sliceType$4 = $sliceType($emptyInterface); + ptrType$8 = $ptrType(rlocker); + ptrType$9 = $ptrType(RWMutex); + funcType = $funcType([], [$emptyInterface], false); + ptrType$16 = $ptrType(Mutex); + arrayType$2 = $arrayType($Uint8, 100); + Pool.ptr.prototype.Get = function() { + var _r, p, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.store.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.store.$length === 0) { */ case 1: + /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(p.New === $throwNilPointerError)) { */ case 3: + _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 2: + x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); + $s = -1; return x$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Pool.ptr.prototype.Get }; } $f._r = _r; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Pool.prototype.Get = function() { return this.$val.Get(); }; + Pool.ptr.prototype.Put = function(x) { + var p, x; + p = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + return; + } + p.store = $append(p.store, x); + }; + Pool.prototype.Put = function(x) { return this.$val.Put(x); }; + runtime_registerPoolCleanup = function(cleanup) { + var cleanup; + }; + runtime_SemacquireMutex = function(s, lifo) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _r = $f._r; ch = $f.ch; lifo = $f.lifo; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: + ch = new $Chan($Bool, 0); + if (lifo) { + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = semWaiters[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }; + } else { + _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: $append((_entry$2 = semWaiters[ptrType$1.keyFor(s)], _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }; + } + _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r[0]; + _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$2)] = { k: _key$2, v: (_entry$3 = semAwoken[ptrType$1.keyFor(s)], _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }; + if ((_entry$4 = semAwoken[ptrType$1.keyFor(s)], _entry$4 !== undefined ? _entry$4.v : 0) === 0) { + delete semAwoken[ptrType$1.keyFor(s)]; + } + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_SemacquireMutex }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._r = _r; $f.ch = ch; $f.lifo = lifo; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_Semrelease = function(s, handoff) { + var _entry, _entry$1, _key, _key$1, ch, handoff, s, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _key = $f._key; _key$1 = $f._key$1; ch = $f.ch; handoff = $f.handoff; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : sliceType$1.nil); + if (w.$length === 0) { + $s = -1; return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType$1.keyFor(s)]; + } + _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = semAwoken[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }; + $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._key = _key; $f._key$1 = _key$1; $f.ch = ch; $f.handoff = handoff; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_notifyListCheck = function(size) { + var size; + }; + runtime_canSpin = function(i) { + var i; + return false; + }; + runtime_nanotime = function() { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + throw$1 = function(s) { + var s; + $throwRuntimeError($externalize(s, $String)); + }; + Mutex.ptr.prototype.Lock = function() { + var awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; awoke = $f.awoke; delta = $f.delta; iter = $f.iter; m = $f.m; new$1 = $f.new$1; old = $f.old; queueLifo = $f.queueLifo; starving = $f.starving; waitStartTime = $f.waitStartTime; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) { + if (false) { + race.Acquire((m)); + } + $s = -1; return; + } + waitStartTime = new $Int64(0, 0); + starving = false; + awoke = false; + iter = 0; + old = m.state; + /* while (true) { */ case 1: + /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: + if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) { + awoke = true; + } + runtime_doSpin(); + iter = iter + (1) >> 0; + old = m.state; + /* continue; */ $s = 1; continue; + /* } */ case 4: + new$1 = old; + if ((old & 4) === 0) { + new$1 = new$1 | (1); + } + if (!(((old & 5) === 0))) { + new$1 = new$1 + (8) >> 0; + } + if (starving && !(((old & 1) === 0))) { + new$1 = new$1 | (4); + } + if (awoke) { + if ((new$1 & 2) === 0) { + throw$1("sync: inconsistent mutex state"); + } + new$1 = (new$1 & ~(2)) >> 0; + } + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 5: + if ((old & 5) === 0) { + /* break; */ $s = 2; continue; + } + queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0)); + if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) { + waitStartTime = runtime_nanotime(); + } + $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + starving = starving || (x = (x$1 = runtime_nanotime(), new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); + old = m.state; + if (!(((old & 4) === 0))) { + if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) { + throw$1("sync: inconsistent mutex state"); + } + delta = -7; + if (!starving || ((old >> 3 >> 0) === 1)) { + delta = delta - (4) >> 0; + } + atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta); + /* break; */ $s = 2; continue; + } + awoke = true; + iter = 0; + $s = 7; continue; + /* } else { */ case 6: + old = m.state; + /* } */ case 7: + /* } */ $s = 1; continue; case 2: + if (false) { + race.Acquire((m)); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Lock }; } $f.awoke = awoke; $f.delta = delta; $f.iter = iter; $f.m = m; $f.new$1 = new$1; $f.old = old; $f.queueLifo = queueLifo; $f.starving = starving; $f.waitStartTime = waitStartTime; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Mutex.prototype.Lock = function() { return this.$val.Lock(); }; + Mutex.ptr.prototype.Unlock = function() { + var m, new$1, old, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; m = $f.m; new$1 = $f.new$1; old = $f.old; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + if (false) { + $unused(m.state); + race.Release((m)); + } + new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1); + if ((((new$1 + 1 >> 0)) & 1) === 0) { + throw$1("sync: unlock of unlocked mutex"); + } + /* */ if ((new$1 & 4) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((new$1 & 4) === 0) { */ case 1: + old = new$1; + /* while (true) { */ case 4: + if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) { + $s = -1; return; + } + new$1 = ((old - 8 >> 0)) | 2; + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + old = m.state; + /* } */ $s = 4; continue; case 5: + $s = 3; continue; + /* } else { */ case 2: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Unlock }; } $f.m = m; $f.new$1 = new$1; $f.old = old; $f.$s = $s; $f.$r = $r; return $f; + }; + Mutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + poolCleanup = function() { + var _i, _i$1, _ref, _ref$1, i, i$1, j, l, p, x; + _ref = allPools; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= allPools.$length) ? ($throwRuntimeError("index out of range"), undefined) : allPools.$array[allPools.$offset + i] = ptrType.nil); + i$1 = 0; + while (true) { + if (!(i$1 < ((p.localSize >> 0)))) { break; } + l = indexLocal(p.local, i$1); + l.poolLocalInternal.private$0 = $ifaceNil; + _ref$1 = l.poolLocalInternal.shared; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + j = _i$1; + (x = l.poolLocalInternal.shared, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j] = $ifaceNil)); + _i$1++; + } + l.poolLocalInternal.shared = sliceType$4.nil; + i$1 = i$1 + (1) >> 0; + } + p.local = 0; + p.localSize = 0; + _i++; + } + allPools = new sliceType([]); + }; + init = function() { + runtime_registerPoolCleanup(poolCleanup); + }; + indexLocal = function(l, i) { + var i, l, lp; + lp = (((l) + ($imul(((i >>> 0)), 128) >>> 0) >>> 0)); + return ($pointerOfStructConversion(lp, ptrType$7)); + }; + init$1 = function() { + var n; + n = new notifyList.ptr(0, 0, 0, 0, 0); + runtime_notifyListCheck(20); + }; + runtime_doSpin = function() { + $throwRuntimeError("native function not implemented: sync.runtime_doSpin"); + }; + RWMutex.ptr.prototype.RLock = function() { + var rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { */ case 1: + $r = runtime_SemacquireMutex((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RLock }; } $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.RLock = function() { return this.$val.RLock(); }; + RWMutex.ptr.prototype.RUnlock = function() { + var r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1); + /* */ if (r < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r < 0) { */ case 1: + if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) { + race.Enable(); + throw$1("sync: RUnlock of unlocked RWMutex"); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { */ case 3: + $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + /* } */ case 2: + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RUnlock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.RUnlock = function() { return this.$val.RUnlock(); }; + RWMutex.ptr.prototype.Lock = function() { + var r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + $r = rw.w.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1073741824) + 1073741824 >> 0; + /* */ if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { */ case 2: + $r = runtime_SemacquireMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Lock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.Lock = function() { return this.$val.Lock(); }; + RWMutex.ptr.prototype.Unlock = function() { + var i, r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; i = $f.i; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1073741824); + if (r >= 1073741824) { + race.Enable(); + throw$1("sync: Unlock of unlocked RWMutex"); + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 2; continue; } + $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $r = rw.w.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Unlock }; } $f.i = i; $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + RWMutex.ptr.prototype.RLocker = function() { + var rw; + rw = this; + return ($pointerOfStructConversion(rw, ptrType$8)); + }; + RWMutex.prototype.RLocker = function() { return this.$val.RLocker(); }; + rlocker.ptr.prototype.Lock = function() { + var r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Lock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + rlocker.prototype.Lock = function() { return this.$val.Lock(); }; + rlocker.ptr.prototype.Unlock = function() { + var r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Unlock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + rlocker.prototype.Unlock = function() { return this.$val.Unlock(); }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "getSlow", name: "getSlow", pkg: "sync", typ: $funcType([], [$emptyInterface], false)}, {prop: "pin", name: "pin", pkg: "sync", typ: $funcType([], [ptrType$7], false)}, {prop: "pinSlow", name: "pinSlow", pkg: "sync", typ: $funcType([], [ptrType$7], false)}]; + ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$9.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; + ptrType$8.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + Pool.init("sync", [{prop: "local", name: "local", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "localSize", name: "localSize", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType, tag: ""}]); + Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]); + poolLocalInternal.init("sync", [{prop: "private$0", name: "private", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "shared", name: "shared", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: Mutex, tag: ""}]); + poolLocal.init("sync", [{prop: "poolLocalInternal", name: "poolLocalInternal", embedded: true, exported: false, typ: poolLocalInternal, tag: ""}, {prop: "pad", name: "pad", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + notifyList.init("sync", [{prop: "wait", name: "wait", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "notify", name: "notify", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lock", name: "lock", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "head", name: "head", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); + RWMutex.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + rlocker.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + allPools = sliceType.nil; + semWaiters = {}; + semAwoken = {}; + expunged = (new Uint8Array(8)); + init(); + init$1(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["reflect"] = (function() { + var $pkg = {}, $init, errors, js, math, runtime, strconv, sync, unicode, utf8, uncommonType, funcType, name, nameData, mapIter, Type, Kind, tflag, rtype, typeAlg, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, Value, flag, ValueError, MapIter, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, funcType$1, sliceType$4, ptrType$3, ptrType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$5, ptrType$6, structType$3, sliceType$8, sliceType$9, ptrType$7, ptrType$8, sliceType$10, sliceType$11, ptrType$9, ptrType$10, sliceType$13, sliceType$14, ptrType$11, sliceType$15, ptrType$17, sliceType$18, funcType$3, funcType$4, funcType$5, ptrType$18, arrayType$8, ptrType$19, ptrType$20, initialized, uncommonTypeMap, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, kindNames, uint8Type, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapiterinit, mapiterkey, mapitervalue, mapiternext, maplen, cvtDirect, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, PtrTo, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, copyVal, overflowFloat32, New, convertOp, makeFloat, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + math = $packages["math"]; + runtime = $packages["runtime"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { + this.$val = this; + if (arguments.length === 0) { + this.pkgPath = 0; + this.mcount = 0; + this.xcount = 0; + this.moff = 0; + this._methods = sliceType$5.nil; + return; + } + this.pkgPath = pkgPath_; + this.mcount = mcount_; + this.xcount = xcount_; + this.moff = moff_; + this._methods = _methods_; + }); + funcType = $pkg.funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.inCount = 0; + this.outCount = 0; + this._in = sliceType$2.nil; + this._out = sliceType$2.nil; + return; + } + this.rtype = rtype_; + this.inCount = inCount_; + this.outCount = outCount_; + this._in = _in_; + this._out = _out_; + }); + name = $pkg.name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = ptrType$4.nil; + return; + } + this.bytes = bytes_; + }); + nameData = $pkg.nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.tag = ""; + this.exported = false; + return; + } + this.name = name_; + this.tag = tag_; + this.exported = exported_; + }); + mapIter = $pkg.mapIter = $newType(0, $kindStruct, "reflect.mapIter", true, "reflect", false, function(t_, m_, keys_, i_, last_) { + this.$val = this; + if (arguments.length === 0) { + this.t = $ifaceNil; + this.m = null; + this.keys = null; + this.i = 0; + this.last = null; + return; + } + this.t = t_; + this.m = m_; + this.keys = keys_; + this.i = i_; + this.last = last_; + }); + Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); + Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); + tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); + rtype = $pkg.rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, alg_, gcdata_, str_, ptrToThis_) { + this.$val = this; + if (arguments.length === 0) { + this.size = 0; + this.ptrdata = 0; + this.hash = 0; + this.tflag = 0; + this.align = 0; + this.fieldAlign = 0; + this.kind = 0; + this.alg = ptrType$3.nil; + this.gcdata = ptrType$4.nil; + this.str = 0; + this.ptrToThis = 0; + return; + } + this.size = size_; + this.ptrdata = ptrdata_; + this.hash = hash_; + this.tflag = tflag_; + this.align = align_; + this.fieldAlign = fieldAlign_; + this.kind = kind_; + this.alg = alg_; + this.gcdata = gcdata_; + this.str = str_; + this.ptrToThis = ptrToThis_; + }); + typeAlg = $pkg.typeAlg = $newType(0, $kindStruct, "reflect.typeAlg", true, "reflect", false, function(hash_, equal_) { + this.$val = this; + if (arguments.length === 0) { + this.hash = $throwNilPointerError; + this.equal = $throwNilPointerError; + return; + } + this.hash = hash_; + this.equal = equal_; + }); + method = $pkg.method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.mtyp = 0; + this.ifn = 0; + this.tfn = 0; + return; + } + this.name = name_; + this.mtyp = mtyp_; + this.ifn = ifn_; + this.tfn = tfn_; + }); + ChanDir = $pkg.ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); + arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.slice = ptrType$1.nil; + this.len = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.slice = slice_; + this.len = len_; + }); + chanType = $pkg.chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.dir = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.dir = dir_; + }); + imethod = $pkg.imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.typ = 0; + return; + } + this.name = name_; + this.typ = typ_; + }); + interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.methods = sliceType$6.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.methods = methods_; + }); + mapType = $pkg.mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, keysize_, valuesize_, bucketsize_, flags_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.key = ptrType$1.nil; + this.elem = ptrType$1.nil; + this.bucket = ptrType$1.nil; + this.keysize = 0; + this.valuesize = 0; + this.bucketsize = 0; + this.flags = 0; + return; + } + this.rtype = rtype_; + this.key = key_; + this.elem = elem_; + this.bucket = bucket_; + this.keysize = keysize_; + this.valuesize = valuesize_; + this.bucketsize = bucketsize_; + this.flags = flags_; + }); + ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + structField = $pkg.structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offsetEmbed_) { + this.$val = this; + if (arguments.length === 0) { + this.name = new name.ptr(ptrType$4.nil); + this.typ = ptrType$1.nil; + this.offsetEmbed = 0; + return; + } + this.name = name_; + this.typ = typ_; + this.offsetEmbed = offsetEmbed_; + }); + structType = $pkg.structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.fields = sliceType$7.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.fields = fields_; + }); + Method = $pkg.Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Func = new Value.ptr(ptrType$1.nil, 0, 0); + this.Index = 0; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Func = Func_; + this.Index = Index_; + }); + nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); + typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); + textOff = $pkg.textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); + StructField = $pkg.StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Tag = ""; + this.Offset = 0; + this.Index = sliceType$13.nil; + this.Anonymous = false; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Tag = Tag_; + this.Offset = Offset_; + this.Index = Index_; + this.Anonymous = Anonymous_; + }); + StructTag = $pkg.StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null); + fieldScan = $pkg.fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$11.nil; + this.index = sliceType$13.nil; + return; + } + this.typ = typ_; + this.index = index_; + }); + Value = $pkg.Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$1.nil; + this.ptr = 0; + this.flag = 0; + return; + } + this.typ = typ_; + this.ptr = ptr_; + this.flag = flag_; + }); + flag = $pkg.flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null); + ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function(Method_, Kind_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Kind = 0; + return; + } + this.Method = Method_; + this.Kind = Kind_; + }); + MapIter = $pkg.MapIter = $newType(0, $kindStruct, "reflect.MapIter", true, "reflect", true, function(m_, it_) { + this.$val = this; + if (arguments.length === 0) { + this.m = new Value.ptr(ptrType$1.nil, 0, 0); + this.it = 0; + return; + } + this.m = m_; + this.it = it_; + }); + sliceType$1 = $sliceType(name); + ptrType$1 = $ptrType(rtype); + sliceType$2 = $sliceType(ptrType$1); + sliceType$3 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(js.Object); + funcType$1 = $funcType([sliceType$3], [ptrType$2], true); + sliceType$4 = $sliceType($String); + ptrType$3 = $ptrType(typeAlg); + ptrType$4 = $ptrType($Uint8); + sliceType$5 = $sliceType(method); + sliceType$6 = $sliceType(imethod); + sliceType$7 = $sliceType(structField); + ptrType$5 = $ptrType(uncommonType); + ptrType$6 = $ptrType(nameData); + structType$3 = $structType("reflect", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + sliceType$8 = $sliceType(ptrType$2); + sliceType$9 = $sliceType(Value); + ptrType$7 = $ptrType(mapIter); + ptrType$8 = $ptrType(funcType); + sliceType$10 = $sliceType(Type); + sliceType$11 = $sliceType(sliceType$8); + ptrType$9 = $ptrType(interfaceType); + ptrType$10 = $ptrType(imethod); + sliceType$13 = $sliceType($Int); + sliceType$14 = $sliceType(fieldScan); + ptrType$11 = $ptrType(structType); + sliceType$15 = $sliceType($Uint8); + ptrType$17 = $ptrType($UnsafePointer); + sliceType$18 = $sliceType($Int32); + funcType$3 = $funcType([$String], [$Bool], false); + funcType$4 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); + funcType$5 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); + ptrType$18 = $ptrType(structField); + arrayType$8 = $arrayType($Uintptr, 2); + ptrType$19 = $ptrType(MapIter); + ptrType$20 = $ptrType(ValueError); + init = function() { + var used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; used = $f.used; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + used = (function(i) { + var i; + }); + $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$6.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$7.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$4.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + initialized = true; + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.used = used; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + jsType = function(typ) { + var typ; + return typ.jsType; + }; + reflectType = function(typ) { + var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, offsetEmbed, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; + if (typ.reflectType === undefined) { + rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), ptrType$3.nil, ptrType$4.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported)), name)), 0); + rt.jsType = typ; + typ.reflectType = rt; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + rt.tflag = (rt.tflag | (1)) >>> 0; + if (!!(typ.named)) { + rt.tflag = (rt.tflag | (4)) >>> 0; + } + reflectMethods = sliceType$5.nil; + i = 0; + while (true) { + if (!(i < $parseInt(methodSet.length))) { break; } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { + i = i + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported), name)), newTypeOff(reflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; + } + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { break; } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); + _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: ut }; + ut.jsType = typ; + } + _1 = rt.Kind(); + if (_1 === (17)) { + setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); + } else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$6, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$4 = _i$2; + m$2 = methods[i$4]; + imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === ""), name)), newTypeOff(reflectType(m$2.typ)))); + _i$2++; + } + setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false), name), imethods)); + } else if (_1 === (21)) { + setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, 0, 0, 0, 0)); + } else if (_1 === (22)) { + setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (23)) { + setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$7, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$5 = _i$3; + f = fields[i$5]; + offsetEmbed = ((i$5 >>> 0)) << 1 >>> 0; + if (!!(f.embedded)) { + offsetEmbed = (offsetEmbed | (1)) >>> 0; + } + structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported)), name), reflectType(f.typ), offsetEmbed)); + _i$3++; + } + setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false), name), reflectFields)); + } + } + return ((typ.reflectType)); + }; + setKindType = function(rt, kindType) { + var kindType, rt; + rt.kindType = kindType; + kindType.rtype = rt; + }; + uncommonType.ptr.prototype.methods = function() { + var t; + t = this; + return t._methods; + }; + uncommonType.prototype.methods = function() { return this.$val.methods(); }; + uncommonType.ptr.prototype.exportedMethods = function() { + var t; + t = this; + return $subslice(t._methods, 0, t.xcount, t.xcount); + }; + uncommonType.prototype.exportedMethods = function() { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.uncommon = function() { + var _entry, t; + t = this; + return (_entry = uncommonTypeMap[ptrType$1.keyFor(t)], _entry !== undefined ? _entry.v : ptrType$5.nil); + }; + rtype.prototype.uncommon = function() { return this.$val.uncommon(); }; + funcType.ptr.prototype.in$ = function() { + var t; + t = this; + return t._in; + }; + funcType.prototype.in$ = function() { return this.$val.in$(); }; + funcType.ptr.prototype.out = function() { + var t; + t = this; + return t._out; + }; + funcType.prototype.out = function() { return this.$val.out(); }; + name.ptr.prototype.name = function() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).name; + return s; + }; + name.prototype.name = function() { return this.$val.name(); }; + name.ptr.prototype.tag = function() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).tag; + return s; + }; + name.prototype.tag = function() { return this.$val.tag(); }; + name.ptr.prototype.pkgPath = function() { + var n; + n = this; + return ""; + }; + name.prototype.pkgPath = function() { return this.$val.pkgPath(); }; + name.ptr.prototype.isExported = function() { + var _entry, n; + n = this; + return (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).exported; + }; + name.prototype.isExported = function() { return this.$val.isExported(); }; + newName = function(n, tag, exported) { + var _key, b, exported, n, tag; + b = $newDataPointer(0, ptrType$4); + _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$4.keyFor(_key)] = { k: _key, v: new nameData.ptr(n, tag, exported) }; + return new name.ptr(b); + }; + rtype.ptr.prototype.nameOff = function(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); + }; + rtype.prototype.nameOff = function(off) { return this.$val.nameOff(off); }; + newNameOff = function(n) { + var i, n; + i = nameOffList.$length; + nameOffList = $append(nameOffList, n); + return ((i >> 0)); + }; + rtype.ptr.prototype.typeOff = function(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); + }; + rtype.prototype.typeOff = function(off) { return this.$val.typeOff(off); }; + newTypeOff = function(t) { + var i, t; + i = typeOffList.$length; + typeOffList = $append(typeOffList, t); + return ((i >> 0)); + }; + internalStr = function(strObj) { + var c, strObj; + c = new structType$3.ptr(""); + c.str = strObj; + return c.str; + }; + isWrapped = function(typ) { + var typ; + return !!(jsType(typ).wrapped); + }; + copyStruct = function(dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = jsType(typ).fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { break; } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + makeValue = function(t, v, fl) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _v = $f._v; _v$1 = $f._v$1; fl = $f.fl; rt = $f.rt; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rt = _r; + _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } + _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 25; case 5: + if (_v$1) { _v = true; $s = 4; continue s; } + _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 === 22; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); + /* } */ case 3: + _r$5 = t.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeValue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._v = _v; $f._v$1 = _v$1; $f.fl = fl; $f.rt = rt; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + MakeSlice = function(typ, len, cap) { + var _r, _r$1, cap, len, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; len = $f.len; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + typ = [typ]; + _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 23))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 23))) { */ case 1: + $panic(new $String("reflect.MakeSlice of non-slice type")); + /* } */ case 2: + if (len < 0) { + $panic(new $String("reflect.MakeSlice: negative len")); + } + if (cap < 0) { + $panic(new $String("reflect.MakeSlice: negative cap")); + } + if (len > cap) { + $panic(new $String("reflect.MakeSlice: len > cap")); + } + _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function $b() { + var _r$1, _r$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2.zero(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f.$s = $s; $f.$r = $r; return $f; + }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: MakeSlice }; } $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.len = len; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.MakeSlice = MakeSlice; + TypeOf = function(i) { + var i; + if (!initialized) { + return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + } + if ($interfaceIsEqual(i, $ifaceNil)) { + return $ifaceNil; + } + return reflectType(i.constructor); + }; + $pkg.TypeOf = TypeOf; + ValueOf = function(i) { + var _r, i, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(i, $ifaceNil)) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ValueOf }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ValueOf = ValueOf; + FuncOf = function(in$1, out, variadic) { + var _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; _v$1 = $f._v$1; i = $f.i; i$1 = $f.i$1; in$1 = $f.in$1; jsIn = $f.jsIn; jsOut = $f.jsOut; out = $f.out; v = $f.v; v$1 = $f.v$1; variadic = $f.variadic; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (!(variadic)) { _v = false; $s = 3; continue s; } + if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; } + _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = !((_r === 23)); case 4: + _v = _v$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); + /* } */ case 2: + jsIn = $makeSlice(sliceType$8, in$1.$length); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); + _i++; + } + jsOut = $makeSlice(sliceType$8, out.$length); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); + _i$1++; + } + $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); + /* */ } return; } if ($f === undefined) { $f = { $blk: FuncOf }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f._v$1 = _v$1; $f.i = i; $f.i$1 = i$1; $f.in$1 = in$1; $f.jsIn = jsIn; $f.jsOut = jsOut; $f.out = out; $f.v = v; $f.v$1 = v$1; $f.variadic = variadic; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.FuncOf = FuncOf; + rtype.ptr.prototype.ptrTo = function() { + var t; + t = this; + return reflectType($ptrType(jsType(t))); + }; + rtype.prototype.ptrTo = function() { return this.$val.ptrTo(); }; + SliceOf = function(t) { + var t; + return reflectType($sliceType(jsType(t))); + }; + $pkg.SliceOf = SliceOf; + Zero = function(typ) { + var _r, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Zero }; } $f._r = _r; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Zero = Zero; + unsafe_New = function(typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (jsType(typ).ptr)()); + } else if (_1 === (17)) { + return (jsType(typ).zero()); + } else { + return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); + } + }; + makeInt = function(f, bits, t) { + var _1, _r, bits, f, ptr, t, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; bits = $f.bits; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.Kind(); + if (_1 === (3)) { + (ptr).$set(((bits.$low << 24 >> 24))); + } else if (_1 === (4)) { + (ptr).$set(((bits.$low << 16 >> 16))); + } else if ((_1 === (2)) || (_1 === (5))) { + (ptr).$set(((bits.$low >> 0))); + } else if (_1 === (6)) { + (ptr).$set((new $Int64(bits.$high, bits.$low))); + } else if (_1 === (8)) { + (ptr).$set(((bits.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (ptr).$set(((bits.$low << 16 >>> 16))); + } else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) { + (ptr).$set(((bits.$low >>> 0))); + } else if (_1 === (11)) { + (ptr).$set((bits)); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeInt }; } $f._1 = _1; $f._r = _r; $f.bits = bits; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + typedmemmove = function(t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + keyFor = function(t, key) { + var k, key, kv, t; + kv = key; + if (!(kv.$get === undefined)) { + kv = kv.$get(); + } + k = $internalize(jsType(t.Key()).keyFor(kv), $String); + return [kv, k]; + }; + mapaccess = function(t, m, key) { + var _tuple, entry, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + entry = m[$externalize(k, $String)]; + if (entry === undefined) { + return 0; + } + return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + }; + mapassign = function(t, m, key, val) { + var _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; entry = $f.entry; et = $f.et; jsVal = $f.jsVal; k = $f.k; key = $f.key; kv = $f.kv; m = $f.m; newVal = $f.newVal; t = $f.t; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = keyFor(t, key); + kv = _tuple[0]; + k = _tuple[1]; + jsVal = val.$get(); + et = t.Elem(); + _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 25) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 25) { */ case 1: + newVal = jsType(et).zero(); + copyStruct(newVal, jsVal, et); + jsVal = newVal; + /* } */ case 2: + entry = new ($global.Object)(); + entry.k = kv; + entry.v = jsVal; + m[$externalize(k, $String)] = entry; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: mapassign }; } $f._r = _r; $f._tuple = _tuple; $f.entry = entry; $f.et = et; $f.jsVal = jsVal; $f.k = k; $f.key = key; $f.kv = kv; $f.m = m; $f.newVal = newVal; $f.t = t; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + mapdelete = function(t, m, key) { + var _tuple, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + delete m[$externalize(k, $String)]; + }; + mapIter.ptr.prototype.skipUntilValidKey = function() { + var iter, k; + iter = this; + while (true) { + if (!(iter.i < $parseInt(iter.keys.length))) { break; } + k = iter.keys[iter.i]; + if (!(iter.m[$externalize($internalize(k, $String), $String)] === undefined)) { + break; + } + iter.i = iter.i + (1) >> 0; + } + }; + mapIter.prototype.skipUntilValidKey = function() { return this.$val.skipUntilValidKey(); }; + mapiterinit = function(t, m) { + var m, t; + return (new mapIter.ptr(t, m, $keys(m), 0, null)); + }; + mapiterkey = function(it) { + var _r, _r$1, _r$2, it, iter, k, kv, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; iter = $f.iter; k = $f.k; kv = $f.kv; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + iter = ($pointerOfStructConversion(it, ptrType$7)); + kv = null; + if (!(iter.last === null)) { + kv = iter.last; + } else { + iter.skipUntilValidKey(); + if (iter.i === $parseInt(iter.keys.length)) { + $s = -1; return 0; + } + k = iter.keys[iter.i]; + kv = iter.m[$externalize($internalize(k, $String), $String)]; + iter.last = kv; + } + _r = iter.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return ($newDataPointer(kv.k, _r$2)); + /* */ } return; } if ($f === undefined) { $f = { $blk: mapiterkey }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.iter = iter; $f.k = k; $f.kv = kv; $f.$s = $s; $f.$r = $r; return $f; + }; + mapitervalue = function(it) { + var _r, _r$1, _r$2, it, iter, k, kv, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; iter = $f.iter; k = $f.k; kv = $f.kv; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + iter = ($pointerOfStructConversion(it, ptrType$7)); + kv = null; + if (!(iter.last === null)) { + kv = iter.last; + } else { + iter.skipUntilValidKey(); + if (iter.i === $parseInt(iter.keys.length)) { + $s = -1; return 0; + } + k = iter.keys[iter.i]; + kv = iter.m[$externalize($internalize(k, $String), $String)]; + iter.last = kv; + } + _r = iter.t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return ($newDataPointer(kv.v, _r$2)); + /* */ } return; } if ($f === undefined) { $f = { $blk: mapitervalue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.iter = iter; $f.k = k; $f.kv = kv; $f.$s = $s; $f.$r = $r; return $f; + }; + mapiternext = function(it) { + var it, iter; + iter = ($pointerOfStructConversion(it, ptrType$7)); + iter.last = null; + iter.i = iter.i + (1) >> 0; + }; + maplen = function(m) { + var m; + return $parseInt($keys(m).length); + }; + cvtDirect = function(v, typ) { + var _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; k = $f.k; slice = $f.slice; srcVal = $f.srcVal; typ = $f.typ; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + srcVal = $clone(v, Value).object(); + /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (srcVal === jsType(v.typ).nil) { */ case 1: + _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + val = null; + _r$1 = typ.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + k = _r$1; + _1 = k; + /* */ if (_1 === (23)) { $s = 6; continue; } + /* */ if (_1 === (22)) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_1 === (23)) { */ case 6: + slice = new (jsType(typ))(srcVal.$array); + slice.$offset = srcVal.$offset; + slice.$length = srcVal.$length; + slice.$capacity = srcVal.$capacity; + val = $newDataPointer(slice, jsType(PtrTo(typ))); + $s = 11; continue; + /* } else if (_1 === (22)) { */ case 7: + _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 25) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$3 === 25) { */ case 12: + _r$4 = typ.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 16: + val = srcVal; + /* break; */ $s = 4; continue; + /* } */ case 17: + val = new (jsType(typ))(); + _arg = val; + _arg$1 = srcVal; + _r$5 = typ.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = _r$5; + $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 4; continue; + /* } */ case 13: + val = new (jsType(typ))(srcVal.$get, srcVal.$set); + $s = 11; continue; + /* } else if (_1 === (25)) { */ case 8: + val = new (jsType(typ).ptr)(); + copyStruct(val, srcVal, typ); + $s = 11; continue; + /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { */ case 9: + val = v.ptr; + $s = 11; continue; + /* } else { */ case 10: + $panic(new ValueError.ptr("reflect.Convert", k)); + /* } */ case 11: + case 4: + _r$6 = typ.common(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = typ.Kind(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtDirect }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.k = k; $f.slice = slice; $f.srcVal = srcVal; $f.typ = typ; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + methodReceiver = function(op, v, i) { + var _$39, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; + _$39 = ptrType$1.nil; + t = ptrType$8.nil; + fn = 0; + prop = ""; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (i < 0 || i >= tt.methods.$length) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (tt.rtype.typeOff(m.typ).kindType); + prop = $clone(tt.rtype.nameOff(m.name), name).name(); + } else { + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (v.typ.typeOff(m$1.mtyp).kindType); + prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + } + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + fn = (rcvr[$externalize(prop, $String)]); + return [_$39, t, fn]; + }; + valueInterface = function(v, safe) { + var _r, safe, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; safe = $f.safe; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.Interface", 0)); + } + if (safe && !((((v.flag & 96) >>> 0) === 0))) { + $panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method")); + } + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + if (isWrapped(v.typ)) { + $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); + } + $s = -1; return (($clone(v, Value).object())); + /* */ } return; } if ($f === undefined) { $f = { $blk: valueInterface }; } $f._r = _r; $f.safe = safe; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + ifaceE2I = function(t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + methodName = function() { + return "?FIXME?"; + }; + makeMethodValue = function(op, v) { + var _r, _tuple, fn, fv, op, rcvr, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; fn = $f.fn; fv = $f.fv; op = $f.op; rcvr = $f.rcvr; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fn = [fn]; + rcvr = [rcvr]; + if (((v.flag & 512) >>> 0) === 0) { + $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); + } + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + fn[0] = _tuple[2]; + rcvr[0] = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr[0] = new (jsType(v.typ))(rcvr[0]); + } + fv = js.MakeFunc((function(fn, rcvr) { return function(this$1, arguments$1) { + var arguments$1, this$1; + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); + }; })(fn, rcvr)); + _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeMethodValue }; } $f._r = _r; $f._tuple = _tuple; $f.fn = fn; $f.fv = fv; $f.op = op; $f.rcvr = rcvr; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.ptr.prototype.pointers = function() { + var _1, t; + t = this; + _1 = t.Kind(); + if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { + return true; + } else { + return false; + } + }; + rtype.prototype.pointers = function() { return this.$val.pointers(); }; + rtype.ptr.prototype.Comparable = function() { + var _1, _r, _r$1, i, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; i = $f.i; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _1 = t.Kind(); + /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ if (_1 === (25)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: + $s = -1; return false; + /* } else if (_1 === (17)) { */ case 3: + _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (25)) { */ case 4: + i = 0; + /* while (true) { */ case 7: + /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 8; continue; } + _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$1) { */ case 9: + $s = -1; return false; + /* } */ case 10: + i = i + (1) >> 0; + /* } */ $s = 7; continue; case 8: + /* } */ case 5: + case 1: + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Comparable }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Comparable = function() { return this.$val.Comparable(); }; + rtype.ptr.prototype.Method = function(i) { + var _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; arg = $f.arg; fl = $f.fl; fn = $f.fn; ft = $f.ft; i = $f.i; in$1 = $f.in$1; m = $f.m; methods = $f.methods; mt = $f.mt; mtyp = $f.mtyp; out = $f.out; p = $f.p; pname = $f.pname; prop = $f.prop; ret = $f.ret; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + prop = [prop]; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + Method.copy(m, tt.Method(i)); + $s = -1; return m; + } + methods = t.exportedMethods(); + if (i < 0 || i >= methods.$length) { + $panic(new $String("reflect: Method index out of range")); + } + p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); + pname = $clone(t.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + fl = 19; + mtyp = t.typeOff(p.mtyp); + ft = (mtyp.kindType); + in$1 = $makeSlice(sliceType$10, 0, (1 + ft.in$().$length >> 0)); + in$1 = $append(in$1, t); + _ref = ft.in$(); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + in$1 = $append(in$1, arg); + _i++; + } + out = $makeSlice(sliceType$10, 0, ft.out().$length); + _ref$1 = ft.out(); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + out = $append(out, ret); + _i$1++; + } + _r = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + mt = _r; + m.Type = mt; + prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); + fn = js.MakeFunc((function(prop) { return function(this$1, arguments$1) { + var arguments$1, rcvr, this$1; + rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); + }; })(prop)); + m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl); + m.Index = i; + Method.copy(m, m); + $s = -1; return m; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Method }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.arg = arg; $f.fl = fl; $f.fn = fn; $f.ft = ft; $f.i = i; $f.in$1 = in$1; $f.m = m; $f.methods = methods; $f.mt = mt; $f.mtyp = mtyp; $f.out = out; $f.p = p; $f.pname = pname; $f.prop = prop; $f.ret = ret; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Method = function(i) { return this.$val.Method(i); }; + Value.ptr.prototype.object = function() { + var _1, newVal, v, val; + v = this; + if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + return v.ptr; + } + if (!((((v.flag & 128) >>> 0) === 0))) { + val = v.ptr.$get(); + if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + switch (0) { default: + _1 = v.typ.Kind(); + if ((_1 === (11)) || (_1 === (6))) { + val = new (jsType(v.typ))(val.$high, val.$low); + } else if ((_1 === (15)) || (_1 === (16))) { + val = new (jsType(v.typ))(val.$real, val.$imag); + } else if (_1 === (23)) { + if (val === val.constructor.nil) { + val = jsType(v.typ).nil; + break; + } + newVal = new (jsType(v.typ))(val.$array); + newVal.$offset = val.$offset; + newVal.$length = val.$length; + newVal.$capacity = val.$capacity; + val = newVal; + } + } + } + return val; + } + return v.ptr; + }; + Value.prototype.object = function() { return this.$val.object(); }; + Value.ptr.prototype.assignTo = function(context, dst, target) { + var _r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; context = $f.context; dst = $f.dst; fl = $f.fl; target = $f.target; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$1) { */ case 5: + fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; + fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(dst, v.ptr, fl); + /* } else if (implements$1(dst, v.typ)) { */ case 6: + if (target === 0) { + target = unsafe_New(dst); + } + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + if (dst.NumMethod() === 0) { + (target).$set(x); + } else { + ifaceE2I(dst, x, target); + } + $s = -1; return new Value.ptr(dst, target, 148); + /* } */ case 7: + case 4: + $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.assignTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.context = context; $f.dst = dst; $f.fl = fl; $f.target = target; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.assignTo = function(context, dst, target) { return this.$val.assignTo(context, dst, target); }; + Value.ptr.prototype.call = function(op, in$1) { + var _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; arg = $f.arg; argsArray = $f.argsArray; elem = $f.elem; fn = $f.fn; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; in$1 = $f.in$1; isSlice = $f.isSlice; m = $f.m; n = $f.n; nin = $f.nin; nout = $f.nout; op = $f.op; origIn = $f.origIn; rcvr = $f.rcvr; results = $f.results; ret = $f.ret; slice = $f.slice; t = $f.t; targ = $f.targ; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; xt = $f.xt; xt$1 = $f.xt$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + t = ptrType$8.nil; + fn = 0; + rcvr = null; + if (!((((v.flag & 512) >>> 0) === 0))) { + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + t = _tuple[1]; + fn = _tuple[2]; + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + } else { + t = (v.typ.kindType); + fn = ($clone(v, Value).object()); + rcvr = undefined; + } + if (fn === 0) { + $panic(new $String("reflect.Value.Call: call of nil function")); + } + isSlice = op === "CallSlice"; + n = t.rtype.NumIn(); + if (isSlice) { + if (!t.rtype.IsVariadic()) { + $panic(new $String("reflect: CallSlice of non-variadic function")); + } + if (in$1.$length < n) { + $panic(new $String("reflect: CallSlice with too few input arguments")); + } + if (in$1.$length > n) { + $panic(new $String("reflect: CallSlice with too many input arguments")); + } + } else { + if (t.rtype.IsVariadic()) { + n = n - (1) >> 0; + } + if (in$1.$length < n) { + $panic(new $String("reflect: Call with too few input arguments")); + } + if (!t.rtype.IsVariadic() && in$1.$length > n) { + $panic(new $String("reflect: Call with too many input arguments")); + } + } + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($clone(x, Value).Kind() === 0) { + $panic(new $String("reflect: " + op + " using zero Value argument")); + } + _i++; + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type(); + _tmp$1 = t.rtype.In(i); + xt = _tmp; + targ = _tmp$1; + _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); + /* } */ case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + /* */ if (!isSlice && t.rtype.IsVariadic()) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!isSlice && t.rtype.IsVariadic()) { */ case 8: + m = in$1.$length - n >> 0; + _r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + slice = _r$3; + _r$4 = t.rtype.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + elem = _r$4; + i$1 = 0; + /* while (true) { */ case 12: + /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; } + x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1])); + xt$1 = $clone(x$2, Value).Type(); + _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$5) { */ case 14: + _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); + /* } */ case 15: + _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 12; continue; case 13: + origIn = in$1; + in$1 = $makeSlice(sliceType$9, (n + 1 >> 0)); + $copySlice($subslice(in$1, 0, n), origIn); + ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice); + /* } */ case 9: + nin = in$1.$length; + if (!((nin === t.rtype.NumIn()))) { + $panic(new $String("reflect.Value.Call: wrong argument count")); + } + nout = t.rtype.NumOut(); + argsArray = new ($global.Array)(t.rtype.NumIn()); + _ref$1 = in$1; + _i$1 = 0; + /* while (true) { */ case 21: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + i$2 = _i$1; + arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _arg = t.rtype.In(i$2); + _r$9 = t.rtype.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$1 = _r$9; + _arg$2 = 0; + _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$3 = _r$11; + _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + argsArray[i$2] = _r$12; + _i$1++; + /* } */ $s = 21; continue; case 22: + _r$13 = callHelper(new sliceType$3([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + results = _r$13; + _1 = nout; + /* */ if (_1 === (0)) { $s = 29; continue; } + /* */ if (_1 === (1)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (_1 === (0)) { */ case 29: + $s = -1; return sliceType$9.nil; + /* } else if (_1 === (1)) { */ case 30: + _r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $s = -1; return new sliceType$9([$clone(_r$14, Value)]); + /* } else { */ case 31: + ret = $makeSlice(sliceType$9, nout); + _ref$2 = ret; + _i$2 = 0; + /* while (true) { */ case 34: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 35; continue; } + i$3 = _i$2; + _r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); + _i$2++; + /* } */ $s = 34; continue; case 35: + $s = -1; return ret; + /* } */ case 32: + case 28: + $s = -1; return sliceType$9.nil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.call }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.arg = arg; $f.argsArray = argsArray; $f.elem = elem; $f.fn = fn; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.in$1 = in$1; $f.isSlice = isSlice; $f.m = m; $f.n = n; $f.nin = nin; $f.nout = nout; $f.op = op; $f.origIn = origIn; $f.rcvr = rcvr; $f.results = results; $f.ret = ret; $f.slice = slice; $f.t = t; $f.targ = targ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.xt = xt; $f.xt$1 = xt$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.call = function(op, in$1) { return this.$val.call(op, in$1); }; + Value.ptr.prototype.Cap = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (17)) { + return v.typ.Len(); + } else if ((_1 === (18)) || (_1 === (23))) { + return $parseInt($clone(v, Value).object().$capacity) >> 0; + } + $panic(new ValueError.ptr("reflect.Value.Cap", k)); + }; + Value.prototype.Cap = function() { return this.$val.Cap(); }; + wrapJsObject = function(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return new (jsType(jsObjectPtr))(val); + } + return val; + }; + unwrapJsObject = function(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return val.object; + } + return val; + }; + Value.ptr.prototype.Elem = function() { + var _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; fl = $f.fl; k = $f.k; tt = $f.tt; typ = $f.typ; v = $f.v; val = $f.val; val$1 = $f.val$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (20)) { $s = 2; continue; } + /* */ if (_1 === (22)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (20)) { */ case 2: + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = reflectType(val.constructor); + _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (22)) { */ case 3: + if ($clone(v, Value).IsNil()) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (v.typ.kindType); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + /* } */ case 5: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Elem }; } $f._1 = _1; $f._r = _r; $f.fl = fl; $f.k = k; $f.tt = tt; $f.typ = typ; $f.v = v; $f.val = val; $f.val$1 = val$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Elem = function() { return this.$val.Elem(); }; + Value.ptr.prototype.Field = function(i) { + var _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; field = $f.field; fl = $f.fl; i = $f.i; jsTag = $f.jsTag; o = $f.o; prop = $f.prop; s = $f.s; tag = $f.tag; tt = $f.tt; typ = $f.typ; v = $f.v; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + jsTag = [jsTag]; + prop = [prop]; + s = [s]; + typ = [typ]; + v = this; + if (!((new flag(v.flag).kind() === 25))) { + $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); + } + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + $panic(new $String("reflect: Field index out of range")); + } + prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); + field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + typ[0] = field.typ; + fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + if (!$clone(field.name, name).isExported()) { + if (field.embedded()) { + fl = (fl | (64)) >>> 0; + } else { + fl = (fl | (32)) >>> 0; + } + } + tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); + /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tag === "") && !((i === 0))) { */ case 1: + jsTag[0] = getJsTag(tag); + /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(jsTag[0] === "")) { */ case 3: + /* while (true) { */ case 5: + o = [o]; + _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (v.typ === jsObjectPtr) { */ case 8: + o[0] = $clone(v, Value).object().object; + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function() { + return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); + }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function(x$2) { + var x$2; + o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); + }; })(jsTag, o, prop, s, typ))), fl); + /* } */ case 9: + /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (v.typ.Kind() === 22) { */ case 10: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v = _r$1; + /* } */ case 11: + /* } */ $s = 5; continue; case 6: + /* } */ case 4: + /* } */ case 2: + s[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function() { + return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); + }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function(x$2) { + var x$2; + s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); + }; })(jsTag, prop, s, typ))), fl); + /* } */ case 14: + _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Field }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.field = field; $f.fl = fl; $f.i = i; $f.jsTag = jsTag; $f.o = o; $f.prop = prop; $f.s = s; $f.tag = tag; $f.tt = tt; $f.typ = typ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Field = function(i) { return this.$val.Field(i); }; + getJsTag = function(tag) { + var _tuple, i, name$1, qvalue, tag, value; + while (true) { + if (!(!(tag === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; } + i = i + (1) >> 0; + } + if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (name$1 === "js") { + _tuple = strconv.Unquote(qvalue); + value = _tuple[0]; + return value; + } + } + return ""; + }; + Value.ptr.prototype.Index = function(i) { + var _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; a = $f.a; a$1 = $f.a$1; c = $f.c; fl = $f.fl; fl$1 = $f.fl$1; fl$2 = $f.fl$2; i = $f.i; k = $f.k; s = $f.s; str = $f.str; tt = $f.tt; tt$1 = $f.tt$1; typ = $f.typ; typ$1 = $f.typ$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = [a]; + a$1 = [a$1]; + c = [c]; + i = [i]; + typ = [typ]; + typ$1 = [typ$1]; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + tt = (v.typ.kindType); + if (i[0] < 0 || i[0] > ((tt.len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ[0] = tt.elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + a[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { + return wrapJsObject(typ[0], a[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { + var x; + a[0][i[0]] = unwrapJsObject(typ[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl); + /* } */ case 8: + _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (23)) { */ case 3: + s = $clone(v, Value).object(); + if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (v.typ.kindType); + typ$1[0] = tt$1.elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; + i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; + a$1[0] = s.$array; + /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 10: + $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { + return wrapJsObject(typ$1[0], a$1[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { + var x; + a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl$1); + /* } */ case 11: + _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i[0] < 0 || i[0] >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c[0] = str.charCodeAt(i[0]); + $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Index", k)); + /* } */ case 6: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Index }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.a$1 = a$1; $f.c = c; $f.fl = fl; $f.fl$1 = fl$1; $f.fl$2 = fl$2; $f.i = i; $f.k = k; $f.s = s; $f.str = str; $f.tt = tt; $f.tt$1 = tt$1; $f.typ = typ; $f.typ$1 = typ$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Index = function(i) { return this.$val.Index(i); }; + Value.ptr.prototype.InterfaceData = function() { + var v; + v = this; + $panic(errors.New("InterfaceData is not supported by GopherJS")); + }; + Value.prototype.InterfaceData = function() { return this.$val.InterfaceData(); }; + Value.ptr.prototype.IsNil = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (22)) || (_1 === (23))) { + return $clone(v, Value).object() === jsType(v.typ).nil; + } else if (_1 === (18)) { + return $clone(v, Value).object() === $chanNil; + } else if (_1 === (19)) { + return $clone(v, Value).object() === $throwNilPointerError; + } else if (_1 === (21)) { + return $clone(v, Value).object() === false; + } else if (_1 === (20)) { + return $clone(v, Value).object() === $ifaceNil; + } else if (_1 === (26)) { + return $clone(v, Value).object() === 0; + } else { + $panic(new ValueError.ptr("reflect.Value.IsNil", k)); + } + }; + Value.prototype.IsNil = function() { return this.$val.IsNil(); }; + Value.ptr.prototype.Len = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (17)) || (_1 === (24))) { + return $parseInt($clone(v, Value).object().length); + } else if (_1 === (23)) { + return $parseInt($clone(v, Value).object().$length) >> 0; + } else if (_1 === (18)) { + return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + } else if (_1 === (21)) { + return $parseInt($keys($clone(v, Value).object()).length); + } else { + $panic(new ValueError.ptr("reflect.Value.Len", k)); + } + }; + Value.prototype.Len = function() { return this.$val.Len(); }; + Value.ptr.prototype.Pointer = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object(); + } else if (_1 === (19)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return 1; + } else if (_1 === (23)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object().$array; + } else { + $panic(new ValueError.ptr("reflect.Value.Pointer", k)); + } + }; + Value.prototype.Pointer = function() { return this.$val.Pointer(); }; + Value.ptr.prototype.Set = function(x) { + var _1, _r, _r$1, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: + _1 = v.typ.Kind(); + /* */ if (_1 === (17)) { $s = 5; continue; } + /* */ if (_1 === (20)) { $s = 6; continue; } + /* */ if (_1 === (25)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (17)) { */ case 5: + jsType(v.typ).copy(v.ptr, x.ptr); + $s = 9; continue; + /* } else if (_1 === (20)) { */ case 6: + _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v.ptr.$set(_r$1); + $s = 9; continue; + /* } else if (_1 === (25)) { */ case 7: + copyStruct(v.ptr, x.ptr, v.typ); + $s = 9; continue; + /* } else { */ case 8: + v.ptr.$set($clone(x, Value).object()); + /* } */ case 9: + case 4: + $s = -1; return; + /* } */ case 3: + v.ptr = x.ptr; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Set }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Set = function(x) { return this.$val.Set(x); }; + Value.ptr.prototype.SetBytes = function(x) { + var _r, _r$1, _v, slice, typedSlice, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; slice = $f.slice; typedSlice = $f.typedSlice; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.SetBytes of non-byte slice")); + /* } */ case 2: + slice = x; + if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } + _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !(_r$1 === ""); case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + typedSlice = new (jsType(v.typ))(slice.$array); + typedSlice.$offset = slice.$offset; + typedSlice.$length = slice.$length; + typedSlice.$capacity = slice.$capacity; + slice = typedSlice; + /* } */ case 5: + v.ptr.$set(slice); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetBytes }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.slice = slice; $f.typedSlice = typedSlice; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.SetBytes = function(x) { return this.$val.SetBytes(x); }; + Value.ptr.prototype.SetCap = function(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice capacity out of range in SetCap")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = s.$length; + newSlice.$capacity = n; + v.ptr.$set(newSlice); + }; + Value.prototype.SetCap = function(n) { return this.$val.SetCap(n); }; + Value.ptr.prototype.SetLen = function(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice length out of range in SetLen")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = n; + newSlice.$capacity = s.$capacity; + v.ptr.$set(newSlice); + }; + Value.prototype.SetLen = function(n) { return this.$val.SetLen(n); }; + Value.ptr.prototype.Slice = function(i, j) { + var _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; i = $f.i; j = $f.j; kind = $f.kind; s = $f.s; str = $f.str; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + $s = 6; continue; + /* } else if (_1 === (23)) { */ case 3: + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 6; continue; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i < 0 || j < i || j > str.length) { + $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); + } + _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Slice", kind)); + /* } */ case 6: + case 1: + if (i < 0 || j < i || j > cap) { + $panic(new $String("reflect.Value.Slice: slice index out of bounds")); + } + _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.i = i; $f.j = j; $f.kind = kind; $f.s = s; $f.str = str; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Slice = function(i, j) { return this.$val.Slice(i, j); }; + Value.ptr.prototype.Slice3 = function(i, j, k) { + var _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; cap = $f.cap; i = $f.i; j = $f.j; k = $f.k; kind = $f.kind; s = $f.s; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + if (_1 === (17)) { + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + } else if (_1 === (23)) { + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + } else { + $panic(new ValueError.ptr("reflect.Value.Slice3", kind)); + } + if (i < 0 || j < i || k < j || k > cap) { + $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + } + _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice3 }; } $f._1 = _1; $f._r = _r; $f.cap = cap; $f.i = i; $f.j = j; $f.k = k; $f.kind = kind; $f.s = s; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Slice3 = function(i, j, k) { return this.$val.Slice3(i, j, k); }; + Value.ptr.prototype.Close = function() { + var v; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + $close($clone(v, Value).object()); + }; + Value.prototype.Close = function() { return this.$val.Close(); }; + chanrecv = function(ch, nb, val) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; ch = $f.ch; comms = $f.comms; nb = $f.nb; received = $f.received; recvRes = $f.recvRes; selectRes = $f.selectRes; selected = $f.selected; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + selected = false; + received = false; + comms = new sliceType$11([new sliceType$8([ch])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + _tmp = false; + _tmp$1 = false; + selected = _tmp; + received = _tmp$1; + $s = -1; return [selected, received]; + } + recvRes = selectRes[1]; + val.$set(recvRes[0]); + _tmp$2 = true; + _tmp$3 = !!(recvRes[1]); + selected = _tmp$2; + received = _tmp$3; + $s = -1; return [selected, received]; + /* */ } return; } if ($f === undefined) { $f = { $blk: chanrecv }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.received = received; $f.recvRes = recvRes; $f.selectRes = selectRes; $f.selected = selected; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + chansend = function(ch, val, nb) { + var _r, ch, comms, nb, selectRes, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ch = $f.ch; comms = $f.comms; nb = $f.nb; selectRes = $f.selectRes; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + comms = new sliceType$11([new sliceType$8([ch, val.$get()])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + $s = -1; return false; + } + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: chansend }; } $f._r = _r; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.selectRes = selectRes; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + structField.ptr.prototype.offset = function() { + var f; + f = this; + return f.offsetEmbed >>> 1 >>> 0; + }; + structField.prototype.offset = function() { return this.$val.offset(); }; + structField.ptr.prototype.embedded = function() { + var f; + f = this; + return !((((f.offsetEmbed & 1) >>> 0) === 0)); + }; + structField.prototype.embedded = function() { return this.$val.embedded(); }; + Kind.prototype.String = function() { + var k; + k = this.$val; + if (((k >> 0)) < kindNames.$length) { + return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); + } + return "kind" + strconv.Itoa(((k >> 0))); + }; + $ptrType(Kind).prototype.String = function() { return new Kind(this.$get()).String(); }; + rtype.ptr.prototype.String = function() { + var s, t; + t = this; + s = $clone(t.nameOff(t.str), name).name(); + if (!((((t.tflag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + rtype.prototype.String = function() { return this.$val.String(); }; + rtype.ptr.prototype.Size = function() { + var t; + t = this; + return t.size; + }; + rtype.prototype.Size = function() { return this.$val.Size(); }; + rtype.ptr.prototype.Bits = function() { + var k, t; + t = this; + if (t === ptrType$1.nil) { + $panic(new $String("reflect: Bits of nil Type")); + } + k = t.Kind(); + if (k < 2 || k > 16) { + $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); + } + return $imul(((t.size >> 0)), 8); + }; + rtype.prototype.Bits = function() { return this.$val.Bits(); }; + rtype.ptr.prototype.Align = function() { + var t; + t = this; + return ((t.align >> 0)); + }; + rtype.prototype.Align = function() { return this.$val.Align(); }; + rtype.ptr.prototype.FieldAlign = function() { + var t; + t = this; + return ((t.fieldAlign >> 0)); + }; + rtype.prototype.FieldAlign = function() { return this.$val.FieldAlign(); }; + rtype.ptr.prototype.Kind = function() { + var t; + t = this; + return ((((t.kind & 31) >>> 0) >>> 0)); + }; + rtype.prototype.Kind = function() { return this.$val.Kind(); }; + rtype.ptr.prototype.common = function() { + var t; + t = this; + return t; + }; + rtype.prototype.common = function() { return this.$val.common(); }; + rtype.ptr.prototype.exportedMethods = function() { + var t, ut; + t = this; + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return sliceType$5.nil; + } + return ut.exportedMethods(); + }; + rtype.prototype.exportedMethods = function() { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.NumMethod = function() { + var t, tt; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); + } + return t.exportedMethods().$length; + }; + rtype.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + rtype.ptr.prototype.MethodByName = function(name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; i = $f.i; m = $f.m; name$1 = $f.name$1; ok = $f.ok; p = $f.p; t = $f.t; tt = $f.tt; ut = $f.ut; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + _tuple = tt.MethodByName(name$1); + Method.copy(m, _tuple[0]); + ok = _tuple[1]; + $s = -1; return [m, ok]; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$1 = false; + Method.copy(m, _tmp); + ok = _tmp$1; + $s = -1; return [m, ok]; + } + _ref = ut.exportedMethods(); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method); + /* */ if ($clone(t.nameOff(p.name), name).name() === name$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($clone(t.nameOff(p.name), name).name() === name$1) { */ case 3: + _r = t.Method(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$2 = $clone(_r, Method); + _tmp$3 = true; + Method.copy(m, _tmp$2); + ok = _tmp$3; + $s = -1; return [m, ok]; + /* } */ case 4: + _i++; + /* } */ $s = 1; continue; case 2: + _tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$5 = false; + Method.copy(m, _tmp$4); + ok = _tmp$5; + $s = -1; return [m, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.MethodByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.i = i; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.p = p; $f.t = t; $f.tt = tt; $f.ut = ut; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + rtype.ptr.prototype.PkgPath = function() { + var t, ut; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return ""; + } + return $clone(t.nameOff(ut.pkgPath), name).name(); + }; + rtype.prototype.PkgPath = function() { return this.$val.PkgPath(); }; + rtype.ptr.prototype.Name = function() { + var i, s, t; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + s = t.String(); + i = s.length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (s.charCodeAt(i) === 46) { + break; + } + i = i - (1) >> 0; + } + return $substring(s, (i + 1 >> 0)); + }; + rtype.prototype.Name = function() { return this.$val.Name(); }; + rtype.ptr.prototype.ChanDir = function() { + var t, tt; + t = this; + if (!((t.Kind() === 18))) { + $panic(new $String("reflect: ChanDir of non-chan type")); + } + tt = (t.kindType); + return ((tt.dir >> 0)); + }; + rtype.prototype.ChanDir = function() { return this.$val.ChanDir(); }; + rtype.ptr.prototype.IsVariadic = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type")); + } + tt = (t.kindType); + return !((((tt.outCount & 32768) >>> 0) === 0)); + }; + rtype.prototype.IsVariadic = function() { return this.$val.IsVariadic(); }; + rtype.ptr.prototype.Elem = function() { + var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + t = this; + _1 = t.Kind(); + if (_1 === (17)) { + tt = (t.kindType); + return toType(tt.elem); + } else if (_1 === (18)) { + tt$1 = (t.kindType); + return toType(tt$1.elem); + } else if (_1 === (21)) { + tt$2 = (t.kindType); + return toType(tt$2.elem); + } else if (_1 === (22)) { + tt$3 = (t.kindType); + return toType(tt$3.elem); + } else if (_1 === (23)) { + tt$4 = (t.kindType); + return toType(tt$4.elem); + } + $panic(new $String("reflect: Elem of invalid type")); + }; + rtype.prototype.Elem = function() { return this.$val.Elem(); }; + rtype.ptr.prototype.Field = function(i) { + var i, t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: Field of non-struct type")); + } + tt = (t.kindType); + return tt.Field(i); + }; + rtype.prototype.Field = function(i) { return this.$val.Field(i); }; + rtype.ptr.prototype.FieldByIndex = function(index) { + var _r, index, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; index = $f.index; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByIndex of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByIndex }; } $f._r = _r; $f.index = index; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + rtype.ptr.prototype.FieldByName = function(name$1) { + var _r, name$1, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name$1 = $f.name$1; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByName of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByName }; } $f._r = _r; $f.name$1 = name$1; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + rtype.ptr.prototype.FieldByNameFunc = function(match) { + var _r, match, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; match = $f.match; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByNameFunc of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f.match = match; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + rtype.ptr.prototype.In = function(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.In = function(i) { return this.$val.In(i); }; + rtype.ptr.prototype.Key = function() { + var t, tt; + t = this; + if (!((t.Kind() === 21))) { + $panic(new $String("reflect: Key of non-map type")); + } + tt = (t.kindType); + return toType(tt.key); + }; + rtype.prototype.Key = function() { return this.$val.Key(); }; + rtype.ptr.prototype.Len = function() { + var t, tt; + t = this; + if (!((t.Kind() === 17))) { + $panic(new $String("reflect: Len of non-array type")); + } + tt = (t.kindType); + return ((tt.len >> 0)); + }; + rtype.prototype.Len = function() { return this.$val.Len(); }; + rtype.ptr.prototype.NumField = function() { + var t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: NumField of non-struct type")); + } + tt = (t.kindType); + return tt.fields.$length; + }; + rtype.prototype.NumField = function() { return this.$val.NumField(); }; + rtype.ptr.prototype.NumIn = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumIn of non-func type")); + } + tt = (t.kindType); + return ((tt.inCount >> 0)); + }; + rtype.prototype.NumIn = function() { return this.$val.NumIn(); }; + rtype.ptr.prototype.NumOut = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumOut of non-func type")); + } + tt = (t.kindType); + return tt.out().$length; + }; + rtype.prototype.NumOut = function() { return this.$val.NumOut(); }; + rtype.ptr.prototype.Out = function(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: Out of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.Out = function(i) { return this.$val.Out(i); }; + ChanDir.prototype.String = function() { + var _1, d; + d = this.$val; + _1 = d; + if (_1 === (2)) { + return "chan<-"; + } else if (_1 === (1)) { + return "<-chan"; + } else if (_1 === (3)) { + return "chan"; + } + return "ChanDir" + strconv.Itoa(((d >> 0))); + }; + $ptrType(ChanDir).prototype.String = function() { return new ChanDir(this.$get()).String(); }; + interfaceType.ptr.prototype.Method = function(i) { + var i, m, p, pname, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (i < 0 || i >= t.methods.$length) { + return m; + } + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + pname = $clone(t.rtype.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + if (!$clone(pname, name).isExported()) { + m.PkgPath = $clone(pname, name).pkgPath(); + if (m.PkgPath === "") { + m.PkgPath = $clone(t.pkgPath, name).name(); + } + } + m.Type = toType(t.rtype.typeOff(p.typ)); + m.Index = i; + return m; + }; + interfaceType.prototype.Method = function(i) { return this.$val.Method(i); }; + interfaceType.ptr.prototype.NumMethod = function() { + var t; + t = this; + return t.methods.$length; + }; + interfaceType.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + interfaceType.ptr.prototype.MethodByName = function(name$1) { + var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t === ptrType$9.nil) { + return [m, ok]; + } + p = ptrType$10.nil; + _ref = t.methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { + _tmp = $clone(t.Method(i), Method); + _tmp$1 = true; + Method.copy(m, _tmp); + ok = _tmp$1; + return [m, ok]; + } + _i++; + } + return [m, ok]; + }; + interfaceType.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + StructTag.prototype.Get = function(key) { + var _tuple, key, tag, v; + tag = this.$val; + _tuple = new StructTag(tag).Lookup(key); + v = _tuple[0]; + return v; + }; + $ptrType(StructTag).prototype.Get = function(key) { return new StructTag(this.$get()).Get(key); }; + StructTag.prototype.Lookup = function(key) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; + value = ""; + ok = false; + tag = this.$val; + while (true) { + if (!(!(tag === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { break; } + i = i + (1) >> 0; + } + if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (key === name$1) { + _tuple = strconv.Unquote(qvalue); + value$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + break; + } + _tmp = value$1; + _tmp$1 = true; + value = _tmp; + ok = _tmp$1; + return [value, ok]; + } + } + _tmp$2 = ""; + _tmp$3 = false; + value = _tmp$2; + ok = _tmp$3; + return [value, ok]; + }; + $ptrType(StructTag).prototype.Lookup = function(key) { return new StructTag(this.$get()).Lookup(key); }; + structType.ptr.prototype.Field = function(i) { + var f, i, p, t, tag, x; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + if (i < 0 || i >= t.fields.$length) { + $panic(new $String("reflect: Field index out of bounds")); + } + p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f.Type = toType(p.typ); + f.Name = $clone(p.name, name).name(); + f.Anonymous = p.embedded(); + if (!$clone(p.name, name).isExported()) { + f.PkgPath = $clone(t.pkgPath, name).name(); + } + tag = $clone(p.name, name).tag(); + if (!(tag === "")) { + f.Tag = (tag); + } + f.Offset = p.offset(); + f.Index = new sliceType$13([i]); + return f; + }; + structType.prototype.Field = function(i) { return this.$val.Field(i); }; + structType.ptr.prototype.FieldByIndex = function(index) { + var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _v = $f._v; f = $f.f; ft = $f.ft; i = $f.i; index = $f.index; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + f.Type = toType(t.rtype); + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + ft = f.Type; + _r = ft.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r === 22)) { _v = false; $s = 7; continue s; } + _r$1 = ft.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 === 25; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + _r$3 = ft.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ft = _r$3; + /* } */ case 6: + f.Type = ft; + /* } */ case 4: + _r$4 = f.Type.Field(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + StructField.copy(f, _r$4); + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return f; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._v = _v; $f.f = f; $f.ft = ft; $f.i = i; $f.index = index; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + structType.ptr.prototype.FieldByNameFunc = function(match) { + var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _key$3 = $f._key$3; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; count = $f.count; current = $f.current; f = $f.f; fname = $f.fname; i = $f.i; index = $f.index; match = $f.match; next = $f.next; nextCount = $f.nextCount; ntyp = $f.ntyp; ok = $f.ok; result = $f.result; scan = $f.scan; styp = $f.styp; t = $f.t; t$1 = $f.t$1; visited = $f.visited; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + ok = false; + t = this; + current = new sliceType$14([]); + next = new sliceType$14([new fieldScan.ptr(t, sliceType$13.nil)]); + nextCount = false; + visited = $makeMap(ptrType$11.keyFor, []); + /* while (true) { */ case 1: + /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } + _tmp = next; + _tmp$1 = $subslice(current, 0, 0); + current = _tmp; + next = _tmp$1; + count = nextCount; + nextCount = false; + _ref = current; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); + t$1 = scan.typ; + /* */ if ((_entry = visited[ptrType$11.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((_entry = visited[ptrType$11.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { */ case 5: + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 6: + _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key)] = { k: _key, v: true }; + _ref$1 = t$1.fields; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + i = _i$1; + f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + fname = $clone(f.name, name).name(); + ntyp = ptrType$1.nil; + /* */ if (f.embedded()) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (f.embedded()) { */ case 9: + ntyp = f.typ; + /* */ if (ntyp.Kind() === 22) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (ntyp.Kind() === 22) { */ case 11: + _r = ntyp.Elem().common(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ntyp = _r; + /* } */ case 12: + /* } */ case 10: + _r$1 = match(fname); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$1) { */ case 14: + if ((_entry$1 = count[ptrType$11.keyFor(t$1)], _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { + _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + _tmp$3 = false; + StructField.copy(result, _tmp$2); + ok = _tmp$3; + $s = -1; return [result, ok]; + } + StructField.copy(result, t$1.Field(i)); + result.Index = sliceType$13.nil; + result.Index = $appendSlice(result.Index, scan.index); + result.Index = $append(result.Index, i); + ok = true; + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 15: + if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) { + _i$1++; + /* continue; */ $s = 7; continue; + } + styp = (ntyp.kindType); + if ((_entry$2 = nextCount[ptrType$11.keyFor(styp)], _entry$2 !== undefined ? _entry$2.v : 0) > 0) { + _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$1)] = { k: _key$1, v: 2 }; + _i$1++; + /* continue; */ $s = 7; continue; + } + if (nextCount === false) { + nextCount = $makeMap(ptrType$11.keyFor, []); + } + _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$2)] = { k: _key$2, v: 1 }; + if ((_entry$3 = count[ptrType$11.keyFor(t$1)], _entry$3 !== undefined ? _entry$3.v : 0) > 1) { + _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$3)] = { k: _key$3, v: 2 }; + } + index = sliceType$13.nil; + index = $appendSlice(index, scan.index); + index = $append(index, i); + next = $append(next, new fieldScan.ptr(styp, index)); + _i$1++; + /* } */ $s = 7; continue; case 8: + _i++; + /* } */ $s = 3; continue; case 4: + if (ok) { + /* break; */ $s = 2; continue; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [result, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByNameFunc }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._key$3 = _key$3; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.count = count; $f.current = current; $f.f = f; $f.fname = fname; $f.i = i; $f.index = index; $f.match = match; $f.next = next; $f.nextCount = nextCount; $f.ntyp = ntyp; $f.ok = ok; $f.result = result; $f.scan = scan; $f.styp = styp; $f.t = t; $f.t$1 = t$1; $f.visited = visited; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + structType.ptr.prototype.FieldByName = function(name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; f = $f.f; hasEmbeds = $f.hasEmbeds; i = $f.i; name$1 = $f.name$1; present = $f.present; t = $f.t; tf = $f.tf; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name$1 = [name$1]; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + present = false; + t = this; + hasEmbeds = false; + if (!(name$1[0] === "")) { + _ref = t.fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(tf.name, name).name() === name$1[0]) { + _tmp = $clone(t.Field(i), StructField); + _tmp$1 = true; + StructField.copy(f, _tmp); + present = _tmp$1; + $s = -1; return [f, present]; + } + if (tf.embedded()) { + hasEmbeds = true; + } + _i++; + } + } + if (!hasEmbeds) { + $s = -1; return [f, present]; + } + _r = t.FieldByNameFunc((function(name$1) { return function(s) { + var s; + return s === name$1[0]; + }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + StructField.copy(f, _tuple[0]); + present = _tuple[1]; + $s = -1; return [f, present]; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.f = f; $f.hasEmbeds = hasEmbeds; $f.i = i; $f.name$1 = name$1; $f.present = present; $f.t = t; $f.tf = tf; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + PtrTo = function(t) { + var t; + return $assertType(t, ptrType$1).ptrTo(); + }; + $pkg.PtrTo = PtrTo; + rtype.ptr.prototype.Implements = function(u) { + var _r, t, u, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.Implements")); + } + _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 20))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 20))) { */ case 1: + $panic(new $String("reflect: non-interface type passed to Type.Implements")); + /* } */ case 2: + $s = -1; return implements$1($assertType(u, ptrType$1), t); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Implements }; } $f._r = _r; $f.t = t; $f.u = u; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Implements = function(u) { return this.$val.Implements(u); }; + rtype.ptr.prototype.AssignableTo = function(u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + } + uu = $assertType(u, ptrType$1); + _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r || implements$1(uu, t); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.AssignableTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.AssignableTo = function(u) { return this.$val.AssignableTo(u); }; + rtype.ptr.prototype.ConvertibleTo = function(u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); + } + uu = $assertType(u, ptrType$1); + _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return !(_r === $throwNilPointerError); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.ConvertibleTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.ConvertibleTo = function(u) { return this.$val.ConvertibleTo(u); }; + implements$1 = function(T, V) { + var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + if (!((T.Kind() === 20))) { + return false; + } + t = (T.kindType); + if (t.methods.$length === 0) { + return true; + } + if (V.Kind() === 20) { + v = (V.kindType); + i = 0; + j = 0; + while (true) { + if (!(j < v.methods.$length)) { break; } + tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + tmName = $clone(t.rtype.nameOff(tm.name), name); + vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); + vmName = $clone(V.nameOff(vm.name), name); + if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { + if (!$clone(tmName, name).isExported()) { + tmPkgPath = $clone(tmName, name).pkgPath(); + if (tmPkgPath === "") { + tmPkgPath = $clone(t.pkgPath, name).name(); + } + vmPkgPath = $clone(vmName, name).pkgPath(); + if (vmPkgPath === "") { + vmPkgPath = $clone(v.pkgPath, name).name(); + } + if (!(tmPkgPath === vmPkgPath)) { + j = j + (1) >> 0; + continue; + } + } + i = i + (1) >> 0; + if (i >= t.methods.$length) { + return true; + } + } + j = j + (1) >> 0; + } + return false; + } + v$1 = V.uncommon(); + if (v$1 === ptrType$5.nil) { + return false; + } + i$1 = 0; + vmethods = v$1.methods(); + j$1 = 0; + while (true) { + if (!(j$1 < ((v$1.mcount >> 0)))) { break; } + tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); + vmName$1 = $clone(V.nameOff(vm$1.name), name); + if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { + if (!$clone(tmName$1, name).isExported()) { + tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (tmPkgPath$1 === "") { + tmPkgPath$1 = $clone(t.pkgPath, name).name(); + } + vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + if (vmPkgPath$1 === "") { + vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + } + if (!(tmPkgPath$1 === vmPkgPath$1)) { + j$1 = j$1 + (1) >> 0; + continue; + } + } + i$1 = i$1 + (1) >> 0; + if (i$1 >= t.methods.$length) { + return true; + } + } + j$1 = j$1 + (1) >> 0; + } + return false; + }; + directlyAssignable = function(T, V) { + var T, V, _r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + if (!(T.Name() === "") && !(V.Name() === "") || !((T.Kind() === V.Kind()))) { + $s = -1; return false; + } + _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: directlyAssignable }; } $f.T = T; $f.V = V; $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; + }; + haveIdenticalType = function(T, V, cmpTags) { + var T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _v = $f._v; cmpTags = $f.cmpTags; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (cmpTags) { + $s = -1; return $interfaceIsEqual(T, V); + } + _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r === _r$1)) { _v = true; $s = 3; continue s; } + _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !((_r$2 === _r$3)); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return false; + /* } */ case 2: + _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg = _r$4; + _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; + _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $s = -1; return _r$6; + /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalType }; } $f.T = T; $f.V = V; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._v = _v; $f.cmpTags = cmpTags; $f.$s = $s; $f.$r = $r; return $f; + }; + haveIdenticalUnderlyingType = function(T, V, cmpTags) { + var T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; cmpTags = $f.cmpTags; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; kind = $f.kind; t = $f.t; t$1 = $f.t$1; t$2 = $f.t$2; tf = $f.tf; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; vf = $f.vf; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + kind = T.Kind(); + if (!((kind === V.Kind()))) { + $s = -1; return false; + } + if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) { + $s = -1; return true; + } + _1 = kind; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (18)) { $s = 3; continue; } + /* */ if (_1 === (19)) { $s = 4; continue; } + /* */ if (_1 === (20)) { $s = 5; continue; } + /* */ if (_1 === (21)) { $s = 6; continue; } + /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (17)) { */ case 2: + if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } + _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 10: + $s = -1; return _v; + /* } else if (_1 === (18)) { */ case 3: + if (!(V.ChanDir() === 3)) { _v$1 = false; $s = 14; continue s; } + _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 14: + /* */ if (_v$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_v$1) { */ case 12: + $s = -1; return true; + /* } */ case 13: + if (!(V.ChanDir() === T.ChanDir())) { _v$2 = false; $s = 16; continue s; } + _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 16: + $s = -1; return _v$2; + /* } else if (_1 === (19)) { */ case 4: + t = (T.kindType); + v = (V.kindType); + if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { + $s = -1; return false; + } + i = 0; + /* while (true) { */ case 18: + /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 19; continue; } + _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$3) { */ case 20: + $s = -1; return false; + /* } */ case 21: + i = i + (1) >> 0; + /* } */ $s = 18; continue; case 19: + i$1 = 0; + /* while (true) { */ case 23: + /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 24; continue; } + _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$4) { */ case 25: + $s = -1; return false; + /* } */ case 26: + i$1 = i$1 + (1) >> 0; + /* } */ $s = 23; continue; case 24: + $s = -1; return true; + /* } else if (_1 === (20)) { */ case 5: + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { + $s = -1; return true; + } + $s = -1; return false; + /* } else if (_1 === (21)) { */ case 6: + _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(_r$5)) { _v$3 = false; $s = 28; continue s; } + _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = _r$6; case 28: + $s = -1; return _v$3; + /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: + _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return _r$7; + /* } else if (_1 === (25)) { */ case 8: + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.fields.$length === v$2.fields.$length))) { + $s = -1; return false; + } + if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { + $s = -1; return false; + } + _ref = t$2.fields; + _i = 0; + /* while (true) { */ case 32: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; } + i$2 = _i; + tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); + vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); + if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { + $s = -1; return false; + } + _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$8) { */ case 34: + $s = -1; return false; + /* } */ case 35: + if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { + $s = -1; return false; + } + if (!((tf.offsetEmbed === vf.offsetEmbed))) { + $s = -1; return false; + } + _i++; + /* } */ $s = 32; continue; case 33: + $s = -1; return true; + /* } */ case 9: + case 1: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalUnderlyingType }; } $f.T = T; $f.V = V; $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.cmpTags = cmpTags; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.kind = kind; $f.t = t; $f.t$1 = t$1; $f.t$2 = t$2; $f.tf = tf; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.vf = vf; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + toType = function(t) { + var t; + if (t === ptrType$1.nil) { + return $ifaceNil; + } + return t; + }; + ifaceIndir = function(t) { + var t; + return ((t.kind & 32) >>> 0) === 0; + }; + flag.prototype.kind = function() { + var f; + f = this.$val; + return ((((f & 31) >>> 0) >>> 0)); + }; + $ptrType(flag).prototype.kind = function() { return new flag(this.$get()).kind(); }; + flag.prototype.ro = function() { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0))) { + return 32; + } + return 0; + }; + $ptrType(flag).prototype.ro = function() { return new flag(this.$get()).ro(); }; + Value.ptr.prototype.pointer = function() { + var v; + v = this; + if (!((v.typ.size === 4)) || !v.typ.pointers()) { + $panic(new $String("can't call pointer on a non-pointer Value")); + } + if (!((((v.flag & 128) >>> 0) === 0))) { + return (v.ptr).$get(); + } + return v.ptr; + }; + Value.prototype.pointer = function() { return this.$val.pointer(); }; + ValueError.ptr.prototype.Error = function() { + var e; + e = this; + if (e.Kind === 0) { + return "reflect: call of " + e.Method + " on zero Value"; + } + return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; + }; + ValueError.prototype.Error = function() { return this.$val.Error(); }; + flag.prototype.mustBe = function(expected) { + var expected, f; + f = this.$val; + if (!((new flag(f).kind() === expected))) { + $panic(new ValueError.ptr(methodName(), new flag(f).kind())); + } + }; + $ptrType(flag).prototype.mustBe = function(expected) { return new flag(this.$get()).mustBe(expected); }; + flag.prototype.mustBeExported = function() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + }; + $ptrType(flag).prototype.mustBeExported = function() { return new flag(this.$get()).mustBeExported(); }; + flag.prototype.mustBeAssignable = function() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + if (((f & 256) >>> 0) === 0) { + $panic(new $String("reflect: " + methodName() + " using unaddressable value")); + } + }; + $ptrType(flag).prototype.mustBeAssignable = function() { return new flag(this.$get()).mustBeAssignable(); }; + Value.ptr.prototype.Addr = function() { + var v; + v = this; + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Addr of unaddressable value")); + } + return new Value.ptr(v.typ.ptrTo(), v.ptr, (new flag(v.flag).ro() | 22) >>> 0); + }; + Value.prototype.Addr = function() { return this.$val.Addr(); }; + Value.ptr.prototype.Bool = function() { + var v; + v = this; + new flag(v.flag).mustBe(1); + return (v.ptr).$get(); + }; + Value.prototype.Bool = function() { return this.$val.Bool(); }; + Value.ptr.prototype.Bytes = function() { + var _r, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-byte slice")); + /* } */ case 2: + $s = -1; return (v.ptr).$get(); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Bytes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Bytes = function() { return this.$val.Bytes(); }; + Value.ptr.prototype.runes = function() { + var _r, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-rune slice")); + /* } */ case 2: + $s = -1; return (v.ptr).$get(); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.runes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.runes = function() { return this.$val.runes(); }; + Value.ptr.prototype.CanAddr = function() { + var v; + v = this; + return !((((v.flag & 256) >>> 0) === 0)); + }; + Value.prototype.CanAddr = function() { return this.$val.CanAddr(); }; + Value.ptr.prototype.CanSet = function() { + var v; + v = this; + return ((v.flag & 352) >>> 0) === 256; + }; + Value.prototype.CanSet = function() { return this.$val.CanSet(); }; + Value.ptr.prototype.Call = function(in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("Call", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Call }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Call = function(in$1) { return this.$val.Call(in$1); }; + Value.ptr.prototype.CallSlice = function(in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("CallSlice", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.CallSlice }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.CallSlice = function(in$1) { return this.$val.CallSlice(in$1); }; + Value.ptr.prototype.Complex = function() { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag))); + } else if (_1 === (16)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind())); + }; + Value.prototype.Complex = function() { return this.$val.Complex(); }; + Value.ptr.prototype.FieldByIndex = function(index) { + var _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _v = $f._v; i = $f.i; index = $f.index; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (index.$length === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index.$length === 1) { */ case 1: + _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + new flag(v.flag).mustBe(25); + _ref = index; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (i > 0) { */ case 6: + if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 10; continue s; } + _r$1 = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === 25; case 10: + /* */ if (_v) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_v) { */ case 8: + if ($clone(v, Value).IsNil()) { + $panic(new $String("reflect: indirection through nil pointer to embedded struct")); + } + _r$2 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + v = _r$2; + /* } */ case 9: + /* } */ case 7: + _r$3 = $clone(v, Value).Field(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + _i++; + /* } */ $s = 4; continue; case 5: + $s = -1; return v; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._v = _v; $f.i = i; $f.index = index; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + Value.ptr.prototype.FieldByName = function(name$1) { + var _r, _r$1, _tuple, f, name$1, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(25); + _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByName }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + Value.ptr.prototype.FieldByNameFunc = function(match) { + var _r, _r$1, _tuple, f, match, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; match = $f.match; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.match = match; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + Value.ptr.prototype.Float = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return ((v.ptr).$get()); + } else if (_1 === (14)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind())); + }; + Value.prototype.Float = function() { return this.$val.Float(); }; + Value.ptr.prototype.Int = function() { + var _1, k, p, v; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (2)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (3)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (4)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (5)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (6)) { + return (p).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind())); + }; + Value.prototype.Int = function() { return this.$val.Int(); }; + Value.ptr.prototype.CanInterface = function() { + var v; + v = this; + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.CanInterface", 0)); + } + return ((v.flag & 96) >>> 0) === 0; + }; + Value.prototype.CanInterface = function() { return this.$val.CanInterface(); }; + Value.ptr.prototype.Interface = function() { + var _r, i, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = $ifaceNil; + v = this; + _r = valueInterface($clone(v, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + $s = -1; return i; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Interface }; } $f._r = _r; $f.i = i; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Interface = function() { return this.$val.Interface(); }; + Value.ptr.prototype.IsValid = function() { + var v; + v = this; + return !((v.flag === 0)); + }; + Value.prototype.IsValid = function() { return this.$val.IsValid(); }; + Value.ptr.prototype.Kind = function() { + var v; + v = this; + return new flag(v.flag).kind(); + }; + Value.prototype.Kind = function() { return this.$val.Kind(); }; + Value.ptr.prototype.MapIndex = function(key) { + var _r, e, fl, k, key, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; fl = $f.fl; k = $f.k; key = $f.key; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + e = mapaccess(v.typ, $clone(v, Value).pointer(), k); + if (e === 0) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = tt.elem; + fl = new flag((((v.flag | key.flag) >>> 0))).ro(); + fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; + $s = -1; return copyVal(typ, fl, e); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapIndex }; } $f._r = _r; $f.e = e; $f.fl = fl; $f.k = k; $f.key = key; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MapIndex = function(key) { return this.$val.MapIndex(key); }; + Value.ptr.prototype.MapKeys = function() { + var _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; fl = $f.fl; i = $f.i; it = $f.it; key = $f.key; keyType = $f.keyType; m = $f.m; mlen = $f.mlen; tt = $f.tt; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + keyType = tt.key; + fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; + m = $clone(v, Value).pointer(); + mlen = 0; + if (!(m === 0)) { + mlen = maplen(m); + } + it = mapiterinit(v.typ, m); + a = $makeSlice(sliceType$9, mlen); + i = 0; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } + _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + if (key === 0) { + /* break; */ $s = 2; continue; + } + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = copyVal(keyType, fl, key)); + mapiternext(it); + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return $subslice(a, 0, i); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapKeys }; } $f._r = _r; $f.a = a; $f.fl = fl; $f.i = i; $f.it = it; $f.key = key; $f.keyType = keyType; $f.m = m; $f.mlen = mlen; $f.tt = tt; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MapKeys = function() { return this.$val.MapKeys(); }; + MapIter.ptr.prototype.Key = function() { + var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, it, ktype, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; ktype = $f.ktype; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + it = this; + if (it.it === 0) { + $panic(new $String("MapIter.Key called before Next")); + } + _r = mapiterkey(it.it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 0) { */ case 1: + $panic(new $String("MapIter.Key called on exhausted iterator")); + /* } */ case 2: + t = (it.m.typ.kindType); + ktype = t.key; + _arg = ktype; + _arg$1 = (new flag(it.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0; + _r$1 = mapiterkey(it.it); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = _r$1; + _r$2 = copyVal(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: MapIter.ptr.prototype.Key }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.ktype = ktype; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + MapIter.prototype.Key = function() { return this.$val.Key(); }; + MapIter.ptr.prototype.Value = function() { + var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, it, t, vtype, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; t = $f.t; vtype = $f.vtype; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + it = this; + if (it.it === 0) { + $panic(new $String("MapIter.Value called before Next")); + } + _r = mapiterkey(it.it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 0) { */ case 1: + $panic(new $String("MapIter.Value called on exhausted iterator")); + /* } */ case 2: + t = (it.m.typ.kindType); + vtype = t.elem; + _arg = vtype; + _arg$1 = (new flag(it.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0; + _r$1 = mapitervalue(it.it); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg$2 = _r$1; + _r$2 = copyVal(_arg, _arg$1, _arg$2); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: MapIter.ptr.prototype.Value }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.t = t; $f.vtype = vtype; $f.$s = $s; $f.$r = $r; return $f; + }; + MapIter.prototype.Value = function() { return this.$val.Value(); }; + MapIter.ptr.prototype.Next = function() { + var _r, _r$1, it, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; it = $f.it; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + it = this; + /* */ if (it.it === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (it.it === 0) { */ case 1: + it.it = mapiterinit(it.m.typ, $clone(it.m, Value).pointer()); + $s = 3; continue; + /* } else { */ case 2: + _r = mapiterkey(it.it); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r === 0) { */ case 4: + $panic(new $String("MapIter.Next called on exhausted iterator")); + /* } */ case 5: + mapiternext(it.it); + /* } */ case 3: + _r$1 = mapiterkey(it.it); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return !(_r$1 === 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: MapIter.ptr.prototype.Next }; } $f._r = _r; $f._r$1 = _r$1; $f.it = it; $f.$s = $s; $f.$r = $r; return $f; + }; + MapIter.prototype.Next = function() { return this.$val.Next(); }; + Value.ptr.prototype.MapRange = function() { + var v; + v = this; + new flag(v.flag).mustBe(21); + return new MapIter.ptr($clone(v, Value), 0); + }; + Value.prototype.MapRange = function() { return this.$val.MapRange(); }; + copyVal = function(typ, fl, ptr) { + var c, fl, ptr, typ; + if (ifaceIndir(typ)) { + c = unsafe_New(typ); + typedmemmove(typ, c, ptr); + return new Value.ptr(typ, c, (fl | 128) >>> 0); + } + return new Value.ptr(typ, (ptr).$get(), fl); + }; + Value.ptr.prototype.Method = function(i) { + var fl, i, v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.Method", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) { + $panic(new $String("reflect: Method index out of range")); + } + if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { + $panic(new $String("reflect: Method on nil interface value")); + } + fl = (v.flag & 160) >>> 0; + fl = (fl | (19)) >>> 0; + fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; + return new Value.ptr(v.typ, v.ptr, fl); + }; + Value.prototype.Method = function(i) { return this.$val.Method(i); }; + Value.ptr.prototype.NumMethod = function() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + return 0; + } + return v.typ.NumMethod(); + }; + Value.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + Value.ptr.prototype.MethodByName = function(name$1) { + var _r, _tuple, m, name$1, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; m = $f.m; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = $clone(_tuple[0], Method); + ok = _tuple[1]; + if (!ok) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return $clone(v, Value).Method(m.Index); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MethodByName }; } $f._r = _r; $f._tuple = _tuple; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + Value.ptr.prototype.NumField = function() { + var tt, v; + v = this; + new flag(v.flag).mustBe(25); + tt = (v.typ.kindType); + return tt.fields.$length; + }; + Value.prototype.NumField = function() { return this.$val.NumField(); }; + Value.ptr.prototype.OverflowComplex = function(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return overflowFloat32(x.$real) || overflowFloat32(x.$imag); + } else if (_1 === (16)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind())); + }; + Value.prototype.OverflowComplex = function(x) { return this.$val.OverflowComplex(x); }; + Value.ptr.prototype.OverflowFloat = function(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return overflowFloat32(x); + } else if (_1 === (14)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind())); + }; + Value.prototype.OverflowFloat = function(x) { return this.$val.OverflowFloat(x); }; + overflowFloat32 = function(x) { + var x; + if (x < 0) { + x = -x; + } + return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308; + }; + Value.ptr.prototype.OverflowInt = function(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind())); + }; + Value.prototype.OverflowInt = function(x) { return this.$val.OverflowInt(x); }; + Value.ptr.prototype.OverflowUint = function(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind())); + }; + Value.prototype.OverflowUint = function(x) { return this.$val.OverflowUint(x); }; + Value.ptr.prototype.Recv = function() { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; return [x, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Recv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Recv = function() { return this.$val.Recv(); }; + Value.ptr.prototype.recv = function(nb) { + var _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; nb = $f.nb; ok = $f.ok; p = $f.p; selected = $f.selected; t = $f.t; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + val = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 1) === 0) { + $panic(new $String("reflect: recv on send-only channel")); + } + t = tt.elem; + val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); + p = 0; + if (ifaceIndir(t)) { + p = unsafe_New(t); + val.ptr = p; + val.flag = (val.flag | (128)) >>> 0; + } else { + p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + } + _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + selected = _tuple[0]; + ok = _tuple[1]; + if (!selected) { + val = new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return [val, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.recv }; } $f._r = _r; $f._tuple = _tuple; $f.nb = nb; $f.ok = ok; $f.p = p; $f.selected = selected; $f.t = t; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.recv = function(nb) { return this.$val.recv(nb); }; + Value.ptr.prototype.Send = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Send }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Send = function(x) { return this.$val.Send(x); }; + Value.ptr.prototype.send = function(x, nb) { + var _r, _r$1, nb, p, selected, tt, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; nb = $f.nb; p = $f.p; selected = $f.selected; tt = $f.tt; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + selected = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 2) === 0) { + $panic(new $String("reflect: send on recv-only channel")); + } + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + p = 0; + if (!((((x.flag & 128) >>> 0) === 0))) { + p = x.ptr; + } else { + p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); + } + _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + selected = _r$1; + $s = -1; return selected; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.send }; } $f._r = _r; $f._r$1 = _r$1; $f.nb = nb; $f.p = p; $f.selected = selected; $f.tt = tt; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.send = function(x, nb) { return this.$val.send(x, nb); }; + Value.ptr.prototype.SetBool = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(1); + (v.ptr).$set(x); + }; + Value.prototype.SetBool = function(x) { return this.$val.SetBool(x); }; + Value.ptr.prototype.setRunes = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.setRunes of non-rune slice")); + /* } */ case 2: + (v.ptr).$set(x); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.setRunes }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.setRunes = function(x) { return this.$val.setRunes(x); }; + Value.ptr.prototype.SetComplex = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + (v.ptr).$set((new $Complex64(x.$real, x.$imag))); + } else if (_1 === (16)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind())); + } + }; + Value.prototype.SetComplex = function(x) { return this.$val.SetComplex(x); }; + Value.ptr.prototype.SetFloat = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + (v.ptr).$set(($fround(x))); + } else if (_1 === (14)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind())); + } + }; + Value.prototype.SetFloat = function(x) { return this.$val.SetFloat(x); }; + Value.ptr.prototype.SetInt = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (2)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (3)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24))); + } else if (_1 === (4)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16))); + } else if (_1 === (5)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (6)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind())); + } + }; + Value.prototype.SetInt = function(x) { return this.$val.SetInt(x); }; + Value.ptr.prototype.SetMapIndex = function(key, val) { + var _r, _r$1, e, k, key, tt, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; k = $f.k; key = $f.key; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + new flag(v.flag).mustBeExported(); + new flag(key.flag).mustBeExported(); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + if (val.typ === ptrType$1.nil) { + mapdelete(v.typ, $clone(v, Value).pointer(), k); + $s = -1; return; + } + new flag(val.flag).mustBeExported(); + _r$1 = $clone(val, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + e = 0; + if (!((((val.flag & 128) >>> 0) === 0))) { + e = val.ptr; + } else { + e = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$17(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + } + $r = mapassign(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetMapIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.k = k; $f.key = key; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.SetMapIndex = function(key, val) { return this.$val.SetMapIndex(key, val); }; + Value.ptr.prototype.SetUint = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (7)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (8)) { + (v.ptr).$set(((x.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (v.ptr).$set(((x.$low << 16 >>> 16))); + } else if (_1 === (10)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (11)) { + (v.ptr).$set(x); + } else if (_1 === (12)) { + (v.ptr).$set(((x.$low >>> 0))); + } else { + $panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind())); + } + }; + Value.prototype.SetUint = function(x) { return this.$val.SetUint(x); }; + Value.ptr.prototype.SetPointer = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(26); + (v.ptr).$set(x); + }; + Value.prototype.SetPointer = function(x) { return this.$val.SetPointer(x); }; + Value.ptr.prototype.SetString = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(24); + (v.ptr).$set(x); + }; + Value.prototype.SetString = function(x) { return this.$val.SetString(x); }; + Value.ptr.prototype.String = function() { + var _1, _r, k, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; k = $f.k; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (0)) { + $s = -1; return ""; + } else if (_1 === (24)) { + $s = -1; return (v.ptr).$get(); + } + _r = $clone(v, Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return "<" + _r + " Value>"; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.String }; } $f._1 = _1; $f._r = _r; $f.k = k; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.String = function() { return this.$val.String(); }; + Value.ptr.prototype.TryRecv = function() { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; return [x, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TryRecv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.TryRecv = function() { return this.$val.TryRecv(); }; + Value.ptr.prototype.TrySend = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TrySend }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.TrySend = function(x) { return this.$val.TrySend(x); }; + Value.ptr.prototype.Type = function() { + var f, i, m, m$1, ms, tt, v, x; + v = this; + f = v.flag; + if (f === 0) { + $panic(new ValueError.ptr("reflect.Value.Type", 0)); + } + if (((f & 512) >>> 0) === 0) { + return v.typ; + } + i = ((v.flag >> 0)) >> 10 >> 0; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + return v.typ.typeOff(m.typ); + } + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + return v.typ.typeOff(m$1.mtyp); + }; + Value.prototype.Type = function() { return this.$val.Type(); }; + Value.ptr.prototype.Uint = function() { + var _1, k, p, v, x; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (7)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (8)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (9)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (10)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (11)) { + return (p).$get(); + } else if (_1 === (12)) { + return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1))); + } + $panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind())); + }; + Value.prototype.Uint = function() { return this.$val.Uint(); }; + Value.ptr.prototype.UnsafeAddr = function() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); + } + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); + } + return (v.ptr); + }; + Value.prototype.UnsafeAddr = function() { return this.$val.UnsafeAddr(); }; + New = function(typ) { + var fl, ptr, t, typ; + if ($interfaceIsEqual(typ, $ifaceNil)) { + $panic(new $String("reflect: New(nil)")); + } + t = $assertType(typ, ptrType$1); + ptr = unsafe_New(t); + fl = 22; + return new Value.ptr(t.ptrTo(), ptr, fl); + }; + $pkg.New = New; + Value.ptr.prototype.Convert = function(t) { + var _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; op = $f.op; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Convert", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + op = _r$2; + /* */ if (op === $throwNilPointerError) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (op === $throwNilPointerError) { */ case 6: + _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); + /* } */ case 7: + _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Convert }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.op = op; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Convert = function(t) { return this.$val.Convert(t); }; + convertOp = function(dst, src) { + var _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, dst, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _7 = $f._7; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; dst = $f.dst; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _1 = src.Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } + /* */ if (_1 === (24)) { $s = 6; continue; } + /* */ if (_1 === (23)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _2 = dst.Kind(); + if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { + $s = -1; return cvtInt; + } else if ((_2 === (13)) || (_2 === (14))) { + $s = -1; return cvtIntFloat; + } else if (_2 === (24)) { + $s = -1; return cvtIntString; + } + $s = 8; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _3 = dst.Kind(); + if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { + $s = -1; return cvtUint; + } else if ((_3 === (13)) || (_3 === (14))) { + $s = -1; return cvtUintFloat; + } else if (_3 === (24)) { + $s = -1; return cvtUintString; + } + $s = 8; continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: + _4 = dst.Kind(); + if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { + $s = -1; return cvtFloatInt; + } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { + $s = -1; return cvtFloatUint; + } else if ((_4 === (13)) || (_4 === (14))) { + $s = -1; return cvtFloat; + } + $s = 8; continue; + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: + _5 = dst.Kind(); + if ((_5 === (15)) || (_5 === (16))) { + $s = -1; return cvtComplex; + } + $s = 8; continue; + /* } else if (_1 === (24)) { */ case 6: + if (!(dst.Kind() === 23)) { _v = false; $s = 11; continue s; } + _r = dst.Elem().PkgPath(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === ""; case 11: + /* */ if (_v) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v) { */ case 9: + _r$1 = dst.Elem().Kind(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _6 = _r$1; + if (_6 === (8)) { + $s = -1; return cvtStringBytes; + } else if (_6 === (5)) { + $s = -1; return cvtStringRunes; + } + case 13: + /* } */ case 10: + $s = 8; continue; + /* } else if (_1 === (23)) { */ case 7: + if (!(dst.Kind() === 24)) { _v$1 = false; $s = 17; continue s; } + _r$2 = src.Elem().PkgPath(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === ""; case 17: + /* */ if (_v$1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_v$1) { */ case 15: + _r$3 = src.Elem().Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _7 = _r$3; + if (_7 === (8)) { + $s = -1; return cvtBytesString; + } else if (_7 === (5)) { + $s = -1; return cvtRunesString; + } + case 19: + /* } */ case 16: + /* } */ case 8: + case 1: + _r$4 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_r$4) { */ case 21: + $s = -1; return cvtDirect; + /* } */ case 22: + if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$2 = false; $s = 26; continue s; } + _r$5 = dst.Elem().common(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg = _r$5; + _r$6 = src.Elem().common(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = _r$6; + _r$7 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$2 = _r$7; case 26: + /* */ if (_v$2) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_v$2) { */ case 24: + $s = -1; return cvtDirect; + /* } */ case 25: + if (implements$1(dst, src)) { + if (src.Kind() === 20) { + $s = -1; return cvtI2I; + } + $s = -1; return cvtT2I; + } + $s = -1; return $throwNilPointerError; + /* */ } return; } if ($f === undefined) { $f = { $blk: convertOp }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._7 = _7; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.dst = dst; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + makeFloat = function(f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (4)) { + (ptr).$set(($fround(v))); + } else if (_1 === (8)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeFloat }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeComplex = function(f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (8)) { + (ptr).$set((new $Complex64(v.$real, v.$imag))); + } else if (_1 === (16)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeComplex }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeString = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $clone(ret, Value).SetString(v); + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeString }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeBytes = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeBytes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeRunes = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeRunes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtInt = function(v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUint = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), $clone(v, Value).Uint(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloatInt = function(v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloatUint = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), (new $Uint64(0, $clone(v, Value).Float())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtIntFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Int())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUintFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Uint())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), $clone(v, Value).Float(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtComplex = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeComplex(new flag(v.flag).ro(), $clone(v, Value).Complex(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtComplex }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtIntString = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Int().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUintString = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Uint().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtBytesString = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($bytesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtBytesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtStringBytes = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$15($stringToBytes(_r))); + _arg$2 = t; + _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringBytes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtRunesString = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($runesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtRunesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtStringRunes = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$18($stringToRunes(_r))); + _arg$2 = t; + _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringRunes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtT2I = function(v, typ) { + var _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; target = $f.target; typ = $f.typ; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + target = _r$1; + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$3 === 0) { */ case 4: + (target).$set(x); + $s = 6; continue; + /* } else { */ case 5: + ifaceE2I($assertType(typ, ptrType$1), x, target); + /* } */ case 6: + _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtT2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.target = target; $f.typ = typ; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtI2I = function(v, typ) { + var _r, _r$1, _r$2, ret, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; ret = $f.ret; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(v, Value).IsNil()) { */ case 1: + _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0; + $s = -1; return ret; + /* } */ case 2: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtI2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.ret = ret; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + ptrType$5.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}]; + ptrType$8.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}]; + name.methods = [{prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$4], false)}, {prop: "nameLen", name: "nameLen", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "tagLen", name: "tagLen", pkg: "reflect", typ: $funcType([], [$Int], false)}]; + ptrType$7.methods = [{prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false)}]; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}]; + ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$9.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; + ptrType$18.methods = [{prop: "offset", name: "offset", pkg: "reflect", typ: $funcType([], [$Uintptr], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}]; + ptrType$11.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; + StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; + Value.methods = [{prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$9], [sliceType$9], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$8], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$15], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$15], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$18], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [Value], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$19], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$18], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}]; + flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}]; + ptrType$20.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$19.methods = [{prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false)}]; + uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); + name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}]); + mapIter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}]); + rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "alg", name: "alg", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); + typeAlg.init("reflect", [{prop: "hash", name: "hash", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$5, tag: ""}]); + method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); + arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); + interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offsetEmbed", name: "offsetEmbed", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); + fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$11, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); + Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); + MapIter.init("reflect", [{prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: ""}, {prop: "it", name: "it", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + nameOffList = sliceType$1.nil; + typeOffList = sliceType$2.nil; + initialized = false; + uncommonTypeMap = {}; + nameMap = {}; + callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); + selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); + jsObjectPtr = reflectType($jsObjectPtr); + kindNames = new sliceType$4(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $r = init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sort"] = (function() { + var $pkg = {}, $init, reflect, StringSlice, sliceType$2, Search, SearchStrings, insertionSort, siftDown, heapSort, medianOfThree, swapRange, doPivot, quickSort, Sort, maxDepth, Stable, stable, symMerge, rotate; + reflect = $packages["reflect"]; + StringSlice = $pkg.StringSlice = $newType(12, $kindSlice, "sort.StringSlice", true, "sort", true, null); + sliceType$2 = $sliceType($String); + Search = function(n, f) { + var _r, _tmp, _tmp$1, f, h, i, j, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; f = $f.f; h = $f.h; i = $f.i; j = $f.j; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tmp = 0; + _tmp$1 = n; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 1: + /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 2; continue; } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r = f(h); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + i = h + 1 >> 0; + $s = 5; continue; + /* } else { */ case 4: + j = h; + /* } */ case 5: + /* } */ $s = 1; continue; case 2: + $s = -1; return i; + /* */ } return; } if ($f === undefined) { $f = { $blk: Search }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.f = f; $f.h = h; $f.i = i; $f.j = j; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Search = Search; + SearchStrings = function(a, x) { + var _r, a, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = [a]; + x = [x]; + _r = Search(a[0].$length, (function(a, x) { return function(i) { + var i; + return ((i < 0 || i >= a[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : a[0].$array[a[0].$offset + i]) >= x[0]; + }; })(a, x)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: SearchStrings }; } $f._r = _r; $f.a = a; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SearchStrings = SearchStrings; + StringSlice.prototype.Search = function(x) { + var _r, p, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _r = SearchStrings($subslice(new sliceType$2(p.$array), p.$offset, p.$offset + p.$length), x); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: StringSlice.prototype.Search }; } $f._r = _r; $f.p = p; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $ptrType(StringSlice).prototype.Search = function(x) { return this.$get().Search(x); }; + insertionSort = function(data, a, b) { + var _r, _v, a, b, data, i, j, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } + j = i; + /* while (true) { */ case 3: + if (!(j > a)) { _v = false; $s = 5; continue s; } + _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (1) >> 0; + /* } */ $s = 3; continue; case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: insertionSort }; } $f._r = _r; $f._v = _v; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f; + }; + siftDown = function(data, lo, hi, first) { + var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; child = $f.child; data = $f.data; first = $f.first; hi = $f.hi; lo = $f.lo; root = $f.root; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + root = lo; + /* while (true) { */ case 1: + child = ($imul(2, root)) + 1 >> 0; + if (child >= hi) { + /* break; */ $s = 2; continue; + } + if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } + _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + child = child + (1) >> 0; + /* } */ case 4: + _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + $s = -1; return; + /* } */ case 8: + $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + root = child; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: siftDown }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.child = child; $f.data = data; $f.first = first; $f.hi = hi; $f.lo = lo; $f.root = root; $f.$s = $s; $f.$r = $r; return $f; + }; + heapSort = function(data, a, b) { + var _q, a, b, data, first, hi, i, i$1, lo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; a = $f.a; b = $f.b; data = $f.data; first = $f.first; hi = $f.hi; i = $f.i; i$1 = $f.i$1; lo = $f.lo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = a; + lo = 0; + hi = b - a >> 0; + i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } + $r = siftDown(data, i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + /* } */ $s = 1; continue; case 2: + i$1 = hi - 1 >> 0; + /* while (true) { */ case 4: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } + $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = siftDown(data, lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 - (1) >> 0; + /* } */ $s = 4; continue; case 5: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: heapSort }; } $f._q = _q; $f.a = a; $f.b = b; $f.data = data; $f.first = first; $f.hi = hi; $f.i = i; $f.i$1 = i$1; $f.lo = lo; $f.$s = $s; $f.$r = $r; return $f; + }; + medianOfThree = function(data, m1, m0, m2) { + var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = data.Less(m1, m0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $r = data.Swap(m1, m0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r$1 = data.Less(m2, m1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1) { */ case 5: + $r = data.Swap(m2, m1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = data.Less(m1, m0); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$2) { */ case 9: + $r = data.Swap(m1, m0); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: medianOfThree }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.$s = $s; $f.$r = $r; return $f; + }; + swapRange = function(data, a, b, n) { + var a, b, data, i, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; b = $f.b; data = $f.data; i = $f.i; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + $r = data.Swap(a + i >> 0, b + i >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: swapRange }; } $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + doPivot = function(data, lo, hi) { + var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; _v$4 = $f._v$4; a = $f.a; b = $f.b; c = $f.c; data = $f.data; dups = $f.dups; hi = $f.hi; lo = $f.lo; m = $f.m; midhi = $f.midhi; midlo = $f.midlo; pivot = $f.pivot; protect = $f.protect; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + midlo = 0; + midhi = 0; + m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + /* */ if ((hi - lo >> 0) > 40) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((hi - lo >> 0) > 40) { */ case 1: + s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $r = medianOfThree(data, lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree(data, m, m - s >> 0, m + s >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree(data, hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = medianOfThree(data, lo, m, hi - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pivot = lo; + _tmp = lo + 1 >> 0; + _tmp$1 = hi - 1 >> 0; + a = _tmp; + c = _tmp$1; + /* while (true) { */ case 7: + if (!(a < c)) { _v = false; $s = 9; continue s; } + _r = data.Less(a, pivot); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 9: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } + a = a + (1) >> 0; + /* } */ $s = 7; continue; case 8: + b = a; + /* while (true) { */ case 11: + /* while (true) { */ case 13: + if (!(b < c)) { _v$1 = false; $s = 15; continue s; } + _r$1 = data.Less(pivot, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = !_r$1; case 15: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 14; continue; } + b = b + (1) >> 0; + /* } */ $s = 13; continue; case 14: + /* while (true) { */ case 17: + if (!(b < c)) { _v$2 = false; $s = 19; continue s; } + _r$2 = data.Less(pivot, c - 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 19: + /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 18; continue; } + c = c - (1) >> 0; + /* } */ $s = 17; continue; case 18: + if (b >= c) { + /* break; */ $s = 12; continue; + } + $r = data.Swap(b, c - 1 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b + (1) >> 0; + c = c - (1) >> 0; + /* } */ $s = 11; continue; case 12: + protect = (hi - c >> 0) < 5; + /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22: + dups = 0; + _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$3) { */ case 24: + $r = data.Swap(c, hi - 1 >> 0); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + c = c + (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 25: + _r$4 = data.Less(b - 1 >> 0, pivot); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$4) { */ case 28: + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 29: + _r$5 = data.Less(m, pivot); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!_r$5) { */ case 31: + $r = data.Swap(m, b - 1 >> 0); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 32: + protect = dups > 1; + /* } */ case 23: + /* */ if (protect) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (protect) { */ case 35: + /* while (true) { */ case 37: + /* while (true) { */ case 39: + if (!(a < b)) { _v$3 = false; $s = 41; continue s; } + _r$6 = data.Less(b - 1 >> 0, pivot); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = !_r$6; case 41: + /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 40; continue; } + b = b - (1) >> 0; + /* } */ $s = 39; continue; case 40: + /* while (true) { */ case 43: + if (!(a < b)) { _v$4 = false; $s = 45; continue s; } + _r$7 = data.Less(a, pivot); /* */ $s = 46; case 46: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$4 = _r$7; case 45: + /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 44; continue; } + a = a + (1) >> 0; + /* } */ $s = 43; continue; case 44: + if (a >= b) { + /* break; */ $s = 38; continue; + } + $r = data.Swap(a, b - 1 >> 0); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = a + (1) >> 0; + b = b - (1) >> 0; + /* } */ $s = 37; continue; case 38: + /* } */ case 36: + $r = data.Swap(pivot, b - 1 >> 0); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = b - 1 >> 0; + _tmp$3 = c; + midlo = _tmp$2; + midhi = _tmp$3; + $s = -1; return [midlo, midhi]; + /* */ } return; } if ($f === undefined) { $f = { $blk: doPivot }; } $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f._v$4 = _v$4; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.dups = dups; $f.hi = hi; $f.lo = lo; $f.m = m; $f.midhi = midhi; $f.midlo = midlo; $f.pivot = pivot; $f.protect = protect; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + quickSort = function(data, a, b, maxDepth$1) { + var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; b = $f.b; data = $f.data; i = $f.i; maxDepth$1 = $f.maxDepth$1; mhi = $f.mhi; mlo = $f.mlo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + /* if (!((b - a >> 0) > 12)) { break; } */ if(!((b - a >> 0) > 12)) { $s = 2; continue; } + /* */ if (maxDepth$1 === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (maxDepth$1 === 0) { */ case 3: + $r = heapSort(data, a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + maxDepth$1 = maxDepth$1 - (1) >> 0; + _r = doPivot(data, a, b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + mlo = _tuple[0]; + mhi = _tuple[1]; + /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7: + $r = quickSort(data, a, mlo, maxDepth$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = mhi; + $s = 9; continue; + /* } else { */ case 8: + $r = quickSort(data, mhi, b, maxDepth$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = mlo; + /* } */ case 9: + /* } */ $s = 1; continue; case 2: + /* */ if ((b - a >> 0) > 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((b - a >> 0) > 1) { */ case 12: + i = a + 6 >> 0; + /* while (true) { */ case 14: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 15; continue; } + _r$1 = data.Less(i, i - 6 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$1) { */ case 16: + $r = data.Swap(i, i - 6 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + i = i + (1) >> 0; + /* } */ $s = 14; continue; case 15: + $r = insertionSort(data, a, b); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: quickSort }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.maxDepth$1 = maxDepth$1; $f.mhi = mhi; $f.mlo = mlo; $f.$s = $s; $f.$r = $r; return $f; + }; + Sort = function(data) { + var _r, data, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + n = _r; + $r = quickSort(data, 0, n, maxDepth(n)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sort }; } $f._r = _r; $f.data = data; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sort = Sort; + maxDepth = function(n) { + var depth, i, n; + depth = 0; + i = n; + while (true) { + if (!(i > 0)) { break; } + depth = depth + (1) >> 0; + i = (i >> $min((1), 31)) >> 0; + } + return $imul(depth, 2); + }; + StringSlice.prototype.Len = function() { + var p; + p = this; + return p.$length; + }; + $ptrType(StringSlice).prototype.Len = function() { return this.$get().Len(); }; + StringSlice.prototype.Less = function(i, j) { + var i, j, p; + p = this; + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + }; + $ptrType(StringSlice).prototype.Less = function(i, j) { return this.$get().Less(i, j); }; + StringSlice.prototype.Swap = function(i, j) { + var _tmp, _tmp$1, i, j, p; + p = this; + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + }; + $ptrType(StringSlice).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); }; + StringSlice.prototype.Sort = function() { + var p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + $r = Sort(p); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: StringSlice.prototype.Sort }; } $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + $ptrType(StringSlice).prototype.Sort = function() { return this.$get().Sort(); }; + Stable = function(data) { + var _arg, _arg$1, _r, data, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; data = $f.data; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = data; + _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $r = stable(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Stable }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.data = data; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Stable = Stable; + stable = function(data, n) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, blockSize, data, m, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; a = $f.a; b = $f.b; blockSize = $f.blockSize; data = $f.data; m = $f.m; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + blockSize = 20; + _tmp = 0; + _tmp$1 = blockSize; + a = _tmp; + b = _tmp$1; + /* while (true) { */ case 1: + /* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 2; continue; } + $r = insertionSort(data, a, b); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = b; + b = b + (blockSize) >> 0; + /* } */ $s = 1; continue; case 2: + $r = insertionSort(data, a, n); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* while (true) { */ case 5: + /* if (!(blockSize < n)) { break; } */ if(!(blockSize < n)) { $s = 6; continue; } + _tmp$2 = 0; + _tmp$3 = $imul(2, blockSize); + a = _tmp$2; + b = _tmp$3; + /* while (true) { */ case 7: + /* if (!(b <= n)) { break; } */ if(!(b <= n)) { $s = 8; continue; } + $r = symMerge(data, a, a + blockSize >> 0, b); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = b; + b = b + (($imul(2, blockSize))) >> 0; + /* } */ $s = 7; continue; case 8: + m = a + blockSize >> 0; + /* */ if (m < n) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (m < n) { */ case 10: + $r = symMerge(data, a, m, n); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + blockSize = $imul(blockSize, (2)); + /* } */ $s = 5; continue; case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: stable }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.a = a; $f.b = b; $f.blockSize = blockSize; $f.data = data; $f.m = m; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + symMerge = function(data, a, m, b) { + var _r, _r$1, _r$2, _tmp, _tmp$1, a, b, c, data, end, h, h$1, i, i$1, j, j$1, k, k$1, m, mid, n, p, r, start, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; a = $f.a; b = $f.b; c = $f.c; data = $f.data; end = $f.end; h = $f.h; h$1 = $f.h$1; i = $f.i; i$1 = $f.i$1; j = $f.j; j$1 = $f.j$1; k = $f.k; k$1 = $f.k$1; m = $f.m; mid = $f.mid; n = $f.n; p = $f.p; r = $f.r; start = $f.start; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if ((m - a >> 0) === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((m - a >> 0) === 1) { */ case 1: + i = m; + j = b; + /* while (true) { */ case 3: + /* if (!(i < j)) { break; } */ if(!(i < j)) { $s = 4; continue; } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r = data.Less(h, a); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r) { */ case 5: + i = h + 1 >> 0; + $s = 7; continue; + /* } else { */ case 6: + j = h; + /* } */ case 7: + /* } */ $s = 3; continue; case 4: + k = a; + /* while (true) { */ case 9: + /* if (!(k < (i - 1 >> 0))) { break; } */ if(!(k < (i - 1 >> 0))) { $s = 10; continue; } + $r = data.Swap(k, k + 1 >> 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k = k + (1) >> 0; + /* } */ $s = 9; continue; case 10: + $s = -1; return; + /* } */ case 2: + /* */ if ((b - m >> 0) === 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((b - m >> 0) === 1) { */ case 12: + i$1 = a; + j$1 = m; + /* while (true) { */ case 14: + /* if (!(i$1 < j$1)) { break; } */ if(!(i$1 < j$1)) { $s = 15; continue; } + h$1 = ((((((i$1 + j$1 >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r$1 = data.Less(m, h$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!_r$1) { */ case 16: + i$1 = h$1 + 1 >> 0; + $s = 18; continue; + /* } else { */ case 17: + j$1 = h$1; + /* } */ case 18: + /* } */ $s = 14; continue; case 15: + k$1 = m; + /* while (true) { */ case 20: + /* if (!(k$1 > i$1)) { break; } */ if(!(k$1 > i$1)) { $s = 21; continue; } + $r = data.Swap(k$1, k$1 - 1 >> 0); /* */ $s = 22; case 22: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + k$1 = k$1 - (1) >> 0; + /* } */ $s = 20; continue; case 21: + $s = -1; return; + /* } */ case 13: + mid = ((((((a + b >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + n = mid + m >> 0; + _tmp = 0; + _tmp$1 = 0; + start = _tmp; + r = _tmp$1; + if (m > mid) { + start = n - b >> 0; + r = mid; + } else { + start = a; + r = m; + } + p = n - 1 >> 0; + /* while (true) { */ case 23: + /* if (!(start < r)) { break; } */ if(!(start < r)) { $s = 24; continue; } + c = ((((((start + r >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r$2 = data.Less(p - c >> 0, c); /* */ $s = 28; case 28: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$2) { */ case 25: + start = c + 1 >> 0; + $s = 27; continue; + /* } else { */ case 26: + r = c; + /* } */ case 27: + /* } */ $s = 23; continue; case 24: + end = n - start >> 0; + /* */ if (start < m && m < end) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (start < m && m < end) { */ case 29: + $r = rotate(data, start, m, end); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + /* */ if (a < start && start < mid) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (a < start && start < mid) { */ case 32: + $r = symMerge(data, a, start, mid); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: + /* */ if (mid < end && end < b) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (mid < end && end < b) { */ case 35: + $r = symMerge(data, mid, end, b); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 36: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: symMerge }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.end = end; $f.h = h; $f.h$1 = h$1; $f.i = i; $f.i$1 = i$1; $f.j = j; $f.j$1 = j$1; $f.k = k; $f.k$1 = k$1; $f.m = m; $f.mid = mid; $f.n = n; $f.p = p; $f.r = r; $f.start = start; $f.$s = $s; $f.$r = $r; return $f; + }; + rotate = function(data, a, m, b) { + var a, b, data, i, j, m, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; m = $f.m; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = m - a >> 0; + j = b - m >> 0; + /* while (true) { */ case 1: + /* if (!(!((i === j)))) { break; } */ if(!(!((i === j)))) { $s = 2; continue; } + /* */ if (i > j) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > j) { */ case 3: + $r = swapRange(data, m - i >> 0, m, j); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (j) >> 0; + $s = 5; continue; + /* } else { */ case 4: + $r = swapRange(data, m - i >> 0, (m + j >> 0) - i >> 0, i); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (i) >> 0; + /* } */ case 5: + /* } */ $s = 1; continue; case 2: + $r = swapRange(data, m - i >> 0, m, i); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: rotate }; } $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.m = m; $f.$s = $s; $f.$r = $r; return $f; + }; + StringSlice.methods = [{prop: "Search", name: "Search", pkg: "", typ: $funcType([$String], [$Int], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false)}]; + StringSlice.init($String); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/fmtsort"] = (function() { + var $pkg = {}, $init, reflect, sort, SortedMap, ptrType, sliceType, Sort, compare, nilCompare, floatCompare, isNaN; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + SortedMap = $pkg.SortedMap = $newType(0, $kindStruct, "fmtsort.SortedMap", true, "internal/fmtsort", true, function(Key_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Key = sliceType.nil; + this.Value = sliceType.nil; + return; + } + this.Key = Key_; + this.Value = Value_; + }); + ptrType = $ptrType(SortedMap); + sliceType = $sliceType(reflect.Value); + SortedMap.ptr.prototype.Len = function() { + var o; + o = this; + return o.Key.$length; + }; + SortedMap.prototype.Len = function() { return this.$val.Len(); }; + SortedMap.ptr.prototype.Less = function(i, j) { + var _r, i, j, o, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; j = $f.j; o = $f.o; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + o = this; + _r = compare($clone((x = o.Key, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), reflect.Value), $clone((x$1 = o.Key, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])), reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r < 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: SortedMap.ptr.prototype.Less }; } $f._r = _r; $f.i = i; $f.j = j; $f.o = o; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + SortedMap.prototype.Less = function(i, j) { return this.$val.Less(i, j); }; + SortedMap.ptr.prototype.Swap = function(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, o, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + o = this; + _tmp = (x = o.Key, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + _tmp$1 = (x$1 = o.Key, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + (x$2 = o.Key, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _tmp)); + (x$3 = o.Key, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j] = _tmp$1)); + _tmp$2 = (x$4 = o.Value, ((j < 0 || j >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + j])); + _tmp$3 = (x$5 = o.Value, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i])); + (x$6 = o.Value, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = _tmp$2)); + (x$7 = o.Value, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = _tmp$3)); + }; + SortedMap.prototype.Swap = function(i, j) { return this.$val.Swap(i, j); }; + Sort = function(mapValue) { + var _r, _r$1, _r$2, _r$3, i, iter, key, mapValue, sorted, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; i = $f.i; iter = $f.iter; key = $f.key; mapValue = $f.mapValue; sorted = $f.sorted; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(mapValue, reflect.Value).Type().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 21))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 21))) { */ case 1: + $s = -1; return ptrType.nil; + /* } */ case 2: + key = $makeSlice(sliceType, $clone(mapValue, reflect.Value).Len()); + value = $makeSlice(sliceType, key.$length); + iter = $clone(mapValue, reflect.Value).MapRange(); + i = 0; + /* while (true) { */ case 4: + _r$1 = iter.Next(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* if (!(_r$1)) { break; } */ if(!(_r$1)) { $s = 5; continue; } + _r$2 = iter.Key(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ((i < 0 || i >= key.$length) ? ($throwRuntimeError("index out of range"), undefined) : key.$array[key.$offset + i] = _r$2); + _r$3 = iter.Value(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ((i < 0 || i >= value.$length) ? ($throwRuntimeError("index out of range"), undefined) : value.$array[value.$offset + i] = _r$3); + i = i + (1) >> 0; + /* } */ $s = 4; continue; case 5: + sorted = new SortedMap.ptr(key, value); + $r = sort.Stable(sorted); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return sorted; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sort }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.i = i; $f.iter = iter; $f.key = key; $f.mapValue = mapValue; $f.sorted = sorted; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sort = Sort; + compare = function(aVal, bVal) { + var _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; a$1 = $f.a$1; a$2 = $f.a$2; a$3 = $f.a$3; a$4 = $f.a$4; a$5 = $f.a$5; aType = $f.aType; aVal = $f.aVal; ap = $f.ap; b = $f.b; b$1 = $f.b$1; b$2 = $f.b$2; b$3 = $f.b$3; b$4 = $f.b$4; b$5 = $f.b$5; bType = $f.bType; bVal = $f.bVal; bp = $f.bp; c = $f.c; c$1 = $f.c$1; c$2 = $f.c$2; c$3 = $f.c$3; c$4 = $f.c$4; c$5 = $f.c$5; i = $f.i; i$1 = $f.i$1; ok = $f.ok; ok$1 = $f.ok$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tmp = $clone(aVal, reflect.Value).Type(); + _tmp$1 = $clone(bVal, reflect.Value).Type(); + aType = _tmp; + bType = _tmp$1; + if (!($interfaceIsEqual(aType, bType))) { + $s = -1; return -1; + } + _1 = $clone(aVal, reflect.Value).Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 5; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 6; continue; } + /* */ if (_1 === (1)) { $s = 7; continue; } + /* */ if (_1 === (22)) { $s = 8; continue; } + /* */ if (_1 === (18)) { $s = 9; continue; } + /* */ if (_1 === (25)) { $s = 10; continue; } + /* */ if (_1 === (17)) { $s = 11; continue; } + /* */ if (_1 === (20)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _tmp$2 = $clone(aVal, reflect.Value).Int(); + _tmp$3 = $clone(bVal, reflect.Value).Int(); + a = _tmp$2; + b = _tmp$3; + if ((a.$high < b.$high || (a.$high === b.$high && a.$low < b.$low))) { + $s = -1; return -1; + } else if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _tmp$4 = $clone(aVal, reflect.Value).Uint(); + _tmp$5 = $clone(bVal, reflect.Value).Uint(); + a$1 = _tmp$4; + b$1 = _tmp$5; + if ((a$1.$high < b$1.$high || (a$1.$high === b$1.$high && a$1.$low < b$1.$low))) { + $s = -1; return -1; + } else if ((a$1.$high > b$1.$high || (a$1.$high === b$1.$high && a$1.$low > b$1.$low))) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if (_1 === (24)) { */ case 4: + _r = $clone(aVal, reflect.Value).String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$6 = _r; + _r$1 = $clone(bVal, reflect.Value).String(); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$7 = _r$1; + a$2 = _tmp$6; + b$2 = _tmp$7; + if (a$2 < b$2) { + $s = -1; return -1; + } else if (a$2 > b$2) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5: + $s = -1; return floatCompare($clone(aVal, reflect.Value).Float(), $clone(bVal, reflect.Value).Float()); + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6: + _tmp$8 = $clone(aVal, reflect.Value).Complex(); + _tmp$9 = $clone(bVal, reflect.Value).Complex(); + a$3 = _tmp$8; + b$3 = _tmp$9; + c = floatCompare(a$3.$real, b$3.$real); + if (!((c === 0))) { + $s = -1; return c; + } + $s = -1; return floatCompare(a$3.$imag, b$3.$imag); + /* } else if (_1 === (1)) { */ case 7: + _tmp$10 = $clone(aVal, reflect.Value).Bool(); + _tmp$11 = $clone(bVal, reflect.Value).Bool(); + a$4 = _tmp$10; + b$4 = _tmp$11; + if (a$4 === b$4) { + $s = -1; return 0; + } else if (a$4) { + $s = -1; return 1; + } else { + $s = -1; return -1; + } + $s = 14; continue; + /* } else if (_1 === (22)) { */ case 8: + _tmp$12 = $clone(aVal, reflect.Value).Pointer(); + _tmp$13 = $clone(bVal, reflect.Value).Pointer(); + a$5 = _tmp$12; + b$5 = _tmp$13; + if (a$5 < b$5) { + $s = -1; return -1; + } else if (a$5 > b$5) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if (_1 === (18)) { */ case 9: + _tuple = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); + c$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return c$1; + } + _tmp$14 = $clone(aVal, reflect.Value).Pointer(); + _tmp$15 = $clone(bVal, reflect.Value).Pointer(); + ap = _tmp$14; + bp = _tmp$15; + if (ap < bp) { + $s = -1; return -1; + } else if (ap > bp) { + $s = -1; return 1; + } else { + $s = -1; return 0; + } + $s = 14; continue; + /* } else if (_1 === (25)) { */ case 10: + i = 0; + /* while (true) { */ case 17: + /* if (!(i < $clone(aVal, reflect.Value).NumField())) { break; } */ if(!(i < $clone(aVal, reflect.Value).NumField())) { $s = 18; continue; } + _r$2 = $clone(aVal, reflect.Value).Field(i); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = $clone(_r$2, reflect.Value); + _r$3 = $clone(bVal, reflect.Value).Field(i); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$3, reflect.Value); + _r$4 = compare(_arg, _arg$1); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + c$2 = _r$4; + if (!((c$2 === 0))) { + $s = -1; return c$2; + } + i = i + (1) >> 0; + /* } */ $s = 17; continue; case 18: + $s = -1; return 0; + /* } else if (_1 === (17)) { */ case 11: + i$1 = 0; + /* while (true) { */ case 22: + /* if (!(i$1 < $clone(aVal, reflect.Value).Len())) { break; } */ if(!(i$1 < $clone(aVal, reflect.Value).Len())) { $s = 23; continue; } + _r$5 = $clone(aVal, reflect.Value).Index(i$1); /* */ $s = 24; case 24: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = $clone(_r$5, reflect.Value); + _r$6 = $clone(bVal, reflect.Value).Index(i$1); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$3 = $clone(_r$6, reflect.Value); + _r$7 = compare(_arg$2, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + c$3 = _r$7; + if (!((c$3 === 0))) { + $s = -1; return c$3; + } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 22; continue; case 23: + $s = -1; return 0; + /* } else if (_1 === (20)) { */ case 12: + _tuple$1 = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); + c$4 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + $s = -1; return c$4; + } + _r$8 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$9 = $clone(_r$8, reflect.Value).Type(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = reflect.ValueOf(_r$9); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$4 = $clone(_r$10, reflect.Value); + _r$11 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 30; case 30: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = $clone(_r$11, reflect.Value).Type(); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = reflect.ValueOf(_r$12); /* */ $s = 32; case 32: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg$5 = $clone(_r$13, reflect.Value); + _r$14 = compare(_arg$4, _arg$5); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + c$5 = _r$14; + if (!((c$5 === 0))) { + $s = -1; return c$5; + } + _r$15 = $clone(aVal, reflect.Value).Elem(); /* */ $s = 34; case 34: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _arg$6 = $clone(_r$15, reflect.Value); + _r$16 = $clone(bVal, reflect.Value).Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$7 = $clone(_r$16, reflect.Value); + _r$17 = compare(_arg$6, _arg$7); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $s = -1; return _r$17; + /* } else { */ case 13: + _r$18 = aType.String(); /* */ $s = 37; case 37: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $panic(new $String("bad type in compare: " + _r$18)); + /* } */ case 14: + case 1: + $s = -1; return 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: compare }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.a$1 = a$1; $f.a$2 = a$2; $f.a$3 = a$3; $f.a$4 = a$4; $f.a$5 = a$5; $f.aType = aType; $f.aVal = aVal; $f.ap = ap; $f.b = b; $f.b$1 = b$1; $f.b$2 = b$2; $f.b$3 = b$3; $f.b$4 = b$4; $f.b$5 = b$5; $f.bType = bType; $f.bVal = bVal; $f.bp = bp; $f.c = c; $f.c$1 = c$1; $f.c$2 = c$2; $f.c$3 = c$3; $f.c$4 = c$4; $f.c$5 = c$5; $f.i = i; $f.i$1 = i$1; $f.ok = ok; $f.ok$1 = ok$1; $f.$s = $s; $f.$r = $r; return $f; + }; + nilCompare = function(aVal, bVal) { + var aVal, bVal; + if ($clone(aVal, reflect.Value).IsNil()) { + if ($clone(bVal, reflect.Value).IsNil()) { + return [0, true]; + } + return [-1, true]; + } + if ($clone(bVal, reflect.Value).IsNil()) { + return [1, true]; + } + return [0, false]; + }; + floatCompare = function(a, b) { + var a, b; + if (isNaN(a)) { + return -1; + } else if (isNaN(b)) { + return 1; + } else if (a < b) { + return -1; + } else if (a > b) { + return 1; + } + return 0; + }; + isNaN = function(a) { + var a; + return !((a === a)); + }; + ptrType.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + SortedMap.init("", [{prop: "Key", name: "Key", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["io"] = (function() { + var $pkg = {}, $init, errors, sync, atomic, Writer, RuneScanner, sliceType, errWhence, errOffset; + errors = $packages["errors"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + Writer = $pkg.Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null); + RuneScanner = $pkg.RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null); + sliceType = $sliceType($Uint8); + Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrShortWrite = errors.New("short write"); + $pkg.ErrShortBuffer = errors.New("short buffer"); + $pkg.EOF = errors.New("EOF"); + $pkg.ErrUnexpectedEOF = errors.New("unexpected EOF"); + $pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error"); + errWhence = errors.New("Seek: invalid whence"); + errOffset = errors.New("Seek: invalid offset"); + $pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["syscall"] = (function() { + var $pkg = {}, $init, errors, js, race, runtime, sync, RawConn, SockaddrDatalink, mmapper, Errno, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, Timespec, Stat_t, RawSockaddrInet4, RawSockaddrInet6, RawSockaddrUnix, RawSockaddrDatalink, RawSockaddr, RawSockaddrAny, _Socklen, Linger, Iovec, IPMreq, IPv6Mreq, Msghdr, sliceType, sliceType$1, ptrType$2, arrayType, arrayType$1, ptrType$12, arrayType$3, arrayType$4, arrayType$5, arrayType$6, arrayType$10, ptrType$17, arrayType$11, ptrType$18, ptrType$19, structType, ptrType$21, ptrType$22, funcType, funcType$1, ptrType$28, mapType, funcType$2, funcType$3, ptrType$29, ptrType$30, ptrType$31, ptrType$32, arrayType$15, ptrType$33, warningPrinted, lineBuffer, syscallModule, alreadyTriedToLoad, minusOne, envs, execveDarwin, freebsdConfArch, minRoutingSockaddrLen, mapper, errEAGAIN, errEINVAL, errENOENT, ioSync, ioSync$24ptr, errors$1, init, printWarning, printToConsole, Exit, indexByte, funcPC, syscall, syscallX, syscall6, syscall6X, rawSyscall, runtime_envs, syscallByName, Syscall, Syscall6, RawSyscall, BytePtrFromString, readInt, readIntBE, readIntLE, ParseDirent, CloseOnExec, SetNonblock, msanRead, msanWrite, rsaAlignOf, itoa, uitoa, ReadDirent, anyToSockaddr, Accept, Recvmsg, SendmsgN, direntIno, direntReclen, direntNamlen, libc_getattrlist_trampoline, init$1, errnoErr, Read, Write, Recvfrom, Sendto, SetsockoptByte, SetsockoptInt, SetsockoptInet4Addr, SetsockoptIPMreq, SetsockoptIPv6Mreq, SetsockoptLinger, accept, libc_accept_trampoline, setsockopt, libc_setsockopt_trampoline, Shutdown, libc_shutdown_trampoline, recvfrom, libc_recvfrom_trampoline, sendto, libc_sendto_trampoline, recvmsg, libc_recvmsg_trampoline, sendmsg, libc_sendmsg_trampoline, fcntl, libc_fcntl_trampoline, libc_chdir_trampoline, Close, libc_close_trampoline, Dup, libc_dup_trampoline, Fchdir, libc_fchdir_trampoline, Fchmod, libc_fchmod_trampoline, Fchown, libc_fchown_trampoline, Ftruncate, libc_ftruncate_trampoline, libc_getgid_trampoline, libc_getpid_trampoline, libc_getuid_trampoline, libc_mkdir_trampoline, libc_open_trampoline, Pread, libc_pread_trampoline, Pwrite, libc_pwrite_trampoline, read, libc_read_trampoline, libc_readlink_trampoline, libc_rmdir_trampoline, Seek, libc_lseek_trampoline, libc_symlink_trampoline, libc_unlink_trampoline, write, libc_write_trampoline, mmap, libc_mmap_trampoline, munmap, libc_munmap_trampoline, execve, libc_execve_trampoline, Fstat, libc_fstat64_trampoline, Getdirentries, libc___getdirentries64_trampoline, Lstat, libc_lstat64_trampoline, libc_stat64_trampoline; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + RawConn = $pkg.RawConn = $newType(8, $kindInterface, "syscall.RawConn", true, "syscall", true, null); + SockaddrDatalink = $pkg.SockaddrDatalink = $newType(0, $kindStruct, "syscall.SockaddrDatalink", true, "syscall", true, function(Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Index = 0; + this.Type = 0; + this.Nlen = 0; + this.Alen = 0; + this.Slen = 0; + this.Data = arrayType$3.zero(); + this.raw = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Index = Index_; + this.Type = Type_; + this.Nlen = Nlen_; + this.Alen = Alen_; + this.Slen = Slen_; + this.Data = Data_; + this.raw = raw_; + }); + mmapper = $pkg.mmapper = $newType(0, $kindStruct, "syscall.mmapper", true, "syscall", false, function(Mutex_, active_, mmap_, munmap_) { + this.$val = this; + if (arguments.length === 0) { + this.Mutex = new sync.Mutex.ptr(0, 0); + this.active = false; + this.mmap = $throwNilPointerError; + this.munmap = $throwNilPointerError; + return; + } + this.Mutex = Mutex_; + this.active = active_; + this.mmap = mmap_; + this.munmap = munmap_; + }); + Errno = $pkg.Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null); + Sockaddr = $pkg.Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null); + SockaddrInet4 = $pkg.SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function(Port_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.Addr = arrayType$1.zero(); + this.raw = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()); + return; + } + this.Port = Port_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrInet6 = $pkg.SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function(Port_, ZoneId_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.ZoneId = 0; + this.Addr = arrayType.zero(); + this.raw = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0); + return; + } + this.Port = Port_; + this.ZoneId = ZoneId_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrUnix = $pkg.SockaddrUnix = $newType(0, $kindStruct, "syscall.SockaddrUnix", true, "syscall", true, function(Name_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.raw = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()); + return; + } + this.Name = Name_; + this.raw = raw_; + }); + Timespec = $pkg.Timespec = $newType(0, $kindStruct, "syscall.Timespec", true, "syscall", true, function(Sec_, Nsec_) { + this.$val = this; + if (arguments.length === 0) { + this.Sec = new $Int64(0, 0); + this.Nsec = new $Int64(0, 0); + return; + } + this.Sec = Sec_; + this.Nsec = Nsec_; + }); + Stat_t = $pkg.Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function(Dev_, Mode_, Nlink_, Ino_, Uid_, Gid_, Rdev_, Pad_cgo_0_, Atimespec_, Mtimespec_, Ctimespec_, Birthtimespec_, Size_, Blocks_, Blksize_, Flags_, Gen_, Lspare_, Qspare_) { + this.$val = this; + if (arguments.length === 0) { + this.Dev = 0; + this.Mode = 0; + this.Nlink = 0; + this.Ino = new $Uint64(0, 0); + this.Uid = 0; + this.Gid = 0; + this.Rdev = 0; + this.Pad_cgo_0 = arrayType$1.zero(); + this.Atimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Mtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Ctimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Birthtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Size = new $Int64(0, 0); + this.Blocks = new $Int64(0, 0); + this.Blksize = 0; + this.Flags = 0; + this.Gen = 0; + this.Lspare = 0; + this.Qspare = arrayType$15.zero(); + return; + } + this.Dev = Dev_; + this.Mode = Mode_; + this.Nlink = Nlink_; + this.Ino = Ino_; + this.Uid = Uid_; + this.Gid = Gid_; + this.Rdev = Rdev_; + this.Pad_cgo_0 = Pad_cgo_0_; + this.Atimespec = Atimespec_; + this.Mtimespec = Mtimespec_; + this.Ctimespec = Ctimespec_; + this.Birthtimespec = Birthtimespec_; + this.Size = Size_; + this.Blocks = Blocks_; + this.Blksize = Blksize_; + this.Flags = Flags_; + this.Gen = Gen_; + this.Lspare = Lspare_; + this.Qspare = Qspare_; + }); + RawSockaddrInet4 = $pkg.RawSockaddrInet4 = $newType(0, $kindStruct, "syscall.RawSockaddrInet4", true, "syscall", true, function(Len_, Family_, Port_, Addr_, Zero_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Port = 0; + this.Addr = arrayType$1.zero(); + this.Zero = arrayType$6.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Port = Port_; + this.Addr = Addr_; + this.Zero = Zero_; + }); + RawSockaddrInet6 = $pkg.RawSockaddrInet6 = $newType(0, $kindStruct, "syscall.RawSockaddrInet6", true, "syscall", true, function(Len_, Family_, Port_, Flowinfo_, Addr_, Scope_id_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Port = 0; + this.Flowinfo = 0; + this.Addr = arrayType.zero(); + this.Scope_id = 0; + return; + } + this.Len = Len_; + this.Family = Family_; + this.Port = Port_; + this.Flowinfo = Flowinfo_; + this.Addr = Addr_; + this.Scope_id = Scope_id_; + }); + RawSockaddrUnix = $pkg.RawSockaddrUnix = $newType(0, $kindStruct, "syscall.RawSockaddrUnix", true, "syscall", true, function(Len_, Family_, Path_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Path = arrayType$11.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Path = Path_; + }); + RawSockaddrDatalink = $pkg.RawSockaddrDatalink = $newType(0, $kindStruct, "syscall.RawSockaddrDatalink", true, "syscall", true, function(Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Index = 0; + this.Type = 0; + this.Nlen = 0; + this.Alen = 0; + this.Slen = 0; + this.Data = arrayType$3.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Index = Index_; + this.Type = Type_; + this.Nlen = Nlen_; + this.Alen = Alen_; + this.Slen = Slen_; + this.Data = Data_; + }); + RawSockaddr = $pkg.RawSockaddr = $newType(0, $kindStruct, "syscall.RawSockaddr", true, "syscall", true, function(Len_, Family_, Data_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Data = arrayType$4.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Data = Data_; + }); + RawSockaddrAny = $pkg.RawSockaddrAny = $newType(0, $kindStruct, "syscall.RawSockaddrAny", true, "syscall", true, function(Addr_, Pad_) { + this.$val = this; + if (arguments.length === 0) { + this.Addr = new RawSockaddr.ptr(0, 0, arrayType$4.zero()); + this.Pad = arrayType$5.zero(); + return; + } + this.Addr = Addr_; + this.Pad = Pad_; + }); + _Socklen = $pkg._Socklen = $newType(4, $kindUint32, "syscall._Socklen", true, "syscall", false, null); + Linger = $pkg.Linger = $newType(0, $kindStruct, "syscall.Linger", true, "syscall", true, function(Onoff_, Linger_) { + this.$val = this; + if (arguments.length === 0) { + this.Onoff = 0; + this.Linger = 0; + return; + } + this.Onoff = Onoff_; + this.Linger = Linger_; + }); + Iovec = $pkg.Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function(Base_, Len_) { + this.$val = this; + if (arguments.length === 0) { + this.Base = ptrType$2.nil; + this.Len = new $Uint64(0, 0); + return; + } + this.Base = Base_; + this.Len = Len_; + }); + IPMreq = $pkg.IPMreq = $newType(0, $kindStruct, "syscall.IPMreq", true, "syscall", true, function(Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType$1.zero(); + this.Interface = arrayType$1.zero(); + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + IPv6Mreq = $pkg.IPv6Mreq = $newType(0, $kindStruct, "syscall.IPv6Mreq", true, "syscall", true, function(Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType.zero(); + this.Interface = 0; + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + Msghdr = $pkg.Msghdr = $newType(0, $kindStruct, "syscall.Msghdr", true, "syscall", true, function(Name_, Namelen_, Pad_cgo_0_, Iov_, Iovlen_, Pad_cgo_1_, Control_, Controllen_, Flags_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ptrType$2.nil; + this.Namelen = 0; + this.Pad_cgo_0 = arrayType$1.zero(); + this.Iov = ptrType$19.nil; + this.Iovlen = 0; + this.Pad_cgo_1 = arrayType$1.zero(); + this.Control = ptrType$2.nil; + this.Controllen = 0; + this.Flags = 0; + return; + } + this.Name = Name_; + this.Namelen = Namelen_; + this.Pad_cgo_0 = Pad_cgo_0_; + this.Iov = Iov_; + this.Iovlen = Iovlen_; + this.Pad_cgo_1 = Pad_cgo_1_; + this.Control = Control_; + this.Controllen = Controllen_; + this.Flags = Flags_; + }); + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($String); + ptrType$2 = $ptrType($Uint8); + arrayType = $arrayType($Uint8, 16); + arrayType$1 = $arrayType($Uint8, 4); + ptrType$12 = $ptrType(SockaddrDatalink); + arrayType$3 = $arrayType($Int8, 12); + arrayType$4 = $arrayType($Int8, 14); + arrayType$5 = $arrayType($Int8, 92); + arrayType$6 = $arrayType($Int8, 8); + arrayType$10 = $arrayType($Uint8, 32); + ptrType$17 = $ptrType($Uint16); + arrayType$11 = $arrayType($Int8, 104); + ptrType$18 = $ptrType(_Socklen); + ptrType$19 = $ptrType(Iovec); + structType = $structType("syscall", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: $Int, tag: ""}]); + ptrType$21 = $ptrType($Int64); + ptrType$22 = $ptrType($Int32); + funcType = $funcType([$Uintptr], [], false); + funcType$1 = $funcType([$Uintptr], [$Bool], false); + ptrType$28 = $ptrType(mmapper); + mapType = $mapType(ptrType$2, sliceType); + funcType$2 = $funcType([$Uintptr, $Uintptr, $Int, $Int, $Int, $Int64], [$Uintptr, $error], false); + funcType$3 = $funcType([$Uintptr, $Uintptr], [$error], false); + ptrType$29 = $ptrType(SockaddrInet4); + ptrType$30 = $ptrType(SockaddrInet6); + ptrType$31 = $ptrType(SockaddrUnix); + ptrType$32 = $ptrType(Timespec); + arrayType$15 = $arrayType($Int64, 2); + ptrType$33 = $ptrType(Msghdr); + init = function() { + $flushConsole = (function() { + if (!((lineBuffer.$length === 0))) { + $global.console.log($externalize(($bytesToString(lineBuffer)), $String)); + lineBuffer = sliceType.nil; + } + }); + }; + printWarning = function() { + if (!warningPrinted) { + $global.console.error($externalize("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md", $String)); + } + warningPrinted = true; + }; + printToConsole = function(b) { + var b, goPrintToConsole, i; + goPrintToConsole = $global.goPrintToConsole; + if (!(goPrintToConsole === undefined)) { + goPrintToConsole(b); + return; + } + lineBuffer = $appendSlice(lineBuffer, b); + while (true) { + i = indexByte(lineBuffer, 10); + if (i === -1) { + break; + } + $global.console.log($externalize(($bytesToString($subslice(lineBuffer, 0, i))), $String)); + lineBuffer = $subslice(lineBuffer, (i + 1 >> 0)); + } + }; + Exit = function(code) { + var code; + Syscall(1, ((code >>> 0)), 0, 0); + }; + $pkg.Exit = Exit; + indexByte = function(s, c) { + var _i, _ref, b, c, i, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === c) { + return i; + } + _i++; + } + return -1; + }; + funcPC = function(f) { + var _1, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _1 = f; + /* */ if (_1 === (libc_open_trampoline)) { $s = 2; continue; } + /* */ if (_1 === (libc_stat64_trampoline)) { $s = 3; continue; } + /* */ if (_1 === (libc_fstat64_trampoline)) { $s = 4; continue; } + /* */ if (_1 === (libc_lstat64_trampoline)) { $s = 5; continue; } + /* */ if (_1 === (libc_mkdir_trampoline)) { $s = 6; continue; } + /* */ if (_1 === (libc_chdir_trampoline)) { $s = 7; continue; } + /* */ if (_1 === (libc_rmdir_trampoline)) { $s = 8; continue; } + /* */ if (_1 === (libc___getdirentries64_trampoline)) { $s = 9; continue; } + /* */ if (_1 === (libc_getattrlist_trampoline)) { $s = 10; continue; } + /* */ if (_1 === (libc_symlink_trampoline)) { $s = 11; continue; } + /* */ if (_1 === (libc_readlink_trampoline)) { $s = 12; continue; } + /* */ if (_1 === (libc_fcntl_trampoline)) { $s = 13; continue; } + /* */ if (_1 === (libc_read_trampoline)) { $s = 14; continue; } + /* */ if (_1 === (libc_pread_trampoline)) { $s = 15; continue; } + /* */ if (_1 === (libc_write_trampoline)) { $s = 16; continue; } + /* */ if (_1 === (libc_lseek_trampoline)) { $s = 17; continue; } + /* */ if (_1 === (libc_close_trampoline)) { $s = 18; continue; } + /* */ if (_1 === (libc_unlink_trampoline)) { $s = 19; continue; } + /* */ if (_1 === (libc_getpid_trampoline)) { $s = 20; continue; } + /* */ if (_1 === (libc_getuid_trampoline)) { $s = 21; continue; } + /* */ if (_1 === (libc_getgid_trampoline)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_1 === (libc_open_trampoline)) { */ case 2: + $s = -1; return 5; + /* } else if (_1 === (libc_stat64_trampoline)) { */ case 3: + $s = -1; return 338; + /* } else if (_1 === (libc_fstat64_trampoline)) { */ case 4: + $s = -1; return 339; + /* } else if (_1 === (libc_lstat64_trampoline)) { */ case 5: + $s = -1; return 340; + /* } else if (_1 === (libc_mkdir_trampoline)) { */ case 6: + $s = -1; return 136; + /* } else if (_1 === (libc_chdir_trampoline)) { */ case 7: + $s = -1; return 12; + /* } else if (_1 === (libc_rmdir_trampoline)) { */ case 8: + $s = -1; return 137; + /* } else if (_1 === (libc___getdirentries64_trampoline)) { */ case 9: + $s = -1; return 344; + /* } else if (_1 === (libc_getattrlist_trampoline)) { */ case 10: + $s = -1; return 220; + /* } else if (_1 === (libc_symlink_trampoline)) { */ case 11: + $s = -1; return 57; + /* } else if (_1 === (libc_readlink_trampoline)) { */ case 12: + $s = -1; return 58; + /* } else if (_1 === (libc_fcntl_trampoline)) { */ case 13: + $s = -1; return 92; + /* } else if (_1 === (libc_read_trampoline)) { */ case 14: + $s = -1; return 3; + /* } else if (_1 === (libc_pread_trampoline)) { */ case 15: + $s = -1; return 153; + /* } else if (_1 === (libc_write_trampoline)) { */ case 16: + $s = -1; return 4; + /* } else if (_1 === (libc_lseek_trampoline)) { */ case 17: + $s = -1; return 199; + /* } else if (_1 === (libc_close_trampoline)) { */ case 18: + $s = -1; return 6; + /* } else if (_1 === (libc_unlink_trampoline)) { */ case 19: + $s = -1; return 10; + /* } else if (_1 === (libc_getpid_trampoline)) { */ case 20: + $s = -1; return 20; + /* } else if (_1 === (libc_getuid_trampoline)) { */ case 21: + $s = -1; return 24; + /* } else if (_1 === (libc_getgid_trampoline)) { */ case 22: + $s = -1; return 47; + /* } else { */ case 23: + $r = f(); /* */ $s = 25; case 25: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return ((minusOne >>> 0)); + /* } */ case 24: + case 1: + $s = -1; return 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: funcPC }; } $f._1 = _1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + syscall = function(trap, a1, a2, a3) { + var _tuple, a1, a2, a3, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = Syscall(trap, a1, a2, a3); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + syscallX = function(trap, a1, a2, a3) { + var _tuple, a1, a2, a3, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = Syscall(trap, a1, a2, a3); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + syscall6 = function(trap, a1, a2, a3, a4, a5, a6) { + var _tuple, a1, a2, a3, a4, a5, a6, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = Syscall6(trap, a1, a2, a3, a4, a5, a6); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + syscall6X = function(trap, a1, a2, a3, a4, a5, a6) { + var a1, a2, a3, a4, a5, a6, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + $panic(new $String("syscall6X is not implemented")); + }; + rawSyscall = function(trap, a1, a2, a3) { + var _tuple, a1, a2, a3, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = RawSyscall(trap, a1, a2, a3); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + runtime_envs = function() { + var envkeys, envs$1, i, jsEnv, key, process; + process = $global.process; + if (process === undefined) { + return sliceType$1.nil; + } + jsEnv = process.env; + envkeys = $global.Object.keys(jsEnv); + envs$1 = $makeSlice(sliceType$1, $parseInt(envkeys.length)); + i = 0; + while (true) { + if (!(i < $parseInt(envkeys.length))) { break; } + key = $internalize(envkeys[i], $String); + ((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $internalize(jsEnv[$externalize(key, $String)], $String)); + i = i + (1) >> 0; + } + return envs$1; + }; + syscallByName = function(name) { + var name, require, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function() { + $recover(); + }), []]); + if (syscallModule === null) { + if (alreadyTriedToLoad) { + return null; + } + alreadyTriedToLoad = true; + require = $global.require; + if (require === undefined) { + $panic(new $String("")); + } + syscallModule = require($externalize("syscall", $String)); + } + return syscallModule[$externalize(name, $String)]; + /* */ } catch(err) { $err = err; return null; } finally { $callDeferred($deferred, $err); } + }; + Syscall = function(trap, a1, a2, a3) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, a1, a2, a3, array, err, f, r, r1, r2, slice, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscallByName("Syscall"); + if (!(f === null)) { + r = f(trap, a1, a2, a3); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if ((trap === 4) && ((a1 === 1) || (a1 === 2))) { + array = a2; + slice = $makeSlice(sliceType, $parseInt(array.length)); + slice.$array = array; + printToConsole(slice); + _tmp$3 = (($parseInt(array.length) >>> 0)); + _tmp$4 = 0; + _tmp$5 = 0; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + } + if (trap === 1) { + runtime.Goexit(); + } + printWarning(); + _tmp$6 = ((minusOne >>> 0)); + _tmp$7 = 0; + _tmp$8 = 13; + r1 = _tmp$6; + r2 = _tmp$7; + err = _tmp$8; + return [r1, r2, err]; + }; + $pkg.Syscall = Syscall; + Syscall6 = function(trap, a1, a2, a3, a4, a5, a6) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, a4, a5, a6, err, f, r, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscallByName("Syscall6"); + if (!(f === null)) { + r = f(trap, a1, a2, a3, a4, a5, a6); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if (!((trap === 202))) { + printWarning(); + } + _tmp$3 = ((minusOne >>> 0)); + _tmp$4 = 0; + _tmp$5 = 13; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + }; + $pkg.Syscall6 = Syscall6; + RawSyscall = function(trap, a1, a2, a3) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, err, f, r, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscallByName("Syscall"); + if (!(f === null)) { + r = f(trap, a1, a2, a3); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + printWarning(); + _tmp$3 = ((minusOne >>> 0)); + _tmp$4 = 0; + _tmp$5 = 13; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + }; + $pkg.RawSyscall = RawSyscall; + BytePtrFromString = function(s) { + var _i, _ref, array, b, i, s; + array = new ($global.Uint8Array)(s.length + 1 >> 0); + _ref = (new sliceType($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === 0) { + return [ptrType$2.nil, new Errno(22)]; + } + array[i] = b; + _i++; + } + array[s.length] = 0; + return [((array)), $ifaceNil]; + }; + $pkg.BytePtrFromString = BytePtrFromString; + readInt = function(b, off, size) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u; + u = new $Uint64(0, 0); + ok = false; + if (b.$length < (((off + size >>> 0) >> 0))) { + _tmp = new $Uint64(0, 0); + _tmp$1 = false; + u = _tmp; + ok = _tmp$1; + return [u, ok]; + } + if (false) { + _tmp$2 = readIntBE($subslice(b, off), size); + _tmp$3 = true; + u = _tmp$2; + ok = _tmp$3; + return [u, ok]; + } + _tmp$4 = readIntLE($subslice(b, off), size); + _tmp$5 = true; + u = _tmp$4; + ok = _tmp$5; + return [u, ok]; + }; + readIntBE = function(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + readIntLE = function(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + ParseDirent = function(buf, max, names) { + var _i, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, buf, c, consumed, count, i, ino, max, name, names, namlen, newnames, ok, origlen, rec, reclen, x, x$1, x$2; + consumed = 0; + count = 0; + newnames = sliceType$1.nil; + origlen = buf.$length; + count = 0; + while (true) { + if (!(!((max === 0)) && buf.$length > 0)) { break; } + _tuple = direntReclen(buf); + reclen = _tuple[0]; + ok = _tuple[1]; + if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) { + _tmp = origlen; + _tmp$1 = count; + _tmp$2 = names; + consumed = _tmp; + count = _tmp$1; + newnames = _tmp$2; + return [consumed, count, newnames]; + } + rec = $subslice(buf, 0, $flatten64(reclen)); + buf = $subslice(buf, $flatten64(reclen)); + _tuple$1 = direntIno(rec); + ino = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + break; + } + if ((ino.$high === 0 && ino.$low === 0)) { + continue; + } + _tuple$2 = direntNamlen(rec); + namlen = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 21 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + break; + } + name = $subslice(rec, 21, $flatten64(new $Uint64(0 + namlen.$high, 21 + namlen.$low))); + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (c === 0) { + name = $subslice(name, 0, i); + break; + } + _i++; + } + if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") { + continue; + } + max = max - (1) >> 0; + count = count + (1) >> 0; + names = $append(names, ($bytesToString(name))); + } + _tmp$3 = origlen - buf.$length >> 0; + _tmp$4 = count; + _tmp$5 = names; + consumed = _tmp$3; + count = _tmp$4; + newnames = _tmp$5; + return [consumed, count, newnames]; + }; + $pkg.ParseDirent = ParseDirent; + CloseOnExec = function(fd) { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = fcntl(fd, 2, 1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: CloseOnExec }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.CloseOnExec = CloseOnExec; + SetNonblock = function(fd, nonblocking) { + var _r, _r$1, _tuple, _tuple$1, err, fd, flag, nonblocking, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; fd = $f.fd; flag = $f.flag; nonblocking = $f.nonblocking; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = fcntl(fd, 3, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + flag = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + if (nonblocking) { + flag = flag | (4); + } else { + flag = (flag & ~(4)) >> 0; + } + _r$1 = fcntl(fd, 4, flag); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + err = _tuple$1[1]; + err = err; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetNonblock }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.fd = fd; $f.flag = flag; $f.nonblocking = nonblocking; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetNonblock = SetNonblock; + msanRead = function(addr, len) { + var addr, len; + }; + msanWrite = function(addr, len) { + var addr, len; + }; + rsaAlignOf = function(salen) { + var salen, salign; + salign = 8; + if (true) { + salign = 4; + } else if (false) { + salign = 8; + } else if (false) { + if (freebsdConfArch === "amd64") { + salign = 8; + } + } + if (salen === 0) { + return salign; + } + return (((salen + salign >> 0) - 1 >> 0)) & (~((salign - 1 >> 0)) >> 0); + }; + itoa = function(val) { + var val; + if (val < 0) { + return "-" + uitoa(((-val >>> 0))); + } + return uitoa(((val >>> 0))); + }; + uitoa = function(val) { + var _q, _r, buf, i, val; + buf = arrayType$10.zero(); + i = 31; + while (true) { + if (!(val >= 10)) { break; } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((_r = val % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + i = i - (1) >> 0; + val = (_q = val / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((val + 48 >>> 0) << 24 >>> 24))); + return ($bytesToString($subslice(new sliceType(buf), i))); + }; + Timespec.ptr.prototype.Unix = function() { + var _tmp, _tmp$1, nsec, sec, ts; + sec = new $Int64(0, 0); + nsec = new $Int64(0, 0); + ts = this; + _tmp = (ts.Sec); + _tmp$1 = (ts.Nsec); + sec = _tmp; + nsec = _tmp$1; + return [sec, nsec]; + }; + Timespec.prototype.Unix = function() { return this.$val.Unix(); }; + Timespec.ptr.prototype.Nano = function() { + var ts, x, x$1; + ts = this; + return (x = $mul64((ts.Sec), new $Int64(0, 1000000000)), x$1 = (ts.Nsec), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + Timespec.prototype.Nano = function() { return this.$val.Nano(); }; + ReadDirent = function(fd, buf) { + var _r, _tuple, base, buf, err, fd, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; base = $f.base; buf = $f.buf; err = $f.err; fd = $f.fd; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + base = ((new Uint8Array(8))); + _r = Getdirentries(fd, buf, base); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: ReadDirent }; } $f._r = _r; $f._tuple = _tuple; $f.base = base; $f.buf = buf; $f.err = err; $f.fd = fd; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ReadDirent = ReadDirent; + SockaddrInet4.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = 16; + sa.raw.Family = 2; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$17(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + i = 0; + while (true) { + if (!(i < 4)) { break; } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(16); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrInet4.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrInet6.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = 28; + sa.raw.Family = 30; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$17(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + sa.raw.Scope_id = sa.ZoneId; + i = 0; + while (true) { + if (!(i < 16)) { break; } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(28); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrInet6.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrUnix.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, n, name, sa, x; + sa = this; + name = sa.Name; + n = name.length; + if (n >= 104 || (n === 0)) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = (((3 + n >> 0) << 24 >>> 24)); + sa.raw.Family = 1; + i = 0; + while (true) { + if (!(i < n)) { break; } + (x = sa.raw.Path, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = ((name.charCodeAt(i) << 24 >> 24)))); + i = i + (1) >> 0; + } + _array = new Uint8Array(106); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrUnix.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrDatalink.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, sa, x, x$1; + sa = this; + if (sa.Index === 0) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = sa.Len; + sa.raw.Family = 18; + sa.raw.Index = sa.Index; + sa.raw.Type = sa.Type; + sa.raw.Nlen = sa.Nlen; + sa.raw.Alen = sa.Alen; + sa.raw.Slen = sa.Slen; + i = 0; + while (true) { + if (!(i < 12)) { break; } + (x$1 = sa.raw.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = sa.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(20); + return [(_array), 20, $ifaceNil]; + }; + SockaddrDatalink.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + anyToSockaddr = function(rsa) { + var _1, _array, _array$1, _array$2, _array$3, _array$4, _array$5, _array$6, _array$7, _struct, _struct$1, _struct$2, _struct$3, _struct$4, _struct$5, _struct$6, _struct$7, _view, _view$1, _view$2, _view$3, _view$4, _view$5, _view$6, _view$7, bytes, i, i$1, i$2, i$3, n, p, p$1, pp, pp$1, pp$2, pp$3, rsa, sa, sa$1, sa$2, sa$3, x, x$1, x$2, x$3, x$4, x$5, x$6; + _1 = rsa.Addr.Family; + if (_1 === (18)) { + _array$1 = new Uint8Array(108); + pp = ((_array = (_array$1), _struct = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Len = _view.getUint8(0, true), _struct.Family = _view.getUint8(1, true), _struct.Index = _view.getUint16(2, true), _struct.Type = _view.getUint8(4, true), _struct.Nlen = _view.getUint8(5, true), _struct.Alen = _view.getUint8(6, true), _struct.Slen = _view.getUint8(7, true), _struct.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct)); + _struct$1 = rsa, _view$1 = new DataView(_array$1.buffer, _array$1.byteOffset), _struct$1.Addr.Len = _view$1.getUint8(0, true), _struct$1.Addr.Family = _view$1.getUint8(1, true), _struct$1.Addr.Data = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 2, _array$1.buffer.byteLength)), _struct$1.Pad = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 16, _array$1.buffer.byteLength)); + sa = new SockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero(), new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero())); + sa.Len = pp.Len; + sa.Family = pp.Family; + sa.Index = pp.Index; + sa.Type = pp.Type; + sa.Nlen = pp.Nlen; + sa.Alen = pp.Alen; + sa.Slen = pp.Slen; + i = 0; + while (true) { + if (!(i < 12)) { break; } + (x$1 = sa.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = pp.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + return [sa, $ifaceNil]; + } else if (_1 === (1)) { + _array$3 = new Uint8Array(108); + pp$1 = ((_array$2 = (_array$3), _struct$2 = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()), _view$2 = new DataView(_array$2.buffer, _array$2.byteOffset), _struct$2.Len = _view$2.getUint8(0, true), _struct$2.Family = _view$2.getUint8(1, true), _struct$2.Path = new ($nativeArray($kindInt8))(_array$2.buffer, $min(_array$2.byteOffset + 2, _array$2.buffer.byteLength)), _struct$2)); + _struct$3 = rsa, _view$3 = new DataView(_array$3.buffer, _array$3.byteOffset), _struct$3.Addr.Len = _view$3.getUint8(0, true), _struct$3.Addr.Family = _view$3.getUint8(1, true), _struct$3.Addr.Data = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 2, _array$3.buffer.byteLength)), _struct$3.Pad = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 16, _array$3.buffer.byteLength)); + if (pp$1.Len < 2 || pp$1.Len > 106) { + return [$ifaceNil, new Errno(22)]; + } + sa$1 = new SockaddrUnix.ptr("", new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero())); + n = ((pp$1.Len >> 0)) - 2 >> 0; + i$1 = 0; + while (true) { + if (!(i$1 < n)) { break; } + if ((x$2 = pp$1.Path, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1])) === 0) { + n = i$1; + break; + } + i$1 = i$1 + (1) >> 0; + } + bytes = $subslice(new sliceType((($sliceToArray(new sliceType(pp$1.Path))))), 0, n); + sa$1.Name = ($bytesToString(bytes)); + return [sa$1, $ifaceNil]; + } else if (_1 === (2)) { + _array$5 = new Uint8Array(108); + pp$2 = ((_array$4 = (_array$5), _struct$4 = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()), _view$4 = new DataView(_array$4.buffer, _array$4.byteOffset), _struct$4.Len = _view$4.getUint8(0, true), _struct$4.Family = _view$4.getUint8(1, true), _struct$4.Port = _view$4.getUint16(2, true), _struct$4.Addr = new ($nativeArray($kindUint8))(_array$4.buffer, $min(_array$4.byteOffset + 4, _array$4.buffer.byteLength)), _struct$4.Zero = new ($nativeArray($kindInt8))(_array$4.buffer, $min(_array$4.byteOffset + 8, _array$4.buffer.byteLength)), _struct$4)); + _struct$5 = rsa, _view$5 = new DataView(_array$5.buffer, _array$5.byteOffset), _struct$5.Addr.Len = _view$5.getUint8(0, true), _struct$5.Addr.Family = _view$5.getUint8(1, true), _struct$5.Addr.Data = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 2, _array$5.buffer.byteLength)), _struct$5.Pad = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 16, _array$5.buffer.byteLength)); + sa$2 = new SockaddrInet4.ptr(0, arrayType$1.zero(), new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero())); + p = (((pp$2.$ptr_Port || (pp$2.$ptr_Port = new ptrType$17(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$2))))); + sa$2.Port = ((((p.nilCheck, p[0]) >> 0)) << 8 >> 0) + (((p.nilCheck, p[1]) >> 0)) >> 0; + i$2 = 0; + while (true) { + if (!(i$2 < 4)) { break; } + (x$4 = sa$2.Addr, ((i$2 < 0 || i$2 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[i$2] = (x$3 = pp$2.Addr, ((i$2 < 0 || i$2 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$2])))); + i$2 = i$2 + (1) >> 0; + } + return [sa$2, $ifaceNil]; + } else if (_1 === (30)) { + _array$7 = new Uint8Array(108); + pp$3 = ((_array$6 = (_array$7), _struct$6 = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0), _view$6 = new DataView(_array$6.buffer, _array$6.byteOffset), _struct$6.Len = _view$6.getUint8(0, true), _struct$6.Family = _view$6.getUint8(1, true), _struct$6.Port = _view$6.getUint16(2, true), _struct$6.Flowinfo = _view$6.getUint32(4, true), _struct$6.Addr = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 8, _array$6.buffer.byteLength)), _struct$6.Scope_id = _view$6.getUint32(24, true), _struct$6)); + _struct$7 = rsa, _view$7 = new DataView(_array$7.buffer, _array$7.byteOffset), _struct$7.Addr.Len = _view$7.getUint8(0, true), _struct$7.Addr.Family = _view$7.getUint8(1, true), _struct$7.Addr.Data = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 2, _array$7.buffer.byteLength)), _struct$7.Pad = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 16, _array$7.buffer.byteLength)); + sa$3 = new SockaddrInet6.ptr(0, 0, arrayType.zero(), new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0)); + p$1 = (((pp$3.$ptr_Port || (pp$3.$ptr_Port = new ptrType$17(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$3))))); + sa$3.Port = ((((p$1.nilCheck, p$1[0]) >> 0)) << 8 >> 0) + (((p$1.nilCheck, p$1[1]) >> 0)) >> 0; + sa$3.ZoneId = pp$3.Scope_id; + i$3 = 0; + while (true) { + if (!(i$3 < 16)) { break; } + (x$6 = sa$3.Addr, ((i$3 < 0 || i$3 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i$3] = (x$5 = pp$3.Addr, ((i$3 < 0 || i$3 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i$3])))); + i$3 = i$3 + (1) >> 0; + } + return [sa$3, $ifaceNil]; + } + return [$ifaceNil, new Errno(47)]; + }; + Accept = function(fd) { + var _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, fd, len, nfd, rsa, sa, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; fd = $f.fd; len = $f.len; nfd = $f.nfd; rsa = $f.rsa; sa = $f.sa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + len = [len]; + rsa = [rsa]; + nfd = 0; + sa = $ifaceNil; + err = $ifaceNil; + rsa[0] = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + len[0] = 108; + _r = accept(fd, rsa[0], (len.$ptr || (len.$ptr = new ptrType$18(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, len)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + nfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [nfd, sa, err]; + } + /* */ if (true && (len[0] === 0)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (true && (len[0] === 0)) { */ case 2: + _r$1 = Close(nfd); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _tmp = 0; + _tmp$1 = $ifaceNil; + _tmp$2 = new Errno(53); + nfd = _tmp; + sa = _tmp$1; + err = _tmp$2; + $s = -1; return [nfd, sa, err]; + /* } */ case 3: + _tuple$1 = anyToSockaddr(rsa[0]); + sa = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5: + _r$2 = Close(nfd); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + nfd = 0; + /* } */ case 6: + $s = -1; return [nfd, sa, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Accept }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.fd = fd; $f.len = len; $f.nfd = nfd; $f.rsa = rsa; $f.sa = sa; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Accept = Accept; + Recvmsg = function(fd, p, oob, flags) { + var _array, _r, _struct, _tuple, _tuple$1, _view, dummy, err, fd, flags, from, iov, msg, n, oob, oobn, p, recvflags, rsa, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _struct = $f._struct; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _view = $f._view; dummy = $f.dummy; err = $f.err; fd = $f.fd; flags = $f.flags; from = $f.from; iov = $f.iov; msg = $f.msg; n = $f.n; oob = $f.oob; oobn = $f.oobn; p = $f.p; recvflags = $f.recvflags; rsa = $f.rsa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + dummy = [dummy]; + iov = [iov]; + msg = [msg]; + rsa = [rsa]; + n = 0; + oobn = 0; + recvflags = 0; + from = $ifaceNil; + err = $ifaceNil; + msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$19.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); + rsa[0] = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + _array = new Uint8Array(108); + msg[0].Name = ((_array)); + _struct = rsa[0], _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + msg[0].Namelen = 108; + iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov[0].Base = (($sliceToArray(p))); + iov[0].SetLen(p.$length); + } + dummy[0] = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dummy))); + iov[0].SetLen(1); + } + msg[0].Control = (($sliceToArray(oob))); + msg[0].SetControllen(oob.$length); + } + msg[0].Iov = iov[0]; + msg[0].Iovlen = 1; + _r = recvmsg(fd, msg[0], flags); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [n, oobn, recvflags, from, err]; + } + oobn = ((msg[0].Controllen >> 0)); + recvflags = ((msg[0].Flags >> 0)); + if (!((rsa[0].Addr.Family === 0))) { + _tuple$1 = anyToSockaddr(rsa[0]); + from = _tuple$1[0]; + err = _tuple$1[1]; + } + $s = -1; return [n, oobn, recvflags, from, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Recvmsg }; } $f._array = _array; $f._r = _r; $f._struct = _struct; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._view = _view; $f.dummy = dummy; $f.err = err; $f.fd = fd; $f.flags = flags; $f.from = from; $f.iov = iov; $f.msg = msg; $f.n = n; $f.oob = oob; $f.oobn = oobn; $f.p = p; $f.recvflags = recvflags; $f.rsa = rsa; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Recvmsg = Recvmsg; + SendmsgN = function(fd, p, oob, to, flags) { + var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, dummy, err, fd, flags, iov, msg, n, oob, p, ptr, salen, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dummy = $f.dummy; err = $f.err; fd = $f.fd; flags = $f.flags; iov = $f.iov; msg = $f.msg; n = $f.n; oob = $f.oob; p = $f.p; ptr = $f.ptr; salen = $f.salen; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + dummy = [dummy]; + iov = [iov]; + msg = [msg]; + n = 0; + err = $ifaceNil; + ptr = 0; + salen = 0; + /* */ if (!($interfaceIsEqual(to, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(to, $ifaceNil))) { */ case 1: + _r = to.sockaddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ptr = _tuple[0]; + salen = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + /* } */ case 2: + msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$19.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); + msg[0].Name = ((ptr)); + msg[0].Namelen = ((salen >>> 0)); + iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov[0].Base = (($sliceToArray(p))); + iov[0].SetLen(p.$length); + } + dummy[0] = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dummy))); + iov[0].SetLen(1); + } + msg[0].Control = (($sliceToArray(oob))); + msg[0].SetControllen(oob.$length); + } + msg[0].Iov = iov[0]; + msg[0].Iovlen = 1; + _r$1 = sendmsg(fd, msg[0], flags); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = 0; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + if (oob.$length > 0 && (p.$length === 0)) { + n = 0; + } + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: SendmsgN }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dummy = dummy; $f.err = err; $f.fd = fd; $f.flags = flags; $f.iov = iov; $f.msg = msg; $f.n = n; $f.oob = oob; $f.p = p; $f.ptr = ptr; $f.salen = salen; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SendmsgN = SendmsgN; + direntIno = function(buf) { + var buf; + return readInt(buf, 0, 8); + }; + direntReclen = function(buf) { + var buf; + return readInt(buf, 16, 2); + }; + direntNamlen = function(buf) { + var buf; + return readInt(buf, 18, 2); + }; + libc_getattrlist_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_getattrlist_trampoline"); + }; + init$1 = function() { + execveDarwin = execve; + }; + Iovec.ptr.prototype.SetLen = function(length) { + var iov, length; + iov = this; + iov.Len = (new $Uint64(0, length)); + }; + Iovec.prototype.SetLen = function(length) { return this.$val.SetLen(length); }; + Msghdr.ptr.prototype.SetControllen = function(length) { + var length, msghdr; + msghdr = this; + msghdr.Controllen = ((length >>> 0)); + }; + Msghdr.prototype.SetControllen = function(length) { return this.$val.SetControllen(length); }; + mmapper.ptr.prototype.Mmap = function(fd, offset, length, prot, flags) { + var _key, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, addr, b, data, err, errno, fd, flags, length, m, offset, p, prot, sl, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; addr = $f.addr; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; fd = $f.fd; flags = $f.flags; length = $f.length; m = $f.m; offset = $f.offset; p = $f.p; prot = $f.prot; sl = $f.sl; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + sl = [sl]; + data = sliceType.nil; + err = $ifaceNil; + m = this; + if (length <= 0) { + _tmp = sliceType.nil; + _tmp$1 = new Errno(22); + data = _tmp; + err = _tmp$1; + $s = -1; return [data, err]; + } + _r = m.mmap(0, ((length >>> 0)), prot, flags, fd, offset); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + addr = _tuple[0]; + errno = _tuple[1]; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp$2 = sliceType.nil; + _tmp$3 = errno; + data = _tmp$2; + err = _tmp$3; + $s = -1; return [data, err]; + } + sl[0] = new structType.ptr(addr, length, length); + b = sl[0]; + p = $indexPtr(b.$array, b.$offset + (b.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + _key = p; (m.active || $throwRuntimeError("assignment to entry in nil map"))[ptrType$2.keyFor(_key)] = { k: _key, v: b }; + _tmp$4 = b; + _tmp$5 = $ifaceNil; + data = _tmp$4; + err = _tmp$5; + $s = -1; return [data, err]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [data, err]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Mmap }; } $f._key = _key; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.addr = addr; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.fd = fd; $f.flags = flags; $f.length = length; $f.m = m; $f.offset = offset; $f.p = p; $f.prot = prot; $f.sl = sl; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + mmapper.prototype.Mmap = function(fd, offset, length, prot, flags) { return this.$val.Mmap(fd, offset, length, prot, flags); }; + mmapper.ptr.prototype.Munmap = function(data) { + var _entry, _r, b, data, err, errno, m, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; m = $f.m; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + err = $ifaceNil; + m = this; + if ((data.$length === 0) || !((data.$length === data.$capacity))) { + err = new Errno(22); + $s = -1; return err; + } + p = $indexPtr(data.$array, data.$offset + (data.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + b = (_entry = m.active[ptrType$2.keyFor(p)], _entry !== undefined ? _entry.v : sliceType.nil); + if (b === sliceType.nil || !($indexPtr(b.$array, b.$offset + 0, ptrType$2) === $indexPtr(data.$array, data.$offset + 0, ptrType$2))) { + err = new Errno(22); + $s = -1; return err; + } + _r = m.munmap((($sliceToArray(b))), ((b.$length >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + errno = _r; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + err = errno; + $s = -1; return err; + } + delete m.active[ptrType$2.keyFor(p)]; + err = $ifaceNil; + $s = -1; return err; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Munmap }; } $f._entry = _entry; $f._r = _r; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.m = m; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + mmapper.prototype.Munmap = function(data) { return this.$val.Munmap(data); }; + Errno.prototype.Error = function() { + var e, s; + e = this.$val; + if (0 <= ((e >> 0)) && ((e >> 0)) < 106) { + s = ((e < 0 || e >= errors$1.length) ? ($throwRuntimeError("index out of range"), undefined) : errors$1[e]); + if (!(s === "")) { + return s; + } + } + return "errno " + itoa(((e >> 0))); + }; + $ptrType(Errno).prototype.Error = function() { return new Errno(this.$get()).Error(); }; + Errno.prototype.Temporary = function() { + var e; + e = this.$val; + return (e === 4) || (e === 24) || new Errno(e).Timeout(); + }; + $ptrType(Errno).prototype.Temporary = function() { return new Errno(this.$get()).Temporary(); }; + Errno.prototype.Timeout = function() { + var e; + e = this.$val; + return (e === 35) || (e === 35) || (e === 60); + }; + $ptrType(Errno).prototype.Timeout = function() { return new Errno(this.$get()).Timeout(); }; + errnoErr = function(e) { + var _1, e; + _1 = e; + if (_1 === (0)) { + return $ifaceNil; + } else if (_1 === (35)) { + return errEAGAIN; + } else if (_1 === (22)) { + return errEINVAL; + } else if (_1 === (2)) { + return errENOENT; + } + return new Errno(e); + }; + Read = function(fd, p) { + var _r, _tuple, err, fd, n, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; n = $f.n; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = read(fd, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (false) { + if (n > 0) { + race.WriteRange(($sliceToArray(p)), n); + } + if ($interfaceIsEqual(err, $ifaceNil)) { + race.Acquire(((ioSync$24ptr || (ioSync$24ptr = new ptrType$21(function() { return ioSync; }, function($v) { ioSync = $v; }))))); + } + } + if (false && n > 0) { + msanWrite(($sliceToArray(p)), n); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Read }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.n = n; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Read = Read; + Write = function(fd, p) { + var _r, _tuple, err, fd, n, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; n = $f.n; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + if (false) { + race.ReleaseMerge(((ioSync$24ptr || (ioSync$24ptr = new ptrType$21(function() { return ioSync; }, function($v) { ioSync = $v; }))))); + } + _r = write(fd, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (false && n > 0) { + race.ReadRange(($sliceToArray(p)), n); + } + if (false && n > 0) { + msanRead(($sliceToArray(p)), n); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Write }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.n = n; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Write = Write; + Recvfrom = function(fd, p, flags) { + var _r, _tuple, _tuple$1, err, fd, flags, from, len, n, p, rsa, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; fd = $f.fd; flags = $f.flags; from = $f.from; len = $f.len; n = $f.n; p = $f.p; rsa = $f.rsa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + len = [len]; + rsa = [rsa]; + n = 0; + from = $ifaceNil; + err = $ifaceNil; + rsa[0] = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + len[0] = 108; + _r = recvfrom(fd, p, flags, rsa[0], (len.$ptr || (len.$ptr = new ptrType$18(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, len)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [n, from, err]; + } + if (!((rsa[0].Addr.Family === 0))) { + _tuple$1 = anyToSockaddr(rsa[0]); + from = _tuple$1[0]; + err = _tuple$1[1]; + } + $s = -1; return [n, from, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Recvfrom }; } $f._r = _r; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.fd = fd; $f.flags = flags; $f.from = from; $f.len = len; $f.n = n; $f.p = p; $f.rsa = rsa; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Recvfrom = Recvfrom; + Sendto = function(fd, p, flags, to) { + var _r, _r$1, _tuple, err, fd, flags, n, p, ptr, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; fd = $f.fd; flags = $f.flags; n = $f.n; p = $f.p; ptr = $f.ptr; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = to.sockaddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ptr = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + _r$1 = sendto(fd, p, flags, ptr, n); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sendto }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.flags = flags; $f.n = n; $f.p = p; $f.ptr = ptr; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sendto = Sendto; + SetsockoptByte = function(fd, level, opt, value) { + var _r, err, fd, level, opt, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; level = $f.level; opt = $f.opt; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + value = [value]; + err = $ifaceNil; + _r = setsockopt(fd, level, opt, ((value.$ptr || (value.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, value)))), 1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetsockoptByte }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.level = level; $f.opt = opt; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetsockoptByte = SetsockoptByte; + SetsockoptInt = function(fd, level, opt, value) { + var _r, err, fd, level, n, opt, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; level = $f.level; n = $f.n; opt = $f.opt; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = [n]; + err = $ifaceNil; + n[0] = ((value >> 0)); + _r = setsockopt(fd, level, opt, ((n.$ptr || (n.$ptr = new ptrType$22(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, n)))), 4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetsockoptInt }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.level = level; $f.n = n; $f.opt = opt; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetsockoptInt = SetsockoptInt; + SetsockoptInet4Addr = function(fd, level, opt, value) { + var _r, err, fd, level, opt, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; level = $f.level; opt = $f.opt; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = setsockopt(fd, level, opt, ($sliceToArray(new sliceType(value))), 4); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetsockoptInet4Addr }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.level = level; $f.opt = opt; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetsockoptInet4Addr = SetsockoptInet4Addr; + SetsockoptIPMreq = function(fd, level, opt, mreq) { + var _array, _r, _struct, _view, err, fd, level, mreq, opt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _struct = $f._struct; _view = $f._view; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; opt = $f.opt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _array = new Uint8Array(8); + _r = setsockopt(fd, level, opt, (_array), 8); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength)); + err = _r; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetsockoptIPMreq }; } $f._array = _array; $f._r = _r; $f._struct = _struct; $f._view = _view; $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.opt = opt; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetsockoptIPMreq = SetsockoptIPMreq; + SetsockoptIPv6Mreq = function(fd, level, opt, mreq) { + var _array, _r, _struct, _view, err, fd, level, mreq, opt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _struct = $f._struct; _view = $f._view; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; opt = $f.opt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _array = new Uint8Array(20); + _r = setsockopt(fd, level, opt, (_array), 20); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = _view.getUint32(16, true); + err = _r; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetsockoptIPv6Mreq }; } $f._array = _array; $f._r = _r; $f._struct = _struct; $f._view = _view; $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.opt = opt; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetsockoptIPv6Mreq = SetsockoptIPv6Mreq; + SetsockoptLinger = function(fd, level, opt, l) { + var _array, _r, _struct, _view, err, fd, l, level, opt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _struct = $f._struct; _view = $f._view; err = $f.err; fd = $f.fd; l = $f.l; level = $f.level; opt = $f.opt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _array = new Uint8Array(8); + _r = setsockopt(fd, level, opt, (_array), 8); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _struct = l, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Onoff = _view.getInt32(0, true), _struct.Linger = _view.getInt32(4, true); + err = _r; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: SetsockoptLinger }; } $f._array = _array; $f._r = _r; $f._struct = _struct; $f._view = _view; $f.err = err; $f.fd = fd; $f.l = l; $f.level = level; $f.opt = opt; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SetsockoptLinger = SetsockoptLinger; + accept = function(s, rsa, addrlen) { + var _array, _r, _r$1, _struct, _tuple, _view, addrlen, e1, err, fd, r0, rsa, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _r$1 = $f._r$1; _struct = $f._struct; _tuple = $f._tuple; _view = $f._view; addrlen = $f.addrlen; e1 = $f.e1; err = $f.err; fd = $f.fd; r0 = $f.r0; rsa = $f.rsa; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = 0; + err = $ifaceNil; + _r = funcPC(libc_accept_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _array = new Uint8Array(108); + _r$1 = syscall(_r, ((s >>> 0)), ((_array)), ((addrlen))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + fd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [fd, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: accept }; } $f._array = _array; $f._r = _r; $f._r$1 = _r$1; $f._struct = _struct; $f._tuple = _tuple; $f._view = _view; $f.addrlen = addrlen; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.r0 = r0; $f.rsa = rsa; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_accept_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_accept_trampoline"); + }; + setsockopt = function(s, level, name, val, vallen) { + var _r, _r$1, _tuple, e1, err, level, name, s, val, vallen, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; level = $f.level; name = $f.name; s = $f.s; val = $f.val; vallen = $f.vallen; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_setsockopt_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall6(_r, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), (vallen), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: setsockopt }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.level = level; $f.name = name; $f.s = s; $f.val = val; $f.vallen = vallen; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_setsockopt_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_setsockopt_trampoline"); + }; + Shutdown = function(s, how) { + var _r, _r$1, _tuple, e1, err, how, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; how = $f.how; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_shutdown_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((s >>> 0)), ((how >>> 0)), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Shutdown }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.how = how; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Shutdown = Shutdown; + libc_shutdown_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_shutdown_trampoline"); + }; + recvfrom = function(fd, p, flags, from, fromlen) { + var _array, _p0, _r, _r$1, _struct, _tuple, _view, e1, err, fd, flags, from, fromlen, n, p, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _struct = $f._struct; _tuple = $f._tuple; _view = $f._view; e1 = $f.e1; err = $f.err; fd = $f.fd; flags = $f.flags; from = $f.from; fromlen = $f.fromlen; n = $f.n; p = $f.p; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_recvfrom_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _array = new Uint8Array(108); + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((flags >>> 0)), ((_array)), ((fromlen))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _struct = from, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: recvfrom }; } $f._array = _array; $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._struct = _struct; $f._tuple = _tuple; $f._view = _view; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.flags = flags; $f.from = from; $f.fromlen = fromlen; $f.n = n; $f.p = p; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_recvfrom_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_recvfrom_trampoline"); + }; + sendto = function(s, buf, flags, to, addrlen) { + var _p0, _r, _r$1, _tuple, addrlen, buf, e1, err, flags, s, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; addrlen = $f.addrlen; buf = $f.buf; e1 = $f.e1; err = $f.err; flags = $f.flags; s = $f.s; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_sendto_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall6(_r, ((s >>> 0)), (_p0), ((buf.$length >>> 0)), ((flags >>> 0)), (to), ((addrlen >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: sendto }; } $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.addrlen = addrlen; $f.buf = buf; $f.e1 = e1; $f.err = err; $f.flags = flags; $f.s = s; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_sendto_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_sendto_trampoline"); + }; + recvmsg = function(s, msg, flags) { + var _array, _r, _r$1, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _r$1 = $f._r$1; _struct = $f._struct; _tuple = $f._tuple; _view = $f._view; e1 = $f.e1; err = $f.err; flags = $f.flags; msg = $f.msg; n = $f.n; r0 = $f.r0; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = funcPC(libc_recvmsg_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _array = new Uint8Array(36); + _r$1 = syscall(_r, ((s >>> 0)), ((_array)), ((flags >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: recvmsg }; } $f._array = _array; $f._r = _r; $f._r$1 = _r$1; $f._struct = _struct; $f._tuple = _tuple; $f._view = _view; $f.e1 = e1; $f.err = err; $f.flags = flags; $f.msg = msg; $f.n = n; $f.r0 = r0; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_recvmsg_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_recvmsg_trampoline"); + }; + sendmsg = function(s, msg, flags) { + var _array, _r, _r$1, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _r$1 = $f._r$1; _struct = $f._struct; _tuple = $f._tuple; _view = $f._view; e1 = $f.e1; err = $f.err; flags = $f.flags; msg = $f.msg; n = $f.n; r0 = $f.r0; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = funcPC(libc_sendmsg_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _array = new Uint8Array(36); + _r$1 = syscall(_r, ((s >>> 0)), ((_array)), ((flags >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: sendmsg }; } $f._array = _array; $f._r = _r; $f._r$1 = _r$1; $f._struct = _struct; $f._tuple = _tuple; $f._view = _view; $f.e1 = e1; $f.err = err; $f.flags = flags; $f.msg = msg; $f.n = n; $f.r0 = r0; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_sendmsg_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_sendmsg_trampoline"); + }; + fcntl = function(fd, cmd, arg) { + var _r, _r$1, _tuple, arg, cmd, e1, err, fd, r0, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; arg = $f.arg; cmd = $f.cmd; e1 = $f.e1; err = $f.err; fd = $f.fd; r0 = $f.r0; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + val = 0; + err = $ifaceNil; + _r = funcPC(libc_fcntl_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), ((cmd >>> 0)), ((arg >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + val = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [val, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: fcntl }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.arg = arg; $f.cmd = cmd; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.r0 = r0; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_fcntl_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_fcntl_trampoline"); + }; + libc_chdir_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_chdir_trampoline"); + }; + Close = function(fd) { + var _r, _r$1, _tuple, e1, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_close_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), 0, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Close }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Close = Close; + libc_close_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_close_trampoline"); + }; + Dup = function(fd) { + var _r, _r$1, _tuple, e1, err, fd, nfd, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; nfd = $f.nfd; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + nfd = 0; + err = $ifaceNil; + _r = funcPC(libc_dup_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), 0, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + nfd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [nfd, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Dup }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.nfd = nfd; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Dup = Dup; + libc_dup_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_dup_trampoline"); + }; + Fchdir = function(fd) { + var _r, _r$1, _tuple, e1, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_fchdir_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), 0, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fchdir }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fchdir = Fchdir; + libc_fchdir_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_fchdir_trampoline"); + }; + Fchmod = function(fd, mode) { + var _r, _r$1, _tuple, e1, err, fd, mode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_fchmod_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), ((mode >>> 0)), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fchmod }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fchmod = Fchmod; + libc_fchmod_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_fchmod_trampoline"); + }; + Fchown = function(fd, uid, gid) { + var _r, _r$1, _tuple, e1, err, fd, gid, uid, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; gid = $f.gid; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_fchown_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), ((uid >>> 0)), ((gid >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fchown }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fchown = Fchown; + libc_fchown_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_fchown_trampoline"); + }; + Ftruncate = function(fd, length) { + var _r, _r$1, _tuple, e1, err, fd, length, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; length = $f.length; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_ftruncate_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), ((length.$low >>> 0)), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Ftruncate }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.length = length; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Ftruncate = Ftruncate; + libc_ftruncate_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_ftruncate_trampoline"); + }; + libc_getgid_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_getgid_trampoline"); + }; + libc_getpid_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_getpid_trampoline"); + }; + libc_getuid_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_getuid_trampoline"); + }; + libc_mkdir_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_mkdir_trampoline"); + }; + libc_open_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_open_trampoline"); + }; + Pread = function(fd, p, offset) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, offset, p, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; n = $f.n; offset = $f.offset; p = $f.p; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_pread_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Pread }; } $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.n = n; $f.offset = offset; $f.p = p; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Pread = Pread; + libc_pread_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_pread_trampoline"); + }; + Pwrite = function(fd, p, offset) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, offset, p, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; n = $f.n; offset = $f.offset; p = $f.p; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_pwrite_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Pwrite }; } $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.n = n; $f.offset = offset; $f.p = p; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Pwrite = Pwrite; + libc_pwrite_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_pwrite_trampoline"); + }; + read = function(fd, p) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, p, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; n = $f.n; p = $f.p; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_read_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: read }; } $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.n = n; $f.p = p; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_read_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_read_trampoline"); + }; + libc_readlink_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_readlink_trampoline"); + }; + libc_rmdir_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_rmdir_trampoline"); + }; + Seek = function(fd, offset, whence) { + var _r, _r$1, _tuple, e1, err, fd, newoffset, offset, r0, whence, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; newoffset = $f.newoffset; offset = $f.offset; r0 = $f.r0; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + newoffset = new $Int64(0, 0); + err = $ifaceNil; + _r = funcPC(libc_lseek_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscallX(_r, ((fd >>> 0)), ((offset.$low >>> 0)), ((whence >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + newoffset = (new $Int64(0, r0.constructor === Number ? r0 : 1)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [newoffset, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Seek }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.newoffset = newoffset; $f.offset = offset; $f.r0 = r0; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Seek = Seek; + libc_lseek_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_lseek_trampoline"); + }; + libc_symlink_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_symlink_trampoline"); + }; + libc_unlink_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_unlink_trampoline"); + }; + write = function(fd, p) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, p, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; n = $f.n; p = $f.p; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_write_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: write }; } $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.n = n; $f.p = p; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_write_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_write_trampoline"); + }; + mmap = function(addr, length, prot, flag, fd, pos) { + var _r, _r$1, _tuple, addr, e1, err, fd, flag, length, pos, prot, r0, ret, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; addr = $f.addr; e1 = $f.e1; err = $f.err; fd = $f.fd; flag = $f.flag; length = $f.length; pos = $f.pos; prot = $f.prot; r0 = $f.r0; ret = $f.ret; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ret = 0; + err = $ifaceNil; + _r = funcPC(libc_mmap_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall6X(_r, (addr), (length), ((prot >>> 0)), ((flag >>> 0)), ((fd >>> 0)), ((pos.$low >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + ret = (r0); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [ret, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: mmap }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.addr = addr; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.flag = flag; $f.length = length; $f.pos = pos; $f.prot = prot; $f.r0 = r0; $f.ret = ret; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_mmap_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_mmap_trampoline"); + }; + munmap = function(addr, length) { + var _r, _r$1, _tuple, addr, e1, err, length, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; addr = $f.addr; e1 = $f.e1; err = $f.err; length = $f.length; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_munmap_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall(_r, (addr), (length), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: munmap }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.addr = addr; $f.e1 = e1; $f.err = err; $f.length = length; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_munmap_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_munmap_trampoline"); + }; + execve = function(path, argv, envp) { + var _r, _r$1, _tuple, argv, e1, envp, err, path, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; argv = $f.argv; e1 = $f.e1; envp = $f.envp; err = $f.err; path = $f.path; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_execve_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = rawSyscall(_r, ((path)), ((argv)), ((envp))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: execve }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.argv = argv; $f.e1 = e1; $f.envp = envp; $f.err = err; $f.path = path; $f.$s = $s; $f.$r = $r; return $f; + }; + libc_execve_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_execve_trampoline"); + }; + Fstat = function(fd, stat) { + var _array, _r, _r$1, _struct, _tuple, _view, e1, err, fd, stat, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _r = $f._r; _r$1 = $f._r$1; _struct = $f._struct; _tuple = $f._tuple; _view = $f._view; e1 = $f.e1; err = $f.err; fd = $f.fd; stat = $f.stat; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = funcPC(libc_fstat64_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _array = new Uint8Array(144); + _r$1 = syscall(_r, ((fd >>> 0)), ((_array)), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fstat }; } $f._array = _array; $f._r = _r; $f._r$1 = _r$1; $f._struct = _struct; $f._tuple = _tuple; $f._view = _view; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.stat = stat; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fstat = Fstat; + libc_fstat64_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_fstat64_trampoline"); + }; + Getdirentries = function(fd, buf, basep) { + var _p0, _r, _r$1, _tuple, basep, buf, e1, err, fd, n, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; basep = $f.basep; buf = $f.buf; e1 = $f.e1; err = $f.err; fd = $f.fd; n = $f.n; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc___getdirentries64_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((buf.$length >>> 0)), ((basep)), 0, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Getdirentries }; } $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.basep = basep; $f.buf = buf; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.n = n; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Getdirentries = Getdirentries; + libc___getdirentries64_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc___getdirentries64_trampoline"); + }; + Lstat = function(path, stat) { + var _array, _p0, _r, _r$1, _struct, _tuple, _tuple$1, _view, e1, err, path, stat, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _array = $f._array; _p0 = $f._p0; _r = $f._r; _r$1 = $f._r$1; _struct = $f._struct; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _view = $f._view; e1 = $f.e1; err = $f.err; path = $f.path; stat = $f.stat; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _p0 = ptrType$2.nil; + _tuple = BytePtrFromString(path); + _p0 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = funcPC(libc_lstat64_trampoline); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _array = new Uint8Array(144); + _r$1 = syscall(_r, ((_p0)), ((_array)), 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); + _tuple$1 = _r$1; + e1 = _tuple$1[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Lstat }; } $f._array = _array; $f._p0 = _p0; $f._r = _r; $f._r$1 = _r$1; $f._struct = _struct; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._view = _view; $f.e1 = e1; $f.err = err; $f.path = path; $f.stat = stat; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Lstat = Lstat; + libc_lstat64_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_lstat64_trampoline"); + }; + libc_stat64_trampoline = function() { + $throwRuntimeError("native function not implemented: syscall.libc_stat64_trampoline"); + }; + ptrType$12.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$28.methods = [{prop: "Mmap", name: "Mmap", pkg: "", typ: $funcType([$Int, $Int64, $Int, $Int, $Int], [sliceType, $error], false)}, {prop: "Munmap", name: "Munmap", pkg: "", typ: $funcType([sliceType], [$error], false)}]; + Errno.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$29.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$30.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$31.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$32.methods = [{prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64, $Int64], false)}, {prop: "Nano", name: "Nano", pkg: "", typ: $funcType([], [$Int64], false)}]; + ptrType$19.methods = [{prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}]; + ptrType$33.methods = [{prop: "SetControllen", name: "SetControllen", pkg: "", typ: $funcType([$Int], [], false)}]; + RawConn.init([{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$1], [$error], false)}]); + SockaddrDatalink.init("syscall", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Nlen", name: "Nlen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Alen", name: "Alen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Slen", name: "Slen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$3, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrDatalink, tag: ""}]); + mmapper.init("syscall", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "active", name: "active", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "mmap", name: "mmap", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "munmap", name: "munmap", embedded: false, exported: false, typ: funcType$3, tag: ""}]); + Sockaddr.init([{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]); + SockaddrInet4.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet4, tag: ""}]); + SockaddrInet6.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ZoneId", name: "ZoneId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet6, tag: ""}]); + SockaddrUnix.init("syscall", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrUnix, tag: ""}]); + Timespec.init("", [{prop: "Sec", name: "Sec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Nsec", name: "Nsec", embedded: false, exported: true, typ: $Int64, tag: ""}]); + Stat_t.init("", [{prop: "Dev", name: "Dev", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Nlink", name: "Nlink", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Ino", name: "Ino", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Uid", name: "Uid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gid", name: "Gid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rdev", name: "Rdev", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Atimespec", name: "Atimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Mtimespec", name: "Mtimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Ctimespec", name: "Ctimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Birthtimespec", name: "Birthtimespec", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blocks", name: "Blocks", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blksize", name: "Blksize", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gen", name: "Gen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Lspare", name: "Lspare", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Qspare", name: "Qspare", embedded: false, exported: true, typ: arrayType$15, tag: ""}]); + RawSockaddrInet4.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Zero", name: "Zero", embedded: false, exported: true, typ: arrayType$6, tag: ""}]); + RawSockaddrInet6.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flowinfo", name: "Flowinfo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Scope_id", name: "Scope_id", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + RawSockaddrUnix.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: arrayType$11, tag: ""}]); + RawSockaddrDatalink.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Nlen", name: "Nlen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Alen", name: "Alen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Slen", name: "Slen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$3, tag: ""}]); + RawSockaddr.init("", [{prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$4, tag: ""}]); + RawSockaddrAny.init("", [{prop: "Addr", name: "Addr", embedded: false, exported: true, typ: RawSockaddr, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: arrayType$5, tag: ""}]); + Linger.init("", [{prop: "Onoff", name: "Onoff", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Linger", name: "Linger", embedded: false, exported: true, typ: $Int32, tag: ""}]); + Iovec.init("", [{prop: "Base", name: "Base", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint64, tag: ""}]); + IPMreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: arrayType$1, tag: ""}]); + IPv6Mreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + Msghdr.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Namelen", name: "Namelen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Iov", name: "Iov", embedded: false, exported: true, typ: ptrType$19, tag: ""}, {prop: "Iovlen", name: "Iovlen", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_1", name: "Pad_cgo_1", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Control", name: "Control", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Controllen", name: "Controllen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Int32, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = race.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lineBuffer = sliceType.nil; + syscallModule = null; + $pkg.ForkLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0); + execveDarwin = $throwNilPointerError; + freebsdConfArch = ""; + ioSync = new $Int64(0, 0); + warningPrinted = false; + alreadyTriedToLoad = false; + minusOne = -1; + envs = runtime_envs(); + $pkg.Stdin = 0; + $pkg.Stdout = 1; + $pkg.Stderr = 2; + errEAGAIN = new Errno(35); + errEINVAL = new Errno(22); + errENOENT = new Errno(2); + errors$1 = $toNativeArray($kindString, ["", "operation not permitted", "no such file or directory", "no such process", "interrupted system call", "input/output error", "device not configured", "argument list too long", "exec format error", "bad file descriptor", "no child processes", "resource deadlock avoided", "cannot allocate memory", "permission denied", "bad address", "block device required", "resource busy", "file exists", "cross-device link", "operation not supported by device", "not a directory", "is a directory", "invalid argument", "too many open files in system", "too many open files", "inappropriate ioctl for device", "text file busy", "file too large", "no space left on device", "illegal seek", "read-only file system", "too many links", "broken pipe", "numerical argument out of domain", "result too large", "resource temporarily unavailable", "operation now in progress", "operation already in progress", "socket operation on non-socket", "destination address required", "message too long", "protocol wrong type for socket", "protocol not available", "protocol not supported", "socket type not supported", "operation not supported", "protocol family not supported", "address family not supported by protocol family", "address already in use", "can't assign requested address", "network is down", "network is unreachable", "network dropped connection on reset", "software caused connection abort", "connection reset by peer", "no buffer space available", "socket is already connected", "socket is not connected", "can't send after socket shutdown", "too many references: can't splice", "operation timed out", "connection refused", "too many levels of symbolic links", "file name too long", "host is down", "no route to host", "directory not empty", "too many processes", "too many users", "disc quota exceeded", "stale NFS file handle", "too many levels of remote in path", "RPC struct is bad", "RPC version wrong", "RPC prog. not avail", "program version wrong", "bad procedure for program", "no locks available", "function not implemented", "inappropriate file type or format", "authentication error", "need authenticator", "device power is off", "device error", "value too large to be stored in data type", "bad executable (or shared library)", "bad CPU type in executable", "shared library version mismatch", "malformed Mach-o file", "operation canceled", "identifier removed", "no message of desired type", "illegal byte sequence", "attribute not found", "bad message", "EMULTIHOP (Reserved)", "no message available on STREAM", "ENOLINK (Reserved)", "no STREAM resources", "not a STREAM", "protocol error", "STREAM ioctl timeout", "operation not supported on socket", "policy not found", "state not recoverable", "previous owner died"]); + mapper = new mmapper.ptr(new sync.Mutex.ptr(0, 0), {}, mmap, munmap); + minRoutingSockaddrLen = rsaAlignOf(0); + init(); + init$1(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/nosync"] = (function() { + var $pkg = {}, $init, Once, funcType$1, ptrType$4; + Once = $pkg.Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function(doing_, done_) { + this.$val = this; + if (arguments.length === 0) { + this.doing = false; + this.done = false; + return; + } + this.doing = doing_; + this.done = done_; + }); + funcType$1 = $funcType([], [], false); + ptrType$4 = $ptrType(Once); + Once.ptr.prototype.Do = function(f) { + var f, o, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; o = $f.o; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + o = [o]; + o[0] = this; + if (o[0].done) { + $s = -1; return; + } + if (o[0].doing) { + $panic(new $String("nosync: Do called within f")); + } + o[0].doing = true; + $deferred.push([(function(o) { return function() { + o[0].doing = false; + o[0].done = true; + }; })(o), []]); + $r = f(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Once.ptr.prototype.Do }; } $f.f = f; $f.o = o; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + Once.prototype.Do = function(f) { return this.$val.Do(f); }; + ptrType$4.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false)}]; + Once.init("github.com/gopherjs/gopherjs/nosync", [{prop: "doing", name: "doing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["time"] = (function() { + var $pkg = {}, $init, errors, js, nosync, runtime, syscall, ParseError, Time, Month, Weekday, Duration, Location, zone, zoneTrans, sliceType, sliceType$1, ptrType, sliceType$2, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, arrayType$3, ptrType$4, ptrType$7, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, unitMap, months, days, daysBefore, startNano, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, x, init, initLocal, runtimeNano, indexByte, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, parseNanoseconds, leadingInt, leadingFraction, ParseDuration, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, unixTime, Unix, isLeap, norm, Date, div, FixedZone; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + runtime = $packages["runtime"]; + syscall = $packages["syscall"]; + ParseError = $pkg.ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function(Layout_, Value_, LayoutElem_, ValueElem_, Message_) { + this.$val = this; + if (arguments.length === 0) { + this.Layout = ""; + this.Value = ""; + this.LayoutElem = ""; + this.ValueElem = ""; + this.Message = ""; + return; + } + this.Layout = Layout_; + this.Value = Value_; + this.LayoutElem = LayoutElem_; + this.ValueElem = ValueElem_; + this.Message = Message_; + }); + Time = $pkg.Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function(wall_, ext_, loc_) { + this.$val = this; + if (arguments.length === 0) { + this.wall = new $Uint64(0, 0); + this.ext = new $Int64(0, 0); + this.loc = ptrType$2.nil; + return; + } + this.wall = wall_; + this.ext = ext_; + this.loc = loc_; + }); + Month = $pkg.Month = $newType(4, $kindInt, "time.Month", true, "time", true, null); + Weekday = $pkg.Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null); + Duration = $pkg.Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null); + Location = $pkg.Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function(name_, zone_, tx_, cacheStart_, cacheEnd_, cacheZone_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.zone = sliceType.nil; + this.tx = sliceType$1.nil; + this.cacheStart = new $Int64(0, 0); + this.cacheEnd = new $Int64(0, 0); + this.cacheZone = ptrType.nil; + return; + } + this.name = name_; + this.zone = zone_; + this.tx = tx_; + this.cacheStart = cacheStart_; + this.cacheEnd = cacheEnd_; + this.cacheZone = cacheZone_; + }); + zone = $pkg.zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function(name_, offset_, isDST_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.offset = 0; + this.isDST = false; + return; + } + this.name = name_; + this.offset = offset_; + this.isDST = isDST_; + }); + zoneTrans = $pkg.zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function(when_, index_, isstd_, isutc_) { + this.$val = this; + if (arguments.length === 0) { + this.when = new $Int64(0, 0); + this.index = 0; + this.isstd = false; + this.isutc = false; + return; + } + this.when = when_; + this.index = index_; + this.isstd = isstd_; + this.isutc = isutc_; + }); + sliceType = $sliceType(zone); + sliceType$1 = $sliceType(zoneTrans); + ptrType = $ptrType(zone); + sliceType$2 = $sliceType($String); + arrayType = $arrayType($Uint8, 20); + sliceType$3 = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 9); + arrayType$2 = $arrayType($Uint8, 64); + ptrType$2 = $ptrType(Location); + arrayType$3 = $arrayType($Uint8, 32); + ptrType$4 = $ptrType(ParseError); + ptrType$7 = $ptrType(Time); + init = function() { + $unused(Unix(new $Int64(0, 0), new $Int64(0, 0))); + }; + initLocal = function() { + var d, i, j, s; + d = new ($global.Date)(); + s = $internalize(d, $String); + i = indexByte(s, 40); + j = indexByte(s, 41); + if ((i === -1) || (j === -1)) { + localLoc.name = "UTC"; + return; + } + localLoc.name = $substring(s, (i + 1 >> 0), j); + localLoc.zone = new sliceType([new zone.ptr(localLoc.name, $imul(($parseInt(d.getTimezoneOffset()) >> 0), -60), false)]); + }; + runtimeNano = function() { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + indexByte = function(s, c) { + var c, s; + return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; + }; + startsWithLowerCase = function(str) { + var c, str; + if (str.length === 0) { + return false; + } + c = str.charCodeAt(0); + return 97 <= c && c <= 122; + }; + nextStdChunk = function(layout) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$9, c, ch, i, j, layout, prefix, std, std$1, suffix, x$1; + prefix = ""; + std = 0; + suffix = ""; + i = 0; + while (true) { + if (!(i < layout.length)) { break; } + c = ((layout.charCodeAt(i) >> 0)); + _1 = c; + if (_1 === (74)) { + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") { + _tmp = $substring(layout, 0, i); + _tmp$1 = 257; + _tmp$2 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp; + std = _tmp$1; + suffix = _tmp$2; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$3 = $substring(layout, 0, i); + _tmp$4 = 258; + _tmp$5 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$3; + std = _tmp$4; + suffix = _tmp$5; + return [prefix, std, suffix]; + } + } + } else if (_1 === (77)) { + if (layout.length >= (i + 3 >> 0)) { + if ($substring(layout, i, (i + 3 >> 0)) === "Mon") { + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") { + _tmp$6 = $substring(layout, 0, i); + _tmp$7 = 261; + _tmp$8 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$6; + std = _tmp$7; + suffix = _tmp$8; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$9 = $substring(layout, 0, i); + _tmp$10 = 262; + _tmp$11 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$9; + std = _tmp$10; + suffix = _tmp$11; + return [prefix, std, suffix]; + } + } + if ($substring(layout, i, (i + 3 >> 0)) === "MST") { + _tmp$12 = $substring(layout, 0, i); + _tmp$13 = 21; + _tmp$14 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$12; + std = _tmp$13; + suffix = _tmp$14; + return [prefix, std, suffix]; + } + } + } else if (_1 === (48)) { + if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) { + _tmp$15 = $substring(layout, 0, i); + _tmp$16 = (x$1 = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x$1 < 0 || x$1 >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x$1])); + _tmp$17 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$15; + std = _tmp$16; + suffix = _tmp$17; + return [prefix, std, suffix]; + } + } else if (_1 === (49)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) { + _tmp$18 = $substring(layout, 0, i); + _tmp$19 = 522; + _tmp$20 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$18; + std = _tmp$19; + suffix = _tmp$20; + return [prefix, std, suffix]; + } + _tmp$21 = $substring(layout, 0, i); + _tmp$22 = 259; + _tmp$23 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$21; + std = _tmp$22; + suffix = _tmp$23; + return [prefix, std, suffix]; + } else if (_1 === (50)) { + if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") { + _tmp$24 = $substring(layout, 0, i); + _tmp$25 = 273; + _tmp$26 = $substring(layout, (i + 4 >> 0)); + prefix = _tmp$24; + std = _tmp$25; + suffix = _tmp$26; + return [prefix, std, suffix]; + } + _tmp$27 = $substring(layout, 0, i); + _tmp$28 = 263; + _tmp$29 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$27; + std = _tmp$28; + suffix = _tmp$29; + return [prefix, std, suffix]; + } else if (_1 === (95)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) { + if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") { + _tmp$30 = $substring(layout, 0, (i + 1 >> 0)); + _tmp$31 = 273; + _tmp$32 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$30; + std = _tmp$31; + suffix = _tmp$32; + return [prefix, std, suffix]; + } + _tmp$33 = $substring(layout, 0, i); + _tmp$34 = 264; + _tmp$35 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$33; + std = _tmp$34; + suffix = _tmp$35; + return [prefix, std, suffix]; + } + } else if (_1 === (51)) { + _tmp$36 = $substring(layout, 0, i); + _tmp$37 = 523; + _tmp$38 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$36; + std = _tmp$37; + suffix = _tmp$38; + return [prefix, std, suffix]; + } else if (_1 === (52)) { + _tmp$39 = $substring(layout, 0, i); + _tmp$40 = 525; + _tmp$41 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$39; + std = _tmp$40; + suffix = _tmp$41; + return [prefix, std, suffix]; + } else if (_1 === (53)) { + _tmp$42 = $substring(layout, 0, i); + _tmp$43 = 527; + _tmp$44 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$42; + std = _tmp$43; + suffix = _tmp$44; + return [prefix, std, suffix]; + } else if (_1 === (80)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) { + _tmp$45 = $substring(layout, 0, i); + _tmp$46 = 531; + _tmp$47 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$45; + std = _tmp$46; + suffix = _tmp$47; + return [prefix, std, suffix]; + } + } else if (_1 === (112)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) { + _tmp$48 = $substring(layout, 0, i); + _tmp$49 = 532; + _tmp$50 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$48; + std = _tmp$49; + suffix = _tmp$50; + return [prefix, std, suffix]; + } + } else if (_1 === (45)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") { + _tmp$51 = $substring(layout, 0, i); + _tmp$52 = 28; + _tmp$53 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$51; + std = _tmp$52; + suffix = _tmp$53; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") { + _tmp$54 = $substring(layout, 0, i); + _tmp$55 = 31; + _tmp$56 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$54; + std = _tmp$55; + suffix = _tmp$56; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") { + _tmp$57 = $substring(layout, 0, i); + _tmp$58 = 27; + _tmp$59 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$57; + std = _tmp$58; + suffix = _tmp$59; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") { + _tmp$60 = $substring(layout, 0, i); + _tmp$61 = 30; + _tmp$62 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$60; + std = _tmp$61; + suffix = _tmp$62; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") { + _tmp$63 = $substring(layout, 0, i); + _tmp$64 = 29; + _tmp$65 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$63; + std = _tmp$64; + suffix = _tmp$65; + return [prefix, std, suffix]; + } + } else if (_1 === (90)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") { + _tmp$66 = $substring(layout, 0, i); + _tmp$67 = 23; + _tmp$68 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$66; + std = _tmp$67; + suffix = _tmp$68; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") { + _tmp$69 = $substring(layout, 0, i); + _tmp$70 = 26; + _tmp$71 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$69; + std = _tmp$70; + suffix = _tmp$71; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") { + _tmp$72 = $substring(layout, 0, i); + _tmp$73 = 22; + _tmp$74 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$72; + std = _tmp$73; + suffix = _tmp$74; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") { + _tmp$75 = $substring(layout, 0, i); + _tmp$76 = 25; + _tmp$77 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$75; + std = _tmp$76; + suffix = _tmp$77; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") { + _tmp$78 = $substring(layout, 0, i); + _tmp$79 = 24; + _tmp$80 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$78; + std = _tmp$79; + suffix = _tmp$80; + return [prefix, std, suffix]; + } + } else if (_1 === (46)) { + if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) { + ch = layout.charCodeAt((i + 1 >> 0)); + j = i + 1 >> 0; + while (true) { + if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { break; } + j = j + (1) >> 0; + } + if (!isDigit(layout, j)) { + std$1 = 32; + if (layout.charCodeAt((i + 1 >> 0)) === 57) { + std$1 = 33; + } + std$1 = std$1 | ((((j - ((i + 1 >> 0)) >> 0)) << 16 >> 0)); + _tmp$81 = $substring(layout, 0, i); + _tmp$82 = std$1; + _tmp$83 = $substring(layout, j); + prefix = _tmp$81; + std = _tmp$82; + suffix = _tmp$83; + return [prefix, std, suffix]; + } + } + } + i = i + (1) >> 0; + } + _tmp$84 = layout; + _tmp$85 = 0; + _tmp$86 = ""; + prefix = _tmp$84; + std = _tmp$85; + suffix = _tmp$86; + return [prefix, std, suffix]; + }; + match = function(s1, s2) { + var c1, c2, i, s1, s2; + i = 0; + while (true) { + if (!(i < s1.length)) { break; } + c1 = s1.charCodeAt(i); + c2 = s2.charCodeAt(i); + if (!((c1 === c2))) { + c1 = (c1 | (32)) >>> 0; + c2 = (c2 | (32)) >>> 0; + if (!((c1 === c2)) || c1 < 97 || c1 > 122) { + return false; + } + } + i = i + (1) >> 0; + } + return true; + }; + lookup = function(tab, val) { + var _i, _ref, i, tab, v, val; + _ref = tab; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (val.length >= v.length && match($substring(val, 0, v.length), v)) { + return [i, $substring(val, v.length), $ifaceNil]; + } + _i++; + } + return [-1, val, errBad]; + }; + appendInt = function(b, x$1, width) { + var _q, b, buf, i, q, u, w, width, x$1; + u = ((x$1 >>> 0)); + if (x$1 < 0) { + b = $append(b, 45); + u = ((-x$1 >>> 0)); + } + buf = arrayType.zero(); + i = 20; + while (true) { + if (!(u >= 10)) { break; } + i = i - (1) >> 0; + q = (_q = u / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24))); + u = q; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24))); + w = 20 - i >> 0; + while (true) { + if (!(w < width)) { break; } + b = $append(b, 48); + w = w + (1) >> 0; + } + return $appendSlice(b, $subslice(new sliceType$3(buf), i)); + }; + atoi = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x$1; + x$1 = 0; + err = $ifaceNil; + neg = false; + if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) { + neg = s.charCodeAt(0) === 45; + s = $substring(s, 1); + } + _tuple = leadingInt(s); + q = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + x$1 = (((q.$low + ((q.$high >> 31) * 4294967296)) >> 0)); + if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) { + _tmp = 0; + _tmp$1 = atoiError; + x$1 = _tmp; + err = _tmp$1; + return [x$1, err]; + } + if (neg) { + x$1 = -x$1; + } + _tmp$2 = x$1; + _tmp$3 = $ifaceNil; + x$1 = _tmp$2; + err = _tmp$3; + return [x$1, err]; + }; + formatNano = function(b, nanosec, n, trim) { + var _q, _r, b, buf, n, nanosec, start, trim, u, x$1; + u = nanosec; + buf = arrayType$1.zero(); + start = 9; + while (true) { + if (!(start > 0)) { break; } + start = start - (1) >> 0; + ((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r = u % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + if (n > 9) { + n = 9; + } + if (trim) { + while (true) { + if (!(n > 0 && ((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$1])) === 48))) { break; } + n = n - (1) >> 0; + } + if (n === 0) { + return b; + } + } + b = $append(b, 46); + return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n)); + }; + Time.ptr.prototype.String = function() { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; buf = $f.buf; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; s = $f.s; sign = $f.sign; t = $f.t; wid = $f.wid; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + m2 = ((x$3 = t.ext, new $Uint64(x$3.$high, x$3.$low))); + sign = 43; + if ((x$4 = t.ext, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 0)))) { + sign = 45; + m2 = new $Uint64(-m2.$high, -m2.$low); + } + _tmp = $div64(m2, new $Uint64(0, 1000000000), false); + _tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true); + m1 = _tmp; + m2 = _tmp$1; + _tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false); + _tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true); + m0 = _tmp$2; + m1 = _tmp$3; + buf = sliceType$3.nil; + buf = $appendSlice(buf, " m="); + buf = $append(buf, sign); + wid = 0; + if (!((m0.$high === 0 && m0.$low === 0))) { + buf = appendInt(buf, ((m0.$low >> 0)), 0); + wid = 9; + } + buf = appendInt(buf, ((m1.$low >> 0)), wid); + buf = $append(buf, 46); + buf = appendInt(buf, ((m2.$low >> 0)), 9); + s = s + (($bytesToString(buf))); + } + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.String }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.buf = buf; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.s = s; $f.sign = sign; $f.t = t; $f.wid = wid; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.String = function() { return this.$val.String(); }; + Time.ptr.prototype.Format = function(layout) { + var _r, b, buf, layout, max, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; buf = $f.buf; layout = $f.layout; max = $f.max; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + b = sliceType$3.nil; + max = layout.length + 10 >> 0; + if (max < 64) { + buf = arrayType$2.zero(); + b = $subslice(new sliceType$3(buf), 0, 0); + } else { + b = $makeSlice(sliceType$3, 0, max); + } + _r = $clone(t, Time).AppendFormat(b, layout); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Format }; } $f._r = _r; $f.b = b; $f.buf = buf; $f.layout = layout; $f.max = max; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Format = function(layout) { return this.$val.Format(layout); }; + Time.ptr.prototype.AppendFormat = function(b, layout) { + var _1, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, year, zone$1, zone$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; abs = $f.abs; absoffset = $f.absoffset; b = $f.b; day = $f.day; hour = $f.hour; hr = $f.hr; hr$1 = $f.hr$1; layout = $f.layout; m = $f.m; min = $f.min; month = $f.month; name = $f.name; offset = $f.offset; prefix = $f.prefix; s = $f.s; sec = $f.sec; std = $f.std; suffix = $f.suffix; t = $f.t; y = $f.y; year = $f.year; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).locabs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + abs = _tuple[2]; + year = -1; + month = 0; + day = 0; + hour = -1; + min = 0; + sec = 0; + while (true) { + if (!(!(layout === ""))) { break; } + _tuple$1 = nextStdChunk(layout); + prefix = _tuple$1[0]; + std = _tuple$1[1]; + suffix = _tuple$1[2]; + if (!(prefix === "")) { + b = $appendSlice(b, prefix); + } + if (std === 0) { + break; + } + layout = suffix; + if (year < 0 && !(((std & 256) === 0))) { + _tuple$2 = absDate(abs, true); + year = _tuple$2[0]; + month = _tuple$2[1]; + day = _tuple$2[2]; + } + if (hour < 0 && !(((std & 512) === 0))) { + _tuple$3 = absClock(abs); + hour = _tuple$3[0]; + min = _tuple$3[1]; + sec = _tuple$3[2]; + } + switch (0) { default: + _1 = std & 65535; + if (_1 === (274)) { + y = year; + if (y < 0) { + y = -y; + } + b = appendInt(b, (_r$1 = y % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), 2); + } else if (_1 === (273)) { + b = appendInt(b, year, 4); + } else if (_1 === (258)) { + b = $appendSlice(b, $substring(new Month(month).String(), 0, 3)); + } else if (_1 === (257)) { + m = new Month(month).String(); + b = $appendSlice(b, m); + } else if (_1 === (259)) { + b = appendInt(b, ((month >> 0)), 0); + } else if (_1 === (260)) { + b = appendInt(b, ((month >> 0)), 2); + } else if (_1 === (262)) { + b = $appendSlice(b, $substring(new Weekday(absWeekday(abs)).String(), 0, 3)); + } else if (_1 === (261)) { + s = new Weekday(absWeekday(abs)).String(); + b = $appendSlice(b, s); + } else if (_1 === (263)) { + b = appendInt(b, day, 0); + } else if (_1 === (264)) { + if (day < 10) { + b = $append(b, 32); + } + b = appendInt(b, day, 0); + } else if (_1 === (265)) { + b = appendInt(b, day, 2); + } else if (_1 === (522)) { + b = appendInt(b, hour, 2); + } else if (_1 === (523)) { + hr = (_r$2 = hour % 12, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); + if (hr === 0) { + hr = 12; + } + b = appendInt(b, hr, 0); + } else if (_1 === (524)) { + hr$1 = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (hr$1 === 0) { + hr$1 = 12; + } + b = appendInt(b, hr$1, 2); + } else if (_1 === (525)) { + b = appendInt(b, min, 0); + } else if (_1 === (526)) { + b = appendInt(b, min, 2); + } else if (_1 === (527)) { + b = appendInt(b, sec, 0); + } else if (_1 === (528)) { + b = appendInt(b, sec, 2); + } else if (_1 === (531)) { + if (hour >= 12) { + b = $appendSlice(b, "PM"); + } else { + b = $appendSlice(b, "AM"); + } + } else if (_1 === (532)) { + if (hour >= 12) { + b = $appendSlice(b, "pm"); + } else { + b = $appendSlice(b, "am"); + } + } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (30)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31))) { + if ((offset === 0) && ((std === 22) || (std === 25) || (std === 23) || (std === 24) || (std === 26))) { + b = $append(b, 90); + break; + } + zone$1 = (_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + absoffset = offset; + if (zone$1 < 0) { + b = $append(b, 45); + zone$1 = -zone$1; + absoffset = -absoffset; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + if ((std === 25) || (std === 30) || (std === 26) || (std === 31)) { + b = $append(b, 58); + } + if (!((std === 29)) && !((std === 24))) { + b = appendInt(b, (_r$4 = zone$1 % 60, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")), 2); + } + if ((std === 23) || (std === 28) || (std === 31) || (std === 26)) { + if ((std === 31) || (std === 26)) { + b = $append(b, 58); + } + b = appendInt(b, (_r$5 = absoffset % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2); + } + } else if (_1 === (21)) { + if (!(name === "")) { + b = $appendSlice(b, name); + break; + } + zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); + if (zone$2 < 0) { + b = $append(b, 45); + zone$2 = -zone$2; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + b = appendInt(b, (_r$6 = zone$2 % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2); + } else if ((_1 === (32)) || (_1 === (33))) { + b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std >> 16 >> 0, (std & 65535) === 33); + } + } + } + $s = -1; return b; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AppendFormat }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.abs = abs; $f.absoffset = absoffset; $f.b = b; $f.day = day; $f.hour = hour; $f.hr = hr; $f.hr$1 = hr$1; $f.layout = layout; $f.m = m; $f.min = min; $f.month = month; $f.name = name; $f.offset = offset; $f.prefix = prefix; $f.s = s; $f.sec = sec; $f.std = std; $f.suffix = suffix; $f.t = t; $f.y = y; $f.year = year; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.AppendFormat = function(b, layout) { return this.$val.AppendFormat(b, layout); }; + quote = function(s) { + var s; + return "\"" + s + "\""; + }; + ParseError.ptr.prototype.Error = function() { + var e; + e = this; + if (e.Message === "") { + return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem); + } + return "parsing time " + quote(e.Value) + e.Message; + }; + ParseError.prototype.Error = function() { return this.$val.Error(); }; + isDigit = function(s, i) { + var c, i, s; + if (s.length <= i) { + return false; + } + c = s.charCodeAt(i); + return 48 <= c && c <= 57; + }; + getnum = function(s, fixed) { + var fixed, s; + if (!isDigit(s, 0)) { + return [0, s, errBad]; + } + if (!isDigit(s, 1)) { + if (fixed) { + return [0, s, errBad]; + } + return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil]; + } + return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil]; + }; + cutspace = function(s) { + var s; + while (true) { + if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { break; } + s = $substring(s, 1); + } + return s; + }; + skip = function(value, prefix) { + var prefix, value; + while (true) { + if (!(prefix.length > 0)) { break; } + if (prefix.charCodeAt(0) === 32) { + if (value.length > 0 && !((value.charCodeAt(0) === 32))) { + return [value, errBad]; + } + prefix = cutspace(prefix); + value = cutspace(value); + continue; + } + if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) { + return [value, errBad]; + } + prefix = $substring(prefix, 1); + value = $substring(value, 1); + } + return [value, $ifaceNil]; + }; + Parse = function(layout, value) { + var _r, layout, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; layout = $f.layout; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f.layout = layout; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Parse = Parse; + parse = function(layout, value, defaultLocation, local) { + var _1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, day, defaultLocation, err, hour, hour$1, hr, i, layout, local, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x$1, x$2, year, z, zoneName, zoneOffset, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$22 = $f._tmp$22; _tmp$23 = $f._tmp$23; _tmp$24 = $f._tmp$24; _tmp$25 = $f._tmp$25; _tmp$26 = $f._tmp$26; _tmp$27 = $f._tmp$27; _tmp$28 = $f._tmp$28; _tmp$29 = $f._tmp$29; _tmp$3 = $f._tmp$3; _tmp$30 = $f._tmp$30; _tmp$31 = $f._tmp$31; _tmp$32 = $f._tmp$32; _tmp$33 = $f._tmp$33; _tmp$34 = $f._tmp$34; _tmp$35 = $f._tmp$35; _tmp$36 = $f._tmp$36; _tmp$37 = $f._tmp$37; _tmp$38 = $f._tmp$38; _tmp$39 = $f._tmp$39; _tmp$4 = $f._tmp$4; _tmp$40 = $f._tmp$40; _tmp$41 = $f._tmp$41; _tmp$42 = $f._tmp$42; _tmp$43 = $f._tmp$43; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$13 = $f._tuple$13; _tuple$14 = $f._tuple$14; _tuple$15 = $f._tuple$15; _tuple$16 = $f._tuple$16; _tuple$17 = $f._tuple$17; _tuple$18 = $f._tuple$18; _tuple$19 = $f._tuple$19; _tuple$2 = $f._tuple$2; _tuple$20 = $f._tuple$20; _tuple$21 = $f._tuple$21; _tuple$22 = $f._tuple$22; _tuple$23 = $f._tuple$23; _tuple$24 = $f._tuple$24; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; alayout = $f.alayout; amSet = $f.amSet; avalue = $f.avalue; day = $f.day; defaultLocation = $f.defaultLocation; err = $f.err; hour = $f.hour; hour$1 = $f.hour$1; hr = $f.hr; i = $f.i; layout = $f.layout; local = $f.local; min = $f.min; min$1 = $f.min$1; mm = $f.mm; month = $f.month; n = $f.n; n$1 = $f.n$1; name = $f.name; ndigit = $f.ndigit; nsec = $f.nsec; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; pmSet = $f.pmSet; prefix = $f.prefix; rangeErrString = $f.rangeErrString; sec = $f.sec; seconds = $f.seconds; sign = $f.sign; ss = $f.ss; std = $f.std; stdstr = $f.stdstr; suffix = $f.suffix; t = $f.t; t$1 = $f.t$1; value = $f.value; x$1 = $f.x$1; x$2 = $f.x$2; year = $f.year; z = $f.z; zoneName = $f.zoneName; zoneOffset = $f.zoneOffset; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tmp = layout; + _tmp$1 = value; + alayout = _tmp; + avalue = _tmp$1; + rangeErrString = ""; + amSet = false; + pmSet = false; + year = 0; + month = 1; + day = 1; + hour = 0; + min = 0; + sec = 0; + nsec = 0; + z = ptrType$2.nil; + zoneOffset = -1; + zoneName = ""; + while (true) { + err = $ifaceNil; + _tuple = nextStdChunk(layout); + prefix = _tuple[0]; + std = _tuple[1]; + suffix = _tuple[2]; + stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0)); + _tuple$1 = skip(value, prefix); + value = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")]; + } + if (std === 0) { + if (!((value.length === 0))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + value)]; + } + break; + } + layout = suffix; + p = ""; + switch (0) { default: + _1 = std & 65535; + if (_1 === (274)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$2 = $substring(value, 0, 2); + _tmp$3 = $substring(value, 2); + p = _tmp$2; + value = _tmp$3; + _tuple$2 = atoi(p); + year = _tuple$2[0]; + err = _tuple$2[1]; + if (year >= 69) { + year = year + (1900) >> 0; + } else { + year = year + (2000) >> 0; + } + } else if (_1 === (273)) { + if (value.length < 4 || !isDigit(value, 0)) { + err = errBad; + break; + } + _tmp$4 = $substring(value, 0, 4); + _tmp$5 = $substring(value, 4); + p = _tmp$4; + value = _tmp$5; + _tuple$3 = atoi(p); + year = _tuple$3[0]; + err = _tuple$3[1]; + } else if (_1 === (258)) { + _tuple$4 = lookup(shortMonthNames, value); + month = _tuple$4[0]; + value = _tuple$4[1]; + err = _tuple$4[2]; + month = month + (1) >> 0; + } else if (_1 === (257)) { + _tuple$5 = lookup(longMonthNames, value); + month = _tuple$5[0]; + value = _tuple$5[1]; + err = _tuple$5[2]; + month = month + (1) >> 0; + } else if ((_1 === (259)) || (_1 === (260))) { + _tuple$6 = getnum(value, std === 260); + month = _tuple$6[0]; + value = _tuple$6[1]; + err = _tuple$6[2]; + if (month <= 0 || 12 < month) { + rangeErrString = "month"; + } + } else if (_1 === (262)) { + _tuple$7 = lookup(shortDayNames, value); + value = _tuple$7[1]; + err = _tuple$7[2]; + } else if (_1 === (261)) { + _tuple$8 = lookup(longDayNames, value); + value = _tuple$8[1]; + err = _tuple$8[2]; + } else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) { + if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) { + value = $substring(value, 1); + } + _tuple$9 = getnum(value, std === 265); + day = _tuple$9[0]; + value = _tuple$9[1]; + err = _tuple$9[2]; + if (day < 0) { + rangeErrString = "day"; + } + } else if (_1 === (522)) { + _tuple$10 = getnum(value, false); + hour = _tuple$10[0]; + value = _tuple$10[1]; + err = _tuple$10[2]; + if (hour < 0 || 24 <= hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (523)) || (_1 === (524))) { + _tuple$11 = getnum(value, std === 524); + hour = _tuple$11[0]; + value = _tuple$11[1]; + err = _tuple$11[2]; + if (hour < 0 || 12 < hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (525)) || (_1 === (526))) { + _tuple$12 = getnum(value, std === 526); + min = _tuple$12[0]; + value = _tuple$12[1]; + err = _tuple$12[2]; + if (min < 0 || 60 <= min) { + rangeErrString = "minute"; + } + } else if ((_1 === (527)) || (_1 === (528))) { + _tuple$13 = getnum(value, std === 528); + sec = _tuple$13[0]; + value = _tuple$13[1]; + err = _tuple$13[2]; + if (sec < 0 || 60 <= sec) { + rangeErrString = "second"; + break; + } + if (value.length >= 2 && (value.charCodeAt(0) === 46) && isDigit(value, 1)) { + _tuple$14 = nextStdChunk(layout); + std = _tuple$14[1]; + std = std & (65535); + if ((std === 32) || (std === 33)) { + break; + } + n = 2; + while (true) { + if (!(n < value.length && isDigit(value, n))) { break; } + n = n + (1) >> 0; + } + _tuple$15 = parseNanoseconds(value, n); + nsec = _tuple$15[0]; + rangeErrString = _tuple$15[1]; + err = _tuple$15[2]; + value = $substring(value, n); + } + } else if (_1 === (531)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$6 = $substring(value, 0, 2); + _tmp$7 = $substring(value, 2); + p = _tmp$6; + value = _tmp$7; + _2 = p; + if (_2 === ("PM")) { + pmSet = true; + } else if (_2 === ("AM")) { + amSet = true; + } else { + err = errBad; + } + } else if (_1 === (532)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$8 = $substring(value, 0, 2); + _tmp$9 = $substring(value, 2); + p = _tmp$8; + value = _tmp$9; + _3 = p; + if (_3 === ("pm")) { + pmSet = true; + } else if (_3 === ("am")) { + amSet = true; + } else { + err = errBad; + } + } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (29)) || (_1 === (30)) || (_1 === (28)) || (_1 === (31))) { + if (((std === 22) || (std === 24) || (std === 25)) && value.length >= 1 && (value.charCodeAt(0) === 90)) { + value = $substring(value, 1); + z = $pkg.UTC; + break; + } + _tmp$10 = ""; + _tmp$11 = ""; + _tmp$12 = ""; + _tmp$13 = ""; + sign = _tmp$10; + hour$1 = _tmp$11; + min$1 = _tmp$12; + seconds = _tmp$13; + if ((std === 25) || (std === 30)) { + if (value.length < 6) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58))) { + err = errBad; + break; + } + _tmp$14 = $substring(value, 0, 1); + _tmp$15 = $substring(value, 1, 3); + _tmp$16 = $substring(value, 4, 6); + _tmp$17 = "00"; + _tmp$18 = $substring(value, 6); + sign = _tmp$14; + hour$1 = _tmp$15; + min$1 = _tmp$16; + seconds = _tmp$17; + value = _tmp$18; + } else if ((std === 29) || (std === 24)) { + if (value.length < 3) { + err = errBad; + break; + } + _tmp$19 = $substring(value, 0, 1); + _tmp$20 = $substring(value, 1, 3); + _tmp$21 = "00"; + _tmp$22 = "00"; + _tmp$23 = $substring(value, 3); + sign = _tmp$19; + hour$1 = _tmp$20; + min$1 = _tmp$21; + seconds = _tmp$22; + value = _tmp$23; + } else if ((std === 26) || (std === 31)) { + if (value.length < 9) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) { + err = errBad; + break; + } + _tmp$24 = $substring(value, 0, 1); + _tmp$25 = $substring(value, 1, 3); + _tmp$26 = $substring(value, 4, 6); + _tmp$27 = $substring(value, 7, 9); + _tmp$28 = $substring(value, 9); + sign = _tmp$24; + hour$1 = _tmp$25; + min$1 = _tmp$26; + seconds = _tmp$27; + value = _tmp$28; + } else if ((std === 23) || (std === 28)) { + if (value.length < 7) { + err = errBad; + break; + } + _tmp$29 = $substring(value, 0, 1); + _tmp$30 = $substring(value, 1, 3); + _tmp$31 = $substring(value, 3, 5); + _tmp$32 = $substring(value, 5, 7); + _tmp$33 = $substring(value, 7); + sign = _tmp$29; + hour$1 = _tmp$30; + min$1 = _tmp$31; + seconds = _tmp$32; + value = _tmp$33; + } else { + if (value.length < 5) { + err = errBad; + break; + } + _tmp$34 = $substring(value, 0, 1); + _tmp$35 = $substring(value, 1, 3); + _tmp$36 = $substring(value, 3, 5); + _tmp$37 = "00"; + _tmp$38 = $substring(value, 5); + sign = _tmp$34; + hour$1 = _tmp$35; + min$1 = _tmp$36; + seconds = _tmp$37; + value = _tmp$38; + } + _tmp$39 = 0; + _tmp$40 = 0; + _tmp$41 = 0; + hr = _tmp$39; + mm = _tmp$40; + ss = _tmp$41; + _tuple$16 = atoi(hour$1); + hr = _tuple$16[0]; + err = _tuple$16[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$17 = atoi(min$1); + mm = _tuple$17[0]; + err = _tuple$17[1]; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$18 = atoi(seconds); + ss = _tuple$18[0]; + err = _tuple$18[1]; + } + zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0; + _4 = sign.charCodeAt(0); + if (_4 === (43)) { + } else if (_4 === (45)) { + zoneOffset = -zoneOffset; + } else { + err = errBad; + } + } else if (_1 === (21)) { + if (value.length >= 3 && $substring(value, 0, 3) === "UTC") { + z = $pkg.UTC; + value = $substring(value, 3); + break; + } + _tuple$19 = parseTimeZone(value); + n$1 = _tuple$19[0]; + ok = _tuple$19[1]; + if (!ok) { + err = errBad; + break; + } + _tmp$42 = $substring(value, 0, n$1); + _tmp$43 = $substring(value, n$1); + zoneName = _tmp$42; + value = _tmp$43; + } else if (_1 === (32)) { + ndigit = 1 + ((std >> 16 >> 0)) >> 0; + if (value.length < ndigit) { + err = errBad; + break; + } + _tuple$20 = parseNanoseconds(value, ndigit); + nsec = _tuple$20[0]; + rangeErrString = _tuple$20[1]; + err = _tuple$20[2]; + value = $substring(value, ndigit); + } else if (_1 === (33)) { + if (value.length < 2 || !((value.charCodeAt(0) === 46)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) { + break; + } + i = 0; + while (true) { + if (!(i < 9 && (i + 1 >> 0) < value.length && 48 <= value.charCodeAt((i + 1 >> 0)) && value.charCodeAt((i + 1 >> 0)) <= 57)) { break; } + i = i + (1) >> 0; + } + _tuple$21 = parseNanoseconds(value, 1 + i >> 0); + nsec = _tuple$21[0]; + rangeErrString = _tuple$21[1]; + err = _tuple$21[2]; + value = $substring(value, (1 + i >> 0)); + } + } + if (!(rangeErrString === "")) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")]; + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")]; + } + } + if (pmSet && hour < 12) { + hour = hour + (12) >> 0; + } else if (amSet && (hour === 12)) { + hour = 0; + } + if (day < 1 || day > daysIn(((month >> 0)), year)) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")]; + } + /* */ if (!(z === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(z === ptrType$2.nil)) { */ case 1: + _r = Date(year, ((month >> 0)), day, hour, min, sec, nsec, z); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return [_r, $ifaceNil]; + /* } */ case 2: + /* */ if (!((zoneOffset === -1))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((zoneOffset === -1))) { */ case 4: + _r$1 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = $clone(_r$1, Time); + t.addSec((x$1 = (new $Int64(0, zoneOffset)), new $Int64(-x$1.$high, -x$1.$low))); + _r$2 = local.lookup(t.unixSec()); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$22 = _r$2; + name = _tuple$22[0]; + offset = _tuple$22[1]; + if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) { + t.setLoc(local); + $s = -1; return [t, $ifaceNil]; + } + t.setLoc(FixedZone(zoneName, zoneOffset)); + $s = -1; return [t, $ifaceNil]; + /* } */ case 5: + /* */ if (!(zoneName === "")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(zoneName === "")) { */ case 8: + _r$3 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + t$1 = $clone(_r$3, Time); + _r$4 = local.lookupName(zoneName, t$1.unixSec()); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$23 = _r$4; + offset$1 = _tuple$23[0]; + ok$1 = _tuple$23[1]; + if (ok$1) { + t$1.addSec((x$2 = (new $Int64(0, offset$1)), new $Int64(-x$2.$high, -x$2.$low))); + t$1.setLoc(local); + $s = -1; return [t$1, $ifaceNil]; + } + if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") { + _tuple$24 = atoi($substring(zoneName, 3)); + offset$1 = _tuple$24[0]; + offset$1 = $imul(offset$1, (3600)); + } + t$1.setLoc(FixedZone(zoneName, offset$1)); + $s = -1; return [t$1, $ifaceNil]; + /* } */ case 9: + _r$5 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, defaultLocation); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return [_r$5, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$22 = _tmp$22; $f._tmp$23 = _tmp$23; $f._tmp$24 = _tmp$24; $f._tmp$25 = _tmp$25; $f._tmp$26 = _tmp$26; $f._tmp$27 = _tmp$27; $f._tmp$28 = _tmp$28; $f._tmp$29 = _tmp$29; $f._tmp$3 = _tmp$3; $f._tmp$30 = _tmp$30; $f._tmp$31 = _tmp$31; $f._tmp$32 = _tmp$32; $f._tmp$33 = _tmp$33; $f._tmp$34 = _tmp$34; $f._tmp$35 = _tmp$35; $f._tmp$36 = _tmp$36; $f._tmp$37 = _tmp$37; $f._tmp$38 = _tmp$38; $f._tmp$39 = _tmp$39; $f._tmp$4 = _tmp$4; $f._tmp$40 = _tmp$40; $f._tmp$41 = _tmp$41; $f._tmp$42 = _tmp$42; $f._tmp$43 = _tmp$43; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$13 = _tuple$13; $f._tuple$14 = _tuple$14; $f._tuple$15 = _tuple$15; $f._tuple$16 = _tuple$16; $f._tuple$17 = _tuple$17; $f._tuple$18 = _tuple$18; $f._tuple$19 = _tuple$19; $f._tuple$2 = _tuple$2; $f._tuple$20 = _tuple$20; $f._tuple$21 = _tuple$21; $f._tuple$22 = _tuple$22; $f._tuple$23 = _tuple$23; $f._tuple$24 = _tuple$24; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.alayout = alayout; $f.amSet = amSet; $f.avalue = avalue; $f.day = day; $f.defaultLocation = defaultLocation; $f.err = err; $f.hour = hour; $f.hour$1 = hour$1; $f.hr = hr; $f.i = i; $f.layout = layout; $f.local = local; $f.min = min; $f.min$1 = min$1; $f.mm = mm; $f.month = month; $f.n = n; $f.n$1 = n$1; $f.name = name; $f.ndigit = ndigit; $f.nsec = nsec; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.pmSet = pmSet; $f.prefix = prefix; $f.rangeErrString = rangeErrString; $f.sec = sec; $f.seconds = seconds; $f.sign = sign; $f.ss = ss; $f.std = std; $f.stdstr = stdstr; $f.suffix = suffix; $f.t = t; $f.t$1 = t$1; $f.value = value; $f.x$1 = x$1; $f.x$2 = x$2; $f.year = year; $f.z = z; $f.zoneName = zoneName; $f.zoneOffset = zoneOffset; $f.$s = $s; $f.$r = $r; return $f; + }; + parseTimeZone = function(value) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, ok$1, value; + length = 0; + ok = false; + if (value.length < 3) { + _tmp = 0; + _tmp$1 = false; + length = _tmp; + ok = _tmp$1; + return [length, ok]; + } + if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) { + _tmp$2 = 4; + _tmp$3 = true; + length = _tmp$2; + ok = _tmp$3; + return [length, ok]; + } + if ($substring(value, 0, 3) === "GMT") { + length = parseGMT(value); + _tmp$4 = length; + _tmp$5 = true; + length = _tmp$4; + ok = _tmp$5; + return [length, ok]; + } + if ((value.charCodeAt(0) === 43) || (value.charCodeAt(0) === 45)) { + length = parseSignedOffset(value); + ok$1 = length > 0; + _tmp$6 = length; + _tmp$7 = ok$1; + length = _tmp$6; + ok = _tmp$7; + return [length, ok]; + } + nUpper = 0; + nUpper = 0; + while (true) { + if (!(nUpper < 6)) { break; } + if (nUpper >= value.length) { + break; + } + c = value.charCodeAt(nUpper); + if (c < 65 || 90 < c) { + break; + } + nUpper = nUpper + (1) >> 0; + } + _1 = nUpper; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) { + _tmp$8 = 0; + _tmp$9 = false; + length = _tmp$8; + ok = _tmp$9; + return [length, ok]; + } else if (_1 === (5)) { + if (value.charCodeAt(4) === 84) { + _tmp$10 = 5; + _tmp$11 = true; + length = _tmp$10; + ok = _tmp$11; + return [length, ok]; + } + } else if (_1 === (4)) { + if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") { + _tmp$12 = 4; + _tmp$13 = true; + length = _tmp$12; + ok = _tmp$13; + return [length, ok]; + } + } else if (_1 === (3)) { + _tmp$14 = 3; + _tmp$15 = true; + length = _tmp$14; + ok = _tmp$15; + return [length, ok]; + } + _tmp$16 = 0; + _tmp$17 = false; + length = _tmp$16; + ok = _tmp$17; + return [length, ok]; + }; + parseGMT = function(value) { + var value; + value = $substring(value, 3); + if (value.length === 0) { + return 3; + } + return 3 + parseSignedOffset(value) >> 0; + }; + parseSignedOffset = function(value) { + var _tuple, err, rem, sign, value, x$1; + sign = value.charCodeAt(0); + if (!((sign === 45)) && !((sign === 43))) { + return 0; + } + _tuple = leadingInt($substring(value, 1)); + x$1 = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil)) || $substring(value, 1) === rem) { + return 0; + } + if (sign === 45) { + x$1 = new $Int64(-x$1.$high, -x$1.$low); + } + if ((x$1.$high < -1 || (x$1.$high === -1 && x$1.$low < 4294967273)) || (0 < x$1.$high || (0 === x$1.$high && 23 < x$1.$low))) { + return 0; + } + return value.length - rem.length >> 0; + }; + parseNanoseconds = function(value, nbytes) { + var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value; + ns = 0; + rangeErrString = ""; + err = $ifaceNil; + if (!((value.charCodeAt(0) === 46))) { + err = errBad; + return [ns, rangeErrString, err]; + } + _tuple = atoi($substring(value, 1, nbytes)); + ns = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [ns, rangeErrString, err]; + } + if (ns < 0 || 1000000000 <= ns) { + rangeErrString = "fractional second"; + return [ns, rangeErrString, err]; + } + scaleDigits = 10 - nbytes >> 0; + i = 0; + while (true) { + if (!(i < scaleDigits)) { break; } + ns = $imul(ns, (10)); + i = i + (1) >> 0; + } + return [ns, rangeErrString, err]; + }; + leadingInt = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x$1, x$2, x$3, x$4; + x$1 = new $Int64(0, 0); + rem = ""; + err = $ifaceNil; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c < 48 || c > 57) { + break; + } + if ((x$1.$high > 214748364 || (x$1.$high === 214748364 && x$1.$low > 3435973836))) { + _tmp = new $Int64(0, 0); + _tmp$1 = ""; + _tmp$2 = errLeadingInt; + x$1 = _tmp; + rem = _tmp$1; + err = _tmp$2; + return [x$1, rem, err]; + } + x$1 = (x$2 = (x$3 = $mul64(x$1, new $Int64(0, 10)), x$4 = (new $Int64(0, c)), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), new $Int64(x$2.$high - 0, x$2.$low - 48)); + if ((x$1.$high < 0 || (x$1.$high === 0 && x$1.$low < 0))) { + _tmp$3 = new $Int64(0, 0); + _tmp$4 = ""; + _tmp$5 = errLeadingInt; + x$1 = _tmp$3; + rem = _tmp$4; + err = _tmp$5; + return [x$1, rem, err]; + } + i = i + (1) >> 0; + } + _tmp$6 = x$1; + _tmp$7 = $substring(s, i); + _tmp$8 = $ifaceNil; + x$1 = _tmp$6; + rem = _tmp$7; + err = _tmp$8; + return [x$1, rem, err]; + }; + leadingFraction = function(s) { + var _tmp, _tmp$1, _tmp$2, c, i, overflow, rem, s, scale, x$1, x$2, x$3, x$4, y; + x$1 = new $Int64(0, 0); + scale = 0; + rem = ""; + i = 0; + scale = 1; + overflow = false; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c < 48 || c > 57) { + break; + } + if (overflow) { + i = i + (1) >> 0; + continue; + } + if ((x$1.$high > 214748364 || (x$1.$high === 214748364 && x$1.$low > 3435973836))) { + overflow = true; + i = i + (1) >> 0; + continue; + } + y = (x$2 = (x$3 = $mul64(x$1, new $Int64(0, 10)), x$4 = (new $Int64(0, c)), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), new $Int64(x$2.$high - 0, x$2.$low - 48)); + if ((y.$high < 0 || (y.$high === 0 && y.$low < 0))) { + overflow = true; + i = i + (1) >> 0; + continue; + } + x$1 = y; + scale = scale * (10); + i = i + (1) >> 0; + } + _tmp = x$1; + _tmp$1 = scale; + _tmp$2 = $substring(s, i); + x$1 = _tmp; + scale = _tmp$1; + rem = _tmp$2; + return [x$1, scale, rem]; + }; + ParseDuration = function(s) { + var _entry, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, c, c$1, d, err, f, i, neg, ok, orig, pl, pl$1, post, pre, s, scale, u, unit, v, x$1, x$2, x$3; + orig = s; + d = new $Int64(0, 0); + neg = false; + if (!(s === "")) { + c = s.charCodeAt(0); + if ((c === 45) || (c === 43)) { + neg = c === 45; + s = $substring(s, 1); + } + } + if (s === "0") { + return [new Duration(0, 0), $ifaceNil]; + } + if (s === "") { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + while (true) { + if (!(!(s === ""))) { break; } + _tmp = new $Int64(0, 0); + _tmp$1 = new $Int64(0, 0); + v = _tmp; + f = _tmp$1; + scale = 1; + err = $ifaceNil; + if (!((s.charCodeAt(0) === 46) || 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + pl = s.length; + _tuple = leadingInt(s); + v = _tuple[0]; + s = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + pre = !((pl === s.length)); + post = false; + if (!(s === "") && (s.charCodeAt(0) === 46)) { + s = $substring(s, 1); + pl$1 = s.length; + _tuple$1 = leadingFraction(s); + f = _tuple$1[0]; + scale = _tuple$1[1]; + s = _tuple$1[2]; + post = !((pl$1 === s.length)); + } + if (!pre && !post) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c$1 = s.charCodeAt(i); + if ((c$1 === 46) || 48 <= c$1 && c$1 <= 57) { + break; + } + i = i + (1) >> 0; + } + if (i === 0) { + return [new Duration(0, 0), errors.New("time: missing unit in duration " + orig)]; + } + u = $substring(s, 0, i); + s = $substring(s, i); + _tuple$2 = (_entry = unitMap[$String.keyFor(u)], _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); + unit = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok) { + return [new Duration(0, 0), errors.New("time: unknown unit " + u + " in duration " + orig)]; + } + if ((x$1 = $div64(new $Int64(2147483647, 4294967295), unit, false), (v.$high > x$1.$high || (v.$high === x$1.$high && v.$low > x$1.$low)))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + v = $mul64(v, (unit)); + if ((f.$high > 0 || (f.$high === 0 && f.$low > 0))) { + v = (x$2 = (new $Int64(0, ($flatten64(f)) * (($flatten64(unit)) / scale))), new $Int64(v.$high + x$2.$high, v.$low + x$2.$low)); + if ((v.$high < 0 || (v.$high === 0 && v.$low < 0))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + } + d = (x$3 = v, new $Int64(d.$high + x$3.$high, d.$low + x$3.$low)); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + } + if (neg) { + d = new $Int64(-d.$high, -d.$low); + } + return [(new Duration(d.$high, d.$low)), $ifaceNil]; + }; + $pkg.ParseDuration = ParseDuration; + Time.ptr.prototype.nsec = function() { + var t, x$1; + t = this; + return (((x$1 = t.wall, new $Uint64(x$1.$high & 0, (x$1.$low & 1073741823) >>> 0)).$low >> 0)); + }; + Time.prototype.nsec = function() { return this.$val.nsec(); }; + Time.ptr.prototype.sec = function() { + var t, x$1, x$2, x$3, x$4; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$3 = ((x$4 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$4.$high, x$4.$low))), new $Int64(13 + x$3.$high, 3618733952 + x$3.$low)); + } + return t.ext; + }; + Time.prototype.sec = function() { return this.$val.sec(); }; + Time.ptr.prototype.unixSec = function() { + var t, x$1; + t = this; + return (x$1 = t.sec(), new $Int64(x$1.$high + -15, x$1.$low + 2288912640)); + }; + Time.prototype.unixSec = function() { return this.$val.unixSec(); }; + Time.ptr.prototype.addSec = function(d) { + var d, dsec, sec, t, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + sec = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low))); + dsec = new $Int64(sec.$high + d.$high, sec.$low + d.$low); + if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) { + t.wall = (x$4 = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & 0, (x$6.$low & 1073741823) >>> 0)), x$7 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)), new $Uint64(x$4.$high | 2147483648, (x$4.$low | 0) >>> 0)); + return; + } + t.stripMono(); + } + t.ext = (x$8 = t.ext, x$9 = d, new $Int64(x$8.$high + x$9.$high, x$8.$low + x$9.$low)); + }; + Time.prototype.addSec = function(d) { return this.$val.addSec(d); }; + Time.ptr.prototype.setLoc = function(loc) { + var loc, t; + t = this; + if (loc === utcLoc) { + loc = ptrType$2.nil; + } + t.stripMono(); + t.loc = loc; + }; + Time.prototype.setLoc = function(loc) { return this.$val.setLoc(loc); }; + Time.ptr.prototype.stripMono = function() { + var t, x$1, x$2, x$3, x$4; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + t.ext = t.sec(); + t.wall = (x$3 = t.wall, x$4 = new $Uint64(0, 1073741823), new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)); + } + }; + Time.prototype.stripMono = function() { return this.$val.stripMono(); }; + Time.ptr.prototype.After = function(u) { + var t, ts, u, us, x$1, x$2, x$3, x$4, x$5, x$6; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low))); + } + ts = t.sec(); + us = u.sec(); + return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec(); + }; + Time.prototype.After = function(u) { return this.$val.After(u); }; + Time.ptr.prototype.Before = function(u) { + var t, u, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high < x$6.$high || (x$5.$high === x$6.$high && x$5.$low < x$6.$low))); + } + return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low < x$8.$low))) || (x$9 = t.sec(), x$10 = u.sec(), (x$9.$high === x$10.$high && x$9.$low === x$10.$low)) && t.nsec() < u.nsec(); + }; + Time.prototype.Before = function(u) { return this.$val.Before(u); }; + Time.ptr.prototype.Equal = function(u) { + var t, u, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high === x$6.$high && x$5.$low === x$6.$low)); + } + return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high === x$8.$high && x$7.$low === x$8.$low)) && (t.nsec() === u.nsec()); + }; + Time.prototype.Equal = function(u) { return this.$val.Equal(u); }; + Month.prototype.String = function() { + var buf, m, n, x$1; + m = this.$val; + if (1 <= m && m <= 12) { + return (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= months.length) ? ($throwRuntimeError("index out of range"), undefined) : months[x$1])); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, m))); + return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Month).prototype.String = function() { return new Month(this.$get()).String(); }; + Weekday.prototype.String = function() { + var buf, d, n; + d = this.$val; + if (0 <= d && d <= 6) { + return ((d < 0 || d >= days.length) ? ($throwRuntimeError("index out of range"), undefined) : days[d]); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, d))); + return "%!Weekday(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Weekday).prototype.String = function() { return new Weekday(this.$get()).String(); }; + Time.ptr.prototype.IsZero = function() { + var t, x$1; + t = this; + return (x$1 = t.sec(), (x$1.$high === 0 && x$1.$low === 0)) && (t.nsec() === 0); + }; + Time.prototype.IsZero = function() { return this.$val.IsZero(); }; + Time.ptr.prototype.abs = function() { + var _r, _r$1, _tuple, l, offset, sec, t, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; l = $f.l; offset = $f.offset; sec = $f.sec; t = $f.t; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 6: + sec = (x$3 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low)); + $s = 8; continue; + /* } else { */ case 7: + _r$1 = l.lookup(sec); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + offset = _tuple[1]; + sec = (x$4 = (new $Int64(0, offset)), new $Int64(sec.$high + x$4.$high, sec.$low + x$4.$low)); + /* } */ case 8: + /* } */ case 5: + $s = -1; return ((x$5 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$5.$high, x$5.$low))); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.abs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.l = l; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.abs = function() { return this.$val.abs(); }; + Time.ptr.prototype.locabs = function() { + var _r, _r$1, _tuple, abs, l, name, offset, sec, t, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; abs = $f.abs; l = $f.l; name = $f.name; offset = $f.offset; sec = $f.sec; t = $f.t; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + abs = new $Uint64(0, 0); + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 7: + name = l.cacheZone.name; + offset = l.cacheZone.offset; + $s = 9; continue; + /* } else { */ case 8: + _r$1 = l.lookup(sec); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + name = _tuple[0]; + offset = _tuple[1]; + /* } */ case 9: + sec = (x$3 = (new $Int64(0, offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low)); + $s = 6; continue; + /* } else { */ case 5: + name = "UTC"; + /* } */ case 6: + abs = ((x$4 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$4.$high, x$4.$low))); + $s = -1; return [name, offset, abs]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.locabs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.abs = abs; $f.l = l; $f.name = name; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.locabs = function() { return this.$val.locabs(); }; + Time.ptr.prototype.Date = function() { + var _r, _tuple, day, month, t, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; month = $f.month; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + $s = -1; return [year, month, day]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Date }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.month = month; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Date = function() { return this.$val.Date(); }; + Time.ptr.prototype.Year = function() { + var _r, _tuple, t, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + $s = -1; return year; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Year }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Year = function() { return this.$val.Year(); }; + Time.ptr.prototype.Month = function() { + var _r, _tuple, month, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; month = $f.month; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + month = _tuple[1]; + $s = -1; return month; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Month }; } $f._r = _r; $f._tuple = _tuple; $f.month = month; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Month = function() { return this.$val.Month(); }; + Time.ptr.prototype.Day = function() { + var _r, _tuple, day, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + day = _tuple[2]; + $s = -1; return day; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Day }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Day = function() { return this.$val.Day(); }; + Time.ptr.prototype.Weekday = function() { + var _r, _r$1, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absWeekday(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Weekday }; } $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Weekday = function() { return this.$val.Weekday(); }; + absWeekday = function(abs) { + var _q, abs, sec; + sec = $div64((new $Uint64(abs.$high + 0, abs.$low + 86400)), new $Uint64(0, 604800), true); + return (((_q = ((sec.$low >> 0)) / 86400, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + }; + Time.ptr.prototype.ISOWeek = function() { + var _q, _r, _r$1, _r$2, _r$3, _r$4, _tuple, day, dec31wday, jan1wday, month, t, wday, week, yday, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; day = $f.day; dec31wday = $f.dec31wday; jan1wday = $f.jan1wday; month = $f.month; t = $f.t; wday = $f.wday; week = $f.week; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + week = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + _r$2 = $clone(t, Time).Weekday(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + wday = (_r$1 = (((_r$2 + 6 >> 0) >> 0)) % 7, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + week = (_q = (((yday - wday >> 0) + 7 >> 0)) / 7, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + jan1wday = (_r$3 = (((wday - yday >> 0) + 371 >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (1 <= jan1wday && jan1wday <= 3) { + week = week + (1) >> 0; + } + if (week === 0) { + year = year - (1) >> 0; + week = 52; + if ((jan1wday === 4) || ((jan1wday === 5) && isLeap(year))) { + week = week + (1) >> 0; + } + } + if ((month === 12) && day >= 29 && wday < 3) { + dec31wday = (_r$4 = (((wday + 31 >> 0) - day >> 0)) % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); + if (0 <= dec31wday && dec31wday <= 2) { + year = year + (1) >> 0; + week = 1; + } + } + $s = -1; return [year, week]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.ISOWeek }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.day = day; $f.dec31wday = dec31wday; $f.jan1wday = jan1wday; $f.month = month; $f.t = t; $f.wday = wday; $f.week = week; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.ISOWeek = function() { return this.$val.ISOWeek(); }; + Time.ptr.prototype.Clock = function() { + var _r, _r$1, _tuple, hour, min, sec, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; hour = $f.hour; min = $f.min; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + hour = 0; + min = 0; + sec = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absClock(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + hour = _tuple[0]; + min = _tuple[1]; + sec = _tuple[2]; + $s = -1; return [hour, min, sec]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Clock }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.hour = hour; $f.min = min; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Clock = function() { return this.$val.Clock(); }; + absClock = function(abs) { + var _q, _q$1, abs, hour, min, sec; + hour = 0; + min = 0; + sec = 0; + sec = (($div64(abs, new $Uint64(0, 86400), true).$low >> 0)); + hour = (_q = sec / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(hour, 3600))) >> 0; + min = (_q$1 = sec / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(min, 60))) >> 0; + return [hour, min, sec]; + }; + Time.ptr.prototype.Hour = function() { + var _q, _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (_q = (($div64(_r, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Hour }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Hour = function() { return this.$val.Hour(); }; + Time.ptr.prototype.Minute = function() { + var _q, _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (_q = (($div64(_r, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Minute }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Minute = function() { return this.$val.Minute(); }; + Time.ptr.prototype.Second = function() { + var _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (($div64(_r, new $Uint64(0, 60), true).$low >> 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Second }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Second = function() { return this.$val.Second(); }; + Time.ptr.prototype.Nanosecond = function() { + var t; + t = this; + return ((t.nsec() >> 0)); + }; + Time.prototype.Nanosecond = function() { return this.$val.Nanosecond(); }; + Time.ptr.prototype.YearDay = function() { + var _r, _tuple, t, yday, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; yday = $f.yday; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + yday = _tuple[3]; + $s = -1; return yday + 1 >> 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.YearDay }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.yday = yday; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.YearDay = function() { return this.$val.YearDay(); }; + Duration.prototype.String = function() { + var _tuple, _tuple$1, buf, d, neg, prec, u, w; + d = this; + buf = arrayType$3.zero(); + w = 32; + u = (new $Uint64(d.$high, d.$low)); + neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0)); + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) { + prec = 0; + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + w = w - (1) >> 0; + if ((u.$high === 0 && u.$low === 0)) { + return "0s"; + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) { + prec = 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110); + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) { + prec = 3; + w = w - (1) >> 0; + $copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5"); + } else { + prec = 6; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + } + _tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec); + w = _tuple[0]; + u = _tuple[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } else { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + _tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9); + w = _tuple$1[0]; + u = _tuple$1[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } + } + } + if (neg) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + return ($bytesToString($subslice(new sliceType$3(buf), w))); + }; + $ptrType(Duration).prototype.String = function() { return this.$get().String(); }; + fmtFrac = function(buf, v, prec) { + var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w; + nw = 0; + nv = new $Uint64(0, 0); + w = buf.$length; + print = false; + i = 0; + while (true) { + if (!(i < prec)) { break; } + digit = $div64(v, new $Uint64(0, 10), true); + print = print || !((digit.$high === 0 && digit.$low === 0)); + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24)); + } + v = $div64(v, (new $Uint64(0, 10)), false); + i = i + (1) >> 0; + } + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + } + _tmp = w; + _tmp$1 = v; + nw = _tmp; + nv = _tmp$1; + return [nw, nv]; + }; + fmtInt = function(buf, v) { + var buf, v, w; + w = buf.$length; + if ((v.$high === 0 && v.$low === 0)) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + } else { + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24)); + v = $div64(v, (new $Uint64(0, 10)), false); + } + } + return w; + }; + Duration.prototype.Nanoseconds = function() { + var d; + d = this; + return (new $Int64(d.$high, d.$low)); + }; + $ptrType(Duration).prototype.Nanoseconds = function() { return this.$get().Nanoseconds(); }; + Duration.prototype.Seconds = function() { + var d, nsec, sec; + d = this; + sec = $div64(d, new Duration(0, 1000000000), false); + nsec = $div64(d, new Duration(0, 1000000000), true); + return ($flatten64(sec)) + ($flatten64(nsec)) / 1e+09; + }; + $ptrType(Duration).prototype.Seconds = function() { return this.$get().Seconds(); }; + Duration.prototype.Minutes = function() { + var d, min, nsec; + d = this; + min = $div64(d, new Duration(13, 4165425152), false); + nsec = $div64(d, new Duration(13, 4165425152), true); + return ($flatten64(min)) + ($flatten64(nsec)) / 6e+10; + }; + $ptrType(Duration).prototype.Minutes = function() { return this.$get().Minutes(); }; + Duration.prototype.Hours = function() { + var d, hour, nsec; + d = this; + hour = $div64(d, new Duration(838, 817405952), false); + nsec = $div64(d, new Duration(838, 817405952), true); + return ($flatten64(hour)) + ($flatten64(nsec)) / 3.6e+12; + }; + $ptrType(Duration).prototype.Hours = function() { return this.$get().Hours(); }; + Duration.prototype.Truncate = function(m) { + var d, m, x$1; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + return (x$1 = $div64(d, m, true), new Duration(d.$high - x$1.$high, d.$low - x$1.$low)); + }; + $ptrType(Duration).prototype.Truncate = function(m) { return this.$get().Truncate(m); }; + lessThanHalf = function(x$1, y) { + var x$1, x$2, x$3, x$4, x$5, y; + return (x$2 = (x$3 = (new $Uint64(x$1.$high, x$1.$low)), x$4 = (new $Uint64(x$1.$high, x$1.$low)), new $Uint64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), x$5 = (new $Uint64(y.$high, y.$low)), (x$2.$high < x$5.$high || (x$2.$high === x$5.$high && x$2.$low < x$5.$low))); + }; + Duration.prototype.Round = function(m) { + var d, d1, d1$1, m, r, x$1, x$2; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + r = $div64(d, m, true); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + r = new Duration(-r.$high, -r.$low); + if (lessThanHalf(r, m)) { + return new Duration(d.$high + r.$high, d.$low + r.$low); + } + d1 = (x$1 = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x$1.$high + r.$high, x$1.$low + r.$low)); + if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) { + return d1; + } + return new Duration(-2147483648, 0); + } + if (lessThanHalf(r, m)) { + return new Duration(d.$high - r.$high, d.$low - r.$low); + } + d1$1 = (x$2 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$2.$high - r.$high, x$2.$low - r.$low)); + if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) { + return d1$1; + } + return new Duration(2147483647, 4294967295); + }; + $ptrType(Duration).prototype.Round = function(m) { return this.$get().Round(m); }; + Time.ptr.prototype.Add = function(d) { + var d, dsec, nsec, t, te, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + dsec = ((x$1 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$1.$high, x$1.$low))); + nsec = t.nsec() + (((x$2 = $div64(d, new Duration(0, 1000000000), true), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)) >> 0; + if (nsec >= 1000000000) { + dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high + x$3.$high, dsec.$low + x$3.$low)); + nsec = nsec - (1000000000) >> 0; + } else if (nsec < 0) { + dsec = (x$4 = new $Int64(0, 1), new $Int64(dsec.$high - x$4.$high, dsec.$low - x$4.$low)); + nsec = nsec + (1000000000) >> 0; + } + t.wall = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & ~0, (x$6.$low & ~1073741823) >>> 0)), x$7 = (new $Uint64(0, nsec)), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)); + t.addSec(dsec); + if (!((x$8 = (x$9 = t.wall, new $Uint64(x$9.$high & 2147483648, (x$9.$low & 0) >>> 0)), (x$8.$high === 0 && x$8.$low === 0)))) { + te = (x$10 = t.ext, x$11 = (new $Int64(d.$high, d.$low)), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$12 = t.ext, (te.$high > x$12.$high || (te.$high === x$12.$high && te.$low > x$12.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$13 = t.ext, (te.$high < x$13.$high || (te.$high === x$13.$high && te.$low < x$13.$low)))) { + t.stripMono(); + } else { + t.ext = te; + } + } + return t; + }; + Time.prototype.Add = function(d) { return this.$val.Add(d); }; + Time.ptr.prototype.Sub = function(u) { + var d, d$1, t, te, u, ue, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + te = t.ext; + ue = u.ext; + d = ((x$5 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$5.$high, x$5.$low))); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) { + return new Duration(2147483647, 4294967295); + } + if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) { + return new Duration(-2147483648, 0); + } + return d; + } + d$1 = (x$6 = $mul64(((x$7 = (x$8 = t.sec(), x$9 = u.sec(), new $Int64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$10 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$6.$high + x$10.$high, x$6.$low + x$10.$low)); + if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) { + return d$1; + } else if ($clone(t, Time).Before($clone(u, Time))) { + return new Duration(-2147483648, 0); + } else { + return new Duration(2147483647, 4294967295); + } + }; + Time.prototype.Sub = function(u) { return this.$val.Sub(u); }; + Time.ptr.prototype.AddDate = function(years, months$1, days$1) { + var _r, _r$1, _r$2, _tuple, _tuple$1, day, days$1, hour, min, month, months$1, sec, t, year, years, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; day = $f.day; days$1 = $f.days$1; hour = $f.hour; min = $f.min; month = $f.month; months$1 = $f.months$1; sec = $f.sec; t = $f.t; year = $f.year; years = $f.years; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Date(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + _r$1 = $clone(t, Time).Clock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + hour = _tuple$1[0]; + min = _tuple$1[1]; + sec = _tuple$1[2]; + _r$2 = Date(year + years >> 0, month + ((months$1 >> 0)) >> 0, day + days$1 >> 0, hour, min, sec, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AddDate }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.day = day; $f.days$1 = days$1; $f.hour = hour; $f.min = min; $f.month = month; $f.months$1 = months$1; $f.sec = sec; $f.t = t; $f.year = year; $f.years = years; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.AddDate = function(years, months$1, days$1) { return this.$val.AddDate(years, months$1, days$1); }; + Time.ptr.prototype.date = function(full) { + var _r, _r$1, _tuple, day, full, month, t, yday, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; day = $f.day; full = $f.full; month = $f.month; t = $f.t; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + yday = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absDate(_r, full); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + $s = -1; return [year, month, day, yday]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.date }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.day = day; $f.full = full; $f.month = month; $f.t = t; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.date = function(full) { return this.$val.date(full); }; + absDate = function(abs, full) { + var _q, abs, begin, d, day, end, full, month, n, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year; + year = 0; + month = 0; + day = 0; + yday = 0; + d = $div64(abs, new $Uint64(0, 86400), false); + n = $div64(d, new $Uint64(0, 146097), false); + y = $mul64(new $Uint64(0, 400), n); + d = (x$1 = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x$1.$high, d.$low - x$1.$low)); + n = $div64(d, new $Uint64(0, 36524), false); + n = (x$2 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$2.$high, n.$low - x$2.$low)); + y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$3.$high, y.$low + x$3.$low)); + d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$4.$high, d.$low - x$4.$low)); + n = $div64(d, new $Uint64(0, 1461), false); + y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$5.$high, y.$low + x$5.$low)); + d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$6.$high, d.$low - x$6.$low)); + n = $div64(d, new $Uint64(0, 365), false); + n = (x$7 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$7.$high, n.$low - x$7.$low)); + y = (x$8 = n, new $Uint64(y.$high + x$8.$high, y.$low + x$8.$low)); + d = (x$9 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$9.$high, d.$low - x$9.$low)); + year = (((x$10 = (x$11 = (new $Int64(y.$high, y.$low)), new $Int64(x$11.$high + -69, x$11.$low + 4075721025)), x$10.$low + ((x$10.$high >> 31) * 4294967296)) >> 0)); + yday = ((d.$low >> 0)); + if (!full) { + return [year, month, day, yday]; + } + day = yday; + if (isLeap(year)) { + if (day > 59) { + day = day - (1) >> 0; + } else if ((day === 59)) { + month = 2; + day = 29; + return [year, month, day, yday]; + } + } + month = (((_q = day / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + end = (((x$12 = month + 1 >> 0, ((x$12 < 0 || x$12 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$12])) >> 0)); + begin = 0; + if (day >= end) { + month = month + (1) >> 0; + begin = end; + } else { + begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0)); + } + month = month + (1) >> 0; + day = (day - begin >> 0) + 1 >> 0; + return [year, month, day, yday]; + }; + daysIn = function(m, year) { + var m, x$1, year; + if ((m === 2) && isLeap(year)) { + return 29; + } + return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0) >> 0)); + }; + unixTime = function(sec, nsec) { + var nsec, sec; + return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 14, sec.$low + 2006054656), $pkg.Local); + }; + Time.ptr.prototype.UTC = function() { + var t; + t = this; + t.setLoc(utcLoc); + return t; + }; + Time.prototype.UTC = function() { return this.$val.UTC(); }; + Time.ptr.prototype.Local = function() { + var t; + t = this; + t.setLoc($pkg.Local); + return t; + }; + Time.prototype.Local = function() { return this.$val.Local(); }; + Time.ptr.prototype.In = function(loc) { + var loc, t; + t = this; + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Time.In")); + } + t.setLoc(loc); + return t; + }; + Time.prototype.In = function(loc) { return this.$val.In(loc); }; + Time.ptr.prototype.Location = function() { + var l, t; + t = this; + l = t.loc; + if (l === ptrType$2.nil) { + l = $pkg.UTC; + } + return l; + }; + Time.prototype.Location = function() { return this.$val.Location(); }; + Time.ptr.prototype.Zone = function() { + var _r, _tuple, name, offset, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; name = $f.name; offset = $f.offset; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + t = this; + _r = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + $s = -1; return [name, offset]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Zone }; } $f._r = _r; $f._tuple = _tuple; $f.name = name; $f.offset = offset; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Zone = function() { return this.$val.Zone(); }; + Time.ptr.prototype.Unix = function() { + var t; + t = this; + return t.unixSec(); + }; + Time.prototype.Unix = function() { return this.$val.Unix(); }; + Time.ptr.prototype.UnixNano = function() { + var t, x$1, x$2; + t = this; + return (x$1 = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$2 = (new $Int64(0, t.nsec())), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + }; + Time.prototype.UnixNano = function() { return this.$val.UnixNano(); }; + Time.ptr.prototype.MarshalBinary = function() { + var _q, _r, _r$1, _tuple, enc, nsec, offset, offsetMin, sec, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; enc = $f.enc; nsec = $f.nsec; offset = $f.offset; offsetMin = $f.offsetMin; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + offsetMin = 0; + /* */ if ($clone(t, Time).Location() === $pkg.UTC) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1: + offsetMin = -1; + $s = 3; continue; + /* } else { */ case 2: + _r = $clone(t, Time).Zone(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + offset = _tuple[1]; + if (!(((_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0))) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: zone offset has fractional minute")]; + } + offset = (_q = offset / (60), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (offset < -32768 || (offset === -1) || offset > 32767) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")]; + } + offsetMin = ((offset << 16 >> 16)); + /* } */ case 3: + sec = t.sec(); + nsec = t.nsec(); + enc = new sliceType$3([1, (($shiftRightInt64(sec, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec, 8).$low << 24 >>> 24)), ((sec.$low << 24 >>> 24)), (((nsec >> 24 >> 0) << 24 >>> 24)), (((nsec >> 16 >> 0) << 24 >>> 24)), (((nsec >> 8 >> 0) << 24 >>> 24)), ((nsec << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]); + $s = -1; return [enc, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalBinary }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.enc = enc; $f.nsec = nsec; $f.offset = offset; $f.offsetMin = offsetMin; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); }; + Time.ptr.prototype.UnmarshalBinary = function(data) { + var _r, _tuple, buf, data, localoff, nsec, offset, sec, t, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; data = $f.data; localoff = $f.localoff; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; t = $f.t; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + buf = data; + if (buf.$length === 0) { + $s = -1; return errors.New("Time.UnmarshalBinary: no data"); + } + if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { + $s = -1; return errors.New("Time.UnmarshalBinary: unsupported version"); + } + if (!((buf.$length === 15))) { + $s = -1; return errors.New("Time.UnmarshalBinary: invalid length"); + } + buf = $subslice(buf, 1); + sec = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (x$7 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$8 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$7.$high | x$8.$high, (x$7.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$6.$high | x$9.$high, (x$6.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$5.$high | x$10.$high, (x$5.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$4.$high | x$11.$high, (x$4.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$3.$high | x$12.$high, (x$3.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$2.$high | x$13.$high, (x$2.$low | x$13.$low) >>> 0)), x$14 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x$1.$high | x$14.$high, (x$1.$low | x$14.$low) >>> 0)); + buf = $subslice(buf, 8); + nsec = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0); + buf = $subslice(buf, 4); + offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60); + Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil)); + t.wall = (new $Uint64(0, nsec)); + t.ext = sec; + /* */ if (offset === -60) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (offset === -60) { */ case 1: + t.setLoc(utcLoc); + $s = 3; continue; + /* } else { */ case 2: + _r = $pkg.Local.lookup(t.unixSec()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + localoff = _tuple[1]; + if (offset === localoff) { + t.setLoc($pkg.Local); + } else { + t.setLoc(FixedZone("", offset)); + } + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalBinary }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.data = data; $f.localoff = localoff; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalBinary = function(data) { return this.$val.UnmarshalBinary(data); }; + Time.ptr.prototype.GobEncode = function() { + var _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).MarshalBinary(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobEncode }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.GobEncode = function() { return this.$val.GobEncode(); }; + Time.ptr.prototype.GobDecode = function(data) { + var _r, data, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = t.UnmarshalBinary(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobDecode }; } $f._r = _r; $f.data = data; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.GobDecode = function(data) { return this.$val.GobDecode(data); }; + Time.ptr.prototype.MarshalJSON = function() { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 37); + b = $append(b, 34); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = _r$1; + b = $append(b, 34); + $s = -1; return [b, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalJSON }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalJSON = function() { return this.$val.MarshalJSON(); }; + Time.ptr.prototype.UnmarshalJSON = function(data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (($bytesToString(data)) === "null") { + $s = -1; return $ifaceNil; + } + err = $ifaceNil; + _r = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalJSON }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalJSON = function(data) { return this.$val.UnmarshalJSON(data); }; + Time.ptr.prototype.MarshalText = function() { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 35); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [_r$1, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalText }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalText = function() { return this.$val.MarshalText(); }; + Time.ptr.prototype.UnmarshalText = function(data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + err = $ifaceNil; + _r = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalText }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalText = function(data) { return this.$val.UnmarshalText(data); }; + Unix = function(sec, nsec) { + var n, nsec, sec, x$1, x$2, x$3, x$4; + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0)) || (nsec.$high > 0 || (nsec.$high === 0 && nsec.$low >= 1000000000))) { + n = $div64(nsec, new $Int64(0, 1000000000), false); + sec = (x$1 = n, new $Int64(sec.$high + x$1.$high, sec.$low + x$1.$low)); + nsec = (x$2 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec.$high - x$2.$high, nsec.$low - x$2.$low)); + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0))) { + nsec = (x$3 = new $Int64(0, 1000000000), new $Int64(nsec.$high + x$3.$high, nsec.$low + x$3.$low)); + sec = (x$4 = new $Int64(0, 1), new $Int64(sec.$high - x$4.$high, sec.$low - x$4.$low)); + } + } + return unixTime(sec, (((nsec.$low + ((nsec.$high >> 31) * 4294967296)) >> 0))); + }; + $pkg.Unix = Unix; + isLeap = function(year) { + var _r, _r$1, _r$2, year; + return ((_r = year % 4, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$1 = year % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$2 = year % 400, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0)); + }; + norm = function(hi, lo, base) { + var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo; + nhi = 0; + nlo = 0; + if (lo < 0) { + n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + hi = hi - (n) >> 0; + lo = lo + (($imul(n, base))) >> 0; + } + if (lo >= base) { + n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + hi = hi + (n$1) >> 0; + lo = lo - (($imul(n$1, base))) >> 0; + } + _tmp = hi; + _tmp$1 = lo; + nhi = _tmp; + nlo = _tmp$1; + return [nhi, nlo]; + }; + Date = function(year, month, day, hour, min, sec, nsec, loc) { + var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, abs, d, day, end, hour, loc, m, min, month, n, nsec, offset, sec, start, t, unix, utc, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; abs = $f.abs; d = $f.d; day = $f.day; end = $f.end; hour = $f.hour; loc = $f.loc; m = $f.m; min = $f.min; month = $f.month; n = $f.n; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; start = $f.start; t = $f.t; unix = $f.unix; utc = $f.utc; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Date")); + } + m = ((month >> 0)) - 1 >> 0; + _tuple = norm(year, m, 12); + year = _tuple[0]; + m = _tuple[1]; + month = ((m >> 0)) + 1 >> 0; + _tuple$1 = norm(sec, nsec, 1000000000); + sec = _tuple$1[0]; + nsec = _tuple$1[1]; + _tuple$2 = norm(min, sec, 60); + min = _tuple$2[0]; + sec = _tuple$2[1]; + _tuple$3 = norm(hour, min, 60); + hour = _tuple$3[0]; + min = _tuple$3[1]; + _tuple$4 = norm(day, hour, 24); + day = _tuple$4[0]; + hour = _tuple$4[1]; + y = ((x$1 = (x$2 = (new $Int64(0, year)), new $Int64(x$2.$high - -69, x$2.$low - 4075721025)), new $Uint64(x$1.$high, x$1.$low))); + n = $div64(y, new $Uint64(0, 400), false); + y = (x$3 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low)); + d = $mul64(new $Uint64(0, 146097), n); + n = $div64(y, new $Uint64(0, 100), false); + y = (x$4 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$4.$high, y.$low - x$4.$low)); + d = (x$5 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$5.$high, d.$low + x$5.$low)); + n = $div64(y, new $Uint64(0, 4), false); + y = (x$6 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$6.$high, y.$low - x$6.$low)); + d = (x$7 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low)); + n = y; + d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low)); + d = (x$9 = (new $Uint64(0, (x$10 = month - 1 >> 0, ((x$10 < 0 || x$10 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$10])))), new $Uint64(d.$high + x$9.$high, d.$low + x$9.$low)); + if (isLeap(year) && month >= 3) { + d = (x$11 = new $Uint64(0, 1), new $Uint64(d.$high + x$11.$high, d.$low + x$11.$low)); + } + d = (x$12 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$12.$high, d.$low + x$12.$low)); + abs = $mul64(d, new $Uint64(0, 86400)); + abs = (x$13 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec >> 0))), new $Uint64(abs.$high + x$13.$high, abs.$low + x$13.$low)); + unix = (x$14 = (new $Int64(abs.$high, abs.$low)), new $Int64(x$14.$high + -2147483647, x$14.$low + 3844486912)); + _r = loc.lookup(unix); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$5 = _r; + offset = _tuple$5[1]; + start = _tuple$5[2]; + end = _tuple$5[3]; + /* */ if (!((offset === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((offset === 0))) { */ case 2: + utc = (x$15 = (new $Int64(0, offset)), new $Int64(unix.$high - x$15.$high, unix.$low - x$15.$low)); + /* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { $s = 5; continue; } + /* */ if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { */ case 5: + _r$1 = loc.lookup(new $Int64(start.$high - 0, start.$low - 1)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$6 = _r$1; + offset = _tuple$6[1]; + $s = 7; continue; + /* } else if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 6: + _r$2 = loc.lookup(end); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$7 = _r$2; + offset = _tuple$7[1]; + /* } */ case 7: + case 4: + unix = (x$16 = (new $Int64(0, offset)), new $Int64(unix.$high - x$16.$high, unix.$low - x$16.$low)); + /* } */ case 3: + t = $clone(unixTime(unix, ((nsec >> 0))), Time); + t.setLoc(loc); + $s = -1; return t; + /* */ } return; } if ($f === undefined) { $f = { $blk: Date }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.abs = abs; $f.d = d; $f.day = day; $f.end = end; $f.hour = hour; $f.loc = loc; $f.m = m; $f.min = min; $f.month = month; $f.n = n; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.start = start; $f.t = t; $f.unix = unix; $f.utc = utc; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Date = Date; + Time.ptr.prototype.Truncate = function(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + }; + Time.prototype.Truncate = function(d) { return this.$val.Truncate(d); }; + Time.ptr.prototype.Round = function(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + if (lessThanHalf(r, d)) { + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + } + return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low)); + }; + Time.prototype.Round = function(d) { return this.$val.Round(d); }; + div = function(t, d) { + var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec, qmod2, r, sec, sec$1, t, tmp, u0, u0x, u1, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + qmod2 = 0; + r = new Duration(0, 0); + neg = false; + nsec = t.nsec(); + sec = t.sec(); + if ((sec.$high < 0 || (sec.$high === 0 && sec.$low < 0))) { + neg = true; + sec = new $Int64(-sec.$high, -sec.$low); + nsec = -nsec; + if (nsec < 0) { + nsec = nsec + (1000000000) >> 0; + sec = (x$1 = new $Int64(0, 1), new $Int64(sec.$high - x$1.$high, sec.$low - x$1.$low)); + } + } + if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$2 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$2.$high === 0 && x$2.$low === 0))) { + qmod2 = (((_q = nsec / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1; + r = (new Duration(0, (_r = nsec % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); + } else if ((x$3 = $div64(d, new Duration(0, 1000000000), true), (x$3.$high === 0 && x$3.$low === 0))) { + d1 = ((x$4 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$4.$high, x$4.$low))); + qmod2 = (((x$5 = $div64(sec, d1, false), x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0)) & 1; + r = (x$6 = $mul64(((x$7 = $div64(sec, d1, true), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$8 = (new Duration(0, nsec)), new Duration(x$6.$high + x$8.$high, x$6.$low + x$8.$low)); + } else { + sec$1 = (new $Uint64(sec.$high, sec.$low)); + tmp = $mul64(($shiftRightUint64(sec$1, 32)), new $Uint64(0, 1000000000)); + u1 = $shiftRightUint64(tmp, 32); + u0 = $shiftLeft64(tmp, 32); + tmp = $mul64((new $Uint64(sec$1.$high & 0, (sec$1.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000)); + _tmp = u0; + _tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low); + u0x = _tmp; + u0 = _tmp$1; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$9 = new $Uint64(0, 1), new $Uint64(u1.$high + x$9.$high, u1.$low + x$9.$low)); + } + _tmp$2 = u0; + _tmp$3 = (x$10 = (new $Uint64(0, nsec)), new $Uint64(u0.$high + x$10.$high, u0.$low + x$10.$low)); + u0x = _tmp$2; + u0 = _tmp$3; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$11 = new $Uint64(0, 1), new $Uint64(u1.$high + x$11.$high, u1.$low + x$11.$low)); + } + d1$1 = (new $Uint64(d.$high, d.$low)); + while (true) { + if (!(!((x$12 = $shiftRightUint64(d1$1, 63), (x$12.$high === 0 && x$12.$low === 1))))) { break; } + d1$1 = $shiftLeft64(d1$1, (1)); + } + d0 = new $Uint64(0, 0); + while (true) { + qmod2 = 0; + if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) { + qmod2 = 1; + _tmp$4 = u0; + _tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low); + u0x = _tmp$4; + u0 = _tmp$5; + if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) { + u1 = (x$13 = new $Uint64(0, 1), new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low)); + } + u1 = (x$14 = d1$1, new $Uint64(u1.$high - x$14.$high, u1.$low - x$14.$low)); + } + if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$15 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$15.$high && d0.$low === x$15.$low))) { + break; + } + d0 = $shiftRightUint64(d0, (1)); + d0 = (x$16 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$16.$high, (d0.$low | x$16.$low) >>> 0)); + d1$1 = $shiftRightUint64(d1$1, (1)); + } + r = (new Duration(u0.$high, u0.$low)); + } + if (neg && !((r.$high === 0 && r.$low === 0))) { + qmod2 = (qmod2 ^ (1)) >> 0; + r = new Duration(d.$high - r.$high, d.$low - r.$low); + } + return [qmod2, r]; + }; + Location.ptr.prototype.get = function() { + var l, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + if (l === ptrType$2.nil) { + $s = -1; return utcLoc; + } + /* */ if (l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === localLoc) { */ case 1: + $r = localOnce.Do(initLocal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return l; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.get }; } $f.l = l; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.get = function() { return this.$val.get(); }; + Location.ptr.prototype.String = function() { + var _r, l, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r.name; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.String }; } $f._r = _r; $f.l = l; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.String = function() { return this.$val.String(); }; + FixedZone = function(name, offset) { + var l, name, offset, x$1; + l = new Location.ptr(name, new sliceType([new zone.ptr(name, offset, false)]), new sliceType$1([new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false)]), new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); + l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + return l; + }; + $pkg.FixedZone = FixedZone; + Location.ptr.prototype.lookup = function(sec) { + var _q, _r, end, hi, l, lim, lo, m, name, offset, sec, start, tx, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, zone$1, zone$2, zone$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; end = $f.end; hi = $f.hi; l = $f.l; lim = $f.lim; lo = $f.lo; m = $f.m; name = $f.name; offset = $f.offset; sec = $f.sec; start = $f.start; tx = $f.tx; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; zone$1 = $f.zone$1; zone$2 = $f.zone$2; zone$3 = $f.zone$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + start = new $Int64(0, 0); + end = new $Int64(0, 0); + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + if (l.zone.$length === 0) { + name = "UTC"; + offset = 0; + start = new $Int64(-2147483648, 0); + end = new $Int64(2147483647, 4294967295); + $s = -1; return [name, offset, start, end]; + } + zone$1 = l.cacheZone; + if (!(zone$1 === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { + name = zone$1.name; + offset = zone$1.offset; + start = l.cacheStart; + end = l.cacheEnd; + $s = -1; return [name, offset, start, end]; + } + if ((l.tx.$length === 0) || (x$3 = (x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).when, (sec.$high < x$3.$high || (sec.$high === x$3.$high && sec.$low < x$3.$low)))) { + zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + name = zone$2.name; + offset = zone$2.offset; + start = new $Int64(-2147483648, 0); + if (l.tx.$length > 0) { + end = (x$7 = l.tx, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).when; + } else { + end = new $Int64(2147483647, 4294967295); + } + $s = -1; return [name, offset, start, end]; + } + tx = l.tx; + end = new $Int64(2147483647, 4294967295); + lo = 0; + hi = tx.$length; + while (true) { + if (!((hi - lo >> 0) > 1)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when; + if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) { + end = lim; + hi = m; + } else { + lo = m; + } + } + zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + name = zone$3.name; + offset = zone$3.offset; + start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; + $s = -1; return [name, offset, start, end]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookup }; } $f._q = _q; $f._r = _r; $f.end = end; $f.hi = hi; $f.l = l; $f.lim = lim; $f.lo = lo; $f.m = m; $f.name = name; $f.offset = offset; $f.sec = sec; $f.start = start; $f.tx = tx; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.zone$3 = zone$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.lookup = function(sec) { return this.$val.lookup(sec); }; + Location.ptr.prototype.lookupFirstZone = function() { + var _i, _ref, l, x$1, x$2, x$3, x$4, x$5, x$6, zi, zi$1; + l = this; + if (!l.firstZoneUsed()) { + return 0; + } + if (l.tx.$length > 0 && (x$1 = l.zone, x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).isDST) { + zi = (((x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).index >> 0)) - 1 >> 0; + while (true) { + if (!(zi >= 0)) { break; } + if (!(x$5 = l.zone, ((zi < 0 || zi >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi])).isDST) { + return zi; + } + zi = zi - (1) >> 0; + } + } + _ref = l.zone; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + zi$1 = _i; + if (!(x$6 = l.zone, ((zi$1 < 0 || zi$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + zi$1])).isDST) { + return zi$1; + } + _i++; + } + return 0; + }; + Location.prototype.lookupFirstZone = function() { return this.$val.lookupFirstZone(); }; + Location.ptr.prototype.firstZoneUsed = function() { + var _i, _ref, l, tx; + l = this; + _ref = l.tx; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans); + if (tx.index === 0) { + return true; + } + _i++; + } + return false; + }; + Location.prototype.firstZoneUsed = function() { return this.$val.firstZoneUsed(); }; + Location.ptr.prototype.lookupName = function(name, unix) { + var _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x$1, x$2, x$3, zone$1, zone$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; i = $f.i; i$1 = $f.i$1; l = $f.l; nam = $f.nam; name = $f.name; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; unix = $f.unix; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + offset = 0; + ok = false; + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + _ref = l.zone; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + /* */ if (zone$1.name === name) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (zone$1.name === name) { */ case 4: + _r$1 = l.lookup((x$2 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$2.$high, unix.$low - x$2.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + nam = _tuple[0]; + offset$1 = _tuple[1]; + if (nam === zone$1.name) { + _tmp = offset$1; + _tmp$1 = true; + offset = _tmp; + ok = _tmp$1; + $s = -1; return [offset, ok]; + } + /* } */ case 5: + _i++; + /* } */ $s = 2; continue; case 3: + _ref$1 = l.zone; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1])); + if (zone$2.name === name) { + _tmp$2 = zone$2.offset; + _tmp$3 = true; + offset = _tmp$2; + ok = _tmp$3; + $s = -1; return [offset, ok]; + } + _i$1++; + } + $s = -1; return [offset, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookupName }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.i = i; $f.i$1 = i$1; $f.l = l; $f.nam = nam; $f.name = name; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.unix = unix; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.lookupName = function(name, unix) { return this.$val.lookupName(name, unix); }; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Time.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false)}, {prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}]; + ptrType$7.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}]; + Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}]; + ptrType$2.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}]; + ParseError.init("", [{prop: "Layout", name: "Layout", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LayoutElem", name: "LayoutElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ValueElem", name: "ValueElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}]); + Time.init("time", [{prop: "wall", name: "wall", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ext", name: "ext", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Location.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "zone", name: "zone", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "tx", name: "tx", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "cacheStart", name: "cacheStart", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheEnd", name: "cacheEnd", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheZone", name: "cacheZone", embedded: false, exported: false, typ: ptrType, tag: ""}]); + zone.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "isDST", name: "isDST", embedded: false, exported: false, typ: $Bool, tag: ""}]); + zoneTrans.init("time", [{prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "isstd", name: "isstd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isutc", name: "isutc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + localOnce = new nosync.Once.ptr(false, false); + zoneSources = new sliceType$2([runtime.GOROOT() + "/lib/time/zoneinfo.zip"]); + std0x = $toNativeArray($kindInt, [260, 265, 524, 526, 528, 274]); + longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + shortMonthNames = new sliceType$2(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); + longMonthNames = new sliceType$2(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + atoiError = errors.New("time: invalid number"); + errBad = errors.New("bad value for field"); + errLeadingInt = errors.New("time: bad [0-9]*"); + months = $toNativeArray($kindString, ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + days = $toNativeArray($kindString, ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + unitMap = $makeMap($String.keyFor, [{ k: "ns", v: new $Int64(0, 1) }, { k: "us", v: new $Int64(0, 1000) }, { k: "\xC2\xB5s", v: new $Int64(0, 1000) }, { k: "\xCE\xBCs", v: new $Int64(0, 1000) }, { k: "ms", v: new $Int64(0, 1000000) }, { k: "s", v: new $Int64(0, 1000000000) }, { k: "m", v: new $Int64(13, 4165425152) }, { k: "h", v: new $Int64(838, 817405952) }]); + daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]); + startNano = (x = runtimeNano(), new $Int64(x.$high - 0, x.$low - 1)); + utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + $pkg.UTC = utcLoc; + $pkg.Local = localLoc; + errLocation = errors.New("time: invalid location name"); + badData = errors.New("malformed time zone information"); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/poll"] = (function() { + var $pkg = {}, $init, errors, io, runtime, atomic, syscall, time, pollDesc, TimeoutError, fdMutex, FD, ptrType, chanType, sliceType, ptrType$1, ptrType$2, arrayType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$2, ptrType$9, funcType, funcType$1, ptrType$10, ptrType$11, ptrType$12, sliceType$3, ptrType$13, semWaiters, tryDupCloexec, tryDupCloexec$24ptr, runtime_Semacquire, runtime_Semrelease, errClosing, consume, fcntl, DupCloseOnExec, dupCloseOnExecOld, writev, accept; + errors = $packages["errors"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + pollDesc = $pkg.pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(closing_) { + this.$val = this; + if (arguments.length === 0) { + this.closing = false; + return; + } + this.closing = closing_; + }); + TimeoutError = $pkg.TimeoutError = $newType(0, $kindStruct, "poll.TimeoutError", true, "internal/poll", true, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + fdMutex = $pkg.fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function(state_, rsema_, wsema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = new $Uint64(0, 0); + this.rsema = 0; + this.wsema = 0; + return; + } + this.state = state_; + this.rsema = rsema_; + this.wsema = wsema_; + }); + FD = $pkg.FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { + this.$val = this; + if (arguments.length === 0) { + this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); + this.Sysfd = 0; + this.pd = new pollDesc.ptr(false); + this.iovecs = ptrType$3.nil; + this.csema = 0; + this.isBlocking = 0; + this.IsStream = false; + this.ZeroReadIsEOF = false; + this.isFile = false; + return; + } + this.fdmu = fdmu_; + this.Sysfd = Sysfd_; + this.pd = pd_; + this.iovecs = iovecs_; + this.csema = csema_; + this.isBlocking = isBlocking_; + this.IsStream = IsStream_; + this.ZeroReadIsEOF = ZeroReadIsEOF_; + this.isFile = isFile_; + }); + ptrType = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType = $sliceType(chanType); + ptrType$1 = $ptrType($Uint64); + ptrType$2 = $ptrType($Int32); + arrayType = $arrayType($Uint8, 4); + sliceType$1 = $sliceType(syscall.Iovec); + ptrType$3 = $ptrType(sliceType$1); + ptrType$4 = $ptrType($Uint8); + ptrType$5 = $ptrType(FD); + ptrType$6 = $ptrType(pollDesc); + ptrType$7 = $ptrType(TimeoutError); + ptrType$8 = $ptrType(fdMutex); + sliceType$2 = $sliceType($Uint8); + ptrType$9 = $ptrType(syscall.Stat_t); + funcType = $funcType([$Uintptr], [], false); + funcType$1 = $funcType([$Uintptr], [$Bool], false); + ptrType$10 = $ptrType(syscall.Linger); + ptrType$11 = $ptrType(syscall.IPMreq); + ptrType$12 = $ptrType(syscall.IPv6Mreq); + sliceType$3 = $sliceType(sliceType$2); + ptrType$13 = $ptrType(sliceType$3); + pollDesc.ptr.prototype.init = function(fd) { + var fd, pd; + pd = this; + return $ifaceNil; + }; + pollDesc.prototype.init = function(fd) { return this.$val.init(fd); }; + pollDesc.ptr.prototype.close = function() { + var pd; + pd = this; + }; + pollDesc.prototype.close = function() { return this.$val.close(); }; + pollDesc.ptr.prototype.evict = function() { + var pd; + pd = this; + pd.closing = true; + }; + pollDesc.prototype.evict = function() { return this.$val.evict(); }; + pollDesc.ptr.prototype.prepare = function(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $ifaceNil; + }; + pollDesc.prototype.prepare = function(mode, isFile) { return this.$val.prepare(mode, isFile); }; + pollDesc.ptr.prototype.prepareRead = function(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(114, isFile); + }; + pollDesc.prototype.prepareRead = function(isFile) { return this.$val.prepareRead(isFile); }; + pollDesc.ptr.prototype.prepareWrite = function(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(119, isFile); + }; + pollDesc.prototype.prepareWrite = function(isFile) { return this.$val.prepareWrite(isFile); }; + pollDesc.ptr.prototype.wait = function(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $pkg.ErrTimeout; + }; + pollDesc.prototype.wait = function(mode, isFile) { return this.$val.wait(mode, isFile); }; + pollDesc.ptr.prototype.waitRead = function(isFile) { + var isFile, pd; + pd = this; + return pd.wait(114, isFile); + }; + pollDesc.prototype.waitRead = function(isFile) { return this.$val.waitRead(isFile); }; + pollDesc.ptr.prototype.waitWrite = function(isFile) { + var isFile, pd; + pd = this; + return pd.wait(119, isFile); + }; + pollDesc.prototype.waitWrite = function(isFile) { return this.$val.waitWrite(isFile); }; + pollDesc.ptr.prototype.pollable = function() { + return true; + }; + pollDesc.prototype.pollable = function() { return this.$val.pollable(); }; + FD.ptr.prototype.SetDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); }; + FD.ptr.prototype.SetReadDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); }; + FD.ptr.prototype.SetWriteDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); }; + runtime_Semacquire = function(s) { + var _entry, _key, _r, ch, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; ch = $f.ch; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (s.$get() === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.$get() === 0) { */ case 1: + ch = new $Chan($Bool, 0); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: $append((_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil), ch) }; + _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r[0]; + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semacquire }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f.ch = ch; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_Semrelease = function(s) { + var _entry, _key, ch, s, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; ch = $f.ch; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil); + if (w.$length === 0) { + $s = -1; return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType.keyFor(s)]; + } + $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._key = _key; $f.ch = ch; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + errClosing = function(isFile) { + var isFile; + if (isFile) { + return $pkg.ErrFileClosing; + } + return $pkg.ErrNetClosing; + }; + TimeoutError.ptr.prototype.Error = function() { + var e; + e = this; + return "i/o timeout"; + }; + TimeoutError.prototype.Error = function() { return this.$val.Error(); }; + TimeoutError.ptr.prototype.Timeout = function() { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Timeout = function() { return this.$val.Timeout(); }; + TimeoutError.ptr.prototype.Temporary = function() { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Temporary = function() { return this.$val.Temporary(); }; + consume = function(v, n) { + var ln0, n, v, x, x$1, x$2, x$3; + while (true) { + if (!(v.$get().$length > 0)) { break; } + ln0 = (new $Int64(0, (x = v.$get(), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).$length)); + if ((ln0.$high > n.$high || (ln0.$high === n.$high && ln0.$low > n.$low))) { + (x$2 = v.$get(), (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = v.$get(), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $flatten64(n)))); + return; + } + n = (x$3 = ln0, new $Int64(n.$high - x$3.$high, n.$low - x$3.$low)); + v.$set($subslice((v.$get()), 1)); + } + }; + FD.ptr.prototype.Fsync = function() { + var _tuple, e1, err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; e1 = $f.e1; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _tuple = fcntl(fd.Sysfd, 51, 0); + e1 = _tuple[1]; + $s = -1; return e1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fsync }; } $f._tuple = _tuple; $f.e1 = e1; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fsync = function() { return this.$val.Fsync(); }; + fcntl = function() { + $throwRuntimeError("native function not implemented: internal/poll.fcntl"); + }; + fdMutex.ptr.prototype.incref = function() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + return false; + } + new$1 = new $Uint64(old.$high + 0, old.$low + 8); + if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return true; + } + } + }; + fdMutex.prototype.incref = function() { return this.$val.incref(); }; + fdMutex.ptr.prototype.increfAndClose = function() { + var mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; mu = $f.mu; new$1 = $f.new$1; old = $f.old; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8)); + if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* while (true) { */ case 5: + /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; } + old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); + $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 5; continue; case 6: + /* while (true) { */ case 8: + /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; } + old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); + $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 8; continue; case 9: + $s = -1; return true; + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.increfAndClose }; } $f.mu = mu; $f.new$1 = new$1; $f.old = old; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.increfAndClose = function() { return this.$val.increfAndClose(); }; + fdMutex.ptr.prototype.decref = function() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = new $Uint64(old.$high - 0, old.$low - 8); + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); + } + } + }; + fdMutex.prototype.decref = function() { return this.$val.decref(); }; + fdMutex.ptr.prototype.rwlock = function(read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = new $Uint64(0, 0); + if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8)); + if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } else { + new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low); + if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { + $s = -1; return true; + } + $r = runtime_Semacquire(mutexSema); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.rwlock = function(read) { return this.$val.rwlock(read); }; + fdMutex.ptr.prototype.rwunlock = function(read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8)); + if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { + new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5: + $r = runtime_Semrelease(mutexSema); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1)); + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwunlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.rwunlock = function(read) { return this.$val.rwunlock(read); }; + FD.ptr.prototype.incref = function() { + var fd; + fd = this; + if (!fd.fdmu.incref()) { + return errClosing(fd.isFile); + } + return $ifaceNil; + }; + FD.prototype.incref = function() { return this.$val.incref(); }; + FD.ptr.prototype.decref = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + /* */ if (fd.fdmu.decref()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (fd.fdmu.decref()) { */ case 1: + _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.decref }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.decref = function() { return this.$val.decref(); }; + FD.ptr.prototype.readLock = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.readLock = function() { return this.$val.readLock(); }; + FD.ptr.prototype.readUnlock = function() { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.readUnlock = function() { return this.$val.readUnlock(); }; + FD.ptr.prototype.writeLock = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.writeLock = function() { return this.$val.writeLock(); }; + FD.ptr.prototype.writeUnlock = function() { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.writeUnlock = function() { return this.$val.writeUnlock(); }; + FD.ptr.prototype.eofError = function(n, err) { + var err, fd, n; + fd = this; + if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) { + return io.EOF; + } + return err; + }; + FD.prototype.eofError = function(n, err) { return this.$val.eofError(n, err); }; + FD.ptr.prototype.Fchmod = function(mode) { + var _r, err, fd, mode, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; mode = $f.mode; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchmod(fd.Sysfd, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchmod }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.mode = mode; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchmod = function(mode) { return this.$val.Fchmod(mode); }; + FD.ptr.prototype.Fchown = function(uid, gid) { + var _r, err, fd, gid, uid, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; gid = $f.gid; uid = $f.uid; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchown(fd.Sysfd, uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchown }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchown = function(uid, gid) { return this.$val.Fchown(uid, gid); }; + FD.ptr.prototype.Ftruncate = function(size) { + var _r, err, fd, size, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; size = $f.size; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Ftruncate(fd.Sysfd, size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Ftruncate }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.size = size; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Ftruncate = function(size) { return this.$val.Ftruncate(size); }; + FD.ptr.prototype.Init = function(net, pollable) { + var err, fd, net, pollable; + fd = this; + if (net === "file") { + fd.isFile = true; + } + if (!pollable) { + fd.isBlocking = 1; + return $ifaceNil; + } + err = fd.pd.init(fd); + if (!($interfaceIsEqual(err, $ifaceNil))) { + fd.isBlocking = 1; + } + return err; + }; + FD.prototype.Init = function(net, pollable) { return this.$val.Init(net, pollable); }; + FD.ptr.prototype.destroy = function() { + var _r, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + fd.pd.close(); + _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + fd.Sysfd = -1; + $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.destroy }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.destroy = function() { return this.$val.destroy(); }; + FD.ptr.prototype.Close = function() { + var _r, _r$1, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.increfAndClose(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + fd.pd.evict(); + _r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* */ if (fd.isBlocking === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (fd.isBlocking === 0) { */ case 5: + $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Close }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.Close = function() { return this.$val.Close(); }; + FD.ptr.prototype.Shutdown = function(how) { + var _r, err, fd, how, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; how = $f.how; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Shutdown(fd.Sysfd, how); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Shutdown }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.how = how; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Shutdown = function(how) { return this.$val.Shutdown(how); }; + FD.ptr.prototype.SetBlocking = function() { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1); + _r = syscall.SetNonblock(fd.Sysfd, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetBlocking }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetBlocking = function() { return this.$val.SetBlocking(); }; + FD.ptr.prototype.Read = function(p) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + if (p.$length === 0) { + $s = -1; return [0, $ifaceNil]; + } + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + /* while (true) { */ case 2: + _r$1 = syscall.Read(fd.Sysfd, p); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (true && $interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 2; continue; + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Read }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Read = function(p) { return this.$val.Read(p); }; + FD.ptr.prototype.Pread = function(p, off) { + var _r, _r$1, _tuple, err, err$1, fd, n, off, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; off = $f.off; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + _r = syscall.Pread(fd.Sysfd, p, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + } + _r$1 = fd.decref(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + err$1 = fd.eofError(n, err$1); + $s = -1; return [n, err$1]; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pread }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.off = off; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.Pread = function(p, off) { return this.$val.Pread(p, off); }; + FD.ptr.prototype.ReadFrom = function(p) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, $ifaceNil, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Recvfrom(fd.Sysfd, p, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + sa = _tuple[1]; + err$2 = _tuple[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, sa, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadFrom }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadFrom = function(p) { return this.$val.ReadFrom(p); }; + FD.ptr.prototype.ReadMsg = function(p, oob) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; flags = $f.flags; n = $f.n; oob = $f.oob; oobn = $f.oobn; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, 0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, 0, 0, $ifaceNil, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Recvmsg(fd.Sysfd, p, oob, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + oobn = _tuple[1]; + flags = _tuple[2]; + sa = _tuple[3]; + err$2 = _tuple[4]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, oobn, flags, sa, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadMsg }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.flags = flags; $f.n = n; $f.oob = oob; $f.oobn = oobn; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadMsg = function(p, oob) { return this.$val.ReadMsg(p, oob); }; + FD.ptr.prototype.Write = function(p) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + nn = 0; + /* while (true) { */ case 2: + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _r$1 = syscall.Write(fd.Sysfd, $subslice(p, nn, max)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; return [nn, err$2]; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [nn, err$2]; + } + if (n === 0) { + $s = -1; return [nn, io.ErrUnexpectedEOF]; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Write }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Write = function(p) { return this.$val.Write(p); }; + FD.ptr.prototype.Pwrite = function(p, off) { + var _r, _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; off = $f.off; p = $f.p; x = $f.x; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + nn = 0; + /* while (true) { */ case 1: + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _r = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; return [nn, err$1]; + } + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [nn, err$1]; + } + if (n === 0) { + $s = -1; return [nn, io.ErrUnexpectedEOF]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pwrite }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.off = off; $f.p = p; $f.x = x; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Pwrite = function(p, off) { return this.$val.Pwrite(p, off); }; + FD.ptr.prototype.WriteTo = function(p, sa) { + var _r, _r$1, err, err$1, err$2, fd, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Sendto(fd.Sysfd, p, 0, sa); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$2 = _r$1; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [0, err$2]; + } + $s = -1; return [p.$length, $ifaceNil]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteTo }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteTo = function(p, sa) { return this.$val.WriteTo(p, sa); }; + FD.ptr.prototype.WriteMsg = function(p, oob, sa) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; oob = $f.oob; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, 0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [n, 0, err$2]; + } + $s = -1; return [n, oob.$length, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteMsg }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.oob = oob; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteMsg = function(p, oob, sa) { return this.$val.WriteMsg(p, oob, sa); }; + FD.ptr.prototype.Accept = function() { + var _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; errcall = $f.errcall; fd = $f.fd; rsa = $f.rsa; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "", err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "", err$1]; + } + /* while (true) { */ case 2: + _r$1 = accept(fd.Sysfd); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + s = _tuple[0]; + rsa = _tuple[1]; + errcall = _tuple[2]; + err$2 = _tuple[3]; + if ($interfaceIsEqual(err$2, $ifaceNil)) { + $s = -1; return [s, rsa, "", err$2]; + } + _1 = err$2; + if ($interfaceIsEqual(_1, new syscall.Errno((35)))) { + if (fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + } else if ($interfaceIsEqual(_1, new syscall.Errno((53)))) { + /* continue; */ $s = 2; continue; + } + $s = -1; return [-1, $ifaceNil, errcall, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil, "", $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Accept }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.errcall = errcall; $f.fd = fd; $f.rsa = rsa; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Accept = function() { return this.$val.Accept(); }; + FD.ptr.prototype.Seek = function(offset, whence) { + var _r, err, fd, offset, whence, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; offset = $f.offset; whence = $f.whence; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Seek(fd.Sysfd, offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Seek }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.offset = offset; $f.whence = whence; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; + FD.ptr.prototype.ReadDirent = function(buf) { + var _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + /* while (true) { */ case 1: + _r = syscall.ReadDirent(fd.Sysfd, buf); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$1, new syscall.Errno(35)) && fd.pd.pollable()) { + err$1 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$1, $ifaceNil)) { + /* continue; */ $s = 1; continue; + } + } + } + $s = -1; return [n, err$1]; + /* } */ $s = 1; continue; case 2: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadDirent }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadDirent = function(buf) { return this.$val.ReadDirent(buf); }; + FD.ptr.prototype.Fchdir = function() { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchdir(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchdir }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchdir = function() { return this.$val.Fchdir(); }; + FD.ptr.prototype.Fstat = function(s) { + var _r, err, fd, s, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fstat(fd.Sysfd, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fstat }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fstat = function(s) { return this.$val.Fstat(s); }; + DupCloseOnExec = function(fd) { + var _1, _r, _tuple, e1, fd, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; e1 = $f.e1; fd = $f.fd; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1) { + _tuple = fcntl(fd, 67, 0); + r0 = _tuple[0]; + e1 = _tuple[1]; + if ($interfaceIsEqual(e1, $ifaceNil)) { + $s = -1; return [r0, "", $ifaceNil]; + } + _1 = $assertType(e1, syscall.Errno); + if ((_1 === (22)) || (_1 === (78))) { + atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0); + } else { + $s = -1; return [-1, "fcntl", e1]; + } + } + _r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: DupCloseOnExec }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.e1 = e1; $f.fd = fd; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.DupCloseOnExec = DupCloseOnExec; + dupCloseOnExecOld = function(fd) { + var _r, _tuple, err, fd, newfd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; newfd = $f.newfd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); + _r = syscall.Dup(fd); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + newfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, "dup", err]; + } + $r = syscall.CloseOnExec(newfd); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [newfd, "", $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: dupCloseOnExecOld }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.newfd = newfd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.ptr.prototype.Dup = function() { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, "", err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = DupCloseOnExec(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Dup }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Dup = function() { return this.$val.Dup(); }; + FD.ptr.prototype.WaitWrite = function() { + var fd; + fd = this; + return fd.pd.waitWrite(fd.isFile); + }; + FD.prototype.WaitWrite = function() { return this.$val.WaitWrite(); }; + FD.ptr.prototype.WriteOnce = function(p) { + var _r, _r$1, err, fd, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; fd = $f.fd; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + _r$1 = syscall.Write(fd.Sysfd, p); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteOnce }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.fd = fd; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteOnce = function(p) { return this.$val.WriteOnce(p); }; + FD.ptr.prototype.RawControl = function(f) { + var err, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $r = f(((fd.Sysfd >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawControl }; } $f.err = err; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawControl = function(f) { return this.$val.RawControl(f); }; + FD.ptr.prototype.RawRead = function(f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitRead(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawRead }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawRead = function(f) { return this.$val.RawRead(f); }; + FD.ptr.prototype.RawWrite = function(f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitWrite(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawWrite }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawWrite = function(f) { return this.$val.RawWrite(f); }; + writev = function() { + $throwRuntimeError("native function not implemented: internal/poll.writev"); + }; + FD.ptr.prototype.SetsockoptInt = function(level, name, arg) { + var _r, arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptInt(fd.Sysfd, level, name, arg); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInt }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptInt = function(level, name, arg) { return this.$val.SetsockoptInt(level, name, arg); }; + FD.ptr.prototype.SetsockoptInet4Addr = function(level, name, arg) { + var _r, arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptInet4Addr(fd.Sysfd, level, name, $clone(arg, arrayType)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInet4Addr }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptInet4Addr = function(level, name, arg) { return this.$val.SetsockoptInet4Addr(level, name, arg); }; + FD.ptr.prototype.SetsockoptLinger = function(level, name, l) { + var _r, err, fd, l, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; l = $f.l; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptLinger(fd.Sysfd, level, name, l); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptLinger }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.l = l; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptLinger = function(level, name, l) { return this.$val.SetsockoptLinger(level, name, l); }; + FD.ptr.prototype.SetsockoptByte = function(level, name, arg) { + var _r, arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptByte(fd.Sysfd, level, name, arg); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptByte }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptByte = function(level, name, arg) { return this.$val.SetsockoptByte(level, name, arg); }; + FD.ptr.prototype.SetsockoptIPMreq = function(level, name, mreq) { + var _r, err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptIPMreq(fd.Sysfd, level, name, mreq); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPMreq }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptIPMreq = function(level, name, mreq) { return this.$val.SetsockoptIPMreq(level, name, mreq); }; + FD.ptr.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { + var _r, err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptIPv6Mreq(fd.Sysfd, level, name, mreq); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPv6Mreq }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { return this.$val.SetsockoptIPv6Mreq(level, name, mreq); }; + accept = function(s) { + var _r, _r$1, _r$2, _tuple, err, ns, s, sa, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; err = $f.err; ns = $f.ns; s = $f.s; sa = $f.sa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $pkg.AcceptFunc(s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ns = _tuple[0]; + sa = _tuple[1]; + err = _tuple[2]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 2: + $r = syscall.CloseOnExec(ns); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "accept", err]; + } + _r$1 = syscall.SetNonblock(ns, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: + _r$2 = $pkg.CloseFunc(ns); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return [-1, $ifaceNil, "setnonblock", err]; + /* } */ case 7: + $s = -1; return [ns, sa, "", $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: accept }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f.err = err; $f.ns = ns; $f.s = s; $f.sa = sa; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.ptr.prototype.Writev = function(v) { + var _i, _r, _ref, _tuple, chunk, err, err$1, err$2, fd, iovecs, maxVec, n, v, wrote, x, x$1, x$2, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; chunk = $f.chunk; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; iovecs = $f.iovecs; maxVec = $f.maxVec; n = $f.n; v = $f.v; wrote = $f.wrote; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + iovecs = [iovecs]; + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err$1]; + } + iovecs[0] = sliceType$1.nil; + if (!(fd.iovecs === ptrType$3.nil)) { + iovecs[0] = fd.iovecs.$get(); + } + maxVec = 1024; + n = new $Int64(0, 0); + err$2 = $ifaceNil; + /* while (true) { */ case 2: + /* if (!(v.$get().$length > 0)) { break; } */ if(!(v.$get().$length > 0)) { $s = 3; continue; } + iovecs[0] = $subslice(iovecs[0], 0, 0); + _ref = v.$get(); + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + chunk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (chunk.$length === 0) { + _i++; + /* continue; */ $s = 4; continue; + } + iovecs[0] = $append(iovecs[0], new syscall.Iovec.ptr($indexPtr(chunk.$array, chunk.$offset + 0, ptrType$4), new $Uint64(0, 0))); + if (fd.IsStream && chunk.$length > 1073741824) { + (x = iovecs[0].$length - 1 >> 0, ((x < 0 || x >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x])).SetLen(1073741824); + /* break; */ $s = 5; continue; + } + (x$1 = iovecs[0].$length - 1 >> 0, ((x$1 < 0 || x$1 >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x$1])).SetLen(chunk.$length); + if (iovecs[0].$length === maxVec) { + /* break; */ $s = 5; continue; + } + _i++; + /* } */ $s = 4; continue; case 5: + if (iovecs[0].$length === 0) { + /* break; */ $s = 3; continue; + } + fd.iovecs = (iovecs.$ptr || (iovecs.$ptr = new ptrType$3(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, iovecs))); + wrote = 0; + _tuple = writev(fd.Sysfd, iovecs[0]); + wrote = _tuple[0]; + err$2 = _tuple[1]; + if (wrote === 4294967295) { + wrote = 0; + } + $r = $pkg.TestHookDidWritev(((wrote >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = (x$2 = (new $Int64(0, wrote.constructor === Number ? wrote : 1)), new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); + consume(v, (new $Int64(0, wrote.constructor === Number ? wrote : 1))); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($assertType(err$2, syscall.Errno) === 35) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + /* break; */ $s = 3; continue; + } + if ((n.$high === 0 && n.$low === 0)) { + err$2 = io.ErrUnexpectedEOF; + /* break; */ $s = 3; continue; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return [n, err$2]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Writev }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.chunk = chunk; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.iovecs = iovecs; $f.maxVec = maxVec; $f.n = n; $f.v = v; $f.wrote = wrote; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Writev = function(v) { return this.$val.Writev(v); }; + ptrType$6.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$5], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; + ptrType$7.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$8.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; + ptrType$5.methods = [{prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$2], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType$2, sliceType$2], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$2, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType$2, sliceType$2, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$9], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetsockoptInt", name: "SetsockoptInt", pkg: "", typ: $funcType([$Int, $Int, $Int], [$error], false)}, {prop: "SetsockoptInet4Addr", name: "SetsockoptInet4Addr", pkg: "", typ: $funcType([$Int, $Int, arrayType], [$error], false)}, {prop: "SetsockoptLinger", name: "SetsockoptLinger", pkg: "", typ: $funcType([$Int, $Int, ptrType$10], [$error], false)}, {prop: "SetsockoptByte", name: "SetsockoptByte", pkg: "", typ: $funcType([$Int, $Int, $Uint8], [$error], false)}, {prop: "SetsockoptIPMreq", name: "SetsockoptIPMreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$11], [$error], false)}, {prop: "SetsockoptIPv6Mreq", name: "SetsockoptIPv6Mreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$12], [$error], false)}, {prop: "Writev", name: "Writev", pkg: "", typ: $funcType([ptrType$13], [$Int64, $error], false)}]; + pollDesc.init("internal/poll", [{prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); + TimeoutError.init("", []); + fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + semWaiters = {}; + $pkg.ErrNetClosing = errors.New("use of closed network connection"); + $pkg.ErrFileClosing = errors.New("use of closed file"); + $pkg.ErrNoDeadline = errors.New("file type does not support deadline"); + $pkg.ErrTimeout = new TimeoutError.ptr(); + $pkg.TestHookDidWritev = (function(wrote) { + var wrote; + }); + tryDupCloexec = 1; + $pkg.CloseFunc = syscall.Close; + $pkg.AcceptFunc = syscall.Accept; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/syscall/unix"] = (function() { + var $pkg = {}, $init, syscall, IsNonblock; + syscall = $packages["syscall"]; + IsNonblock = function(fd) { + var _tmp, _tmp$1, err, fd, nonblocking; + nonblocking = false; + err = $ifaceNil; + _tmp = false; + _tmp$1 = $ifaceNil; + nonblocking = _tmp; + err = _tmp$1; + return [nonblocking, err]; + }; + $pkg.IsNonblock = IsNonblock; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = syscall.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/testlog"] = (function() { + var $pkg = {}, $init, atomic, Interface, ptrType, logger, Logger, Stat; + atomic = $packages["sync/atomic"]; + Interface = $pkg.Interface = $newType(8, $kindInterface, "testlog.Interface", true, "internal/testlog", true, null); + ptrType = $ptrType(Interface); + Logger = function() { + var impl; + impl = logger.Load(); + if ($interfaceIsEqual(impl, $ifaceNil)) { + return $ifaceNil; + } + return $assertType(impl, ptrType).$get(); + }; + $pkg.Logger = Logger; + Stat = function(name) { + var log, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; log = $f.log; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Stat }; } $f.log = log; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Stat = Stat; + Interface.init([{prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Getenv", name: "Getenv", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([$String], [], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = atomic.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger = new atomic.Value.ptr($ifaceNil); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["os"] = (function() { + var $pkg = {}, $init, errors, js, poll, unix, testlog, io, runtime, sync, atomic, syscall, time, dirInfo, timeout, PathError, SyscallError, LinkError, file, rawConn, File, FileInfo, FileMode, fileStat, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, arrayType, sliceType$5, ptrType$12, arrayType$2, ptrType$13, funcType$1, ptrType$15, arrayType$5, ptrType$16, funcType$2, funcType$3, ptrType$17, errFinished, lstat, useSyscallwd, _r, _r$1, _r$2, runtime_args, init, runtime_beforeExit, NewSyscallError, IsNotExist, underlyingError, wrapSyscallError, isNotExist, sigpipe, syscallMode, NewFile, newFile, epipecheck, init$1, useSyscallwdDarwin, basename, init$2, Exit, newRawConn, Lstat, fillFileStatFromSys, timespecToTime, lstatNolog; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + poll = $packages["internal/poll"]; + unix = $packages["internal/syscall/unix"]; + testlog = $packages["internal/testlog"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + dirInfo = $pkg.dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function(buf_, nbuf_, bufp_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType$2.nil; + this.nbuf = 0; + this.bufp = 0; + return; + } + this.buf = buf_; + this.nbuf = nbuf_; + this.bufp = bufp_; + }); + timeout = $pkg.timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null); + PathError = $pkg.PathError = $newType(0, $kindStruct, "os.PathError", true, "os", true, function(Op_, Path_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Path = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Path = Path_; + this.Err = Err_; + }); + SyscallError = $pkg.SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Syscall = ""; + this.Err = $ifaceNil; + return; + } + this.Syscall = Syscall_; + this.Err = Err_; + }); + LinkError = $pkg.LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function(Op_, Old_, New_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Old = ""; + this.New = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Old = Old_; + this.New = New_; + this.Err = Err_; + }); + file = $pkg.file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_) { + this.$val = this; + if (arguments.length === 0) { + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, false, false, false); + this.name = ""; + this.dirinfo = ptrType$1.nil; + this.nonblock = false; + this.stdoutOrErr = false; + return; + } + this.pfd = pfd_; + this.name = name_; + this.dirinfo = dirinfo_; + this.nonblock = nonblock_; + this.stdoutOrErr = stdoutOrErr_; + }); + rawConn = $pkg.rawConn = $newType(0, $kindStruct, "os.rawConn", true, "os", false, function(file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType.nil; + return; + } + this.file = file_; + }); + File = $pkg.File = $newType(0, $kindStruct, "os.File", true, "os", true, function(file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$13.nil; + return; + } + this.file = file_; + }); + FileInfo = $pkg.FileInfo = $newType(8, $kindInterface, "os.FileInfo", true, "os", true, null); + FileMode = $pkg.FileMode = $newType(4, $kindUint32, "os.FileMode", true, "os", true, null); + fileStat = $pkg.fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function(name_, size_, mode_, modTime_, sys_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.size = new $Int64(0, 0); + this.mode = 0; + this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil); + this.sys = new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero()); + return; + } + this.name = name_; + this.size = size_; + this.mode = mode_; + this.modTime = modTime_; + this.sys = sys_; + }); + sliceType = $sliceType($String); + ptrType = $ptrType(File); + sliceType$1 = $sliceType(FileInfo); + ptrType$1 = $ptrType(dirInfo); + sliceType$2 = $sliceType($Uint8); + ptrType$2 = $ptrType(PathError); + ptrType$3 = $ptrType(LinkError); + ptrType$4 = $ptrType(SyscallError); + arrayType = $arrayType($Uint8, 4); + sliceType$5 = $sliceType(syscall.Iovec); + ptrType$12 = $ptrType(sliceType$5); + arrayType$2 = $arrayType($Int64, 2); + ptrType$13 = $ptrType(file); + funcType$1 = $funcType([ptrType$13], [$error], false); + ptrType$15 = $ptrType(time.Location); + arrayType$5 = $arrayType($Uint8, 32); + ptrType$16 = $ptrType(fileStat); + funcType$2 = $funcType([$Uintptr], [], false); + funcType$3 = $funcType([$Uintptr], [$Bool], false); + ptrType$17 = $ptrType(rawConn); + runtime_args = function() { + return $pkg.Args; + }; + init = function() { + var argv, i, process; + process = $global.process; + if (!(process === undefined)) { + argv = process.argv; + $pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0)); + i = 0; + while (true) { + if (!(i < ($parseInt(argv.length) - 1 >> 0))) { break; } + ((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String)); + i = i + (1) >> 0; + } + } + if ($pkg.Args.$length === 0) { + $pkg.Args = new sliceType(["?"]); + } + }; + runtime_beforeExit = function() { + }; + File.ptr.prototype.Readdir = function(n) { + var _r$3, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return [sliceType$1.nil, $pkg.ErrInvalid]; + } + _r$3 = f.readdir(n); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdir }; } $f._r$3 = _r$3; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Readdir = function(n) { return this.$val.Readdir(n); }; + File.ptr.prototype.Readdirnames = function(n) { + var _r$3, _tmp, _tmp$1, _tuple, err, f, n, names, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f === ptrType.nil) { + _tmp = sliceType.nil; + _tmp$1 = $pkg.ErrInvalid; + names = _tmp; + err = _tmp$1; + $s = -1; return [names, err]; + } + _r$3 = f.readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + names = _tuple[0]; + err = _tuple[1]; + $s = -1; return [names, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdirnames }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Readdirnames = function(n) { return this.$val.Readdirnames(n); }; + dirInfo.ptr.prototype.close = function() { + var d; + d = this; + }; + dirInfo.prototype.close = function() { return this.$val.close(); }; + File.ptr.prototype.readdirnames = function(n) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, d, err, errno, f, n, names, nb, nc, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; errno = $f.errno; f = $f.f; n = $f.n; names = $f.names; nb = $f.nb; nc = $f.nc; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f.file.dirinfo === ptrType$1.nil) { + f.file.dirinfo = new dirInfo.ptr(sliceType$2.nil, 0, 0); + f.file.dirinfo.buf = $makeSlice(sliceType$2, 8192); + } + d = f.file.dirinfo; + size = n; + if (size <= 0) { + size = 100; + n = -1; + } + names = $makeSlice(sliceType, 0, size); + /* while (true) { */ case 1: + /* if (!(!((n === 0)))) { break; } */ if(!(!((n === 0)))) { $s = 2; continue; } + /* */ if (d.bufp >= d.nbuf) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (d.bufp >= d.nbuf) { */ case 3: + d.bufp = 0; + errno = $ifaceNil; + _r$3 = f.file.pfd.ReadDirent(d.buf); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + d.nbuf = _tuple[0]; + errno = _tuple[1]; + runtime.KeepAlive(f); + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp = names; + _tmp$1 = wrapSyscallError("readdirent", errno); + names = _tmp; + err = _tmp$1; + $s = -1; return [names, err]; + } + if (d.nbuf <= 0) { + /* break; */ $s = 2; continue; + } + /* } */ case 4: + _tmp$2 = 0; + _tmp$3 = 0; + nb = _tmp$2; + nc = _tmp$3; + _tuple$1 = syscall.ParseDirent($subslice(d.buf, d.bufp, d.nbuf), n, names); + nb = _tuple$1[0]; + nc = _tuple$1[1]; + names = _tuple$1[2]; + d.bufp = d.bufp + (nb) >> 0; + n = n - (nc) >> 0; + /* } */ $s = 1; continue; case 2: + if (n >= 0 && (names.$length === 0)) { + _tmp$4 = names; + _tmp$5 = io.EOF; + names = _tmp$4; + err = _tmp$5; + $s = -1; return [names, err]; + } + _tmp$6 = names; + _tmp$7 = $ifaceNil; + names = _tmp$6; + err = _tmp$7; + $s = -1; return [names, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdirnames }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.errno = errno; $f.f = f; $f.n = n; $f.names = names; $f.nb = nb; $f.nc = nc; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.readdirnames = function(n) { return this.$val.readdirnames(n); }; + PathError.ptr.prototype.Error = function() { + var _r$3, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return e.Op + " " + e.Path + ": " + _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Error }; } $f._r$3 = _r$3; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + PathError.prototype.Error = function() { return this.$val.Error(); }; + PathError.ptr.prototype.Timeout = function() { + var _r$3, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r$3 = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 1: + $s = -1; return _v; + /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Timeout }; } $f._r$3 = _r$3; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + PathError.prototype.Timeout = function() { return this.$val.Timeout(); }; + SyscallError.ptr.prototype.Error = function() { + var _r$3, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return e.Syscall + ": " + _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Error }; } $f._r$3 = _r$3; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + SyscallError.prototype.Error = function() { return this.$val.Error(); }; + SyscallError.ptr.prototype.Timeout = function() { + var _r$3, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r$3 = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 1: + $s = -1; return _v; + /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Timeout }; } $f._r$3 = _r$3; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + SyscallError.prototype.Timeout = function() { return this.$val.Timeout(); }; + NewSyscallError = function(syscall$1, err) { + var err, syscall$1; + if ($interfaceIsEqual(err, $ifaceNil)) { + return $ifaceNil; + } + return new SyscallError.ptr(syscall$1, err); + }; + $pkg.NewSyscallError = NewSyscallError; + IsNotExist = function(err) { + var err; + return isNotExist(err); + }; + $pkg.IsNotExist = IsNotExist; + underlyingError = function(err) { + var _ref, err, err$1, err$2, err$3; + _ref = err; + if ($assertType(_ref, ptrType$2, true)[1]) { + err$1 = _ref.$val; + return err$1.Err; + } else if ($assertType(_ref, ptrType$3, true)[1]) { + err$2 = _ref.$val; + return err$2.Err; + } else if ($assertType(_ref, ptrType$4, true)[1]) { + err$3 = _ref.$val; + return err$3.Err; + } + return err; + }; + wrapSyscallError = function(name, err) { + var _tuple, err, name, ok; + _tuple = $assertType(err, syscall.Errno, true); + ok = _tuple[1]; + if (ok) { + err = NewSyscallError(name, err); + } + return err; + }; + isNotExist = function(err) { + var err; + err = underlyingError(err); + return $interfaceIsEqual(err, new syscall.Errno(2)) || $interfaceIsEqual(err, $pkg.ErrNotExist); + }; + File.ptr.prototype.Name = function() { + var f; + f = this; + return f.file.name; + }; + File.prototype.Name = function() { return this.$val.Name(); }; + LinkError.ptr.prototype.Error = function() { + var _r$3, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return e.Op + " " + e.Old + " " + e.New + ": " + _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: LinkError.ptr.prototype.Error }; } $f._r$3 = _r$3; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + LinkError.prototype.Error = function() { return this.$val.Error(); }; + File.ptr.prototype.Read = function(b) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r$3 = f.read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + e = _tuple[1]; + _tmp$2 = n; + _tmp$3 = f.wrapErr("read", e); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Read }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Read = function(b) { return this.$val.Read(b); }; + File.ptr.prototype.ReadAt = function(b, off) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("readat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r$3 = f.pread(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("read", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.ReadAt }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); }; + File.ptr.prototype.Write = function(b) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r$3 = f.write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + e = _tuple[1]; + if (n < 0) { + n = 0; + } + if (!((n === b.$length))) { + err = io.ErrShortWrite; + } + epipecheck(f, e); + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + } + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Write }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Write = function(b) { return this.$val.Write(b); }; + File.ptr.prototype.WriteAt = function(b, off) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("writeat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r$3 = f.pwrite(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteAt }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.WriteAt = function(b, off) { return this.$val.WriteAt(b, off); }; + File.ptr.prototype.Seek = function(offset, whence) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; offset = $f.offset; r = $f.r; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + err$1 = f.checkValid("seek"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = new $Int64(0, 0); + _tmp$1 = err$1; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + } + _r$3 = f.seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + r = _tuple[0]; + e = _tuple[1]; + if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$1.nil) && !((r.$high === 0 && r.$low === 0))) { + e = new syscall.Errno(21); + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = new $Int64(0, 0); + _tmp$3 = f.wrapErr("seek", e); + ret = _tmp$2; + err = _tmp$3; + $s = -1; return [ret, err]; + } + _tmp$4 = r; + _tmp$5 = $ifaceNil; + ret = _tmp$4; + err = _tmp$5; + $s = -1; return [ret, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Seek }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.offset = offset; $f.r = r; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; + File.ptr.prototype.WriteString = function(s) { + var _r$3, _tuple, err, f, n, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.Write((new sliceType$2($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteString }; } $f._r$3 = _r$3; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + File.ptr.prototype.wrapErr = function(op, err) { + var err, f, op; + f = this; + if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { + return err; + } + if ($interfaceIsEqual(err, poll.ErrFileClosing)) { + err = $pkg.ErrClosed; + } + return new PathError.ptr(op, f.file.name, err); + }; + File.prototype.wrapErr = function(op, err) { return this.$val.wrapErr(op, err); }; + File.ptr.prototype.Chmod = function(mode) { + var _r$3, f, mode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r$3 = f.chmod(mode); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chmod }; } $f._r$3 = _r$3; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chmod = function(mode) { return this.$val.Chmod(mode); }; + File.ptr.prototype.SetDeadline = function(t) { + var f, t; + f = this; + return f.setDeadline($clone(t, time.Time)); + }; + File.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); }; + File.ptr.prototype.SetReadDeadline = function(t) { + var f, t; + f = this; + return f.setReadDeadline($clone(t, time.Time)); + }; + File.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); }; + File.ptr.prototype.SetWriteDeadline = function(t) { + var f, t; + f = this; + return f.setWriteDeadline($clone(t, time.Time)); + }; + File.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); }; + File.ptr.prototype.SyscallConn = function() { + var _returncast, err, f; + f = this; + err = f.checkValid("SyscallConn"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [$ifaceNil, err]; + } + _returncast = newRawConn(f); + return [_returncast[0], _returncast[1]]; + }; + File.prototype.SyscallConn = function() { return this.$val.SyscallConn(); }; + sigpipe = function() { + $throwRuntimeError("native function not implemented: os.sigpipe"); + }; + syscallMode = function(i) { + var i, o; + o = 0; + o = (o | (((new FileMode(i).Perm() >>> 0)))) >>> 0; + if (!((((i & 8388608) >>> 0) === 0))) { + o = (o | (2048)) >>> 0; + } + if (!((((i & 4194304) >>> 0) === 0))) { + o = (o | (1024)) >>> 0; + } + if (!((((i & 1048576) >>> 0) === 0))) { + o = (o | (512)) >>> 0; + } + return o; + }; + File.ptr.prototype.chmod = function(mode) { + var _r$3, e, err, f, mode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; err = $f.err; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chmod"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chmod", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.chmod }; } $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.chmod = function(mode) { return this.$val.chmod(mode); }; + File.ptr.prototype.Chown = function(uid, gid) { + var _r$3, e, err, f, gid, uid, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; err = $f.err; f = $f.f; gid = $f.gid; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chown"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chown", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chown }; } $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.f = f; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chown = function(uid, gid) { return this.$val.Chown(uid, gid); }; + File.ptr.prototype.Truncate = function(size) { + var _r$3, e, err, f, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; err = $f.err; f = $f.f; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("truncate"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("truncate", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Truncate }; } $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.f = f; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Truncate = function(size) { return this.$val.Truncate(size); }; + File.ptr.prototype.Sync = function() { + var _r$3, e, err, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("sync"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("sync", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Sync }; } $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Sync = function() { return this.$val.Sync(); }; + File.ptr.prototype.Chdir = function() { + var _r$3, e, err, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chdir"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chdir", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chdir }; } $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chdir = function() { return this.$val.Chdir(); }; + File.ptr.prototype.setDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetDeadline($clone(t, time.Time)); + }; + File.prototype.setDeadline = function(t) { return this.$val.setDeadline(t); }; + File.ptr.prototype.setReadDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetReadDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetReadDeadline($clone(t, time.Time)); + }; + File.prototype.setReadDeadline = function(t) { return this.$val.setReadDeadline(t); }; + File.ptr.prototype.setWriteDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetWriteDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetWriteDeadline($clone(t, time.Time)); + }; + File.prototype.setWriteDeadline = function(t) { return this.$val.setWriteDeadline(t); }; + File.ptr.prototype.checkValid = function(op) { + var f, op; + f = this; + if (f === ptrType.nil) { + return $pkg.ErrInvalid; + } + return $ifaceNil; + }; + File.prototype.checkValid = function(op) { return this.$val.checkValid(op); }; + File.ptr.prototype.Fd = function() { + var _r$3, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return 4294967295; + } + /* */ if (f.file.nonblock) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.file.nonblock) { */ case 1: + _r$3 = f.file.pfd.SetBlocking(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 2: + $s = -1; return ((f.file.pfd.Sysfd >>> 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Fd }; } $f._r$3 = _r$3; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Fd = function() { return this.$val.Fd(); }; + NewFile = function(fd, name) { + var _r$3, _tuple, err, fd, kind, name, nb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tuple = $f._tuple; err = $f.err; fd = $f.fd; kind = $f.kind; name = $f.name; nb = $f.nb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + kind = 0; + _tuple = unix.IsNonblock(((fd >> 0))); + nb = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) && nb) { + kind = 3; + } + _r$3 = newFile(fd, name, kind); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewFile }; } $f._r$3 = _r$3; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.kind = kind; $f.name = name; $f.nb = nb; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewFile = NewFile; + newFile = function(fd, name, kind) { + var _1, _r$3, _r$4, _r$5, err, err$1, err$2, err$3, f, fd, fdi, kind, name, pollable, st, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; f = $f.f; fd = $f.fd; fdi = $f.fdi; kind = $f.kind; name = $f.name; pollable = $f.pollable; st = $f.st; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + st = [st]; + fdi = ((fd >> 0)); + if (fdi < 0) { + $s = -1; return ptrType.nil; + } + f = new File.ptr(new file.ptr(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, true, true, false), name, ptrType$1.nil, false, (fdi === 1) || (fdi === 2))); + pollable = (kind === 1) || (kind === 2) || (kind === 3); + /* */ if (kind === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (kind === 1) { */ case 1: + st[0] = new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero()); + _1 = "darwin"; + /* */ if (_1 === ("freebsd")) { $s = 4; continue; } + /* */ if (_1 === ("dragonfly") || _1 === ("netbsd") || _1 === ("openbsd")) { $s = 5; continue; } + /* */ if (_1 === ("darwin")) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === ("freebsd")) { */ case 4: + pollable = false; + $s = 7; continue; + /* } else if (_1 === ("dragonfly") || _1 === ("netbsd") || _1 === ("openbsd")) { */ case 5: + _r$3 = syscall.Fstat(fdi, st[0]); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if ($interfaceIsEqual(err, $ifaceNil) && (((st[0].Mode & 61440) >>> 0) === 32768)) { + pollable = false; + } + $s = 7; continue; + /* } else if (_1 === ("darwin")) { */ case 6: + _r$4 = syscall.Fstat(fdi, st[0]); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$1 = _r$4; + if ($interfaceIsEqual(err$1, $ifaceNil) && ((((st[0].Mode & 61440) >>> 0) === 4096) || (((st[0].Mode & 61440) >>> 0) === 32768))) { + pollable = false; + } + /* } */ case 7: + case 3: + /* } */ case 2: + err$2 = f.file.pfd.Init("file", pollable); + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 10; continue; } + /* */ if (pollable) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10: + $s = 12; continue; + /* } else if (pollable) { */ case 11: + _r$5 = syscall.SetNonblock(fdi, true); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err$3 = _r$5; + if ($interfaceIsEqual(err$3, $ifaceNil)) { + f.file.nonblock = true; + } + /* } */ case 12: + runtime.SetFinalizer(f.file, new funcType$1($methodExpr(ptrType$13, "close"))); + $s = -1; return f; + /* */ } return; } if ($f === undefined) { $f = { $blk: newFile }; } $f._1 = _1; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.f = f; $f.fd = fd; $f.fdi = fdi; $f.kind = kind; $f.name = name; $f.pollable = pollable; $f.st = st; $f.$s = $s; $f.$r = $r; return $f; + }; + epipecheck = function(file$1, e) { + var e, file$1; + if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { + sigpipe(); + } + }; + File.ptr.prototype.Close = function() { + var _r$3, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return $pkg.ErrInvalid; + } + _r$3 = f.file.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Close }; } $f._r$3 = _r$3; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Close = function() { return this.$val.Close(); }; + file.ptr.prototype.close = function() { + var _r$3, e, err, file$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; err = $f.err; file$1 = $f.file$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + file$1 = this; + if (file$1 === ptrType$13.nil) { + $s = -1; return new syscall.Errno(22); + } + if (!(file$1.dirinfo === ptrType$1.nil)) { + file$1.dirinfo.close(); + } + err = $ifaceNil; + _r$3 = file$1.pfd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + if ($interfaceIsEqual(e, poll.ErrFileClosing)) { + e = $pkg.ErrClosed; + } + err = new PathError.ptr("close", file$1.name, e); + } + runtime.SetFinalizer(file$1, $ifaceNil); + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: file.ptr.prototype.close }; } $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.file$1 = file$1; $f.$s = $s; $f.$r = $r; return $f; + }; + file.prototype.close = function() { return this.$val.close(); }; + File.ptr.prototype.read = function(b) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.read }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.read = function(b) { return this.$val.read(b); }; + File.ptr.prototype.pread = function(b, off) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Pread(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pread }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.pread = function(b, off) { return this.$val.pread(b, off); }; + File.ptr.prototype.write = function(b) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.write }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.write = function(b) { return this.$val.write(b); }; + File.ptr.prototype.pwrite = function(b, off) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Pwrite(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pwrite }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.pwrite = function(b, off) { return this.$val.pwrite(b, off); }; + File.ptr.prototype.seek = function(offset, whence) { + var _r$3, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; offset = $f.offset; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + ret = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = ret; + _tmp$1 = err; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.seek }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.offset = offset; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.seek = function(offset, whence) { return this.$val.seek(offset, whence); }; + File.ptr.prototype.readdir = function(n) { + var _i, _r$3, _r$4, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, dirname, err, f, fi, filename, fip, lerr, n, names, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dirname = $f.dirname; err = $f.err; f = $f.f; fi = $f.fi; filename = $f.filename; fip = $f.fip; lerr = $f.lerr; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fi = sliceType$1.nil; + err = $ifaceNil; + f = this; + dirname = f.file.name; + if (dirname === "") { + dirname = "."; + } + _r$3 = f.Readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + names = _tuple[0]; + err = _tuple[1]; + fi = $makeSlice(sliceType$1, 0, names.$length); + _ref = names; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + filename = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$4 = lstat(dirname + "/" + filename); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + fip = _tuple$1[0]; + lerr = _tuple$1[1]; + if (IsNotExist(lerr)) { + _i++; + /* continue; */ $s = 2; continue; + } + if (!($interfaceIsEqual(lerr, $ifaceNil))) { + _tmp = fi; + _tmp$1 = lerr; + fi = _tmp; + err = _tmp$1; + $s = -1; return [fi, err]; + } + fi = $append(fi, fip); + _i++; + /* } */ $s = 2; continue; case 3: + if ((fi.$length === 0) && $interfaceIsEqual(err, $ifaceNil) && n > 0) { + err = io.EOF; + } + _tmp$2 = fi; + _tmp$3 = err; + fi = _tmp$2; + err = _tmp$3; + $s = -1; return [fi, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdir }; } $f._i = _i; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dirname = dirname; $f.err = err; $f.f = f; $f.fi = fi; $f.filename = filename; $f.fip = fip; $f.lerr = lerr; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.readdir = function(n) { return this.$val.readdir(n); }; + init$1 = function() { + useSyscallwd = useSyscallwdDarwin; + }; + useSyscallwdDarwin = function(err) { + var err; + return !($interfaceIsEqual(err, new syscall.Errno(45))); + }; + basename = function(name) { + var i, name; + i = name.length - 1 >> 0; + while (true) { + if (!(i > 0 && (name.charCodeAt(i) === 47))) { break; } + name = $substring(name, 0, i); + i = i - (1) >> 0; + } + i = i - (1) >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (name.charCodeAt(i) === 47) { + name = $substring(name, (i + 1 >> 0)); + break; + } + i = i - (1) >> 0; + } + return name; + }; + init$2 = function() { + if (false) { + return; + } + $pkg.Args = runtime_args(); + }; + Exit = function(code) { + var code; + if (code === 0) { + runtime_beforeExit(); + } + syscall.Exit(code); + }; + $pkg.Exit = Exit; + rawConn.ptr.prototype.Control = function(f) { + var _r$3, c, err, err$1, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; c = $f.c; err = $f.err; err$1 = $f.err$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = this; + err = c.file.checkValid("SyscallConn.Control"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = c.file.file.pfd.RawControl(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; return err$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: rawConn.ptr.prototype.Control }; } $f._r$3 = _r$3; $f.c = c; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + rawConn.prototype.Control = function(f) { return this.$val.Control(f); }; + rawConn.ptr.prototype.Read = function(f) { + var _r$3, c, err, err$1, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; c = $f.c; err = $f.err; err$1 = $f.err$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = this; + err = c.file.checkValid("SyscallConn.Read"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = c.file.file.pfd.RawRead(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; return err$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: rawConn.ptr.prototype.Read }; } $f._r$3 = _r$3; $f.c = c; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + rawConn.prototype.Read = function(f) { return this.$val.Read(f); }; + rawConn.ptr.prototype.Write = function(f) { + var _r$3, c, err, err$1, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; c = $f.c; err = $f.err; err$1 = $f.err$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = this; + err = c.file.checkValid("SyscallConn.Write"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$3 = c.file.file.pfd.RawWrite(f); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; return err$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: rawConn.ptr.prototype.Write }; } $f._r$3 = _r$3; $f.c = c; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + rawConn.prototype.Write = function(f) { return this.$val.Write(f); }; + newRawConn = function(file$1) { + var file$1; + return [new rawConn.ptr(file$1), $ifaceNil]; + }; + Lstat = function(name) { + var _r$3, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = lstatNolog(name); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: Lstat }; } $f._r$3 = _r$3; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Lstat = Lstat; + fillFileStatFromSys = function(fs, name) { + var _1, fs, name; + fs.name = basename(name); + fs.size = fs.sys.Size; + time.Time.copy(fs.modTime, timespecToTime($clone(fs.sys.Mtimespec, syscall.Timespec))); + fs.mode = ((((fs.sys.Mode & 511) >>> 0) >>> 0)); + _1 = (fs.sys.Mode & 61440) >>> 0; + if ((_1 === (24576)) || (_1 === (57344))) { + fs.mode = (fs.mode | (67108864)) >>> 0; + } else if (_1 === (8192)) { + fs.mode = (fs.mode | (69206016)) >>> 0; + } else if (_1 === (16384)) { + fs.mode = (fs.mode | (2147483648)) >>> 0; + } else if (_1 === (4096)) { + fs.mode = (fs.mode | (33554432)) >>> 0; + } else if (_1 === (40960)) { + fs.mode = (fs.mode | (134217728)) >>> 0; + } else if (_1 === (32768)) { + } else if (_1 === (49152)) { + fs.mode = (fs.mode | (16777216)) >>> 0; + } + if (!((((fs.sys.Mode & 1024) >>> 0) === 0))) { + fs.mode = (fs.mode | (4194304)) >>> 0; + } + if (!((((fs.sys.Mode & 2048) >>> 0) === 0))) { + fs.mode = (fs.mode | (8388608)) >>> 0; + } + if (!((((fs.sys.Mode & 512) >>> 0) === 0))) { + fs.mode = (fs.mode | (1048576)) >>> 0; + } + }; + timespecToTime = function(ts) { + var ts; + return time.Unix((ts.Sec), (ts.Nsec)); + }; + File.ptr.prototype.Stat = function() { + var _r$3, err, f, fs, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; err = $f.err; f = $f.f; fs = $f.fs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fs = [fs]; + f = this; + if (f === ptrType.nil) { + $s = -1; return [$ifaceNil, $pkg.ErrInvalid]; + } + fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero())); + _r$3 = f.file.pfd.Fstat(fs[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new PathError.ptr("stat", f.file.name, err)]; + } + fillFileStatFromSys(fs[0], f.file.name); + $s = -1; return [fs[0], $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Stat }; } $f._r$3 = _r$3; $f.err = err; $f.f = f; $f.fs = fs; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Stat = function() { return this.$val.Stat(); }; + lstatNolog = function(name) { + var _r$3, err, fs, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; err = $f.err; fs = $f.fs; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fs = [fs]; + fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero())); + _r$3 = syscall.Lstat(name, fs[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new PathError.ptr("lstat", name, err)]; + } + fillFileStatFromSys(fs[0], name); + $s = -1; return [fs[0], $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: lstatNolog }; } $f._r$3 = _r$3; $f.err = err; $f.fs = fs; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + FileMode.prototype.String = function() { + var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; + m = this.$val; + buf = arrayType$5.zero(); + w = 0; + _ref = "dalTLDpSugct?"; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24))); + w = w + (1) >> 0; + } + _i += _rune[1]; + } + if (w === 0) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + w = w + (1) >> 0; + } + _ref$1 = "rwxrwxrwx"; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.length)) { break; } + _rune$1 = $decodeRune(_ref$1, _i$1); + i$1 = _i$1; + c$1 = _rune$1[0]; + if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24))); + } else { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + w = w + (1) >> 0; + _i$1 += _rune$1[1]; + } + return ($bytesToString($subslice(new sliceType$2(buf), 0, w))); + }; + $ptrType(FileMode).prototype.String = function() { return new FileMode(this.$get()).String(); }; + FileMode.prototype.IsDir = function() { + var m; + m = this.$val; + return !((((m & 2147483648) >>> 0) === 0)); + }; + $ptrType(FileMode).prototype.IsDir = function() { return new FileMode(this.$get()).IsDir(); }; + FileMode.prototype.IsRegular = function() { + var m; + m = this.$val; + return ((m & 2401763328) >>> 0) === 0; + }; + $ptrType(FileMode).prototype.IsRegular = function() { return new FileMode(this.$get()).IsRegular(); }; + FileMode.prototype.Perm = function() { + var m; + m = this.$val; + return (m & 511) >>> 0; + }; + $ptrType(FileMode).prototype.Perm = function() { return new FileMode(this.$get()).Perm(); }; + fileStat.ptr.prototype.Name = function() { + var fs; + fs = this; + return fs.name; + }; + fileStat.prototype.Name = function() { return this.$val.Name(); }; + fileStat.ptr.prototype.IsDir = function() { + var fs; + fs = this; + return new FileMode(fs.Mode()).IsDir(); + }; + fileStat.prototype.IsDir = function() { return this.$val.IsDir(); }; + fileStat.ptr.prototype.Size = function() { + var fs; + fs = this; + return fs.size; + }; + fileStat.prototype.Size = function() { return this.$val.Size(); }; + fileStat.ptr.prototype.Mode = function() { + var fs; + fs = this; + return fs.mode; + }; + fileStat.prototype.Mode = function() { return this.$val.Mode(); }; + fileStat.ptr.prototype.ModTime = function() { + var fs; + fs = this; + return fs.modTime; + }; + fileStat.prototype.ModTime = function() { return this.$val.ModTime(); }; + fileStat.ptr.prototype.Sys = function() { + var fs; + fs = this; + return fs.sys; + }; + fileStat.prototype.Sys = function() { return this.$val.Sys(); }; + ptrType$1.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [], false)}]; + ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$13.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}]; + ptrType$17.methods = [{prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$2], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$3], [$error], false)}]; + ptrType.methods = [{prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "readdirnames", name: "readdirnames", pkg: "os", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false)}]; + FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}]; + ptrType$16.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; + dirInfo.init("os", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: ""}]); + timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); + PathError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}]); + rawConn.init("os", [{prop: "file", name: "file", embedded: false, exported: false, typ: ptrType, tag: ""}]); + File.init("os", [{prop: "file", name: "file", embedded: true, exported: false, typ: ptrType$13, tag: ""}]); + FileInfo.init([{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]); + fileStat.init("os", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: FileMode, tag: ""}, {prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = poll.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unix.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = testlog.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Args = sliceType.nil; + $pkg.ErrInvalid = errors.New("invalid argument"); + $pkg.ErrPermission = errors.New("permission denied"); + $pkg.ErrExist = errors.New("file already exists"); + $pkg.ErrNotExist = errors.New("file does not exist"); + $pkg.ErrClosed = errors.New("file already closed"); + errFinished = errors.New("os: process already finished"); + _r = NewFile(((syscall.Stdin >>> 0)), "/dev/stdin"); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $pkg.Stdin = _r; + _r$1 = NewFile(((syscall.Stdout >>> 0)), "/dev/stdout"); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $pkg.Stdout = _r$1; + _r$2 = NewFile(((syscall.Stderr >>> 0)), "/dev/stderr"); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $pkg.Stderr = _r$2; + useSyscallwd = (function(param) { + var param; + return true; + }); + lstat = Lstat; + init(); + init$1(); + init$2(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["fmt"] = (function() { + var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, strconv, sync, utf8, fmtFlags, fmt, State, Formatter, Stringer, GoStringer, buffer, pp, scanError, ss, ssave, sliceType, ptrType, ptrType$1, arrayType, arrayType$1, sliceType$1, sliceType$2, arrayType$2, ptrType$2, ptrType$5, ptrType$25, funcType, ppFree, space, ssFree, complexError, boolError, newPrinter, Fprintf, Sprintf, Errorf, Fprint, Fprintln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, isSpace, notSpace, indexRune; + errors = $packages["errors"]; + fmtsort = $packages["internal/fmtsort"]; + io = $packages["io"]; + math = $packages["math"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + utf8 = $packages["unicode/utf8"]; + fmtFlags = $pkg.fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function(widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) { + this.$val = this; + if (arguments.length === 0) { + this.widPresent = false; + this.precPresent = false; + this.minus = false; + this.plus = false; + this.sharp = false; + this.space = false; + this.zero = false; + this.plusV = false; + this.sharpV = false; + return; + } + this.widPresent = widPresent_; + this.precPresent = precPresent_; + this.minus = minus_; + this.plus = plus_; + this.sharp = sharp_; + this.space = space_; + this.zero = zero_; + this.plusV = plusV_; + this.sharpV = sharpV_; + }); + fmt = $pkg.fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function(buf_, fmtFlags_, wid_, prec_, intbuf_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = ptrType$1.nil; + this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false); + this.wid = 0; + this.prec = 0; + this.intbuf = arrayType.zero(); + return; + } + this.buf = buf_; + this.fmtFlags = fmtFlags_; + this.wid = wid_; + this.prec = prec_; + this.intbuf = intbuf_; + }); + State = $pkg.State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null); + Formatter = $pkg.Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null); + Stringer = $pkg.Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null); + GoStringer = $pkg.GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null); + buffer = $pkg.buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null); + pp = $pkg.pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function(buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = buffer.nil; + this.arg = $ifaceNil; + this.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()); + this.reordered = false; + this.goodArgNum = false; + this.panicking = false; + this.erroring = false; + return; + } + this.buf = buf_; + this.arg = arg_; + this.value = value_; + this.fmt = fmt_; + this.reordered = reordered_; + this.goodArgNum = goodArgNum_; + this.panicking = panicking_; + this.erroring = erroring_; + }); + scanError = $pkg.scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + return; + } + this.err = err_; + }); + ss = $pkg.ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function(rs_, buf_, count_, atEOF_, ssave_) { + this.$val = this; + if (arguments.length === 0) { + this.rs = $ifaceNil; + this.buf = buffer.nil; + this.count = 0; + this.atEOF = false; + this.ssave = new ssave.ptr(false, false, false, 0, 0, 0); + return; + } + this.rs = rs_; + this.buf = buf_; + this.count = count_; + this.atEOF = atEOF_; + this.ssave = ssave_; + }); + ssave = $pkg.ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function(validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) { + this.$val = this; + if (arguments.length === 0) { + this.validSave = false; + this.nlIsEnd = false; + this.nlIsSpace = false; + this.argLimit = 0; + this.limit = 0; + this.maxWid = 0; + return; + } + this.validSave = validSave_; + this.nlIsEnd = nlIsEnd_; + this.nlIsSpace = nlIsSpace_; + this.argLimit = argLimit_; + this.limit = limit_; + this.maxWid = maxWid_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(reflect.rtype); + ptrType$1 = $ptrType(buffer); + arrayType = $arrayType($Uint8, 68); + arrayType$1 = $arrayType($Uint16, 2); + sliceType$1 = $sliceType(arrayType$1); + sliceType$2 = $sliceType($Uint8); + arrayType$2 = $arrayType($Uint8, 5); + ptrType$2 = $ptrType(pp); + ptrType$5 = $ptrType(ss); + ptrType$25 = $ptrType(fmt); + funcType = $funcType([$Int32], [$Bool], false); + fmt.ptr.prototype.clearflags = function() { + var f; + f = this; + fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false)); + }; + fmt.prototype.clearflags = function() { return this.$val.clearflags(); }; + fmt.ptr.prototype.init = function(buf) { + var buf, f; + f = this; + f.buf = buf; + f.clearflags(); + }; + fmt.prototype.init = function(buf) { return this.$val.init(buf); }; + fmt.ptr.prototype.writePadding = function(n) { + var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding; + f = this; + if (n <= 0) { + return; + } + buf = f.buf.$get(); + oldLen = buf.$length; + newLen = oldLen + n >> 0; + if (newLen > buf.$capacity) { + buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0)); + $copySlice(buf, f.buf.$get()); + } + padByte = 32; + if (f.fmtFlags.zero) { + padByte = 48; + } + padding = $subslice(buf, oldLen, newLen); + _ref = padding; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte); + _i++; + } + f.buf.$set($subslice(buf, 0, newLen)); + }; + fmt.prototype.writePadding = function(n) { return this.$val.writePadding(n); }; + fmt.ptr.prototype.pad = function(b) { + var b, f, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.Write(b); + return; + } + width = f.wid - utf8.RuneCount(b) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.Write(b); + } else { + f.buf.Write(b); + f.writePadding(width); + } + }; + fmt.prototype.pad = function(b) { return this.$val.pad(b); }; + fmt.ptr.prototype.padString = function(s) { + var f, s, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.WriteString(s); + return; + } + width = f.wid - utf8.RuneCountInString(s) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.WriteString(s); + } else { + f.buf.WriteString(s); + f.writePadding(width); + } + }; + fmt.prototype.padString = function(s) { return this.$val.padString(s); }; + fmt.ptr.prototype.fmtBoolean = function(v) { + var f, v; + f = this; + if (v) { + f.padString("true"); + } else { + f.padString("false"); + } + }; + fmt.prototype.fmtBoolean = function(v) { return this.$val.fmtBoolean(v); }; + fmt.ptr.prototype.fmtUnicode = function(u) { + var buf, f, i, oldZero, prec, u, width; + f = this; + buf = $subslice(new sliceType$2(f.intbuf), 0); + prec = 4; + if (f.fmtFlags.precPresent && f.prec > 4) { + prec = f.prec; + width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + i = buf.$length; + if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0; + utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0))); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + prec = prec - (1) >> 0; + u = $shiftRightUint64(u, (4)); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u))); + prec = prec - (1) >> 0; + while (true) { + if (!(prec > 0)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + prec = prec - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85); + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero; + }; + fmt.prototype.fmtUnicode = function(u) { return this.$val.fmtUnicode(u); }; + fmt.ptr.prototype.fmtInteger = function(u, base, isSigned, digits) { + var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, width, x, x$1, x$2, x$3, x$4; + f = this; + negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0))); + if (negative) { + u = new $Uint64(-u.$high, -u.$low); + } + buf = $subslice(new sliceType$2(f.intbuf), 0); + if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) { + width = (3 + f.wid >> 0) + f.prec >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + prec = 0; + if (f.fmtFlags.precPresent) { + prec = f.prec; + if ((prec === 0) && (u.$high === 0 && u.$low === 0)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.writePadding(f.wid); + f.fmtFlags.zero = oldZero; + return; + } + } else if (f.fmtFlags.zero && f.fmtFlags.widPresent) { + prec = f.wid; + if (negative || f.fmtFlags.plus || f.fmtFlags.space) { + prec = prec - (1) >> 0; + } + } + i = buf.$length; + _1 = base; + if (_1 === (10)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { break; } + i = i - (1) >> 0; + next = $div64(u, new $Uint64(0, 10), false); + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); + u = next; + } + } else if (_1 === (16)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + u = $shiftRightUint64(u, (4)); + } + } else if (_1 === (8)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (3)); + } + } else if (_1 === (2)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (1)); + } + } else { + $panic(new $String("fmt: unknown base; can't happen")); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u))); + while (true) { + if (!(i > 0 && prec > (buf.$length - i >> 0))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + if (f.fmtFlags.sharp) { + _2 = base; + if (_2 === (8)) { + if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } else if (_2 === (16)) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16)); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } + if (negative) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45); + } else if (f.fmtFlags.plus) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + } else if (f.fmtFlags.space) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + oldZero$1 = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero$1; + }; + fmt.prototype.fmtInteger = function(u, base, isSigned, digits) { return this.$val.fmtInteger(u, base, isSigned, digits); }; + fmt.ptr.prototype.truncateString = function(s) { + var _i, _ref, _rune, f, i, n, s; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + n = n - (1) >> 0; + if (n < 0) { + return $substring(s, 0, i); + } + _i += _rune[1]; + } + } + return s; + }; + fmt.prototype.truncateString = function(s) { return this.$val.truncateString(s); }; + fmt.ptr.prototype.truncate = function(b) { + var _tuple, b, f, i, n, wid; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + i = 0; + while (true) { + if (!(i < b.$length)) { break; } + n = n - (1) >> 0; + if (n < 0) { + return $subslice(b, 0, i); + } + wid = 1; + if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) >= 128) { + _tuple = utf8.DecodeRune($subslice(b, i)); + wid = _tuple[1]; + } + i = i + (wid) >> 0; + } + } + return b; + }; + fmt.prototype.truncate = function(b) { return this.$val.truncate(b); }; + fmt.ptr.prototype.fmtS = function(s) { + var f, s; + f = this; + s = f.truncateString(s); + f.padString(s); + }; + fmt.prototype.fmtS = function(s) { return this.$val.fmtS(s); }; + fmt.ptr.prototype.fmtBs = function(b) { + var b, f; + f = this; + b = f.truncate(b); + f.pad(b); + }; + fmt.prototype.fmtBs = function(b) { return this.$val.fmtBs(b); }; + fmt.ptr.prototype.fmtSbx = function(s, b, digits) { + var b, buf, c, digits, f, i, length, s, width; + f = this; + length = b.$length; + if (b === sliceType$2.nil) { + length = s.length; + } + if (f.fmtFlags.precPresent && f.prec < length) { + length = f.prec; + } + width = $imul(2, length); + if (width > 0) { + if (f.fmtFlags.space) { + if (f.fmtFlags.sharp) { + width = $imul(width, (2)); + } + width = width + ((length - 1 >> 0)) >> 0; + } else if (f.fmtFlags.sharp) { + width = width + (2) >> 0; + } + } else { + if (f.fmtFlags.widPresent) { + f.writePadding(f.wid); + } + return; + } + if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + buf = f.buf.$get(); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + c = 0; + i = 0; + while (true) { + if (!(i < length)) { break; } + if (f.fmtFlags.space && i > 0) { + buf = $append(buf, 32); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + } + if (!(b === sliceType$2.nil)) { + c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]); + } else { + c = s.charCodeAt(i); + } + buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0))); + i = i + (1) >> 0; + } + f.buf.$set(buf); + if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + }; + fmt.prototype.fmtSbx = function(s, b, digits) { return this.$val.fmtSbx(s, b, digits); }; + fmt.ptr.prototype.fmtSx = function(s, digits) { + var digits, f, s; + f = this; + f.fmtSbx(s, sliceType$2.nil, digits); + }; + fmt.prototype.fmtSx = function(s, digits) { return this.$val.fmtSx(s, digits); }; + fmt.ptr.prototype.fmtBx = function(b, digits) { + var b, digits, f; + f = this; + f.fmtSbx("", b, digits); + }; + fmt.prototype.fmtBx = function(b, digits) { return this.$val.fmtBx(b, digits); }; + fmt.ptr.prototype.fmtQ = function(s) { + var buf, f, s; + f = this; + s = f.truncateString(s); + if (f.fmtFlags.sharp && strconv.CanBackquote(s)) { + f.padString("`" + s + "`"); + return; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteToASCII(buf, s)); + } else { + f.pad(strconv.AppendQuote(buf, s)); + } + }; + fmt.prototype.fmtQ = function(s) { return this.$val.fmtQ(s); }; + fmt.ptr.prototype.fmtC = function(c) { + var buf, c, f, r, w; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + w = utf8.EncodeRune($subslice(buf, 0, 4), r); + f.pad($subslice(buf, 0, w)); + }; + fmt.prototype.fmtC = function(c) { return this.$val.fmtC(c); }; + fmt.ptr.prototype.fmtQc = function(c) { + var buf, c, f, r; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteRuneToASCII(buf, r)); + } else { + f.pad(strconv.AppendQuoteRune(buf, r)); + } + }; + fmt.prototype.fmtQc = function(c) { return this.$val.fmtQc(c); }; + fmt.ptr.prototype.fmtFloat = function(v, size, verb, prec) { + var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, size, tail, tailBuf, v, verb; + f = this; + if (f.fmtFlags.precPresent) { + prec = f.prec; + } + num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size); + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) { + num = $subslice(num, 1); + } else { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43); + } + if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32); + } + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) { + num = $subslice(num, 1); + } + f.pad(num); + f.fmtFlags.zero = oldZero; + return; + } + if (f.fmtFlags.sharp && !((verb === 98))) { + digits = 0; + _1 = verb; + if ((_1 === (118)) || (_1 === (103)) || (_1 === (71))) { + digits = prec; + if (digits === -1) { + digits = 6; + } + } + tailBuf = arrayType$2.zero(); + tail = $subslice(new sliceType$2(tailBuf), 0, 0); + hasDecimalPoint = false; + i = 1; + while (true) { + if (!(i < num.$length)) { break; } + _2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]); + if (_2 === (46)) { + hasDecimalPoint = true; + } else if ((_2 === (101)) || (_2 === (69))) { + tail = $appendSlice(tail, $subslice(num, i)); + num = $subslice(num, 0, i); + } else { + digits = digits - (1) >> 0; + } + i = i + (1) >> 0; + } + if (!hasDecimalPoint) { + num = $append(num, 46); + } + while (true) { + if (!(digits > 0)) { break; } + num = $append(num, 48); + digits = digits - (1) >> 0; + } + num = $appendSlice(num, tail); + } + if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) { + if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) { + f.buf.WriteByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0])); + f.writePadding(f.wid - num.$length >> 0); + f.buf.Write($subslice(num, 1)); + return; + } + f.pad(num); + return; + } + f.pad($subslice(num, 1)); + }; + fmt.prototype.fmtFloat = function(v, size, verb, prec) { return this.$val.fmtFloat(v, size, verb, prec); }; + $ptrType(buffer).prototype.Write = function(p) { + var b, p; + b = this; + b.$set($appendSlice(b.$get(), p)); + }; + $ptrType(buffer).prototype.WriteString = function(s) { + var b, s; + b = this; + b.$set($appendSlice(b.$get(), s)); + }; + $ptrType(buffer).prototype.WriteByte = function(c) { + var b, c; + b = this; + b.$set($append(b.$get(), c)); + }; + $ptrType(buffer).prototype.WriteRune = function(r) { + var b, bp, n, r, w, x; + bp = this; + if (r < 128) { + bp.$set($append(bp.$get(), ((r << 24 >>> 24)))); + return; + } + b = bp.$get(); + n = b.$length; + while (true) { + if (!((n + 4 >> 0) > b.$capacity)) { break; } + b = $append(b, 0); + } + w = utf8.EncodeRune((x = $subslice(b, n, (n + 4 >> 0)), $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)), r); + bp.$set($subslice(b, 0, (n + w >> 0))); + }; + newPrinter = function() { + var _r, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = ppFree.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = $assertType(_r, ptrType$2); + p.panicking = false; + p.erroring = false; + p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))); + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: newPrinter }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.ptr.prototype.free = function() { + var p; + p = this; + if (p.buf.$capacity > 65536) { + return; + } + p.buf = $subslice(p.buf, 0, 0); + p.arg = $ifaceNil; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + ppFree.Put(p); + }; + pp.prototype.free = function() { return this.$val.free(); }; + pp.ptr.prototype.Width = function() { + var _tmp, _tmp$1, ok, p, wid; + wid = 0; + ok = false; + p = this; + _tmp = p.fmt.wid; + _tmp$1 = p.fmt.fmtFlags.widPresent; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + }; + pp.prototype.Width = function() { return this.$val.Width(); }; + pp.ptr.prototype.Precision = function() { + var _tmp, _tmp$1, ok, p, prec; + prec = 0; + ok = false; + p = this; + _tmp = p.fmt.prec; + _tmp$1 = p.fmt.fmtFlags.precPresent; + prec = _tmp; + ok = _tmp$1; + return [prec, ok]; + }; + pp.prototype.Precision = function() { return this.$val.Precision(); }; + pp.ptr.prototype.Flag = function(b) { + var _1, b, p; + p = this; + _1 = b; + if (_1 === (45)) { + return p.fmt.fmtFlags.minus; + } else if (_1 === (43)) { + return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV; + } else if (_1 === (35)) { + return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV; + } else if (_1 === (32)) { + return p.fmt.fmtFlags.space; + } else if (_1 === (48)) { + return p.fmt.fmtFlags.zero; + } + return false; + }; + pp.prototype.Flag = function(b) { return this.$val.Flag(b); }; + pp.ptr.prototype.Write = function(b) { + var _tmp, _tmp$1, b, err, p, ret; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).Write(b); + _tmp = b.$length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.Write = function(b) { return this.$val.Write(b); }; + pp.ptr.prototype.WriteString = function(s) { + var _tmp, _tmp$1, err, p, ret, s; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(s); + _tmp = s.length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + Fprintf = function(w, format, a) { + var _r, _r$1, _tuple, a, err, format, n, p, w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; format = $f.format; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fprintf }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.format = format; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fprintf = Fprintf; + Sprintf = function(format, a) { + var _r, a, format, p, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; format = $f.format; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sprintf }; } $f._r = _r; $f.a = a; $f.format = format; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sprintf = Sprintf; + Errorf = function(format, a) { + var _r, _r$1, a, format, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; a = $f.a; format = $f.format; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = Sprintf(format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = errors.New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Errorf }; } $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.format = format; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Errorf = Errorf; + Fprint = function(w, a) { + var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fprint }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fprint = Fprint; + Fprintln = function(w, a) { + var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; err = $f.err; n = $f.n; p = $f.p; w = $f.w; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintln(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Fprintln }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.err = err; $f.n = n; $f.p = p; $f.w = w; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Fprintln = Fprintln; + getField = function(v, i) { + var _r, _r$1, i, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r; + /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: + _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + /* } */ case 3: + $s = -1; return val; + /* */ } return; } if ($f === undefined) { $f = { $blk: getField }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + tooLarge = function(x) { + var x; + return x > 1000000 || x < -1000000; + }; + parsenum = function(s, start, end) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start; + num = 0; + isnum = false; + newi = 0; + if (start >= end) { + _tmp = 0; + _tmp$1 = false; + _tmp$2 = end; + num = _tmp; + isnum = _tmp$1; + newi = _tmp$2; + return [num, isnum, newi]; + } + newi = start; + while (true) { + if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { break; } + if (tooLarge(num)) { + _tmp$3 = 0; + _tmp$4 = false; + _tmp$5 = end; + num = _tmp$3; + isnum = _tmp$4; + newi = _tmp$5; + return [num, isnum, newi]; + } + num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0; + isnum = true; + newi = newi + (1) >> 0; + } + return [num, isnum, newi]; + }; + pp.ptr.prototype.unknownType = function(v) { + var _r, p, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!$clone(v, reflect.Value).IsValid()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); + _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.unknownType }; } $f._r = _r; $f.p = p; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.unknownType = function(v) { return this.$val.unknownType(v); }; + pp.ptr.prototype.badVerb = function(verb) { + var _r, _r$1, p, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.erroring = true; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; } + /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: + _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: + _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 5: + case 1: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + p.erroring = false; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.badVerb }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.badVerb = function(verb) { return this.$val.badVerb(verb); }; + pp.ptr.prototype.fmtBool = function(v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (116)) || (_1 === (118))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (116)) || (_1 === (118))) { */ case 2: + p.fmt.fmtBoolean(v); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBool }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtBool = function(v, verb) { return this.$val.fmtBool(v, verb); }; + pp.ptr.prototype.fmt0x64 = function(v, leading0x) { + var leading0x, p, sharp, v; + p = this; + sharp = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = leading0x; + p.fmt.fmtInteger(v, 16, false, "0123456789abcdefx"); + p.fmt.fmtFlags.sharp = sharp; + }; + pp.prototype.fmt0x64 = function(v, leading0x) { return this.$val.fmt0x64(v, leading0x); }; + pp.ptr.prototype.fmtInteger = function(v, isSigned, verb) { + var _1, isSigned, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; isSigned = $f.isSigned; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (100)) { $s = 3; continue; } + /* */ if (_1 === (98)) { $s = 4; continue; } + /* */ if (_1 === (111)) { $s = 5; continue; } + /* */ if (_1 === (120)) { $s = 6; continue; } + /* */ if (_1 === (88)) { $s = 7; continue; } + /* */ if (_1 === (99)) { $s = 8; continue; } + /* */ if (_1 === (113)) { $s = 9; continue; } + /* */ if (_1 === (85)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV && !isSigned) { + p.fmt0x64(v, true); + } else { + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + } + $s = 12; continue; + /* } else if (_1 === (100)) { */ case 3: + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (98)) { */ case 4: + p.fmt.fmtInteger(v, 2, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (111)) { */ case 5: + p.fmt.fmtInteger(v, 8, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (120)) { */ case 6: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (88)) { */ case 7: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789ABCDEFX"); + $s = 12; continue; + /* } else if (_1 === (99)) { */ case 8: + p.fmt.fmtC(v); + $s = 12; continue; + /* } else if (_1 === (113)) { */ case 9: + /* */ if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { */ case 13: + p.fmt.fmtQc(v); + $s = 15; continue; + /* } else { */ case 14: + $r = p.badVerb(verb); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $s = 12; continue; + /* } else if (_1 === (85)) { */ case 10: + p.fmt.fmtUnicode(v); + $s = 12; continue; + /* } else { */ case 11: + $r = p.badVerb(verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtInteger }; } $f._1 = _1; $f.isSigned = isSigned; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtInteger = function(v, isSigned, verb) { return this.$val.fmtInteger(v, isSigned, verb); }; + pp.ptr.prototype.fmtFloat = function(v, size, verb) { + var _1, p, size, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { $s = 3; continue; } + /* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { $s = 4; continue; } + /* */ if (_1 === (70)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (118)) { */ case 2: + p.fmt.fmtFloat(v, size, 103, -1); + $s = 7; continue; + /* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { */ case 3: + p.fmt.fmtFloat(v, size, verb, -1); + $s = 7; continue; + /* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4: + p.fmt.fmtFloat(v, size, verb, 6); + $s = 7; continue; + /* } else if (_1 === (70)) { */ case 5: + p.fmt.fmtFloat(v, size, 102, 6); + $s = 7; continue; + /* } else { */ case 6: + $r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtFloat }; } $f._1 = _1; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtFloat = function(v, size, verb) { return this.$val.fmtFloat(v, size, verb); }; + pp.ptr.prototype.fmtComplex = function(v, size, verb) { + var _1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; oldPlus = $f.oldPlus; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: + oldPlus = p.fmt.fmtFlags.plus; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.fmt.fmtFlags.plus = true; + $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("i)"); + p.fmt.fmtFlags.plus = oldPlus; + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtComplex }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f.oldPlus = oldPlus; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtComplex = function(v, size, verb) { return this.$val.fmtComplex(v, size, verb); }; + pp.ptr.prototype.fmtString = function(v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + p.fmt.fmtQ(v); + } else { + p.fmt.fmtS(v); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtS(v); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtSx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtSx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(v); + $s = 8; continue; + /* } else { */ case 7: + $r = p.badVerb(verb); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtString }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtString = function(v, verb) { return this.$val.fmtString(v, verb); }; + pp.ptr.prototype.fmtBytes = function(v, verb, typeString) { + var _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; c = $f.c; c$1 = $f.c$1; i = $f.i; i$1 = $f.i$1; p = $f.p; typeString = $f.typeString; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (100))) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(typeString); + if (v === sliceType$2.nil) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + _ref = v; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + p.fmt0x64((new $Uint64(0, c)), true); + _i++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); + _ref$1 = v; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, "0123456789abcdefx"); + _i$1++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtBs(v); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtBx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtBx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(($bytesToString(v))); + $s = 8; continue; + /* } else { */ case 7: + _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBytes }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.i$1 = i$1; $f.p = p; $f.typeString = typeString; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtBytes = function(v, verb, typeString) { return this.$val.fmtBytes(v, verb, typeString); }; + pp.ptr.prototype.fmtPointer = function(value, verb) { + var _1, _2, _r, p, u, value, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; p = $f.p; u = $f.u; value = $f.value; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + u = 0; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2: + u = $clone(value, reflect.Value).Pointer(); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + case 1: + _2 = verb; + /* */ if (_2 === (118)) { $s = 7; continue; } + /* */ if (_2 === (112)) { $s = 8; continue; } + /* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_2 === (118)) { */ case 7: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 12: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(")("); + if (u === 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("nil"); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + $s = 14; continue; + /* } else { */ case 13: + if (u === 0) { + p.fmt.padString(""); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + } + /* } */ case 14: + $s = 11; continue; + /* } else if (_2 === (112)) { */ case 8: + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + $s = 11; continue; + /* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9: + $r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + $r = p.badVerb(verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtPointer }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f.p = p; $f.u = u; $f.value = value; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtPointer = function(value, verb) { return this.$val.fmtPointer(value, verb); }; + pp.ptr.prototype.catchPanic = function(arg, verb, method) { + var _r, arg, err, method, oldFlags, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; method = $f.method; oldFlags = $f.oldFlags; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + err = $recover(); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: + _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; return; + } + if (p.panicking) { + $panic(err); + } + oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(PANIC="); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(method); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(" method: "); + p.panicking = true; + $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.panicking = false; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + fmtFlags.copy(p.fmt.fmtFlags, oldFlags); + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.catchPanic }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.method = method; $f.oldFlags = oldFlags; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.catchPanic = function(arg, verb, method) { return this.$val.catchPanic(arg, verb, method); }; + pp.ptr.prototype.handleMethods = function(verb) { + var _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, formatter, handled, ok, ok$1, p, stringer, v, v$1, verb, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; formatter = $f.formatter; handled = $f.handled; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; stringer = $f.stringer; v = $f.v; v$1 = $f.v$1; verb = $f.verb; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + handled = false; + p = this; + if (p.erroring) { + $s = -1; return handled; + } + _tuple = $assertType(p.arg, Formatter, true); + formatter = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Format"]]); + $r = formatter.Format(p, verb); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 2: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 4: + _tuple$1 = $assertType(p.arg, GoStringer, true); + stringer = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ok$1) { */ case 7: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "GoString"]]); + _r = stringer.GoString(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 8: + $s = 6; continue; + /* } else { */ case 5: + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 12: + _ref = p.arg; + /* */ if ($assertType(_ref, $error, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, Stringer, true)[1]) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($assertType(_ref, $error, true)[1]) { */ case 14: + v = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Error"]]); + _r$1 = v.Error(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtString(_r$1, verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 15: + v$1 = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "String"]]); + _r$2 = v$1.String(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 16: + /* } */ case 13: + case 11: + /* } */ case 6: + handled = false; + $s = -1; return handled; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: pp.ptr.prototype.handleMethods }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.formatter = formatter; $f.handled = handled; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.stringer = stringer; $f.v = v; $f.v$1 = v$1; $f.verb = verb; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + pp.prototype.handleMethods = function(verb) { return this.$val.handleMethods(verb); }; + pp.ptr.prototype.printArg = function(arg, verb) { + var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; arg = $f.arg; f = $f.f; f$1 = $f.f$1; f$10 = $f.f$10; f$11 = $f.f$11; f$12 = $f.f$12; f$13 = $f.f$13; f$14 = $f.f$14; f$15 = $f.f$15; f$16 = $f.f$16; f$17 = $f.f$17; f$18 = $f.f$18; f$19 = $f.f$19; f$2 = $f.f$2; f$3 = $f.f$3; f$4 = $f.f$4; f$5 = $f.f$5; f$6 = $f.f$6; f$7 = $f.f$7; f$8 = $f.f$8; f$9 = $f.f$9; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.arg = arg; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1: + _1 = verb; + /* */ if ((_1 === (84)) || (_1 === (118))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (84)) || (_1 === (118))) { */ case 4: + p.fmt.padString(""); + $s = 6; continue; + /* } else { */ case 5: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + case 3: + $s = -1; return; + /* } */ case 2: + _2 = verb; + /* */ if (_2 === (84)) { $s = 9; continue; } + /* */ if (_2 === (112)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_2 === (84)) { */ case 9: + _r = reflect.TypeOf(arg).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } else if (_2 === (112)) { */ case 10: + _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 11: + case 8: + _ref = arg; + /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: + f = _ref.$val; + $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: + f$1 = _ref.$val; + $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: + f$2 = _ref.$val; + $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: + f$3 = _ref.$val; + $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: + f$4 = _ref.$val; + $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: + f$5 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: + f$6 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: + f$7 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: + f$8 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: + f$9 = _ref.$val; + $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: + f$10 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: + f$11 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: + f$12 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: + f$13 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: + f$14 = _ref.$val; + $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: + f$15 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: + f$16 = _ref.$val; + $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33: + f$17 = _ref.$val; + $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: + f$18 = _ref.$val; + /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: + _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p.arg = _r$2; + _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (_r$3) { */ case 58: + $s = -1; return; + /* } */ case 59: + /* } */ case 56: + $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else { */ case 35: + f$19 = _ref; + _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!_r$4) { */ case 62: + _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 63: + /* } */ case 36: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printArg }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.arg = arg; $f.f = f; $f.f$1 = f$1; $f.f$10 = f$10; $f.f$11 = f$11; $f.f$12 = f$12; $f.f$13 = f$13; $f.f$14 = f$14; $f.f$15 = f$15; $f.f$16 = f$16; $f.f$17 = f$17; $f.f$18 = f$18; $f.f$19 = f$19; $f.f$2 = f$2; $f.f$3 = f$3; $f.f$4 = f$4; $f.f$5 = f$5; $f.f$6 = f$6; $f.f$7 = f$7; $f.f$8 = f$8; $f.f$9 = f$9; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.printArg = function(arg, verb) { return this.$val.printArg(arg, verb); }; + pp.ptr.prototype.printValue = function(value, verb, depth) { + var _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; a = $f.a; bytes = $f.bytes; depth = $f.depth; f = $f.f; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; key = $f.key; name = $f.name; p = $f.p; sorted = $f.sorted; t = $f.t; value = $f.value; value$1 = $f.value$1; verb = $f.verb; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1: + _r = $clone(value, reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.arg = _r; + _r$1 = p.handleMethods(verb); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return; + /* } */ case 5: + /* } */ case 2: + p.arg = $ifaceNil; + p.value = value; + f = value; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if (_1 === (0)) { $s = 8; continue; } + /* */ if (_1 === (1)) { $s = 9; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 10; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 11; continue; } + /* */ if (_1 === (13)) { $s = 12; continue; } + /* */ if (_1 === (14)) { $s = 13; continue; } + /* */ if (_1 === (15)) { $s = 14; continue; } + /* */ if (_1 === (16)) { $s = 15; continue; } + /* */ if (_1 === (24)) { $s = 16; continue; } + /* */ if (_1 === (21)) { $s = 17; continue; } + /* */ if (_1 === (25)) { $s = 18; continue; } + /* */ if (_1 === (20)) { $s = 19; continue; } + /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 20; continue; } + /* */ if (_1 === (22)) { $s = 21; continue; } + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_1 === (0)) { */ case 8: + /* */ if (depth === 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (depth === 0) { */ case 25: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 27; continue; + /* } else { */ case 26: + _2 = verb; + /* */ if (_2 === (118)) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_2 === (118)) { */ case 29: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 31; continue; + /* } else { */ case 30: + $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + case 28: + /* } */ case 27: + $s = 24; continue; + /* } else if (_1 === (1)) { */ case 9: + $r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10: + $r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11: + $r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (13)) { */ case 12: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (14)) { */ case 13: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (15)) { */ case 14: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (16)) { */ case 15: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (24)) { */ case 16: + _r$2 = $clone(f, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (21)) { */ case 17: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 42: + _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + $s = 44; continue; + /* } else { */ case 43: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("map["); + /* } */ case 44: + _r$4 = fmtsort.Sort($clone(f, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + sorted = _r$4; + _ref = sorted.Key; + _i = 0; + /* while (true) { */ case 48: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 49; continue; } + i = _i; + key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); + $r = p.printValue($clone((x$1 = sorted.Value, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), reflect.Value), verb, depth + 1 >> 0); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 48; continue; case 49: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 24; continue; + /* } else if (_1 === (25)) { */ case 18: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 52: + _r$5 = $clone(f, reflect.Value).Type().String(); /* */ $s = 54; case 54: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$5); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$1 = 0; + /* while (true) { */ case 56: + /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 57; continue; } + if (i$1 > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 58: + _r$6 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 60; case 60: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + name = _r$6.Name; + if (!(name === "")) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(name); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); + } + /* } */ case 59: + _r$7 = getField($clone(f, reflect.Value), i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$7, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 62; case 62: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 56; continue; case 57: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 24; continue; + /* } else if (_1 === (20)) { */ case 19: + _r$8 = $clone(f, reflect.Value).Elem(); /* */ $s = 63; case 63: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + value$1 = _r$8; + /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 64: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 67: + _r$9 = $clone(f, reflect.Value).Type().String(); /* */ $s = 70; case 70: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$9); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = 69; continue; + /* } else { */ case 68: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 69: + $s = 66; continue; + /* } else { */ case 65: + $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 66: + $s = 24; continue; + /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: + _3 = verb; + /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 74; continue; } + /* */ $s = 75; continue; + /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 74: + t = $clone(f, reflect.Value).Type(); + _r$10 = t.Elem(); /* */ $s = 78; case 78: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = _r$10.Kind(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11 === 8) { $s = 76; continue; } + /* */ $s = 77; continue; + /* if (_r$11 === 8) { */ case 76: + bytes = sliceType$2.nil; + /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 80; continue; } + /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 80: + _r$12 = $clone(f, reflect.Value).Bytes(); /* */ $s = 84; case 84: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + bytes = _r$12; + $s = 83; continue; + /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 81: + _r$13 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = $clone(_r$13, reflect.Value).Bytes(); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + bytes = _r$14; + $s = 83; continue; + /* } else { */ case 82: + bytes = $makeSlice(sliceType$2, $clone(f, reflect.Value).Len()); + _ref$1 = bytes; + _i$1 = 0; + /* while (true) { */ case 87: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 88; continue; } + i$2 = _i$1; + _r$15 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 89; case 89: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = $clone(_r$15, reflect.Value).Uint(); /* */ $s = 90; case 90: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$16.$low << 24 >>> 24))); + _i$1++; + /* } */ $s = 87; continue; case 88: + /* } */ case 83: + _arg = bytes; + _arg$1 = verb; + _r$17 = t.String(); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _arg$2 = _r$17; + $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 77: + /* } */ case 75: + case 73: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 93; continue; } + /* */ $s = 94; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 93: + _r$18 = $clone(f, reflect.Value).Type().String(); /* */ $s = 96; case 96: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$18); /* */ $s = 97; case 97: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$3 = 0; + /* while (true) { */ case 98: + /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 99; continue; } + if (i$3 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + _r$19 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 100; case 100: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$19, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 101; case 101: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$3 = i$3 + (1) >> 0; + /* } */ $s = 98; continue; case 99: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 95; continue; + /* } else { */ case 94: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); + i$4 = 0; + /* while (true) { */ case 102: + /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 103; continue; } + if (i$4 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + _r$20 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 104; case 104: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$20, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 105; case 105: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$4 = i$4 + (1) >> 0; + /* } */ $s = 102; continue; case 103: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + /* } */ case 95: + $s = 24; continue; + /* } else if (_1 === (22)) { */ case 21: + /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 106; continue; } + /* */ $s = 107; continue; + /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 106: + _r$21 = $clone(f, reflect.Value).Elem(); /* */ $s = 109; case 109: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + a = _r$21; + _4 = $clone(a, reflect.Value).Kind(); + /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 110; continue; } + /* */ $s = 111; continue; + /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 110: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(38); + $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 112; case 112: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 111: + case 108: + /* } */ case 107: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else { */ case 23: + $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + case 7: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printValue }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f.a = a; $f.bytes = bytes; $f.depth = depth; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.key = key; $f.name = name; $f.p = p; $f.sorted = sorted; $f.t = t; $f.value = value; $f.value$1 = value$1; $f.verb = verb; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.printValue = function(value, verb, depth) { return this.$val.printValue(value, verb, depth); }; + intFromArg = function(a, argNum) { + var _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; a = $f.a; argNum = $f.argNum; isInt = $f.isInt; n = $f.n; n$1 = $f.n$1; newArgNum = $f.newArgNum; num = $f.num; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + num = 0; + isInt = false; + newArgNum = 0; + newArgNum = argNum; + /* */ if (argNum < a.$length) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (argNum < a.$length) { */ case 1: + _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); + num = _tuple[0]; + isInt = _tuple[1]; + /* */ if (!isInt) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!isInt) { */ case 3: + _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + n = $clone(v, reflect.Value).Int(); + if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { + num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); + isInt = true; + } + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + n$1 = $clone(v, reflect.Value).Uint(); + if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { + num = ((n$1.$low >> 0)); + isInt = true; + } + } + case 5: + /* } */ case 4: + newArgNum = argNum + 1 >> 0; + if (tooLarge(num)) { + num = 0; + isInt = false; + } + /* } */ case 2: + $s = -1; return [num, isInt, newArgNum]; + /* */ } return; } if ($f === undefined) { $f = { $blk: intFromArg }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.argNum = argNum; $f.isInt = isInt; $f.n = n; $f.n$1 = n$1; $f.newArgNum = newArgNum; $f.num = num; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + parseArgNumber = function(format) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; + index = 0; + wid = 0; + ok = false; + if (format.length < 3) { + _tmp = 0; + _tmp$1 = 1; + _tmp$2 = false; + index = _tmp; + wid = _tmp$1; + ok = _tmp$2; + return [index, wid, ok]; + } + i = 1; + while (true) { + if (!(i < format.length)) { break; } + if (format.charCodeAt(i) === 93) { + _tuple = parsenum(format, 1, i); + width = _tuple[0]; + ok$1 = _tuple[1]; + newi = _tuple[2]; + if (!ok$1 || !((newi === i))) { + _tmp$3 = 0; + _tmp$4 = i + 1 >> 0; + _tmp$5 = false; + index = _tmp$3; + wid = _tmp$4; + ok = _tmp$5; + return [index, wid, ok]; + } + _tmp$6 = width - 1 >> 0; + _tmp$7 = i + 1 >> 0; + _tmp$8 = true; + index = _tmp$6; + wid = _tmp$7; + ok = _tmp$8; + return [index, wid, ok]; + } + i = i + (1) >> 0; + } + _tmp$9 = 0; + _tmp$10 = 1; + _tmp$11 = false; + index = _tmp$9; + wid = _tmp$10; + ok = _tmp$11; + return [index, wid, ok]; + }; + pp.ptr.prototype.argNumber = function(argNum, format, i, numArgs) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid; + newArgNum = 0; + newi = 0; + found = false; + p = this; + if (format.length <= i || !((format.charCodeAt(i) === 91))) { + _tmp = argNum; + _tmp$1 = i; + _tmp$2 = false; + newArgNum = _tmp; + newi = _tmp$1; + found = _tmp$2; + return [newArgNum, newi, found]; + } + p.reordered = true; + _tuple = parseArgNumber($substring(format, i)); + index = _tuple[0]; + wid = _tuple[1]; + ok = _tuple[2]; + if (ok && 0 <= index && index < numArgs) { + _tmp$3 = index; + _tmp$4 = i + wid >> 0; + _tmp$5 = true; + newArgNum = _tmp$3; + newi = _tmp$4; + found = _tmp$5; + return [newArgNum, newi, found]; + } + p.goodArgNum = false; + _tmp$6 = argNum; + _tmp$7 = i + wid >> 0; + _tmp$8 = ok; + newArgNum = _tmp$6; + newi = _tmp$7; + found = _tmp$8; + return [newArgNum, newi, found]; + }; + pp.prototype.argNumber = function(argNum, format, i, numArgs) { return this.$val.argNumber(argNum, format, i, numArgs); }; + pp.ptr.prototype.badArgNum = function(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(BADINDEX)"); + }; + pp.prototype.badArgNum = function(verb) { return this.$val.badArgNum(verb); }; + pp.ptr.prototype.missingArg = function(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(MISSING)"); + }; + pp.prototype.missingArg = function(verb) { return this.$val.missingArg(verb); }; + pp.ptr.prototype.doPrintf = function(format, a) { + var _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; a = $f.a; afterIndex = $f.afterIndex; arg = $f.arg; argNum = $f.argNum; c = $f.c; end = $f.end; format = $f.format; i = $f.i; i$1 = $f.i$1; lasti = $f.lasti; p = $f.p; size = $f.size; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + end = format.length; + argNum = 0; + afterIndex = false; + p.reordered = false; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 2; continue; } + p.goodArgNum = true; + lasti = i; + while (true) { + if (!(i < end && !((format.charCodeAt(i) === 37)))) { break; } + i = i + (1) >> 0; + } + if (i > lasti) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString($substring(format, lasti, i)); + } + if (i >= end) { + /* break; */ $s = 2; continue; + } + i = i + (1) >> 0; + p.fmt.clearflags(); + /* while (true) { */ case 3: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 4; continue; } + c = format.charCodeAt(i); + _1 = c; + /* */ if (_1 === (35)) { $s = 6; continue; } + /* */ if (_1 === (48)) { $s = 7; continue; } + /* */ if (_1 === (43)) { $s = 8; continue; } + /* */ if (_1 === (45)) { $s = 9; continue; } + /* */ if (_1 === (32)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (35)) { */ case 6: + p.fmt.fmtFlags.sharp = true; + $s = 12; continue; + /* } else if (_1 === (48)) { */ case 7: + p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus; + $s = 12; continue; + /* } else if (_1 === (43)) { */ case 8: + p.fmt.fmtFlags.plus = true; + $s = 12; continue; + /* } else if (_1 === (45)) { */ case 9: + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + $s = 12; continue; + /* } else if (_1 === (32)) { */ case 10: + p.fmt.fmtFlags.space = true; + $s = 12; continue; + /* } else { */ case 11: + /* */ if (97 <= c && c <= 122 && argNum < a.$length) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13: + if (c === 118) { + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + i = i + (1) >> 0; + /* continue formatLoop; */ $s = 1; continue s; + /* } */ case 14: + /* break simpleFormat; */ $s = 4; continue s; + /* } */ case 12: + case 5: + i = i + (1) >> 0; + /* } */ $s = 3; continue; case 4: + _tuple = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple[0]; + i = _tuple[1]; + afterIndex = _tuple[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: + i = i + (1) >> 0; + _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + p.fmt.wid = _tuple$1[0]; + p.fmt.fmtFlags.widPresent = _tuple$1[1]; + argNum = _tuple$1[2]; + if (!p.fmt.fmtFlags.widPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADWIDTH)"); + } + if (p.fmt.wid < 0) { + p.fmt.wid = -p.fmt.wid; + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + } + afterIndex = false; + $s = 18; continue; + /* } else { */ case 17: + _tuple$2 = parsenum(format, i, end); + p.fmt.wid = _tuple$2[0]; + p.fmt.fmtFlags.widPresent = _tuple$2[1]; + i = _tuple$2[2]; + if (afterIndex && p.fmt.fmtFlags.widPresent) { + p.goodArgNum = false; + } + /* } */ case 18: + /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: + i = i + (1) >> 0; + if (afterIndex) { + p.goodArgNum = false; + } + _tuple$3 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$3[0]; + i = _tuple$3[1]; + afterIndex = _tuple$3[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: + i = i + (1) >> 0; + _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$4 = _r$1; + p.fmt.prec = _tuple$4[0]; + p.fmt.fmtFlags.precPresent = _tuple$4[1]; + argNum = _tuple$4[2]; + if (p.fmt.prec < 0) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = false; + } + if (!p.fmt.fmtFlags.precPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADPREC)"); + } + afterIndex = false; + $s = 24; continue; + /* } else { */ case 23: + _tuple$5 = parsenum(format, i, end); + p.fmt.prec = _tuple$5[0]; + p.fmt.fmtFlags.precPresent = _tuple$5[1]; + i = _tuple$5[2]; + if (!p.fmt.fmtFlags.precPresent) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = true; + } + /* } */ case 24: + /* } */ case 21: + if (!afterIndex) { + _tuple$6 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$6[0]; + i = _tuple$6[1]; + afterIndex = _tuple$6[2]; + } + if (i >= end) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(NOVERB)"); + /* break; */ $s = 2; continue; + } + _tmp = ((format.charCodeAt(i) >> 0)); + _tmp$1 = 1; + verb = _tmp; + size = _tmp$1; + if (verb >= 128) { + _tuple$7 = utf8.DecodeRuneInString($substring(format, i)); + verb = _tuple$7[0]; + size = _tuple$7[1]; + } + i = i + (size) >> 0; + /* */ if ((verb === 37)) { $s = 27; continue; } + /* */ if (!p.goodArgNum) { $s = 28; continue; } + /* */ if (argNum >= a.$length) { $s = 29; continue; } + /* */ if ((verb === 118)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ((verb === 37)) { */ case 27: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(37); + $s = 32; continue; + /* } else if (!p.goodArgNum) { */ case 28: + p.badArgNum(verb); + $s = 32; continue; + /* } else if (argNum >= a.$length) { */ case 29: + p.missingArg(verb); + $s = 32; continue; + /* } else if ((verb === 118)) { */ case 30: + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + $s = 32; continue; + /* } else { */ case 31: + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + /* } */ case 32: + case 26: + /* } */ $s = 1; continue; case 2: + /* */ if (!p.reordered && argNum < a.$length) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!p.reordered && argNum < a.$length) { */ case 35: + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(EXTRA "); + _ref = $subslice(a, argNum); + _i = 0; + /* while (true) { */ case 37: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 38; continue; } + i$1 = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 41; continue; + /* } else { */ case 40: + _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$2); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(arg, 118); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + _i++; + /* } */ $s = 37; continue; case 38: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + /* } */ case 36: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintf }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.a = a; $f.afterIndex = afterIndex; $f.arg = arg; $f.argNum = argNum; $f.c = c; $f.end = end; $f.format = format; $f.i = i; $f.i$1 = i$1; $f.lasti = lasti; $f.p = p; $f.size = size; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrintf = function(format, a) { return this.$val.doPrintf(format, a); }; + pp.ptr.prototype.doPrint = function(a) { + var _i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _v = $f._v; a = $f.a; arg = $f.arg; argNum = $f.argNum; isString = $f.isString; p = $f.p; prevString = $f.prevString; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + prevString = false; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(!($interfaceIsEqual(arg, $ifaceNil)))) { _v = false; $s = 3; continue s; } + _r = reflect.TypeOf(arg).Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === 24; case 3: + isString = _v; + if (argNum > 0 && !isString && !prevString) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prevString = isString; + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrint }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._v = _v; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.isString = isString; $f.p = p; $f.prevString = prevString; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrint = function(a) { return this.$val.doPrint(a); }; + pp.ptr.prototype.doPrintln = function(a) { + var _i, _ref, a, arg, argNum, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _ref = $f._ref; a = $f.a; arg = $f.arg; argNum = $f.argNum; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (argNum > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + $r = p.printArg(arg, 118); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(10); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintln }; } $f._i = _i; $f._ref = _ref; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrintln = function(a) { return this.$val.doPrintln(a); }; + ss.ptr.prototype.Read = function(buf) { + var _tmp, _tmp$1, buf, err, n, s; + n = 0; + err = $ifaceNil; + s = this; + _tmp = 0; + _tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune"); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + ss.prototype.Read = function(buf) { return this.$val.Read(buf); }; + ss.ptr.prototype.ReadRune = function() { + var _r, _tuple, err, r, s, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + size = 0; + err = $ifaceNil; + s = this; + if (s.atEOF || s.count >= s.ssave.argLimit) { + err = io.EOF; + $s = -1; return [r, size, err]; + } + _r = s.rs.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + size = _tuple[1]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + s.count = s.count + (1) >> 0; + if (s.ssave.nlIsEnd && (r === 10)) { + s.atEOF = true; + } + } else if ($interfaceIsEqual(err, io.EOF)) { + s.atEOF = true; + } + $s = -1; return [r, size, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.ReadRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.ReadRune = function() { return this.$val.ReadRune(); }; + ss.ptr.prototype.Width = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid; + wid = 0; + ok = false; + s = this; + if (s.ssave.maxWid === 1073741824) { + _tmp = 0; + _tmp$1 = false; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + } + _tmp$2 = s.ssave.maxWid; + _tmp$3 = true; + wid = _tmp$2; + ok = _tmp$3; + return [wid, ok]; + }; + ss.prototype.Width = function() { return this.$val.Width(); }; + ss.ptr.prototype.getRune = function() { + var _r, _tuple, err, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + s = this; + _r = s.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + r = -1; + $s = -1; return r; + } + s.error(err); + } + $s = -1; return r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.getRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.getRune = function() { return this.$val.getRune(); }; + ss.ptr.prototype.UnreadRune = function() { + var _r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + _r = s.rs.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + s.atEOF = false; + s.count = s.count - (1) >> 0; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.UnreadRune }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; + ss.ptr.prototype.error = function(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(err), new x.constructor.elem(x))); + }; + ss.prototype.error = function(err) { return this.$val.error(err); }; + ss.ptr.prototype.errorString = function(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x))); + }; + ss.prototype.errorString = function(err) { return this.$val.errorString(err); }; + ss.ptr.prototype.Token = function(skipSpace, f) { + var _r, err, f, s, skipSpace, tok, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; s = $f.s; skipSpace = $f.skipSpace; tok = $f.tok; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + err = [err]; + tok = sliceType$2.nil; + err[0] = $ifaceNil; + s = this; + $deferred.push([(function(err) { return function() { + var _tuple, e, ok, se; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, scanError, true); + se = $clone(_tuple[0], scanError); + ok = _tuple[1]; + if (ok) { + err[0] = se.err; + } else { + $panic(e); + } + } + }; })(err), []]); + if (f === $throwNilPointerError) { + f = notSpace; + } + s.buf = $subslice(s.buf, 0, 0); + _r = s.token(skipSpace, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tok = _r; + $s = -1; return [tok, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tok, err[0]]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: ss.ptr.prototype.Token }; } $f._r = _r; $f.err = err; $f.f = f; $f.s = s; $f.skipSpace = skipSpace; $f.tok = tok; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + ss.prototype.Token = function(skipSpace, f) { return this.$val.Token(skipSpace, f); }; + isSpace = function(r) { + var _i, _ref, r, rng, rx; + if (r >= 65536) { + return false; + } + rx = ((r << 16 >>> 16)); + _ref = space; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$1); + if (rx < rng[0]) { + return false; + } + if (rx <= rng[1]) { + return true; + } + _i++; + } + return false; + }; + notSpace = function(r) { + var r; + return !isSpace(r); + }; + ss.ptr.prototype.free = function(old) { + var old, s; + s = this; + if (old.validSave) { + ssave.copy(s.ssave, old); + return; + } + if (s.buf.$capacity > 1024) { + return; + } + s.buf = $subslice(s.buf, 0, 0); + s.rs = $ifaceNil; + ssFree.Put(s); + }; + ss.prototype.free = function(old) { return this.$val.free(old); }; + ss.ptr.prototype.SkipSpace = function() { + var _r, _r$1, _r$2, _v, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _v = $f._v; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + /* while (true) { */ case 1: + _r = s.getRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + $s = -1; return; + } + if (!(r === 13)) { _v = false; $s = 6; continue s; } + _r$1 = s.peek("\n"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + /* continue; */ $s = 1; continue; + /* } */ case 5: + /* */ if (r === 10) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (r === 10) { */ case 8: + if (s.ssave.nlIsSpace) { + /* continue; */ $s = 1; continue; + } + s.errorString("unexpected newline"); + $s = -1; return; + /* } */ case 9: + /* */ if (!isSpace(r)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!isSpace(r)) { */ case 10: + _r$2 = s.UnreadRune(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 2; continue; + /* } */ case 11: + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.SkipSpace }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._v = _v; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.SkipSpace = function() { return this.$val.SkipSpace(); }; + ss.ptr.prototype.token = function(skipSpace, f) { + var _r, _r$1, _r$2, f, r, s, skipSpace, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; f = $f.f; r = $f.r; s = $f.s; skipSpace = $f.skipSpace; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (skipSpace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (skipSpace) { */ case 1: + $r = s.SkipSpace(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* while (true) { */ case 4: + _r = s.getRune(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + /* break; */ $s = 5; continue; + } + _r$1 = f(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + _r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 5; continue; + /* } */ case 8: + (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).WriteRune(r); + /* } */ $s = 4; continue; case 5: + $s = -1; return (x = s.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)); + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.token }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.f = f; $f.r = r; $f.s = s; $f.skipSpace = skipSpace; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.token = function(skipSpace, f) { return this.$val.token(skipSpace, f); }; + indexRune = function(s, r) { + var _i, _ref, _rune, c, i, r, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (c === r) { + return i; + } + _i += _rune[1]; + } + return -1; + }; + ss.ptr.prototype.peek = function(ok) { + var _r, _r$1, ok, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; ok = $f.ok; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + _r = s.getRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = s.UnreadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 3: + $s = -1; return indexRune(ok, r) >= 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.peek }; } $f._r = _r; $f._r$1 = _r$1; $f.ok = ok; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.peek = function(ok) { return this.$val.peek(ok); }; + ptrType$25.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $String], [], false)}, {prop: "truncateString", name: "truncateString", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([sliceType$2], [sliceType$2], false)}, {prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBs", name: "fmtBs", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false)}, {prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false)}, {prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}]; + ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [], false)}]; + ptrType$2.methods = [{prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false)}, {prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false)}, {prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false)}, {prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false)}, {prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false)}, {prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false)}, {prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false)}, {prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32, $String], [], false)}, {prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false)}, {prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType], [], false)}, {prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType], [], false)}, {prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType], [], false)}]; + ptrType$5.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false)}, {prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false)}, {prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false)}, {prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false)}, {prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false)}, {prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false)}, {prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false)}, {prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false)}, {prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false)}, {prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false)}, {prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false)}, {prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false)}, {prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false)}, {prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false)}, {prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false)}, {prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType], [$Int, $error], false)}]; + fmtFlags.init("fmt", [{prop: "widPresent", name: "widPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "precPresent", name: "precPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minus", name: "minus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plus", name: "plus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharp", name: "sharp", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "zero", name: "zero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plusV", name: "plusV", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharpV", name: "sharpV", embedded: false, exported: false, typ: $Bool, tag: ""}]); + fmt.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "fmtFlags", name: "fmtFlags", embedded: true, exported: false, typ: fmtFlags, tag: ""}, {prop: "wid", name: "wid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prec", name: "prec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "intbuf", name: "intbuf", embedded: false, exported: false, typ: arrayType, tag: ""}]); + State.init([{prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]); + Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false)}]); + Stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + GoStringer.init([{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]); + buffer.init($Uint8); + pp.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "fmt", name: "fmt", embedded: false, exported: false, typ: fmt, tag: ""}, {prop: "reordered", name: "reordered", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goodArgNum", name: "goodArgNum", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "panicking", name: "panicking", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "erroring", name: "erroring", embedded: false, exported: false, typ: $Bool, tag: ""}]); + scanError.init("fmt", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + ss.init("fmt", [{prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: ""}]); + ssave.init("fmt", [{prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmtsort.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ppFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { + return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()), false, false, false, false); + })); + space = new sliceType$1([$toNativeArray($kindUint16, [9, 13]), $toNativeArray($kindUint16, [32, 32]), $toNativeArray($kindUint16, [133, 133]), $toNativeArray($kindUint16, [160, 160]), $toNativeArray($kindUint16, [5760, 5760]), $toNativeArray($kindUint16, [8192, 8202]), $toNativeArray($kindUint16, [8232, 8233]), $toNativeArray($kindUint16, [8239, 8239]), $toNativeArray($kindUint16, [8287, 8287]), $toNativeArray($kindUint16, [12288, 12288])]); + ssFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { + return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); + })); + complexError = errors.New("syntax error scanning complex number"); + boolError = errors.New("syntax error scanning boolean"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strings"] = (function() { + var $pkg = {}, $init, errors, js, bytealg, io, sync, unicode, utf8, sliceType, Index, Count, Replace, ReplaceAll; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + io = $packages["io"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + sliceType = $sliceType($Uint8); + Index = function(s, sep) { + var s, sep; + return $parseInt(s.indexOf(sep)) >> 0; + }; + $pkg.Index = Index; + Count = function(s, sep) { + var n, pos, s, sep; + n = 0; + if ((sep.length === 0)) { + return utf8.RuneCountInString(s) + 1 >> 0; + } else if (sep.length > s.length) { + return 0; + } else if ((sep.length === s.length)) { + if (sep === s) { + return 1; + } + return 0; + } + while (true) { + pos = Index(s, sep); + if (pos === -1) { + break; + } + n = n + (1) >> 0; + s = $substring(s, (pos + sep.length >> 0)); + } + return n; + }; + $pkg.Count = Count; + Replace = function(s, old, new$1, n) { + var _tuple, i, j, m, n, new$1, old, s, start, t, w, wid; + if (old === new$1 || (n === 0)) { + return s; + } + m = Count(s, old); + if (m === 0) { + return s; + } else if (n < 0 || m < n) { + n = m; + } + t = $makeSlice(sliceType, (s.length + ($imul(n, ((new$1.length - old.length >> 0)))) >> 0)); + w = 0; + start = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + j = start; + if (old.length === 0) { + if (i > 0) { + _tuple = utf8.DecodeRuneInString($substring(s, start)); + wid = _tuple[1]; + j = j + (wid) >> 0; + } + } else { + j = j + (Index($substring(s, start), old)) >> 0; + } + w = w + ($copyString($subslice(t, w), $substring(s, start, j))) >> 0; + w = w + ($copyString($subslice(t, w), new$1)) >> 0; + start = j + old.length >> 0; + i = i + (1) >> 0; + } + w = w + ($copyString($subslice(t, w), $substring(s, start))) >> 0; + return ($bytesToString($subslice(t, 0, w))); + }; + $pkg.Replace = Replace; + ReplaceAll = function(s, old, new$1) { + var new$1, old, s; + return Replace(s, old, new$1, -1); + }; + $pkg.ReplaceAll = ReplaceAll; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["flag"] = (function() { + var $pkg = {}, $init, errors, fmt, io, os, reflect, sort, strconv, strings, time, boolValue, boolFlag, intValue, int64Value, uintValue, uint64Value, stringValue, float64Value, durationValue, Value, ErrorHandling, FlagSet, Flag, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$1, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, sliceType$2, funcType, ptrType$19, funcType$1, mapType, errParse, errRange, x, numError, newBoolValue, newIntValue, newInt64Value, newUintValue, newUint64Value, newStringValue, newFloat64Value, newDurationValue, sortFlags, isZeroValue, UnquoteUsage, PrintDefaults, init, commandLineUsage, NewFlagSet; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + io = $packages["io"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + time = $packages["time"]; + boolValue = $pkg.boolValue = $newType(1, $kindBool, "flag.boolValue", true, "flag", false, null); + boolFlag = $pkg.boolFlag = $newType(8, $kindInterface, "flag.boolFlag", true, "flag", false, null); + intValue = $pkg.intValue = $newType(4, $kindInt, "flag.intValue", true, "flag", false, null); + int64Value = $pkg.int64Value = $newType(8, $kindInt64, "flag.int64Value", true, "flag", false, null); + uintValue = $pkg.uintValue = $newType(4, $kindUint, "flag.uintValue", true, "flag", false, null); + uint64Value = $pkg.uint64Value = $newType(8, $kindUint64, "flag.uint64Value", true, "flag", false, null); + stringValue = $pkg.stringValue = $newType(8, $kindString, "flag.stringValue", true, "flag", false, null); + float64Value = $pkg.float64Value = $newType(8, $kindFloat64, "flag.float64Value", true, "flag", false, null); + durationValue = $pkg.durationValue = $newType(8, $kindInt64, "flag.durationValue", true, "flag", false, null); + Value = $pkg.Value = $newType(8, $kindInterface, "flag.Value", true, "flag", true, null); + ErrorHandling = $pkg.ErrorHandling = $newType(4, $kindInt, "flag.ErrorHandling", true, "flag", true, null); + FlagSet = $pkg.FlagSet = $newType(0, $kindStruct, "flag.FlagSet", true, "flag", true, function(Usage_, name_, parsed_, actual_, formal_, args_, errorHandling_, output_) { + this.$val = this; + if (arguments.length === 0) { + this.Usage = $throwNilPointerError; + this.name = ""; + this.parsed = false; + this.actual = false; + this.formal = false; + this.args = sliceType$2.nil; + this.errorHandling = 0; + this.output = $ifaceNil; + return; + } + this.Usage = Usage_; + this.name = name_; + this.parsed = parsed_; + this.actual = actual_; + this.formal = formal_; + this.args = args_; + this.errorHandling = errorHandling_; + this.output = output_; + }); + Flag = $pkg.Flag = $newType(0, $kindStruct, "flag.Flag", true, "flag", true, function(Name_, Usage_, Value_, DefValue_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Usage = ""; + this.Value = $ifaceNil; + this.DefValue = ""; + return; + } + this.Name = Name_; + this.Usage = Usage_; + this.Value = Value_; + this.DefValue = DefValue_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(strconv.NumError); + ptrType$1 = $ptrType(boolValue); + ptrType$2 = $ptrType(intValue); + ptrType$3 = $ptrType(int64Value); + ptrType$4 = $ptrType(uintValue); + ptrType$5 = $ptrType(uint64Value); + ptrType$6 = $ptrType(stringValue); + ptrType$7 = $ptrType(float64Value); + ptrType$8 = $ptrType(durationValue); + ptrType$9 = $ptrType(time.Duration); + ptrType$10 = $ptrType(Flag); + sliceType$1 = $sliceType(ptrType$10); + ptrType$11 = $ptrType(reflect.rtype); + ptrType$12 = $ptrType($Bool); + ptrType$13 = $ptrType($Int); + ptrType$14 = $ptrType($Int64); + ptrType$15 = $ptrType($Uint); + ptrType$16 = $ptrType($Uint64); + ptrType$17 = $ptrType($String); + ptrType$18 = $ptrType($Float64); + sliceType$2 = $sliceType($String); + funcType = $funcType([ptrType$10], [], false); + ptrType$19 = $ptrType(FlagSet); + funcType$1 = $funcType([], [], false); + mapType = $mapType($String, ptrType$10); + numError = function(err) { + var _tuple, err, ne, ok; + _tuple = $assertType(err, ptrType, true); + ne = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return err; + } + if ($interfaceIsEqual(ne.Err, strconv.ErrSyntax)) { + return errParse; + } + if ($interfaceIsEqual(ne.Err, strconv.ErrRange)) { + return errRange; + } + return err; + }; + newBoolValue = function(val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$1(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target))); + }; + $ptrType(boolValue).prototype.Set = function(s) { + var _tuple, b, err, s, v; + b = this; + _tuple = strconv.ParseBool(s); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = errParse; + } + b.$set((v)); + return err; + }; + $ptrType(boolValue).prototype.Get = function() { + var b; + b = this; + return new $Bool((b.$get())); + }; + $ptrType(boolValue).prototype.String = function() { + var b; + b = this; + return strconv.FormatBool((b.$get())); + }; + $ptrType(boolValue).prototype.IsBoolFlag = function() { + var b; + b = this; + return true; + }; + newIntValue = function(val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$2(function() { return (_ptr.$get() >> 0); }, function($v) { _ptr.$set(($v >> 0)); }, _ptr.$target))); + }; + $ptrType(intValue).prototype.Set = function(s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseInt(s, 0, 32); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set((((v.$low + ((v.$high >> 31) * 4294967296)) >> 0))); + return err; + }; + $ptrType(intValue).prototype.Get = function() { + var i; + i = this; + return new $Int(((i.$get() >> 0))); + }; + $ptrType(intValue).prototype.String = function() { + var i; + i = this; + return strconv.Itoa(((i.$get() >> 0))); + }; + newInt64Value = function(val, p) { + var _ptr, p, val, x$1; + p.$set(val); + return ((_ptr = p, new ptrType$3(function() { return (x$1 = _ptr.$get(), new int64Value(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new $Int64($v.$high, $v.$low)); }, _ptr.$target))); + }; + $ptrType(int64Value).prototype.Set = function(s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseInt(s, 0, 64); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set((new int64Value(v.$high, v.$low))); + return err; + }; + $ptrType(int64Value).prototype.Get = function() { + var i, x$1; + i = this; + return ((x$1 = i.$get(), new $Int64(x$1.$high, x$1.$low))); + }; + $ptrType(int64Value).prototype.String = function() { + var i, x$1; + i = this; + return strconv.FormatInt(((x$1 = i.$get(), new $Int64(x$1.$high, x$1.$low))), 10); + }; + newUintValue = function(val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$4(function() { return (_ptr.$get() >>> 0); }, function($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target))); + }; + $ptrType(uintValue).prototype.Set = function(s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseUint(s, 0, 32); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set(((v.$low >>> 0))); + return err; + }; + $ptrType(uintValue).prototype.Get = function() { + var i; + i = this; + return new $Uint(((i.$get() >>> 0))); + }; + $ptrType(uintValue).prototype.String = function() { + var i; + i = this; + return strconv.FormatUint((new $Uint64(0, i.$get())), 10); + }; + newUint64Value = function(val, p) { + var _ptr, p, val, x$1; + p.$set(val); + return ((_ptr = p, new ptrType$5(function() { return (x$1 = _ptr.$get(), new uint64Value(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new $Uint64($v.$high, $v.$low)); }, _ptr.$target))); + }; + $ptrType(uint64Value).prototype.Set = function(s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseUint(s, 0, 64); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set((new uint64Value(v.$high, v.$low))); + return err; + }; + $ptrType(uint64Value).prototype.Get = function() { + var i, x$1; + i = this; + return ((x$1 = i.$get(), new $Uint64(x$1.$high, x$1.$low))); + }; + $ptrType(uint64Value).prototype.String = function() { + var i, x$1; + i = this; + return strconv.FormatUint(((x$1 = i.$get(), new $Uint64(x$1.$high, x$1.$low))), 10); + }; + newStringValue = function(val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$6(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target))); + }; + $ptrType(stringValue).prototype.Set = function(val) { + var s, val; + s = this; + s.$set((val)); + return $ifaceNil; + }; + $ptrType(stringValue).prototype.Get = function() { + var s; + s = this; + return new $String((s.$get())); + }; + $ptrType(stringValue).prototype.String = function() { + var s; + s = this; + return (s.$get()); + }; + newFloat64Value = function(val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$7(function() { return _ptr.$get(); }, function($v) { _ptr.$set($v); }, _ptr.$target))); + }; + $ptrType(float64Value).prototype.Set = function(s) { + var _tuple, err, f, s, v; + f = this; + _tuple = strconv.ParseFloat(s, 64); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + f.$set((v)); + return err; + }; + $ptrType(float64Value).prototype.Get = function() { + var f; + f = this; + return new $Float64((f.$get())); + }; + $ptrType(float64Value).prototype.String = function() { + var f; + f = this; + return strconv.FormatFloat((f.$get()), 103, -1, 64); + }; + newDurationValue = function(val, p) { + var _ptr, p, val, x$1; + p.$set(val); + return ((_ptr = p, new ptrType$8(function() { return (x$1 = _ptr.$get(), new durationValue(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new time.Duration($v.$high, $v.$low)); }, _ptr.$target))); + }; + $ptrType(durationValue).prototype.Set = function(s) { + var _tuple, d, err, s, v; + d = this; + _tuple = time.ParseDuration(s); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = errParse; + } + d.$set((new durationValue(v.$high, v.$low))); + return err; + }; + $ptrType(durationValue).prototype.Get = function() { + var d, x$1; + d = this; + return ((x$1 = d.$get(), new time.Duration(x$1.$high, x$1.$low))); + }; + $ptrType(durationValue).prototype.String = function() { + var _ptr, d, x$1; + d = this; + return ((_ptr = d, new ptrType$9(function() { return (x$1 = _ptr.$get(), new time.Duration(x$1.$high, x$1.$low)); }, function($v) { _ptr.$set(new durationValue($v.$high, $v.$low)); }, _ptr.$target))).String(); + }; + sortFlags = function(flags) { + var _entry, _entry$1, _i, _i$1, _keys, _ref, _ref$1, f, flags, i, i$1, list, name, result, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _i = $f._i; _i$1 = $f._i$1; _keys = $f._keys; _ref = $f._ref; _ref$1 = $f._ref$1; f = $f.f; flags = $f.flags; i = $f.i; i$1 = $f.i$1; list = $f.list; name = $f.name; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + list = $makeSlice(sort.StringSlice, $keys(flags).length); + i = 0; + _ref = flags; + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { break; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + f = _entry.v; + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = f.Name); + i = i + (1) >> 0; + _i++; + } + $r = list.Sort(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + result = $makeSlice(sliceType$1, list.$length); + _ref$1 = list; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + i$1] = (_entry$1 = flags[$String.keyFor(name)], _entry$1 !== undefined ? _entry$1.v : ptrType$10.nil)); + _i$1++; + } + $s = -1; return result; + /* */ } return; } if ($f === undefined) { $f = { $blk: sortFlags }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._i = _i; $f._i$1 = _i$1; $f._keys = _keys; $f._ref = _ref; $f._ref$1 = _ref$1; $f.f = f; $f.flags = flags; $f.i = i; $f.i$1 = i$1; $f.list = list; $f.name = name; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.ptr.prototype.Output = function() { + var f; + f = this; + if ($interfaceIsEqual(f.output, $ifaceNil)) { + return os.Stderr; + } + return f.output; + }; + FlagSet.prototype.Output = function() { return this.$val.Output(); }; + FlagSet.ptr.prototype.Name = function() { + var f; + f = this; + return f.name; + }; + FlagSet.prototype.Name = function() { return this.$val.Name(); }; + FlagSet.ptr.prototype.ErrorHandling = function() { + var f; + f = this; + return f.errorHandling; + }; + FlagSet.prototype.ErrorHandling = function() { return this.$val.ErrorHandling(); }; + FlagSet.ptr.prototype.SetOutput = function(output) { + var f, output; + f = this; + f.output = output; + }; + FlagSet.prototype.SetOutput = function(output) { return this.$val.SetOutput(output); }; + FlagSet.ptr.prototype.VisitAll = function(fn) { + var _i, _r, _ref, f, flag, fn, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; f = $f.f; flag = $f.flag; fn = $f.fn; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r = sortFlags(f.formal); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + flag = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = fn(flag); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.VisitAll }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.f = f; $f.flag = flag; $f.fn = fn; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.VisitAll = function(fn) { return this.$val.VisitAll(fn); }; + FlagSet.ptr.prototype.Visit = function(fn) { + var _i, _r, _ref, f, flag, fn, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; f = $f.f; flag = $f.flag; fn = $f.fn; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r = sortFlags(f.actual); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + flag = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = fn(flag); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Visit }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.f = f; $f.flag = flag; $f.fn = fn; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Visit = function(fn) { return this.$val.Visit(fn); }; + FlagSet.ptr.prototype.Lookup = function(name) { + var _entry, f, name; + f = this; + return (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? _entry.v : ptrType$10.nil); + }; + FlagSet.prototype.Lookup = function(name) { return this.$val.Lookup(name); }; + FlagSet.ptr.prototype.Set = function(name, value) { + var _entry, _key, _r, _r$1, _tuple, err, f, flag, name, ok, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; f = $f.f; flag = $f.flag; name = $f.name; ok = $f.ok; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _tuple = (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + flag = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!ok) { */ case 1: + _r = fmt.Errorf("no such flag -%v", new sliceType([new $String(name)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + _r$1 = flag.Value.Set(value); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + if (f.actual === false) { + f.actual = {}; + } + _key = name; (f.actual || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Set }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.flag = flag; $f.name = name; $f.ok = ok; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Set = function(name, value) { return this.$val.Set(name, value); }; + isZeroValue = function(flag, value) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, flag, typ, value, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; flag = $f.flag; typ = $f.typ; value = $f.value; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + typ = reflect.TypeOf(flag.Value); + z = new reflect.Value.ptr(ptrType$11.nil, 0, 0); + _r = typ.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 22) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 22) { */ case 1: + _r$1 = typ.Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = reflect.New(_r$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + z = _r$2; + $s = 3; continue; + /* } else { */ case 2: + _r$3 = reflect.Zero(typ); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + z = _r$3; + /* } */ case 3: + _r$4 = $clone(z, reflect.Value).Interface(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = $assertType(_r$4, Value).String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return value === _r$5; + /* */ } return; } if ($f === undefined) { $f = { $blk: isZeroValue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.flag = flag; $f.typ = typ; $f.value = value; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + UnquoteUsage = function(flag) { + var _ref, _tmp, _tmp$1, flag, i, j, name, usage; + name = ""; + usage = ""; + usage = flag.Usage; + i = 0; + while (true) { + if (!(i < usage.length)) { break; } + if (usage.charCodeAt(i) === 96) { + j = i + 1 >> 0; + while (true) { + if (!(j < usage.length)) { break; } + if (usage.charCodeAt(j) === 96) { + name = $substring(usage, (i + 1 >> 0), j); + usage = $substring(usage, 0, i) + name + $substring(usage, (j + 1 >> 0)); + _tmp = name; + _tmp$1 = usage; + name = _tmp; + usage = _tmp$1; + return [name, usage]; + } + j = j + (1) >> 0; + } + break; + } + i = i + (1) >> 0; + } + name = "value"; + _ref = flag.Value; + if ($assertType(_ref, boolFlag, true)[1]) { + name = ""; + } else if ($assertType(_ref, ptrType$8, true)[1]) { + name = "duration"; + } else if ($assertType(_ref, ptrType$7, true)[1]) { + name = "float"; + } else if ($assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$3, true)[1]) { + name = "int"; + } else if ($assertType(_ref, ptrType$6, true)[1]) { + name = "string"; + } else if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { + name = "uint"; + } + return [name, usage]; + }; + $pkg.UnquoteUsage = UnquoteUsage; + FlagSet.ptr.prototype.PrintDefaults = function() { + var f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = [f]; + f[0] = this; + $r = f[0].VisitAll((function(f) { return function $b(flag) { + var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, flag, name, ok, s, usage, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; flag = $f.flag; name = $f.name; ok = $f.ok; s = $f.s; usage = $f.usage; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = fmt.Sprintf(" -%s", new sliceType([new $String(flag.Name)])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + _tuple = UnquoteUsage(flag); + name = _tuple[0]; + usage = _tuple[1]; + if (name.length > 0) { + s = s + (" " + name); + } + if (s.length <= 4) { + s = s + ("\t"); + } else { + s = s + ("\n \t"); + } + s = s + (strings.ReplaceAll(usage, "\n", "\n \t")); + _r$1 = isZeroValue(flag, flag.DefValue); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + _tuple$1 = $assertType(flag.Value, ptrType$6, true); + ok = _tuple$1[1]; + /* */ if (ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok) { */ case 5: + _r$2 = fmt.Sprintf(" (default %q)", new sliceType([new $String(flag.DefValue)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + s = s + (_r$2); + $s = 7; continue; + /* } else { */ case 6: + _r$3 = fmt.Sprintf(" (default %v)", new sliceType([new $String(flag.DefValue)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + s = s + (_r$3); + /* } */ case 7: + /* } */ case 3: + _r$4 = fmt.Fprint(f[0].Output(), new sliceType([new $String(s), new $String("\n")])); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.flag = flag; $f.name = name; $f.ok = ok; $f.s = s; $f.usage = usage; $f.$s = $s; $f.$r = $r; return $f; + }; })(f)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.PrintDefaults }; } $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.PrintDefaults = function() { return this.$val.PrintDefaults(); }; + PrintDefaults = function() { + var $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = $pkg.CommandLine.PrintDefaults(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: PrintDefaults }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.PrintDefaults = PrintDefaults; + FlagSet.ptr.prototype.defaultUsage = function() { + var _r, _r$1, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + /* */ if (f.name === "") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.name === "") { */ case 1: + _r = fmt.Fprintf(f.Output(), "Usage:\n", new sliceType([])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = 3; continue; + /* } else { */ case 2: + _r$1 = fmt.Fprintf(f.Output(), "Usage of %s:\n", new sliceType([new $String(f.name)])); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 3: + $r = f.PrintDefaults(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.defaultUsage }; } $f._r = _r; $f._r$1 = _r$1; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.defaultUsage = function() { return this.$val.defaultUsage(); }; + FlagSet.ptr.prototype.NFlag = function() { + var f; + f = this; + return $keys(f.actual).length; + }; + FlagSet.prototype.NFlag = function() { return this.$val.NFlag(); }; + FlagSet.ptr.prototype.Arg = function(i) { + var f, i, x$1; + f = this; + if (i < 0 || i >= f.args.$length) { + return ""; + } + return (x$1 = f.args, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + }; + FlagSet.prototype.Arg = function(i) { return this.$val.Arg(i); }; + FlagSet.ptr.prototype.NArg = function() { + var f; + f = this; + return f.args.$length; + }; + FlagSet.prototype.NArg = function() { return this.$val.NArg(); }; + FlagSet.ptr.prototype.Args = function() { + var f; + f = this; + return f.args; + }; + FlagSet.prototype.Args = function() { return this.$val.Args(); }; + FlagSet.ptr.prototype.BoolVar = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newBoolValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.BoolVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.BoolVar = function(p, name, value, usage) { return this.$val.BoolVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Bool = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer(false, ptrType$12); + $r = f.BoolVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Bool }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Bool = function(name, value, usage) { return this.$val.Bool(name, value, usage); }; + FlagSet.ptr.prototype.IntVar = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newIntValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.IntVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.IntVar = function(p, name, value, usage) { return this.$val.IntVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Int = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer(0, ptrType$13); + $r = f.IntVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Int }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Int = function(name, value, usage) { return this.$val.Int(name, value, usage); }; + FlagSet.ptr.prototype.Int64Var = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newInt64Value(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Int64Var }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Int64Var = function(p, name, value, usage) { return this.$val.Int64Var(p, name, value, usage); }; + FlagSet.ptr.prototype.Int64 = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer(new $Int64(0, 0), ptrType$14); + $r = f.Int64Var(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Int64 }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Int64 = function(name, value, usage) { return this.$val.Int64(name, value, usage); }; + FlagSet.ptr.prototype.UintVar = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newUintValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.UintVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.UintVar = function(p, name, value, usage) { return this.$val.UintVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Uint = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer(0, ptrType$15); + $r = f.UintVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Uint }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Uint = function(name, value, usage) { return this.$val.Uint(name, value, usage); }; + FlagSet.ptr.prototype.Uint64Var = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newUint64Value(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Uint64Var }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Uint64Var = function(p, name, value, usage) { return this.$val.Uint64Var(p, name, value, usage); }; + FlagSet.ptr.prototype.Uint64 = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer(new $Uint64(0, 0), ptrType$16); + $r = f.Uint64Var(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Uint64 }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Uint64 = function(name, value, usage) { return this.$val.Uint64(name, value, usage); }; + FlagSet.ptr.prototype.StringVar = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newStringValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.StringVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.StringVar = function(p, name, value, usage) { return this.$val.StringVar(p, name, value, usage); }; + FlagSet.ptr.prototype.String = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer("", ptrType$17); + $r = f.StringVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.String }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.String = function(name, value, usage) { return this.$val.String(name, value, usage); }; + FlagSet.ptr.prototype.Float64Var = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newFloat64Value(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Float64Var }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Float64Var = function(p, name, value, usage) { return this.$val.Float64Var(p, name, value, usage); }; + FlagSet.ptr.prototype.Float64 = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer(0, ptrType$18); + $r = f.Float64Var(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Float64 }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Float64 = function(name, value, usage) { return this.$val.Float64(name, value, usage); }; + FlagSet.ptr.prototype.DurationVar = function(p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + $r = f.Var(newDurationValue(value, p), name, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.DurationVar }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.DurationVar = function(p, name, value, usage) { return this.$val.DurationVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Duration = function(name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; name = $f.name; p = $f.p; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + p = $newDataPointer(new time.Duration(0, 0), ptrType$9); + $r = f.DurationVar(p, name, value, usage); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Duration }; } $f.f = f; $f.name = name; $f.p = p; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Duration = function(name, value, usage) { return this.$val.Duration(name, value, usage); }; + FlagSet.ptr.prototype.Var = function(value, name, usage) { + var _entry, _key, _r, _r$1, _r$2, _r$3, _tuple, alreadythere, f, flag, msg, name, usage, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tuple = $f._tuple; alreadythere = $f.alreadythere; f = $f.f; flag = $f.flag; msg = $f.msg; name = $f.name; usage = $f.usage; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r = value.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + flag = new Flag.ptr(name, usage, value, _r); + _tuple = (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + alreadythere = _tuple[1]; + /* */ if (alreadythere) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (alreadythere) { */ case 2: + msg = ""; + /* */ if (f.name === "") { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (f.name === "") { */ case 4: + _r$1 = fmt.Sprintf("flag redefined: %s", new sliceType([new $String(name)])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + msg = _r$1; + $s = 6; continue; + /* } else { */ case 5: + _r$2 = fmt.Sprintf("%s flag redefined: %s", new sliceType([new $String(f.name), new $String(name)])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + msg = _r$2; + /* } */ case 6: + _r$3 = fmt.Fprintln(f.Output(), new sliceType([new $String(msg)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $panic(new $String(msg)); + /* } */ case 3: + if (f.formal === false) { + f.formal = {}; + } + _key = name; (f.formal || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Var }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tuple = _tuple; $f.alreadythere = alreadythere; $f.f = f; $f.flag = flag; $f.msg = msg; $f.name = name; $f.usage = usage; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Var = function(value, name, usage) { return this.$val.Var(value, name, usage); }; + FlagSet.ptr.prototype.failf = function(format, a) { + var _r, _r$1, a, err, f, format, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; a = $f.a; err = $f.err; f = $f.f; format = $f.format; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r = fmt.Errorf(format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + _r$1 = fmt.Fprintln(f.Output(), new sliceType([err])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + $r = f.usage(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.failf }; } $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.err = err; $f.f = f; $f.format = format; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.failf = function(format, a) { return this.$val.failf(format, a); }; + FlagSet.ptr.prototype.usage = function() { + var f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + /* */ if (f.Usage === $throwNilPointerError) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.Usage === $throwNilPointerError) { */ case 1: + $r = f.defaultUsage(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + $r = f.Usage(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.usage }; } $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.usage = function() { return this.$val.usage(); }; + FlagSet.ptr.prototype.parseOne = function() { + var _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _v, alreadythere, err, err$1, err$2, f, flag, fv, hasValue, i, m, name, numMinuses, ok, s, value, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _v = $f._v; alreadythere = $f.alreadythere; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; flag = $f.flag; fv = $f.fv; hasValue = $f.hasValue; i = $f.i; m = $f.m; name = $f.name; numMinuses = $f.numMinuses; ok = $f.ok; s = $f.s; value = $f.value; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f.args.$length === 0) { + $s = -1; return [false, $ifaceNil]; + } + s = (x$1 = f.args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + if (s.length < 2 || !((s.charCodeAt(0) === 45))) { + $s = -1; return [false, $ifaceNil]; + } + numMinuses = 1; + if (s.charCodeAt(1) === 45) { + numMinuses = numMinuses + (1) >> 0; + if (s.length === 2) { + f.args = $subslice(f.args, 1); + $s = -1; return [false, $ifaceNil]; + } + } + name = $substring(s, numMinuses); + /* */ if ((name.length === 0) || (name.charCodeAt(0) === 45) || (name.charCodeAt(0) === 61)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((name.length === 0) || (name.charCodeAt(0) === 45) || (name.charCodeAt(0) === 61)) { */ case 1: + _r = f.failf("bad flag syntax: %s", new sliceType([new $String(s)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return [false, _r]; + /* } */ case 2: + f.args = $subslice(f.args, 1); + hasValue = false; + value = ""; + i = 1; + while (true) { + if (!(i < name.length)) { break; } + if (name.charCodeAt(i) === 61) { + value = $substring(name, (i + 1 >> 0)); + hasValue = true; + name = $substring(name, 0, i); + break; + } + i = i + (1) >> 0; + } + m = f.formal; + _tuple = (_entry = m[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + flag = _tuple[0]; + alreadythere = _tuple[1]; + /* */ if (!alreadythere) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!alreadythere) { */ case 4: + /* */ if (name === "help" || name === "h") { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (name === "help" || name === "h") { */ case 6: + $r = f.usage(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return [false, $pkg.ErrHelp]; + /* } */ case 7: + _r$1 = f.failf("flag provided but not defined: -%s", new sliceType([new $String(name)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [false, _r$1]; + /* } */ case 5: + _tuple$1 = $assertType(flag.Value, boolFlag, true); + fv = _tuple$1[0]; + ok = _tuple$1[1]; + if (!(ok)) { _v = false; $s = 13; continue s; } + _r$2 = fv.IsBoolFlag(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2; case 13: + /* */ if (_v) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v) { */ case 10: + /* */ if (hasValue) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (hasValue) { */ case 15: + _r$3 = fv.Set(value); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19: + _r$4 = f.failf("invalid boolean value %q for -%s: %v", new sliceType([new $String(value), new $String(name), err])); /* */ $s = 21; case 21: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return [false, _r$4]; + /* } */ case 20: + $s = 17; continue; + /* } else { */ case 16: + _r$5 = fv.Set("true"); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err$1 = _r$5; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 23: + _r$6 = f.failf("invalid boolean flag %s: %v", new sliceType([new $String(name), err$1])); /* */ $s = 25; case 25: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $s = -1; return [false, _r$6]; + /* } */ case 24: + /* } */ case 17: + $s = 12; continue; + /* } else { */ case 11: + if (!hasValue && f.args.$length > 0) { + hasValue = true; + _tmp = (x$2 = f.args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + _tmp$1 = $subslice(f.args, 1); + value = _tmp; + f.args = _tmp$1; + } + /* */ if (!hasValue) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!hasValue) { */ case 26: + _r$7 = f.failf("flag needs an argument: -%s", new sliceType([new $String(name)])); /* */ $s = 28; case 28: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return [false, _r$7]; + /* } */ case 27: + _r$8 = flag.Value.Set(value); /* */ $s = 29; case 29: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + err$2 = _r$8; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 30: + _r$9 = f.failf("invalid value %q for flag -%s: %v", new sliceType([new $String(value), new $String(name), err$2])); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $s = -1; return [false, _r$9]; + /* } */ case 31: + /* } */ case 12: + if (f.actual === false) { + f.actual = {}; + } + _key = name; (f.actual || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; + $s = -1; return [true, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.parseOne }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._v = _v; $f.alreadythere = alreadythere; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.flag = flag; $f.fv = fv; $f.hasValue = hasValue; $f.i = i; $f.m = m; $f.name = name; $f.numMinuses = numMinuses; $f.ok = ok; $f.s = s; $f.value = value; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.parseOne = function() { return this.$val.parseOne(); }; + FlagSet.ptr.prototype.Parse = function(arguments$1) { + var _1, _r, _tuple, arguments$1, err, f, seen, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; arguments$1 = $f.arguments$1; err = $f.err; f = $f.f; seen = $f.seen; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + f.parsed = true; + f.args = arguments$1; + /* while (true) { */ case 1: + _r = f.parseOne(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + seen = _tuple[0]; + err = _tuple[1]; + if (seen) { + /* continue; */ $s = 1; continue; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + /* break; */ $s = 2; continue; + } + _1 = f.errorHandling; + if (_1 === (0)) { + $s = -1; return err; + } else if (_1 === (1)) { + os.Exit(2); + } else if (_1 === (2)) { + $panic(err); + } + /* } */ $s = 1; continue; case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FlagSet.ptr.prototype.Parse }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.arguments$1 = arguments$1; $f.err = err; $f.f = f; $f.seen = seen; $f.$s = $s; $f.$r = $r; return $f; + }; + FlagSet.prototype.Parse = function(arguments$1) { return this.$val.Parse(arguments$1); }; + FlagSet.ptr.prototype.Parsed = function() { + var f; + f = this; + return f.parsed; + }; + FlagSet.prototype.Parsed = function() { return this.$val.Parsed(); }; + init = function() { + $pkg.CommandLine.Usage = commandLineUsage; + }; + commandLineUsage = function() { + var $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = $pkg.Usage(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: commandLineUsage }; } $f.$s = $s; $f.$r = $r; return $f; + }; + NewFlagSet = function(name, errorHandling) { + var errorHandling, f, name; + f = new FlagSet.ptr($throwNilPointerError, name, false, false, false, sliceType$2.nil, errorHandling, $ifaceNil); + f.Usage = $methodVal(f, "defaultUsage"); + return f; + }; + $pkg.NewFlagSet = NewFlagSet; + FlagSet.ptr.prototype.Init = function(name, errorHandling) { + var errorHandling, f, name; + f = this; + f.name = name; + f.errorHandling = errorHandling; + }; + FlagSet.prototype.Init = function(name, errorHandling) { return this.$val.Init(name, errorHandling); }; + ptrType$1.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsBoolFlag", name: "IsBoolFlag", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$2.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$3.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$5.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$6.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$8.methods = [{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$19.methods = [{prop: "Output", name: "Output", pkg: "", typ: $funcType([], [io.Writer], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ErrorHandling", name: "ErrorHandling", pkg: "", typ: $funcType([], [ErrorHandling], false)}, {prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false)}, {prop: "VisitAll", name: "VisitAll", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "Visit", name: "Visit", pkg: "", typ: $funcType([funcType], [], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [ptrType$10], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $String], [$error], false)}, {prop: "PrintDefaults", name: "PrintDefaults", pkg: "", typ: $funcType([], [], false)}, {prop: "defaultUsage", name: "defaultUsage", pkg: "flag", typ: $funcType([], [], false)}, {prop: "NFlag", name: "NFlag", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Arg", name: "Arg", pkg: "", typ: $funcType([$Int], [$String], false)}, {prop: "NArg", name: "NArg", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Args", name: "Args", pkg: "", typ: $funcType([], [sliceType$2], false)}, {prop: "BoolVar", name: "BoolVar", pkg: "", typ: $funcType([ptrType$12, $String, $Bool, $String], [], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([$String, $Bool, $String], [ptrType$12], false)}, {prop: "IntVar", name: "IntVar", pkg: "", typ: $funcType([ptrType$13, $String, $Int, $String], [], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([$String, $Int, $String], [ptrType$13], false)}, {prop: "Int64Var", name: "Int64Var", pkg: "", typ: $funcType([ptrType$14, $String, $Int64, $String], [], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([$String, $Int64, $String], [ptrType$14], false)}, {prop: "UintVar", name: "UintVar", pkg: "", typ: $funcType([ptrType$15, $String, $Uint, $String], [], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([$String, $Uint, $String], [ptrType$15], false)}, {prop: "Uint64Var", name: "Uint64Var", pkg: "", typ: $funcType([ptrType$16, $String, $Uint64, $String], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([$String, $Uint64, $String], [ptrType$16], false)}, {prop: "StringVar", name: "StringVar", pkg: "", typ: $funcType([ptrType$17, $String, $String, $String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([$String, $String, $String], [ptrType$17], false)}, {prop: "Float64Var", name: "Float64Var", pkg: "", typ: $funcType([ptrType$18, $String, $Float64, $String], [], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([$String, $Float64, $String], [ptrType$18], false)}, {prop: "DurationVar", name: "DurationVar", pkg: "", typ: $funcType([ptrType$9, $String, time.Duration, $String], [], false)}, {prop: "Duration", name: "Duration", pkg: "", typ: $funcType([$String, time.Duration, $String], [ptrType$9], false)}, {prop: "Var", name: "Var", pkg: "", typ: $funcType([Value, $String, $String], [], false)}, {prop: "failf", name: "failf", pkg: "flag", typ: $funcType([$String, sliceType], [$error], true)}, {prop: "usage", name: "usage", pkg: "flag", typ: $funcType([], [], false)}, {prop: "parseOne", name: "parseOne", pkg: "flag", typ: $funcType([], [$Bool, $error], false)}, {prop: "Parse", name: "Parse", pkg: "", typ: $funcType([sliceType$2], [$error], false)}, {prop: "Parsed", name: "Parsed", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, ErrorHandling], [], false)}]; + boolFlag.init([{prop: "IsBoolFlag", name: "IsBoolFlag", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + Value.init([{prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + FlagSet.init("flag", [{prop: "Usage", name: "Usage", embedded: false, exported: true, typ: funcType$1, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "parsed", name: "parsed", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "actual", name: "actual", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "formal", name: "formal", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "errorHandling", name: "errorHandling", embedded: false, exported: false, typ: ErrorHandling, tag: ""}, {prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: ""}]); + Flag.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Usage", name: "Usage", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "DefValue", name: "DefValue", embedded: false, exported: true, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrHelp = errors.New("flag: help requested"); + errParse = errors.New("parse error"); + errRange = errors.New("value out of range"); + $pkg.CommandLine = NewFlagSet((x = os.Args, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), 1); + $pkg.Usage = (function $b() { + var _r, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = fmt.Fprintf($pkg.CommandLine.Output(), "Usage of %s:\n", new sliceType([new $String((x$1 = os.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $r = PrintDefaults(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/tv42/zbase32"] = (function() { + var $pkg = {}, $init, errors, flag, strconv, CorruptInputError, arrayType, sliceType, arrayType$1, sliceType$1, decodeMap, init, EncodedLen, DecodedLen, encode, Encode, EncodeToString, decode, decodeString, DecodeString; + errors = $packages["errors"]; + flag = $packages["flag"]; + strconv = $packages["strconv"]; + CorruptInputError = $pkg.CorruptInputError = $newType(8, $kindInt64, "zbase32.CorruptInputError", true, "github.com/tv42/zbase32", true, null); + arrayType = $arrayType($Uint8, 256); + sliceType = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 8); + sliceType$1 = $sliceType($Int); + init = function() { + var i, i$1, x; + i = 0; + while (true) { + if (!(i < 256)) { break; } + ((i < 0 || i >= decodeMap.length) ? ($throwRuntimeError("index out of range"), undefined) : decodeMap[i] = 255); + i = i + (1) >> 0; + } + i$1 = 0; + while (true) { + if (!(i$1 < 32)) { break; } + (x = "ybndrfg8ejkmcpqxot1uwisza345h769".charCodeAt(i$1), ((x < 0 || x >= decodeMap.length) ? ($throwRuntimeError("index out of range"), undefined) : decodeMap[x] = ((i$1 << 24 >>> 24)))); + i$1 = i$1 + (1) >> 0; + } + }; + CorruptInputError.prototype.Error = function() { + var e; + e = this; + return "illegal z-base-32 data at input byte " + strconv.FormatInt((new $Int64(e.$high, e.$low)), 10); + }; + $ptrType(CorruptInputError).prototype.Error = function() { return this.$get().Error(); }; + EncodedLen = function(n) { + var _q, n; + return $imul((_q = ((n + 4 >> 0)) / 5, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 8); + }; + $pkg.EncodedLen = EncodedLen; + DecodedLen = function(n) { + var _q, n; + return $imul((_q = ((n + 7 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 5); + }; + $pkg.DecodedLen = DecodedLen; + encode = function(dst, src, bits) { + var _r, b0, b1, bits, char$1, dst, i, off, offset, src, y, y$1, y$2, y$3, y$4, y$5, y$6; + off = 0; + i = 0; + while (true) { + if (!(i < bits || (bits < 0 && src.$length > 0))) { break; } + b0 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]); + b1 = 0; + if (src.$length > 1) { + b1 = (1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]); + } + char$1 = 0; + offset = (((_r = i % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)); + if (offset < 4) { + char$1 = (y = ((3 - offset >>> 0)), y < 32 ? (((b0 & (((y$1 = ((3 - offset >>> 0)), y$1 < 32 ? (31 << y$1) : 0) << 24 >>> 24))) >>> 0) >>> y) : 0) << 24 >>> 24; + } else { + char$1 = (y$2 = ((offset - 3 >>> 0)), y$2 < 32 ? (((b0 & (((y$3 = ((offset - 3 >>> 0)), y$3 < 32 ? (31 >>> y$3) : 0) << 24 >>> 24))) >>> 0) << y$2) : 0) << 24 >>> 24; + char$1 = (char$1 | (((y$4 = ((11 - offset >>> 0)), y$4 < 32 ? (((b1 & (((y$5 = ((11 - offset >>> 0)), y$5 < 32 ? (255 << y$5) : 0) << 24 >>> 24))) >>> 0) >>> y$4) : 0) << 24 >>> 24))) >>> 0; + } + if (bits >= 0 && (i + 5 >> 0) > bits) { + char$1 = (char$1 & (((y$6 = (((((i + 5 >> 0)) - bits >> 0) >>> 0)), y$6 < 32 ? (255 << y$6) : 0) << 24 >>> 24))) >>> 0; + } + ((off < 0 || off >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + off] = "ybndrfg8ejkmcpqxot1uwisza345h769".charCodeAt(char$1)); + off = off + (1) >> 0; + if (offset > 2) { + src = $subslice(src, 1); + } + i = i + (5) >> 0; + } + return off; + }; + Encode = function(dst, src) { + var dst, src; + return encode(dst, src, -1); + }; + $pkg.Encode = Encode; + EncodeToString = function(src) { + var dst, n, src; + dst = $makeSlice(sliceType, EncodedLen(src.$length)); + n = Encode(dst, src); + return ($bytesToString($subslice(dst, 0, n))); + }; + $pkg.EncodeToString = EncodeToString; + decode = function(dst, src, bits) { + var _q, bits, bitsInBlock, dbuf, dst, in$1, j, lookup, off, olen, src, x, x$1, x$2, x$3, x$4; + olen = src.$length; + off = 0; + while (true) { + if (!(src.$length > 0)) { break; } + dbuf = arrayType$1.zero(); + j = 0; + while (true) { + if (!(j < 8)) { break; } + if (src.$length === 0) { + break; + } + in$1 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]); + src = $subslice(src, 1); + ((j < 0 || j >= dbuf.length) ? ($throwRuntimeError("index out of range"), undefined) : dbuf[j] = ((in$1 < 0 || in$1 >= decodeMap.length) ? ($throwRuntimeError("index out of range"), undefined) : decodeMap[in$1])); + if (((j < 0 || j >= dbuf.length) ? ($throwRuntimeError("index out of range"), undefined) : dbuf[j]) === 255) { + return [off, (new CorruptInputError(0, ((olen - src.$length >> 0) - 1 >> 0)))]; + } + j = j + (1) >> 0; + } + (x = off + 0 >> 0, ((x < 0 || x >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x] = (((dbuf[0] << 3 << 24 >>> 24) | (dbuf[1] >>> 2 << 24 >>> 24)) >>> 0))); + (x$1 = off + 1 >> 0, ((x$1 < 0 || x$1 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$1] = (((((dbuf[1] << 6 << 24 >>> 24) | (dbuf[2] << 1 << 24 >>> 24)) >>> 0) | (dbuf[3] >>> 4 << 24 >>> 24)) >>> 0))); + (x$2 = off + 2 >> 0, ((x$2 < 0 || x$2 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$2] = (((dbuf[3] << 4 << 24 >>> 24) | (dbuf[4] >>> 1 << 24 >>> 24)) >>> 0))); + (x$3 = off + 3 >> 0, ((x$3 < 0 || x$3 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$3] = (((((dbuf[4] << 7 << 24 >>> 24) | (dbuf[5] << 2 << 24 >>> 24)) >>> 0) | (dbuf[6] >>> 3 << 24 >>> 24)) >>> 0))); + (x$4 = off + 4 >> 0, ((x$4 < 0 || x$4 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$4] = (((dbuf[6] << 5 << 24 >>> 24) | dbuf[7]) >>> 0))); + if (bits < 0) { + lookup = new sliceType$1([0, 1, 1, 2, 2, 3, 4, 4, 5]); + off = off + (((j < 0 || j >= lookup.$length) ? ($throwRuntimeError("index out of range"), undefined) : lookup.$array[lookup.$offset + j])) >> 0; + continue; + } + bitsInBlock = bits; + if (bitsInBlock > 40) { + bitsInBlock = 40; + } + off = off + ((_q = ((bitsInBlock + 7 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0; + bits = bits - (40) >> 0; + } + return [off, $ifaceNil]; + }; + decodeString = function(s, bits) { + var _tuple, bits, dst, err, n, s; + dst = $makeSlice(sliceType, DecodedLen(s.length)); + _tuple = decode(dst, (new sliceType($stringToBytes(s))), bits); + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [sliceType.nil, err]; + } + return [$subslice(dst, 0, n), $ifaceNil]; + }; + DecodeString = function(s) { + var s; + return decodeString(s, -1); + }; + $pkg.DecodeString = DecodeString; + CorruptInputError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = flag.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + decodeMap = arrayType.zero(); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["main"] = (function() { + var $pkg = {}, $init, js, zbase32, sliceType, funcType, funcType$1, mapType, decode, encode, main; + js = $packages["github.com/gopherjs/gopherjs/js"]; + zbase32 = $packages["github.com/tv42/zbase32"]; + sliceType = $sliceType($Uint8); + funcType = $funcType([$String], [sliceType], false); + funcType$1 = $funcType([sliceType], [$String], false); + mapType = $mapType($String, $emptyInterface); + decode = function(txt) { + var _tuple, err, h, txt; + _tuple = zbase32.DecodeString(txt); + h = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return new sliceType([]); + } + return h; + }; + encode = function(b) { + var b, z; + z = zbase32.EncodeToString(b); + return z; + }; + main = function() { + $global.zbase32 = $externalize($makeMap($String.keyFor, [{ k: "Decode", v: new funcType(decode) }, { k: "Encode", v: new funcType$1(encode) }]), mapType); + }; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = zbase32.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($pkg === $mainPkg) { + main(); + $mainFinished = true; + } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$synthesizeMethods(); +var $mainPkg = $packages["main"]; +$packages["runtime"].$init(); +$go($mainPkg.$init, []); +$flushConsole(); + +}).call(this); diff --git a/app.ts b/app.ts new file mode 100644 index 0000000..e9362c8 --- /dev/null +++ b/app.ts @@ -0,0 +1,114 @@ +import * as express from 'express' +import * as bodyParser from 'body-parser' +import * as helmet from 'helmet' +import * as cookieParser from 'cookie-parser' +import * as crypto from 'crypto' +import {models} from './api/models' +import logger from './api/utils/logger' +import {pingHubInterval, checkInvitesHubInterval} from './api/hub' +import {setupDatabase} from './api/utils/setup' +import * as controllers from './api/controllers' +import * as socket from './api/utils/socket' + +let server: any = null +const port = process.env.PORT || 3001; +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/config/app.json')[env]; + +process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA' + +var i = 0 + +// START SETUP! +connectToLND() + +async function connectToLND(){ + i++ + console.log(`=> [lnd] connecting... attempt #${i}`) + try { + await controllers.iniGrpcSubscriptions() + mainSetup() + } catch(e) { + setTimeout(async()=>{ // retry each 2 secs + await connectToLND() + },2000) + } +} + +async function mainSetup(){ + await setupDatabase(); + if (config.hub_api_url) { + pingHubInterval(5000) + checkInvitesHubInterval(5000) + } + await setupApp() +} + +async function setupApp(){ + const app = express(); + const server = require("http").Server(app); + + app.use(helmet()); + app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ extended: true })); + app.use(logger) + app.options('*', (req, res) => res.send(200)); + app.use((req, res, next) => { + res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080'); + res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); + res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept'); + res.setHeader('Cache-Control', 'private, no-cache, no-store, must-revalidate'); + res.setHeader('Expires', '-1'); + res.setHeader('Pragma', 'no-cache'); + next(); + }); + app.use(cookieParser()) + if (env != 'development') { + app.use(authModule); + } + app.use('/static', express.static('public')); + app.get('/app', (req, res) => res.sendFile(__dirname + '/public/index.html')) + + server.listen(port, (err) => { + if (err) throw err; + /* eslint-disable no-console */ + console.log(`Node listening on ${port}.`); + }); + + controllers.set(app); + + socket.connect(server) +} + +async function authModule(req, res, next) { + if ( + req.path == '/app' || + req.path == '/' || + req.path == '/info' || + req.path == '/contacts/tokens' || + req.path == '/login' || + req.path.startsWith('/static') || + req.path == '/contacts/set_dev' + ) { + next() + return + } + + const token = req.headers['x-user-token'] || req.cookies['x-user-token'] + + if (token == null) { + res.writeHead(401, 'Access invalid for user', {'Content-Type' : 'text/plain'}); + res.end('Invalid credentials'); + } else { + const user = await models.Contact.findOne({ where: { isOwner: true }}) + const hashedToken = crypto.createHash('sha256').update(token).digest('base64'); + if (user.authToken == null || user.authToken != hashedToken) { + res.writeHead(401, 'Access invalid for user', {'Content-Type' : 'text/plain'}); + res.end('Invalid credentials'); + } else { + next(); + } + } +} + +export default server diff --git a/config/app.json b/config/app.json new file mode 100644 index 0000000..4585de8 --- /dev/null +++ b/config/app.json @@ -0,0 +1,32 @@ +{ + "development": { + "senza_url": "http://localhost:3000/api/v2", + "macaroon_location": "/Users/evanfeenstra/code/lnd-dev/alice/data/chain/bitcoin/simnet/admin.macaroon", + "tls_location": "/Users/evanfeenstra/Library/Application Support/Lnd/tls.cert", + "node_ip": "127.0.0.1", + "lnd_port": "10001", + "node_http_protocol": "http", + "node_http_port": "3001", + "hub_api_url": "http://lvh.me/api/v1", + "hub_url": "http://lvh.me/ping", + "hub_invite_url": "http://lvh.me/invites", + "hub_check_invite_url": "http://lvh.me/check_invite", + "media_host": "localhost:5000" + }, + "production": { + "senza_url": "https://staging.senza.us/api/v2/", + "macaroon_location": "/home/ubuntu/.lnd/data/chain/bitcoin/mainnet/admin.macaroon", + "tls_location": "/home/ubuntu/.lnd/tls.cert", + "lnd_log_location": "/home/ubuntu/.lnd/logs/bitcoin/mainnet/lnd.log", + "lncli_location": "/home/ubuntu/go/bin", + "node_ip": "localhost", + "node_http_protocol": "http", + "node_http_port": "80", + "lnd_port": "10009", + "hub_api_url": "http://hub.sphinx.chat/api/v1", + "hub_url": "http://hub.sphinx.chat/ping", + "hub_invite_url": "http://hub.sphinx.chat/invites", + "hub_check_invite_url": "http://hub.sphinx.chat/check_invite", + "media_host": "memes.sphinx.chat" + } +} diff --git a/config/config.json b/config/config.json new file mode 100644 index 0000000..c47e635 --- /dev/null +++ b/config/config.json @@ -0,0 +1,18 @@ +{ + "development": { + "dialect": "sqlite", + "storage": "/Users/Shared/sphinx.db" + }, + "docker_development": { + "dialect": "sqlite", + "storage": "./sphinx.db" + }, + "test": { + "dialect": "sqlite", + "storage": "/home/ubuntu/sphinx.db" + }, + "production": { + "dialect": "sqlite", + "storage": "/home/ubuntu/sphinx.db" + } +} diff --git a/config/constants.json b/config/constants.json new file mode 100644 index 0000000..483cf3f --- /dev/null +++ b/config/constants.json @@ -0,0 +1,52 @@ +{ + "invite_statuses": { + "pending": 0, + "ready": 1, + "delivered": 2, + "in_progress": 3, + "complete": 4, + "expired": 5, + "payment_pending": 6 + }, + "contact_statuses": { + "pending": 0, + "confirmed": 1 + }, + "statuses": { + "pending": 0, + "confirmed": 1, + "cancelled": 2, + "received": 3, + "failed": 4 + }, + "message_types": { + "message": 0, + "confirmation": 1, + "invoice": 2, + "payment": 3, + "cancellation": 4, + "direct_payment": 5, + "attachment": 6, + "purchase": 7, + "purchase_accept": 8, + "purchase_deny": 9, + "contact_key": 10, + "contact_key_confirmation": 11, + "group_create": 12, + "group_invite": 13, + "group_join": 14, + "group_leave": 15, + "group_query": 16 + }, + "payment_errors": { + "timeout": "Timed Out", + "no_route": "No Route To Receiver", + "error": "Error", + "incorrect_payment_details": "Incorrect Payment Details", + "unknown": "Unknown" + }, + "chat_types": { + "conversation": 0, + "group": 1 + } +} diff --git a/dist/api/controllers/chats.js b/dist/api/controllers/chats.js new file mode 100644 index 0000000..e87e997 --- /dev/null +++ b/dist/api/controllers/chats.js @@ -0,0 +1,308 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const jsonUtils = require("../utils/json"); +const res_1 = require("../utils/res"); +const helpers = require("../helpers"); +const socket = require("../utils/socket"); +const hub_1 = require("../hub"); +const md5 = require("md5"); +const constants = require(__dirname + '/../../config/constants.json'); +function getChats(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const chats = yield models_1.models.Chat.findAll({ where: { deleted: false }, raw: true }); + const c = chats.map(chat => jsonUtils.chatToJson(chat)); + res_1.success(res, c); + }); +} +exports.getChats = getChats; +function mute(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const chatId = req.params['chat_id']; + const mute = req.params['mute_unmute']; + if (!["mute", "unmute"].includes(mute)) { + return res_1.failure(res, "invalid option for mute"); + } + const chat = yield models_1.models.Chat.findOne({ where: { id: chatId } }); + if (!chat) { + return res_1.failure(res, 'chat not found'); + } + chat.update({ isMuted: (mute == "mute") }); + res_1.success(res, jsonUtils.chatToJson(chat)); + }); +} +exports.mute = mute; +function createGroupChat(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const { name, contact_ids, } = req.body; + const members = {}; //{pubkey:{key,alias}, ...} + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + members[owner.publicKey] = { + key: owner.contactKey, alias: owner.alias + }; + yield asyncForEach(contact_ids, (cid) => __awaiter(this, void 0, void 0, function* () { + const contact = yield models_1.models.Contact.findOne({ where: { id: cid } }); + members[contact.publicKey] = { + key: contact.contactKey, + alias: contact.alias || '' + }; + })); + const chatParams = createGroupChatParams(owner, contact_ids, members, name); + helpers.sendMessage({ + chat: Object.assign(Object.assign({}, chatParams), { members }), + sender: owner, + type: constants.message_types.group_create, + message: {}, + failure: function (e) { + res_1.failure(res, e); + }, + success: function () { + return __awaiter(this, void 0, void 0, function* () { + const chat = yield models_1.models.Chat.create(chatParams); + res_1.success(res, jsonUtils.chatToJson(chat)); + }); + } + }); + }); +} +exports.createGroupChat = createGroupChat; +function addGroupMembers(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const { contact_ids, } = req.body; + const { id } = req.params; + const members = {}; //{pubkey:{key,alias}, ...} + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + let chat = yield models_1.models.Chat.findOne({ where: { id } }); + const contactIds = JSON.parse(chat.contactIds || '[]'); + // for all members (existing and new) + members[owner.publicKey] = { key: owner.contactKey, alias: owner.alias }; + const allContactIds = contactIds.concat(contact_ids); + yield asyncForEach(allContactIds, (cid) => __awaiter(this, void 0, void 0, function* () { + const contact = yield models_1.models.Contact.findOne({ where: { id: cid } }); + if (contact) { + members[contact.publicKey] = { + key: contact.contactKey, + alias: contact.alias + }; + } + })); + res_1.success(res, jsonUtils.chatToJson(chat)); + helpers.sendMessage({ + chat: Object.assign(Object.assign({}, chat.dataValues), { contactIds: contact_ids, members }), + sender: owner, + type: constants.message_types.group_invite, + message: {} + }); + }); +} +exports.addGroupMembers = addGroupMembers; +const deleteChat = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { id } = req.params; + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const chat = yield models_1.models.Chat.findOne({ where: { id } }); + helpers.sendMessage({ + chat, + sender: owner, + message: {}, + type: constants.message_types.group_leave, + }); + yield chat.update({ + deleted: true, + uuid: '', + contactIds: '[]', + name: '' + }); + yield models_1.models.Message.destroy({ where: { chatId: id } }); + res_1.success(res, { chat_id: id }); +}); +exports.deleteChat = deleteChat; +function receiveGroupLeave(payload) { + return __awaiter(this, void 0, void 0, function* () { + console.log('=> receiveGroupLeave'); + const { sender_pub_key, chat_uuid } = yield helpers.parseReceiveParams(payload); + const chat = yield models_1.models.Chat.findOne({ where: { uuid: chat_uuid } }); + if (!chat) + return; + const sender = yield models_1.models.Contact.findOne({ where: { publicKey: sender_pub_key } }); + if (!sender) + return; + const oldContactIds = JSON.parse(chat.contactIds || '[]'); + const contactIds = oldContactIds.filter(cid => cid !== sender.id); + yield chat.update({ contactIds: JSON.stringify(contactIds) }); + var date = new Date(); + date.setMilliseconds(0); + const msg = { + chatId: chat.id, + type: constants.message_types.group_leave, + sender: sender.id, + date: date, + messageContent: '', + remoteMessageContent: '', + status: constants.statuses.confirmed, + createdAt: date, + updatedAt: date + }; + const message = yield models_1.models.Message.create(msg); + socket.sendJson({ + type: 'group_leave', + response: { + contact: jsonUtils.contactToJson(sender), + chat: jsonUtils.chatToJson(chat), + message: jsonUtils.messageToJson(message, null) + } + }); + }); +} +exports.receiveGroupLeave = receiveGroupLeave; +function receiveGroupJoin(payload) { + return __awaiter(this, void 0, void 0, function* () { + console.log('=> receiveGroupJoin'); + const { sender_pub_key, chat_uuid, chat_members } = yield helpers.parseReceiveParams(payload); + const chat = yield models_1.models.Chat.findOne({ where: { uuid: chat_uuid } }); + if (!chat) + return; + let theSender = null; + const sender = yield models_1.models.Contact.findOne({ where: { publicKey: sender_pub_key } }); + const contactIds = JSON.parse(chat.contactIds || '[]'); + if (sender) { + theSender = sender; // might already include?? + if (!contactIds.includes(sender.id)) + contactIds.push(sender.id); + } + else { + const member = chat_members[sender_pub_key]; + if (member && member.key) { + const createdContact = yield models_1.models.Contact.create({ + publicKey: sender_pub_key, + contactKey: member.key, + alias: member.alias || 'Unknown', + status: 1 + }); + theSender = createdContact; + contactIds.push(createdContact.id); + } + } + yield chat.update({ contactIds: JSON.stringify(contactIds) }); + var date = new Date(); + date.setMilliseconds(0); + const msg = { + chatId: chat.id, + type: constants.message_types.group_join, + sender: sender.id, + date: date, + messageContent: '', + remoteMessageContent: '', + status: constants.statuses.confirmed, + createdAt: date, + updatedAt: date + }; + const message = yield models_1.models.Message.create(msg); + socket.sendJson({ + type: 'group_join', + response: { + contact: jsonUtils.contactToJson(theSender), + chat: jsonUtils.chatToJson(chat), + message: jsonUtils.messageToJson(message, null) + } + }); + }); +} +exports.receiveGroupJoin = receiveGroupJoin; +function receiveGroupCreateOrInvite(payload) { + return __awaiter(this, void 0, void 0, function* () { + const { chat_members, chat_name, chat_uuid } = yield helpers.parseReceiveParams(payload); + const contactIds = []; + const newContacts = []; + for (let [pubkey, member] of Object.entries(chat_members)) { + const contact = yield models_1.models.Contact.findOne({ where: { publicKey: pubkey } }); + if (!contact && member && member.key) { + const createdContact = yield models_1.models.Contact.create({ + publicKey: pubkey, + contactKey: member.key, + alias: member.alias || 'Unknown', + status: 1 + }); + contactIds.push(createdContact.id); + newContacts.push(createdContact.dataValues); + } + else { + contactIds.push(contact.id); + } + } + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + if (!contactIds.includes(owner.id)) + contactIds.push(owner.id); + // make chat + let date = new Date(); + date.setMilliseconds(0); + const chat = yield models_1.models.Chat.create({ + uuid: chat_uuid, + contactIds: JSON.stringify(contactIds), + createdAt: date, + updatedAt: date, + name: chat_name, + type: constants.chat_types.group + }); + socket.sendJson({ + type: 'group_create', + response: jsonUtils.messageToJson({ newContacts }, chat) + }); + hub_1.sendNotification(chat, chat_name, 'group'); + if (payload.type === constants.message_types.group_invite) { + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + helpers.sendMessage({ + chat: Object.assign(Object.assign({}, chat.dataValues), { members: { + [owner.publicKey]: { + key: owner.contactKey, + alias: owner.alias || '' + } + } }), + sender: owner, + message: {}, + type: constants.message_types.group_join, + }); + } + }); +} +exports.receiveGroupCreateOrInvite = receiveGroupCreateOrInvite; +function createGroupChatParams(owner, contactIds, members, name) { + let date = new Date(); + date.setMilliseconds(0); + if (!(owner && members && contactIds && Array.isArray(contactIds))) { + return; + } + const pubkeys = []; + for (let pubkey of Object.keys(members)) { // just the key + pubkeys.push(String(pubkey)); + } + if (!(pubkeys && pubkeys.length)) + return; + const allkeys = pubkeys.includes(owner.publicKey) ? pubkeys : [owner.publicKey].concat(pubkeys); + const hash = md5(allkeys.sort().join("-")); + const theContactIds = contactIds.includes(owner.id) ? contactIds : [owner.id].concat(contactIds); + return { + uuid: `${new Date().valueOf()}-${hash}`, + contactIds: JSON.stringify(theContactIds), + createdAt: date, + updatedAt: date, + name: name, + type: constants.chat_types.group + }; +} +function asyncForEach(array, callback) { + return __awaiter(this, void 0, void 0, function* () { + for (let index = 0; index < array.length; index++) { + yield callback(array[index], index, array); + } + }); +} +//# sourceMappingURL=chats.js.map \ No newline at end of file diff --git a/dist/api/controllers/chats.js.map b/dist/api/controllers/chats.js.map new file mode 100644 index 0000000..ad1e503 --- /dev/null +++ b/dist/api/controllers/chats.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chats.js","sourceRoot":"","sources":["../../../api/controllers/chats.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/contacts.js b/dist/api/controllers/contacts.js new file mode 100644 index 0000000..e403b99 --- /dev/null +++ b/dist/api/controllers/contacts.js @@ -0,0 +1,205 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const crypto = require("crypto"); +const socket = require("../utils/socket"); +const helpers = require("../helpers"); +const jsonUtils = require("../utils/json"); +const res_1 = require("../utils/res"); +const constants = require(__dirname + '/../../config/constants.json'); +const getContacts = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const contacts = yield models_1.models.Contact.findAll({ where: { deleted: false }, raw: true }); + const invites = yield models_1.models.Invite.findAll({ raw: true }); + const chats = yield models_1.models.Chat.findAll({ where: { deleted: false }, raw: true }); + const subscriptions = yield models_1.models.Subscription.findAll({ raw: true }); + const contactsResponse = contacts.map(contact => { + let contactJson = jsonUtils.contactToJson(contact); + let invite = invites.find(invite => invite.contactId == contact.id); + if (invite) { + contactJson.invite = jsonUtils.inviteToJson(invite); + } + return contactJson; + }); + const subsResponse = subscriptions.map(s => jsonUtils.subscriptionToJson(s, null)); + const chatsResponse = chats.map(chat => jsonUtils.chatToJson(chat)); + res_1.success(res, { + contacts: contactsResponse, + chats: chatsResponse, + subscriptions: subsResponse + }); +}); +exports.getContacts = getContacts; +const generateToken = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + console.log('=> generateToken called', { body: req.body, params: req.params, query: req.query }); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true, authToken: null } }); + if (owner) { + const hash = crypto.createHash('sha256').update(req.body['token']).digest('base64'); + console.log("req.params['token']", req.params['token']); + console.log("hash", hash); + owner.update({ authToken: hash }); + res_1.success(res, {}); + } + else { + res_1.failure(res, {}); + } +}); +exports.generateToken = generateToken; +const updateContact = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + console.log('=> updateContact called', { body: req.body, params: req.params, query: req.query }); + let attrs = extractAttrs(req.body); + const contact = yield models_1.models.Contact.findOne({ where: { id: req.params.id } }); + let shouldUpdateContactKey = (contact.isOwner && contact.contactKey == null && attrs["contact_key"] != null); + const owner = yield contact.update(jsonUtils.jsonToContact(attrs)); + res_1.success(res, jsonUtils.contactToJson(owner)); + if (!shouldUpdateContactKey) { + return; + } + // definitely "owner" now + const contactIds = yield models_1.models.Contact.findAll({ where: { deleted: false } }).map(c => c.id); + if (contactIds.length == 0) { + return; + } + helpers.sendContactKeys({ + contactIds: contactIds, + sender: owner, + type: constants.message_types.contact_key, + }); +}); +exports.updateContact = updateContact; +const exchangeKeys = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + console.log('=> exchangeKeys called', { body: req.body, params: req.params, query: req.query }); + const contact = yield models_1.models.Contact.findOne({ where: { id: req.params.id } }); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + res_1.success(res, jsonUtils.contactToJson(contact)); + helpers.sendContactKeys({ + contactIds: [contact.id], + sender: owner, + type: constants.message_types.contact_key, + }); +}); +exports.exchangeKeys = exchangeKeys; +const createContact = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + console.log('=> createContact called', { body: req.body, params: req.params, query: req.query }); + let attrs = extractAttrs(req.body); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const createdContact = yield models_1.models.Contact.create(attrs); + const contact = yield createdContact.update(jsonUtils.jsonToContact(attrs)); + res_1.success(res, jsonUtils.contactToJson(contact)); + helpers.sendContactKeys({ + contactIds: [contact.id], + sender: owner, + type: constants.message_types.contact_key, + }); +}); +exports.createContact = createContact; +const deleteContact = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const id = parseInt(req.params.id || '0'); + if (!id || id === 1) { + res_1.failure(res, 'Cannot delete self'); + return; + } + const contact = yield models_1.models.Contact.findOne({ where: { id } }); + yield contact.update({ + deleted: true, + publicKey: '', + photoUrl: '', + alias: 'Unknown', + contactKey: '', + }); + // find and destroy chat & messages + const chats = yield models_1.models.Chat.findAll({ where: { deleted: false } }); + chats.map((chat) => __awaiter(void 0, void 0, void 0, function* () { + if (chat.type === constants.chat_types.conversation) { + const contactIds = JSON.parse(chat.contactIds); + if (contactIds.includes(id)) { + yield chat.update({ + deleted: true, + uuid: '', + contactIds: '[]', + name: '' + }); + yield models_1.models.Message.destroy({ where: { chatId: chat.id } }); + } + } + })); + yield models_1.models.Invite.destroy({ where: { contactId: id } }); + yield models_1.models.Subscription.destroy({ where: { contactId: id } }); + res_1.success(res, {}); +}); +exports.deleteContact = deleteContact; +const receiveConfirmContactKey = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('=> confirm contact key', { payload }); + const dat = payload.content || payload; + const sender_pub_key = dat.sender.pub_key; + const sender_contact_key = dat.sender.contact_key; + const sender_alias = dat.sender.alias || 'Unknown'; + const sender_photo_url = dat.sender.photoUrl; + if (sender_photo_url) { + // download and store photo locally + } + const sender = yield models_1.models.Contact.findOne({ where: { publicKey: sender_pub_key, status: constants.contact_statuses.confirmed } }); + if (sender_contact_key && sender) { + if (!sender.alias || sender.alias === 'Unknown') { + sender.update({ contactKey: sender_contact_key, alias: sender_alias }); + } + else { + sender.update({ contactKey: sender_contact_key }); + } + socket.sendJson({ + type: 'contact', + response: jsonUtils.contactToJson(sender) + }); + } +}); +exports.receiveConfirmContactKey = receiveConfirmContactKey; +const receiveContactKey = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('=> received contact key', JSON.stringify(payload)); + const dat = payload.content || payload; + const sender_pub_key = dat.sender.pub_key; + const sender_contact_key = dat.sender.contact_key; + const sender_alias = dat.sender.alias || 'Unknown'; + const sender_photo_url = dat.sender.photoUrl; + if (sender_photo_url) { + // download and store photo locally + } + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const sender = yield models_1.models.Contact.findOne({ where: { publicKey: sender_pub_key, status: constants.contact_statuses.confirmed } }); + if (sender_contact_key && sender) { + if (!sender.alias || sender.alias === 'Unknown') { + sender.update({ contactKey: sender_contact_key, alias: sender_alias }); + } + else { + sender.update({ contactKey: sender_contact_key }); + } + socket.sendJson({ + type: 'contact', + response: jsonUtils.contactToJson(sender) + }); + } + helpers.sendContactKeys({ + contactPubKey: sender_pub_key, + sender: owner, + type: constants.message_types.contact_key_confirmation, + }); +}); +exports.receiveContactKey = receiveContactKey; +const extractAttrs = body => { + let fields_to_update = ["public_key", "node_alias", "alias", "photo_url", "device_id", "status", "contact_key"]; + let attrs = {}; + Object.keys(body).forEach(key => { + if (fields_to_update.includes(key)) { + attrs[key] = body[key]; + } + }); + return attrs; +}; +//# sourceMappingURL=contacts.js.map \ No newline at end of file diff --git a/dist/api/controllers/contacts.js.map b/dist/api/controllers/contacts.js.map new file mode 100644 index 0000000..593ce6d --- /dev/null +++ b/dist/api/controllers/contacts.js.map @@ -0,0 +1 @@ +{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../../api/controllers/contacts.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/details.js b/dist/api/controllers/details.js new file mode 100644 index 0000000..c3280d9 --- /dev/null +++ b/dist/api/controllers/details.js @@ -0,0 +1,133 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const lightning_1 = require("../utils/lightning"); +const res_1 = require("../utils/res"); +const readLastLines = require("read-last-lines"); +const nodeinfo_1 = require("../utils/nodeinfo"); +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; +const defaultLogFiles = [ + '/home/lnd/.pm2/logs/app-error.log', + '/var/log/syslog', +]; +function getLogsSince(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const logFiles = config.log_file ? [config.log_file] : defaultLogFiles; + let txt; + let err; + yield asyncForEach(logFiles, (filepath) => __awaiter(this, void 0, void 0, function* () { + if (!txt) { + try { + const lines = yield readLastLines.read(filepath, 500); + if (lines) { + var linesArray = lines.split('\n'); + linesArray.reverse(); + txt = linesArray.join('\n'); + } + } + catch (e) { + err = e; + } + } + })); + if (txt) + res_1.success(res, txt); + else + res_1.failure(res, err); + }); +} +exports.getLogsSince = getLogsSince; +const getInfo = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const lightning = lightning_1.loadLightning(); + var request = {}; + lightning.getInfo(request, function (err, response) { + res.status(200); + if (err == null) { + res.json({ success: true, response }); + } + else { + res.json({ success: false }); + } + res.end(); + }); +}); +exports.getInfo = getInfo; +const getChannels = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const lightning = lightning_1.loadLightning(); + var request = {}; + lightning.listChannels(request, function (err, response) { + res.status(200); + if (err == null) { + res.json({ success: true, response }); + } + else { + res.json({ success: false }); + } + res.end(); + }); +}); +exports.getChannels = getChannels; +const getBalance = (req, res) => { + const lightning = lightning_1.loadLightning(); + var request = {}; + lightning.channelBalance(request, function (err, response) { + res.status(200); + if (err == null) { + res.json({ success: true, response }); + } + else { + res.json({ success: false }); + } + res.end(); + }); +}; +exports.getBalance = getBalance; +const getLocalRemoteBalance = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const lightning = lightning_1.loadLightning(); + lightning.listChannels({}, (err, channelList) => { + const { channels } = channelList; + const localBalances = channels.map(c => c.local_balance); + const remoteBalances = channels.map(c => c.remote_balance); + const totalLocalBalance = localBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0); + const totalRemoteBalance = remoteBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0); + res.status(200); + if (err == null) { + res.json({ success: true, response: { local_balance: totalLocalBalance, remote_balance: totalRemoteBalance } }); + } + else { + res.json({ success: false }); + } + res.end(); + }); +}); +exports.getLocalRemoteBalance = getLocalRemoteBalance; +const getNodeInfo = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + var ipOfSource = req.connection.remoteAddress; + if (!(ipOfSource.includes('127.0.0.1') || ipOfSource.includes('localhost'))) { + res.status(401); + res.end(); + return; + } + const node = yield nodeinfo_1.nodeinfo(); + res.status(200); + res.json(node); + res.end(); +}); +exports.getNodeInfo = getNodeInfo; +function asyncForEach(array, callback) { + return __awaiter(this, void 0, void 0, function* () { + for (let index = 0; index < array.length; index++) { + yield callback(array[index], index, array); + } + }); +} +//# sourceMappingURL=details.js.map \ No newline at end of file diff --git a/dist/api/controllers/details.js.map b/dist/api/controllers/details.js.map new file mode 100644 index 0000000..817a368 --- /dev/null +++ b/dist/api/controllers/details.js.map @@ -0,0 +1 @@ +{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../api/controllers/details.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/index.js b/dist/api/controllers/index.js new file mode 100644 index 0000000..f8cc432 --- /dev/null +++ b/dist/api/controllers/index.js @@ -0,0 +1,139 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const lndService = require("../grpc"); +const gitinfo_1 = require("../utils/gitinfo"); +const lightning_1 = require("../utils/lightning"); +const constants = require(__dirname + '/../../config/constants.json'); +const env = process.env.NODE_ENV || 'development'; +console.log("=> env:", env); +let controllers = { + messages: require('./messages'), + invoices: require('./invoices'), + uploads: require('./uploads'), + contacts: require('./contacts'), + invites: require('./invites'), + payments: require('./payment'), + details: require('./details'), + chats: require('./chats'), + subcriptions: require('./subscriptions'), + media: require('./media'), +}; +function iniGrpcSubscriptions() { + return __awaiter(this, void 0, void 0, function* () { + try { + yield lightning_1.checkConnection(); + const types = constants.message_types; + yield lndService.subscribeInvoices({ + [types.contact_key]: controllers.contacts.receiveContactKey, + [types.contact_key_confirmation]: controllers.contacts.receiveConfirmContactKey, + [types.message]: controllers.messages.receiveMessage, + [types.invoice]: controllers.invoices.receiveInvoice, + [types.direct_payment]: controllers.payments.receivePayment, + [types.confirmation]: controllers.messages.receiveConfirmation, + [types.attachment]: controllers.media.receiveAttachment, + [types.purchase]: controllers.media.receivePurchase, + [types.purchase_accept]: controllers.media.receivePurchaseAccept, + [types.purchase_deny]: controllers.media.receivePurchaseDeny, + [types.group_create]: controllers.chats.receiveGroupCreateOrInvite, + [types.group_invite]: controllers.chats.receiveGroupCreateOrInvite, + [types.group_join]: controllers.chats.receiveGroupJoin, + [types.group_leave]: controllers.chats.receiveGroupLeave, + }); + } + catch (e) { + throw e; + } + }); +} +exports.iniGrpcSubscriptions = iniGrpcSubscriptions; +function set(app) { + return __awaiter(this, void 0, void 0, function* () { + if (models_1.models && models_1.models.Subscription) { + controllers.subcriptions.initializeCronJobs(); + } + try { + yield controllers.media.cycleMediaToken(); + } + catch (e) { + console.log('=> could not auth with media server', e.message); + } + app.get('/chats', controllers.chats.getChats); + app.post('/group', controllers.chats.createGroupChat); + app.post('/chats/:chat_id/:mute_unmute', controllers.chats.mute); + app.delete('/chat/:id', controllers.chats.deleteChat); + app.put('/chat/:id', controllers.chats.addGroupMembers); + app.post('/contacts/tokens', controllers.contacts.generateToken); + app.post('/upload', controllers.uploads.avatarUpload.single('file'), controllers.uploads.uploadFile); + app.post('/invites', controllers.invites.createInvite); + app.post('/invites/:invite_string/pay', controllers.invites.payInvite); + app.post('/invites/finish', controllers.invites.finishInvite); + app.get('/contacts', controllers.contacts.getContacts); + app.put('/contacts/:id', controllers.contacts.updateContact); + app.post('/contacts/:id/keys', controllers.contacts.exchangeKeys); + app.post('/contacts', controllers.contacts.createContact); + app.delete('/contacts/:id', controllers.contacts.deleteContact); + app.get('/messages', controllers.messages.getMessages); + app.post('/messages', controllers.messages.sendMessage); + app.post('/messages/:chat_id/read', controllers.messages.readMessages); + app.post('/messages/clear', controllers.messages.clearMessages); + app.get('/subscriptions', controllers.subcriptions.getAllSubscriptions); + app.get('/subscription/:id', controllers.subcriptions.getSubscription); + app.delete('/subscription/:id', controllers.subcriptions.deleteSubscription); + app.post('/subscriptions', controllers.subcriptions.createSubscription); + app.put('/subscription/:id', controllers.subcriptions.editSubscription); + app.get('/subscriptions/contact/:contactId', controllers.subcriptions.getSubscriptionsForContact); + app.put('/subscription/:id/pause', controllers.subcriptions.pauseSubscription); + app.put('/subscription/:id/restart', controllers.subcriptions.restartSubscription); + app.post('/attachment', controllers.media.sendAttachmentMessage); + app.post('/purchase', controllers.media.purchase); + app.get('/signer/:challenge', controllers.media.signer); + app.post('/invoices', controllers.invoices.createInvoice); + app.get('/invoices', controllers.invoices.listInvoices); + app.put('/invoices', controllers.invoices.payInvoice); + app.post('/invoices/cancel', controllers.invoices.cancelInvoice); + app.post('/payment', controllers.payments.sendPayment); + app.get('/payments', controllers.payments.listPayments); + app.get('/channels', controllers.details.getChannels); + app.get('/balance', controllers.details.getBalance); + app.get('/balance/all', controllers.details.getLocalRemoteBalance); + app.get('/getinfo', controllers.details.getInfo); + app.get('/logs', controllers.details.getLogsSince); + app.get('/info', controllers.details.getNodeInfo); + app.get('/version', function (req, res) { + return __awaiter(this, void 0, void 0, function* () { + const version = yield gitinfo_1.checkTag(); + res.send({ version }); + }); + }); + if (env != "production") { // web dashboard login + app.post('/login', login); + } + }); +} +exports.set = set; +const login = (req, res) => { + const { code } = req.body; + if (code == "sphinx") { + models_1.models.Contact.findOne({ where: { isOwner: true } }).then(owner => { + res.status(200); + res.json({ success: true, token: owner.authToken }); + res.end(); + }); + } + else { + res.status(200); + res.json({ success: false }); + res.end(); + } +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/api/controllers/index.js.map b/dist/api/controllers/index.js.map new file mode 100644 index 0000000..eb36294 --- /dev/null +++ b/dist/api/controllers/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/controllers/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgC;AAChC,sCAAqC;AACrC,8CAAyC;AACzC,kDAAkD;AAElD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,8BAA8B,CAAC,CAAC;AAEtE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAC,GAAG,CAAC,CAAA;AAE1B,IAAI,WAAW,GAAG;IACjB,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC;IACxC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;CACzB,CAAA;AAED,SAAe,oBAAoB;;QAClC,IAAG;YACF,MAAM,2BAAe,EAAE,CAAA;YACvB,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAA;YACrC,MAAM,UAAU,CAAC,iBAAiB,CAAC;gBAClC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,iBAAiB;gBAC3D,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,wBAAwB;gBAC/E,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc;gBACpD,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc;gBACpD,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc;gBAC3D,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,mBAAmB;gBAC9D,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,iBAAiB;gBACvD,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe;gBACnD,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,qBAAqB;gBAChE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,mBAAmB;gBAC5D,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,0BAA0B;gBAClE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,0BAA0B;gBAClE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,gBAAgB;gBACtD,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,iBAAiB;aACxD,CAAC,CAAA;SACF;QAAC,OAAM,CAAC,EAAE;YACV,MAAM,CAAC,CAAA;SACP;IACF,CAAC;CAAA;AA4FY,oDAAoB;AA1FjC,SAAe,GAAG,CAAC,GAAG;;QAErB,IAAG,eAAM,IAAI,eAAM,CAAC,YAAY,EAAC;YAChC,WAAW,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAA;SAC7C;QACD,IAAG;YACF,MAAM,WAAW,CAAC,KAAK,CAAC,eAAe,EAAE,CAAA;SACzC;QAAC,OAAM,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA;SAC7D;QAED,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC7C,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACrD,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAChE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACrD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QAEvD,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAEhE,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QAEpG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACtD,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACtE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAE7D,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACtD,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAC5D,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACjE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QACzD,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAE/D,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACtD,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACvD,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACtE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAE/D,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;QACvE,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;QACtE,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;QAC5E,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;QACvE,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;QACvE,GAAG,CAAC,GAAG,CAAC,mCAAmC,EAAE,WAAW,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAA;QACjG,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;QAC9E,GAAG,CAAC,GAAG,CAAC,2BAA2B,EAAE,WAAW,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAA;QAElF,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QAChE,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACjD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEvD,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QACzD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QACvD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACrD,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QAEhE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACtD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;QAEvD,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACrD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACnD,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAClE,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAChD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAClD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QAEjD,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,UAAe,GAAG,EAAC,GAAG;;gBACzC,MAAM,OAAO,GAAG,MAAM,kBAAQ,EAAE,CAAA;gBAChC,GAAG,CAAC,IAAI,CAAC,EAAC,OAAO,EAAC,CAAC,CAAA;YACpB,CAAC;SAAA,CAAC,CAAA;QAEF,IAAI,GAAG,IAAI,YAAY,EAAE,EAAE,sBAAsB;YAChD,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;SACzB;IACF,CAAC;CAAA;AAkBO,kBAAG;AAhBX,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAE1B,IAAI,IAAI,IAAI,QAAQ,EAAE;QACrB,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,EAAE,CAAC;QACX,CAAC,CAAC,CAAA;KACF;SAAM;QACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7B,GAAG,CAAC,GAAG,EAAE,CAAC;KACV;AACF,CAAC,CAAA"} \ No newline at end of file diff --git a/dist/api/controllers/invites.js b/dist/api/controllers/invites.js new file mode 100644 index 0000000..bf0dd47 --- /dev/null +++ b/dist/api/controllers/invites.js @@ -0,0 +1,101 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const crypto = require("crypto"); +const jsonUtils = require("../utils/json"); +const hub_1 = require("../hub"); +const finishInvite = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { invite_string } = req.body; + const params = { + invite: { + pin: invite_string + } + }; + function onSuccess() { + res.status(200); + res.json({ success: true }); + res.end(); + } + function onFailure() { + res.status(200); + res.json({ success: false }); + res.end(); + } + hub_1.finishInviteInHub(params, onSuccess, onFailure); +}); +exports.finishInvite = finishInvite; +const payInvite = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const params = { + node_ip: process.env.NODE_IP + }; + const invite_string = req.params['invite_string']; + const onSuccess = (response) => __awaiter(void 0, void 0, void 0, function* () { + const invite = response.object; + console.log("response", invite); + const dbInvite = yield models_1.models.Invite.findOne({ where: { inviteString: invite.pin } }); + if (dbInvite.status != invite.invite_status) { + dbInvite.update({ status: invite.invite_status }); + } + res.status(200); + res.json({ success: true, response: { invite: jsonUtils.inviteToJson(dbInvite) } }); + res.end(); + }); + const onFailure = (response) => { + res.status(200); + res.json({ success: false }); + res.end(); + }; + hub_1.payInviteInHub(invite_string, params, onSuccess, onFailure); +}); +exports.payInvite = payInvite; +const createInvite = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { nickname, welcome_message } = req.body; + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const params = { + invite: { + nickname: owner.alias, + pubkey: owner.publicKey, + contact_nickname: nickname, + message: welcome_message, + pin: crypto.randomBytes(20).toString('hex') + } + }; + const onSuccess = (response) => __awaiter(void 0, void 0, void 0, function* () { + console.log("response", response); + const inviteCreated = response.object; + const contact = yield models_1.models.Contact.create({ + alias: nickname, + status: 0 + }); + const invite = yield models_1.models.Invite.create({ + welcomeMessage: inviteCreated.message, + contactId: contact.id, + status: inviteCreated.invite_status, + inviteString: inviteCreated.pin + }); + let contactJson = jsonUtils.contactToJson(contact); + if (invite) { + contactJson.invite = jsonUtils.inviteToJson(invite); + } + res.status(200); + res.json({ success: true, contact: contactJson }); + res.end(); + }); + const onFailure = (response) => { + res.status(200); + res.json(response); + res.end(); + }; + hub_1.createInviteInHub(params, onSuccess, onFailure); +}); +exports.createInvite = createInvite; +//# sourceMappingURL=invites.js.map \ No newline at end of file diff --git a/dist/api/controllers/invites.js.map b/dist/api/controllers/invites.js.map new file mode 100644 index 0000000..b5c9eb9 --- /dev/null +++ b/dist/api/controllers/invites.js.map @@ -0,0 +1 @@ +{"version":3,"file":"invites.js","sourceRoot":"","sources":["../../../api/controllers/invites.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgC;AAChC,iCAAgC;AAChC,2CAA0C;AAC1C,gCAA2E;AAE3E,MAAM,YAAY,GAAG,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;IACvC,MAAM,EACL,aAAa,EACX,GAAG,GAAG,CAAC,IAAI,CAAA;IACd,MAAM,MAAM,GAAG;QACd,MAAM,EAAE;YACP,GAAG,EAAE,aAAa;SAClB;KACD,CAAA;IAED,SAAS,SAAS;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3B,GAAG,CAAC,GAAG,EAAE,CAAA;IACV,CAAC;IACD,SAAS,SAAS;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAC5B,GAAG,CAAC,GAAG,EAAE,CAAA;IACV,CAAC;IAEE,uBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;AACnD,CAAC,CAAA,CAAA;AAwFA,oCAAY;AAtFb,MAAM,SAAS,GAAG,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;IACpC,MAAM,MAAM,GAAG;QACd,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;KAC5B,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;IAEjD,MAAM,SAAS,GAAG,CAAO,QAAQ,EAAE,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAE9B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAE/B,MAAM,QAAQ,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,EAAC,CAAC,CAAA;QAEpF,IAAI,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE;YAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAA;SACjD;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;QACnF,GAAG,CAAC,GAAG,EAAE,CAAA;IACV,CAAC,CAAA,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAC5B,GAAG,CAAC,GAAG,EAAE,CAAA;IACV,CAAC,CAAA;IAEE,oBAAc,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC,CAAA,CAAA;AAyDA,8BAAS;AAvDV,MAAM,YAAY,GAAG,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;IACvC,MAAM,EACL,QAAQ,EACR,eAAe,EACd,GAAG,GAAG,CAAC,IAAI,CAAA;IAEZ,MAAM,KAAK,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAC,CAAC,CAAA;IAExE,MAAM,MAAM,GAAG;QACd,MAAM,EAAE;YACP,QAAQ,EAAE,KAAK,CAAC,KAAK;YACrB,MAAM,EAAE,KAAK,CAAC,SAAS;YACvB,gBAAgB,EAAE,QAAQ;YAC1B,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;SAC3C;KACD,CAAA;IAED,MAAM,SAAS,GAAG,CAAO,QAAQ,EAAE,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAEjC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAA;QAErC,MAAM,OAAO,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAC3C,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,CAAC;SACT,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,MAAM,eAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YACzC,cAAc,EAAE,aAAa,CAAC,OAAO;YACrC,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,MAAM,EAAE,aAAa,CAAC,aAAa;YACnC,YAAY,EAAE,aAAa,CAAC,GAAG;SAC/B,CAAC,CAAA;QACF,IAAI,WAAW,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAClD,IAAI,MAAM,EAAE;YACX,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;SACnD;QAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;QACjD,GAAG,CAAC,GAAG,EAAE,CAAA;IACV,CAAC,CAAA,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,EAAE;QAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACf,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClB,GAAG,CAAC,GAAG,EAAE,CAAA;IACV,CAAC,CAAA;IAEE,uBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;AACnD,CAAC,CAAA,CAAA;AAGA,oCAAY"} \ No newline at end of file diff --git a/dist/api/controllers/invoices.js b/dist/api/controllers/invoices.js new file mode 100644 index 0000000..1e090a1 --- /dev/null +++ b/dist/api/controllers/invoices.js @@ -0,0 +1,241 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const lightning_1 = require("../utils/lightning"); +const socket = require("../utils/socket"); +const jsonUtils = require("../utils/json"); +const decodeUtils = require("../utils/decode"); +const helpers = require("../helpers"); +const hub_1 = require("../hub"); +const res_1 = require("../utils/res"); +const constants = require(__dirname + '/../../config/constants.json'); +const payInvoice = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const lightning = yield lightning_1.loadLightning(); + const { payment_request } = req.body; + var call = lightning.sendPayment({}); + call.on('data', (response) => __awaiter(void 0, void 0, void 0, function* () { + console.log('[pay invoice data]', response); + const message = yield models_1.models.Message.findOne({ where: { payment_request } }); + if (!message) { // invoice still paid + return res_1.success(res, { + success: true, + response: { payment_request } + }); + } + message.status = constants.statuses.confirmed; + message.save(); + var date = new Date(); + date.setMilliseconds(0); + const chat = yield models_1.models.Chat.findOne({ where: { id: message.chatId } }); + const contactIds = JSON.parse(chat.contactIds); + const senderId = contactIds.find(id => id != message.sender); + const paidMessage = yield models_1.models.Message.create({ + chatId: message.chatId, + sender: senderId, + type: constants.message_types.payment, + amount: message.amount, + amountMsat: message.amountMsat, + paymentHash: message.paymentHash, + date: date, + expirationDate: null, + messageContent: null, + status: constants.statuses.confirmed, + createdAt: date, + updatedAt: date + }); + console.log('[pay invoice] stored message', paidMessage); + res_1.success(res, jsonUtils.messageToJson(paidMessage, chat)); + })); + call.write({ payment_request }); +}); +exports.payInvoice = payInvoice; +const cancelInvoice = (req, res) => { + res.status(200); + res.json({ success: false }); + res.end(); +}; +exports.cancelInvoice = cancelInvoice; +const createInvoice = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const lightning = yield lightning_1.loadLightning(); + const { amount, memo, remote_memo, chat_id, contact_id } = req.body; + var request = { + value: amount, + memo: remote_memo || memo + }; + if (amount == null) { + res.status(200); + res.json({ err: "no amount specified", }); + res.end(); + } + else { + lightning.addInvoice(request, function (err, response) { + console.log({ err, response }); + if (err == null) { + const { payment_request } = response; + if (!contact_id && !chat_id) { // if no contact + res_1.success(res, { + invoice: payment_request + }); + return; // end here + } + lightning.decodePayReq({ pay_req: payment_request }, (error, invoice) => __awaiter(this, void 0, void 0, function* () { + if (res) { + console.log('decoded pay req', { invoice }); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const chat = yield helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }); + let timestamp = parseInt(invoice.timestamp + '000'); + let expiry = parseInt(invoice.expiry + '000'); + if (error) { + res.status(200); + res.json({ success: false, error }); + res.end(); + } + else { + const message = yield models_1.models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.invoice, + amount: parseInt(invoice.num_satoshis), + amountMsat: parseInt(invoice.num_satoshis) * 1000, + paymentHash: invoice.payment_hash, + paymentRequest: payment_request, + date: new Date(timestamp), + expirationDate: new Date(timestamp + expiry), + messageContent: memo, + remoteMessageContent: remote_memo, + status: constants.statuses.pending, + createdAt: new Date(timestamp), + updatedAt: new Date(timestamp) + }); + res_1.success(res, jsonUtils.messageToJson(message, chat)); + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.invoice, + message: { + id: message.id, + invoice: message.paymentRequest + } + }); + } + } + else { + console.log('error decoding pay req', { err, res }); + res.status(500); + res.json({ err, res }); + res.end(); + } + })); + } + else { + console.log({ err, response }); + } + }); + } +}); +exports.createInvoice = createInvoice; +const listInvoices = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const lightning = yield lightning_1.loadLightning(); + lightning.listInvoices({}, (err, response) => { + console.log({ err, response }); + if (err == null) { + res.status(200); + res.json(response); + res.end(); + } + else { + console.log({ err, response }); + } + }); +}); +exports.listInvoices = listInvoices; +const receiveInvoice = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('received invoice', payload); + const total_spent = 1; + const dat = payload.content || payload; + const payment_request = dat.message.invoice; + var date = new Date(); + date.setMilliseconds(0); + const { owner, sender, chat, msg_id } = yield helpers.parseReceiveParams(payload); + if (!owner || !sender || !chat) { + return console.log('=> no group chat!'); + } + const { memo, sat, msat, paymentHash, invoiceDate, expirationSeconds } = decodePaymentRequest(payment_request); + const message = yield models_1.models.Message.create({ + chatId: chat.id, + type: constants.message_types.invoice, + sender: sender.id, + amount: sat, + amountMsat: msat, + paymentRequest: payment_request, + asciiEncodedTotal: total_spent, + paymentHash: paymentHash, + messageContent: memo, + expirationDate: new Date(invoiceDate + expirationSeconds), + date: new Date(invoiceDate), + status: constants.statuses.pending, + createdAt: date, + updatedAt: date + }); + console.log('received keysend invoice message', message.id); + socket.sendJson({ + type: 'invoice', + response: jsonUtils.messageToJson(message, chat) + }); + hub_1.sendNotification(chat, sender.alias, 'message'); + sendConfirmation({ chat, sender: owner, msg_id }); +}); +exports.receiveInvoice = receiveInvoice; +const sendConfirmation = ({ chat, sender, msg_id }) => { + helpers.sendMessage({ + chat, + sender, + message: { id: msg_id }, + type: constants.message_types.confirmation, + }); +}; +// lnd invoice stuff +function decodePaymentRequest(paymentRequest) { + var decodedPaymentRequest = decodeUtils.decode(paymentRequest); + var expirationSeconds = 3600; + var paymentHash = ""; + var memo = ""; + for (var i = 0; i < decodedPaymentRequest.data.tags.length; i++) { + let tag = decodedPaymentRequest.data.tags[i]; + if (tag) { + if (tag.description == 'payment_hash') { + paymentHash = tag.value; + } + else if (tag.description == 'description') { + memo = tag.value; + } + else if (tag.description == 'expiry') { + expirationSeconds = tag.value; + } + } + } + expirationSeconds = parseInt(expirationSeconds.toString() + '000'); + let invoiceDate = parseInt(decodedPaymentRequest.data.time_stamp.toString() + '000'); + let amount = decodedPaymentRequest['human_readable_part']['amount']; + var msat = 0; + var sat = 0; + if (Number.isInteger(amount)) { + msat = amount; + sat = amount / 1000; + } + return { sat, msat, paymentHash, invoiceDate, expirationSeconds, memo }; +} +//# sourceMappingURL=invoices.js.map \ No newline at end of file diff --git a/dist/api/controllers/invoices.js.map b/dist/api/controllers/invoices.js.map new file mode 100644 index 0000000..d863555 --- /dev/null +++ b/dist/api/controllers/invoices.js.map @@ -0,0 +1 @@ +{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../../api/controllers/invoices.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/media.js b/dist/api/controllers/media.js new file mode 100644 index 0000000..d75a60b --- /dev/null +++ b/dist/api/controllers/media.js @@ -0,0 +1,481 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const socket = require("../utils/socket"); +const jsonUtils = require("../utils/json"); +const resUtils = require("../utils/res"); +const helpers = require("../helpers"); +const hub_1 = require("../hub"); +const lightning_1 = require("../utils/lightning"); +const rp = require("request-promise"); +const lightning_2 = require("../utils/lightning"); +const ldat_1 = require("../utils/ldat"); +const cron_1 = require("cron"); +const zbase32 = require("../utils/zbase32"); +const schemas = require("./schemas"); +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; +const constants = require(__dirname + '/../../config/constants.json'); +/* + +TODO line 233: parse that from token itself, dont use getMediaInfo at all + +"attachment": sends a message to a chat with a signed receipt for a file, which can be accessed from sphinx-meme server +If the attachment has a price, then the media must be purchased to get the receipt + +"purchase" sends sats. +if the amount matches the price, the media owner +will respond ("purchase_accept" or "purchase_deny" type) +with the signed token, which can only be used by the buyer + +purchase_accept should update the original attachment message with the terms and receipt +(both Relay and client need to do this) or make new??? + +purchase_deny returns the sats +*/ +const sendAttachmentMessage = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + // try { + // schemas.attachment.validateSync(req.body) + // } catch(e) { + // return resUtils.failure(res, e.message) + // } + const { chat_id, contact_id, muid, text, remote_text, remote_text_map, media_key_map, media_type, file_name, ttl, price, } = req.body; + console.log('[send attachment]', req.body); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const chat = yield helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }); + let TTL = ttl; + if (ttl) { + TTL = parseInt(ttl); + } + if (!TTL) + TTL = 31536000; // default year + const amt = price || 0; + // generate media token for self! + const myMediaToken = yield ldat_1.tokenFromTerms({ + muid, ttl: TTL, host: '', + pubkey: owner.publicKey, + meta: Object.assign(Object.assign({}, amt && { amt }), { ttl }) + }); + const date = new Date(); + date.setMilliseconds(0); + const myMediaKey = (media_key_map && media_key_map[owner.id]) || ''; + const mediaType = media_type || ''; + const remoteMessageContent = remote_text_map ? JSON.stringify(remote_text_map) : remote_text; + const message = yield models_1.models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.attachment, + status: constants.statuses.pending, + messageContent: text || file_name || '', + remoteMessageContent, + mediaToken: myMediaToken, + mediaKey: myMediaKey, + mediaType: mediaType, + date, + createdAt: date, + updatedAt: date + }); + saveMediaKeys(muid, media_key_map, chat.id, message.id); + const mediaTerms = { + muid, ttl: TTL, + meta: Object.assign({}, amt && { amt }), + skipSigning: amt ? true : false // only sign if its free + }; + const msg = { + mediaTerms, + id: message.id, + content: remote_text_map || remote_text || text || file_name || '', + mediaKey: media_key_map, + mediaType: mediaType, + }; + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.attachment, + message: msg, + success: (data) => __awaiter(void 0, void 0, void 0, function* () { + console.log('attachment sent', { data }); + resUtils.success(res, jsonUtils.messageToJson(message, chat)); + }), + failure: error => resUtils.failure(res, error.message), + }); +}); +exports.sendAttachmentMessage = sendAttachmentMessage; +function saveMediaKeys(muid, mediaKeyMap, chatId, messageId) { + if (typeof mediaKeyMap !== 'object') { + console.log('wrong type for mediaKeyMap'); + return; + } + var date = new Date(); + date.setMilliseconds(0); + for (let [contactId, key] of Object.entries(mediaKeyMap)) { + models_1.models.MediaKey.create({ + muid, chatId, contactId, key, messageId, + createdAt: date, + }); + } +} +const purchase = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { chat_id, contact_id, amount, mediaToken, } = req.body; + var date = new Date(); + date.setMilliseconds(0); + try { + schemas.purchase.validateSync(req.body); + } + catch (e) { + return resUtils.failure(res, e.message); + } + console.log('purchase!'); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const chat = yield helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }); + const message = yield models_1.models.Message.create({ + sender: owner.id, + type: constants.message_types.purchase, + mediaToken: mediaToken, + date: date, + createdAt: date, + updatedAt: date + }); + const msg = { + amount, mediaToken, id: message.id, + }; + helpers.sendMessage({ + chat: Object.assign(Object.assign({}, chat), { contactIds: [contact_id] }), + sender: owner, + type: constants.message_types.purchase, + message: msg, + success: (data) => __awaiter(void 0, void 0, void 0, function* () { + console.log('purchase sent', { data }); + resUtils.success(res, jsonUtils.messageToJson(message)); + }), + failure: error => resUtils.failure(res, error.message), + }); +}); +exports.purchase = purchase; +/* RECEIVERS */ +const receivePurchase = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('received purchase', { payload }); + var date = new Date(); + date.setMilliseconds(0); + const { owner, sender, chat, amount, mediaToken } = yield helpers.parseReceiveParams(payload); + if (!owner || !sender || !chat) { + return console.log('=> group chat not found!'); + } + yield models_1.models.Message.create({ + chatId: chat.id, + sender: sender.id, + type: constants.message_types.purchase, + mediaToken: mediaToken, + date: date, + createdAt: date, + updatedAt: date + }); + const muid = mediaToken && mediaToken.split('.').length && mediaToken.split('.')[1]; + if (!muid) { + return console.log('no muid'); + } + const ogMessage = models_1.models.Message.findOne({ + where: { mediaToken } + }); + if (!ogMessage) { + return console.log('no original message'); + } + // find mediaKey for who sent + const mediaKey = models_1.models.MediaKey.findOne({ where: { + muid, receiver: sender.id, + } }); + const terms = ldat_1.parseLDAT(mediaToken); + // get info + let TTL = terms.meta && terms.meta.ttl; + let price = terms.meta && terms.meta.amt; + if (!TTL || !price) { + const media = yield getMediaInfo(muid); + console.log("GOT MEDIA", media); + if (media) { + TTL = media.ttl && parseInt(media.ttl); + price = media.price; + } + if (!TTL) + TTL = 31536000; + if (!price) + price = 0; + } + if (amount < price) { // didnt pay enough + return helpers.sendMessage({ + chat: Object.assign(Object.assign({}, chat), { contactIds: [sender.id] }), + sender: owner, + amount: amount, + type: constants.message_types.purchase_deny, + message: { amount, content: 'Payment Denied' }, + success: (data) => __awaiter(void 0, void 0, void 0, function* () { + console.log('purchase_deny sent', { data }); + }), + failure: error => console.log('=> couldnt send purcahse deny', error), + }); + } + const acceptTerms = { + muid, ttl: TTL, + meta: { amt: amount }, + }; + helpers.sendMessage({ + chat: Object.assign(Object.assign({}, chat), { contactIds: [sender.id] }), + sender: owner, + type: constants.message_types.purchase_accept, + message: { + mediaTerms: acceptTerms, + mediaKey: mediaKey.key, + mediaType: ogMessage.mediaType, + }, + success: (data) => __awaiter(void 0, void 0, void 0, function* () { + console.log('purchase_accept sent', { data }); + }), + failure: error => console.log('=> couldnt send purchase accept', error), + }); +}); +exports.receivePurchase = receivePurchase; +const receivePurchaseAccept = (payload) => __awaiter(void 0, void 0, void 0, function* () { + var date = new Date(); + date.setMilliseconds(0); + const { owner, sender, chat, mediaToken, mediaKey, mediaType } = yield helpers.parseReceiveParams(payload); + if (!owner || !sender || !chat) { + return console.log('=> no group chat!'); + } + const termsArray = mediaToken.split('.'); + // const host = termsArray[0] + const muid = termsArray[1]; + if (!muid) { + return console.log('wtf no muid'); + } + // const attachmentMessage = await models.Message.findOne({where:{ + // mediaToken: {$like: `${host}.${muid}%`} + // }}) + // if(attachmentMessage){ + // console.log('=> updated msg!') + // attachmentMessage.update({ + // mediaToken, mediaKey + // }) + // } + const msg = yield models_1.models.Message.create({ + chatId: chat.id, + sender: sender.id, + type: constants.message_types.purchase_accept, + status: constants.statuses.received, + mediaToken, + mediaKey, + mediaType, + date: date, + createdAt: date, + updatedAt: date + }); + socket.sendJson({ + type: 'purchase_accept', + response: jsonUtils.messageToJson(msg, chat) + }); +}); +exports.receivePurchaseAccept = receivePurchaseAccept; +const receivePurchaseDeny = (payload) => __awaiter(void 0, void 0, void 0, function* () { + var date = new Date(); + date.setMilliseconds(0); + const { owner, sender, chat, amount, mediaToken } = yield helpers.parseReceiveParams(payload); + if (!owner || !sender || !chat) { + return console.log('=> no group chat!'); + } + const msg = yield models_1.models.Message.create({ + chatId: chat.id, + sender: sender.id, + type: constants.message_types.purchase_deny, + status: constants.statuses.received, + messageContent: 'Purchase has been denied and sats returned to you', + amount: amount, + amountMsat: parseFloat(amount) * 1000, + mediaToken, + date: date, + createdAt: date, + updatedAt: date + }); + socket.sendJson({ + type: 'purchase_deny', + response: jsonUtils.messageToJson(msg, chat) + }); +}); +exports.receivePurchaseDeny = receivePurchaseDeny; +const receiveAttachment = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('received attachment', { payload }); + var date = new Date(); + date.setMilliseconds(0); + const { owner, sender, chat, mediaToken, mediaKey, mediaType, content, msg_id } = yield helpers.parseReceiveParams(payload); + if (!owner || !sender || !chat) { + return console.log('=> no group chat!'); + } + const msg = { + chatId: chat.id, + type: constants.message_types.attachment, + sender: sender.id, + date: date, + createdAt: date, + updatedAt: date + }; + if (content) + msg.messageContent = content; + if (mediaToken) + msg.mediaToken = mediaToken; + if (mediaKey) + msg.mediaKey = mediaKey; + if (mediaType) + msg.mediaType = mediaType; + const message = yield models_1.models.Message.create(msg); + console.log('saved attachment', message.dataValues); + socket.sendJson({ + type: 'attachment', + response: jsonUtils.messageToJson(message, chat) + }); + hub_1.sendNotification(chat, sender.alias, 'message'); + sendConfirmation({ chat, sender: owner, msg_id }); +}); +exports.receiveAttachment = receiveAttachment; +const sendConfirmation = ({ chat, sender, msg_id }) => { + helpers.sendMessage({ + chat, + sender, + message: { id: msg_id }, + type: constants.message_types.confirmation, + }); +}; +function signer(req, res) { + return __awaiter(this, void 0, void 0, function* () { + if (!req.params.challenge) + return resUtils.failure(res, "no challenge"); + try { + const sig = yield lightning_1.signBuffer(Buffer.from(req.params.challenge, 'base64')); + const sigBytes = zbase32.decode(sig); + const sigBase64 = ldat_1.urlBase64FromBytes(sigBytes); + resUtils.success(res, { + sig: sigBase64 + }); + } + catch (e) { + resUtils.failure(res, e); + } + }); +} +exports.signer = signer; +function verifier(msg, sig) { + return __awaiter(this, void 0, void 0, function* () { + try { + const res = yield lightning_1.verifyMessage(msg, sig); + return res; + } + catch (e) { + console.log(e); + } + }); +} +exports.verifier = verifier; +function getMyPubKey() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + const lightning = lightning_2.loadLightning(); + var request = {}; + lightning.getInfo(request, function (err, response) { + if (err) + reject(err); + if (!response.identity_pubkey) + reject('no pub key'); + else + resolve(response.identity_pubkey); + }); + }); + }); +} +function cycleMediaToken() { + return __awaiter(this, void 0, void 0, function* () { + try { + if (process.env.TEST_LDAT) + ldat_1.testLDAT(); + const mt = yield getMediaToken(null); + if (mt) + console.log('=> [meme] authed!'); + new cron_1.CronJob('1 * * * *', function () { + getMediaToken(true); + }); + } + catch (e) { + console.log(e.message); + } + }); +} +exports.cycleMediaToken = cycleMediaToken; +const mediaURL = 'http://' + config.media_host + '/'; +let mediaToken; +function getMediaToken(force) { + return __awaiter(this, void 0, void 0, function* () { + if (!force && mediaToken) + return mediaToken; + yield helpers.sleep(3000); + try { + const res = yield rp.get(mediaURL + 'ask'); + const r = JSON.parse(res); + if (!(r && r.challenge && r.id)) { + throw new Error('no challenge'); + } + const sig = yield lightning_1.signBuffer(Buffer.from(r.challenge, 'base64')); + if (!sig) + throw new Error('no signature'); + const pubkey = yield getMyPubKey(); + if (!pubkey) { + throw new Error('no pub key!'); + } + const sigBytes = zbase32.decode(sig); + const sigBase64 = ldat_1.urlBase64FromBytes(sigBytes); + const bod = yield rp.post(mediaURL + 'verify', { + form: { id: r.id, sig: sigBase64, pubkey } + }); + const body = JSON.parse(bod); + if (!(body && body.token)) { + throw new Error('no token'); + } + mediaToken = body.token; + return body.token; + } + catch (e) { + throw e; + } + }); +} +exports.getMediaToken = getMediaToken; +function getMediaInfo(muid) { + return __awaiter(this, void 0, void 0, function* () { + try { + const token = yield getMediaToken(null); + const res = yield rp.get(mediaURL + 'mymedia/' + muid, { + headers: { + 'Authorization': `Bearer ${token}`, + 'Content-Type': 'application/json' + }, + json: true + }); + return res; + } + catch (e) { + return null; + } + }); +} +//# sourceMappingURL=media.js.map \ No newline at end of file diff --git a/dist/api/controllers/media.js.map b/dist/api/controllers/media.js.map new file mode 100644 index 0000000..5fefcef --- /dev/null +++ b/dist/api/controllers/media.js.map @@ -0,0 +1 @@ +{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../api/controllers/media.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/messages.js b/dist/api/controllers/messages.js new file mode 100644 index 0000000..bf404f4 --- /dev/null +++ b/dist/api/controllers/messages.js @@ -0,0 +1,239 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const sequelize_1 = require("sequelize"); +const underscore_1 = require("underscore"); +const hub_1 = require("../hub"); +const socket = require("../utils/socket"); +const jsonUtils = require("../utils/json"); +const helpers = require("../helpers"); +const res_1 = require("../utils/res"); +const lock_1 = require("../utils/lock"); +const constants = require(__dirname + '/../../config/constants.json'); +const getMessages = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const dateToReturn = req.query.date; + if (!dateToReturn) { + return getAllMessages(req, res); + } + console.log(dateToReturn); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + // const chatId = req.query.chat_id + let newMessagesWhere = { + date: { [sequelize_1.Op.gte]: dateToReturn }, + [sequelize_1.Op.or]: [ + { receiver: owner.id }, + { receiver: null } + ] + }; + let confirmedMessagesWhere = { + updated_at: { [sequelize_1.Op.gte]: dateToReturn }, + status: constants.statuses.received, + sender: owner.id + }; + // if (chatId) { + // newMessagesWhere.chat_id = chatId + // confirmedMessagesWhere.chat_id = chatId + // } + const newMessages = yield models_1.models.Message.findAll({ where: newMessagesWhere }); + const confirmedMessages = yield models_1.models.Message.findAll({ where: confirmedMessagesWhere }); + const chatIds = []; + newMessages.forEach(m => { + if (!chatIds.includes(m.chatId)) + chatIds.push(m.chatId); + }); + confirmedMessages.forEach(m => { + if (!chatIds.includes(m.chatId)) + chatIds.push(m.chatId); + }); + let chats = chatIds.length > 0 ? yield models_1.models.Chat.findAll({ where: { deleted: false, id: chatIds } }) : []; + const chatsById = underscore_1.indexBy(chats, 'id'); + res.json({ + success: true, + response: { + new_messages: newMessages.map(message => jsonUtils.messageToJson(message, chatsById[parseInt(message.chatId)])), + confirmed_messages: confirmedMessages.map(message => jsonUtils.messageToJson(message, chatsById[parseInt(message.chatId)])) + } + }); + res.status(200); + res.end(); +}); +exports.getMessages = getMessages; +const getAllMessages = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const messages = yield models_1.models.Message.findAll({ order: [['id', 'asc']] }); + const chatIds = messages.map(m => m.chatId); + console.log('=> getAllMessages, chatIds', chatIds); + let chats = chatIds.length > 0 ? yield models_1.models.Chat.findAll({ where: { deleted: false, id: chatIds } }) : []; + const chatsById = underscore_1.indexBy(chats, 'id'); + res_1.success(res, { + new_messages: messages.map(message => jsonUtils.messageToJson(message, chatsById[parseInt(message.chatId)])), + confirmed_messages: [] + }); +}); +const sendMessage = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + // try { + // schemas.message.validateSync(req.body) + // } catch(e) { + // return failure(res, e.message) + // } + const { contact_id, text, remote_text, chat_id, remote_text_map, } = req.body; + console.log('[sendMessage]'); + var date = new Date(); + date.setMilliseconds(0); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const chat = yield helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id, + }); + const remoteMessageContent = remote_text_map ? JSON.stringify(remote_text_map) : remote_text; + const msg = { + chatId: chat.id, + type: constants.message_types.message, + sender: owner.id, + date: date, + messageContent: text, + remoteMessageContent, + status: constants.statuses.pending, + createdAt: date, + updatedAt: date + }; + // console.log(msg) + const message = yield models_1.models.Message.create(msg); + res_1.success(res, jsonUtils.messageToJson(message, chat)); + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.message, + message: { + id: message.id, + content: remote_text_map || remote_text || text + } + }); +}); +exports.sendMessage = sendMessage; +const receiveMessage = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('received message', { payload }); + var date = new Date(); + date.setMilliseconds(0); + const total_spent = 1; + const { owner, sender, chat, content, msg_id } = yield helpers.parseReceiveParams(payload); + if (!owner || !sender || !chat) { + return console.log('=> no group chat!'); + } + const text = content; + const message = yield models_1.models.Message.create({ + chatId: chat.id, + type: constants.message_types.message, + asciiEncodedTotal: total_spent, + sender: sender.id, + date: date, + messageContent: text, + createdAt: date, + updatedAt: date, + status: constants.statuses.received + }); + console.log('saved message', message.dataValues); + socket.sendJson({ + type: 'message', + response: jsonUtils.messageToJson(message, chat) + }); + hub_1.sendNotification(chat, sender.alias, 'message'); + sendConfirmation({ chat, sender: owner, msg_id }); +}); +exports.receiveMessage = receiveMessage; +const sendConfirmation = ({ chat, sender, msg_id }) => { + helpers.sendMessage({ + chat, + sender, + message: { id: msg_id }, + type: constants.message_types.confirmation, + }); +}; +const receiveConfirmation = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('received confirmation', { payload }); + const dat = payload.content || payload; + const chat_uuid = dat.chat.uuid; + const msg_id = dat.message.id; + const sender_pub_key = dat.sender.pub_key; + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const sender = yield models_1.models.Contact.findOne({ where: { publicKey: sender_pub_key } }); + const chat = yield models_1.models.Chat.findOne({ where: { uuid: chat_uuid } }); + // new confirmation logic + if (msg_id) { + lock_1.default.acquire('confirmation', function (done) { + return __awaiter(this, void 0, void 0, function* () { + console.log("update status map"); + const message = yield models_1.models.Message.findOne({ where: { id: msg_id } }); + if (message) { + let statusMap = {}; + try { + statusMap = JSON.parse(message.statusMap || '{}'); + } + catch (e) { } + statusMap[sender.id] = constants.statuses.received; + yield message.update({ + status: constants.statuses.received, + statusMap: JSON.stringify(statusMap) + }); + socket.sendJson({ + type: 'confirmation', + response: jsonUtils.messageToJson(message, chat) + }); + } + done(); + }); + }); + } + else { // old logic + const messages = yield models_1.models.Message.findAll({ + limit: 1, + where: { + chatId: chat.id, + sender: owner.id, + type: [ + constants.message_types.message, + constants.message_types.invoice, + constants.message_types.attachment, + ], + status: constants.statuses.pending, + }, + order: [['createdAt', 'desc']] + }); + const message = messages[0]; + message.update({ status: constants.statuses.received }); + socket.sendJson({ + type: 'confirmation', + response: jsonUtils.messageToJson(message, chat) + }); + } +}); +exports.receiveConfirmation = receiveConfirmation; +const readMessages = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const chat_id = req.params.chat_id; + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + models_1.models.Message.update({ seen: true }, { + where: { + sender: { + [sequelize_1.Op.ne]: owner.id + }, + chatId: chat_id + } + }); + res_1.success(res, {}); +}); +exports.readMessages = readMessages; +const clearMessages = (req, res) => { + models_1.models.Message.destroy({ where: {}, truncate: true }); + res_1.success(res, {}); +}; +exports.clearMessages = clearMessages; +//# sourceMappingURL=messages.js.map \ No newline at end of file diff --git a/dist/api/controllers/messages.js.map b/dist/api/controllers/messages.js.map new file mode 100644 index 0000000..6052cc0 --- /dev/null +++ b/dist/api/controllers/messages.js.map @@ -0,0 +1 @@ +{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../api/controllers/messages.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/payment.js b/dist/api/controllers/payment.js new file mode 100644 index 0000000..c3173c7 --- /dev/null +++ b/dist/api/controllers/payment.js @@ -0,0 +1,178 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const hub_1 = require("../hub"); +const socket = require("../utils/socket"); +const jsonUtils = require("../utils/json"); +const helpers = require("../helpers"); +const res_1 = require("../utils/res"); +const lightning = require("../utils/lightning"); +const ldat_1 = require("../utils/ldat"); +const constants = require(__dirname + '/../../config/constants.json'); +const sendPayment = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { amount, chat_id, contact_id, destination_key, media_type, muid, text, remote_text, dimensions, } = req.body; + console.log('[send payment]', req.body); + if (destination_key && !contact_id && !chat_id) { + return helpers.performKeysendMessage({ + destination_key, + amount, + msg: '{}', + success: () => { + console.log('payment sent!'); + res_1.success(res, { destination_key, amount }); + }, + failure: (error) => { + res.status(200); + res.json({ success: false, error }); + res.end(); + } + }); + } + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const chat = yield helpers.findOrCreateChat({ + chat_id, + owner_id: owner.id, + recipient_id: contact_id + }); + var date = new Date(); + date.setMilliseconds(0); + const msg = { + chatId: chat.id, + sender: owner.id, + type: constants.message_types.direct_payment, + amount: amount, + amountMsat: parseFloat(amount) * 1000, + date: date, + createdAt: date, + updatedAt: date + }; + if (text) + msg.messageContent = text; + if (remote_text) + msg.remoteMessageContent = remote_text; + if (muid) { + const myMediaToken = yield ldat_1.tokenFromTerms({ + meta: { dim: dimensions }, host: '', + muid, ttl: null, + pubkey: owner.publicKey + }); + msg.mediaToken = myMediaToken; + msg.mediaType = media_type || ''; + } + const message = yield models_1.models.Message.create(msg); + const msgToSend = { + id: message.id, + amount, + }; + if (muid) { + msgToSend.mediaType = media_type || 'image/jpeg'; + msgToSend.mediaTerms = { muid, meta: { dim: dimensions } }; + } + if (remote_text) + msgToSend.content = remote_text; + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.direct_payment, + message: msgToSend, + amount: amount, + success: (data) => __awaiter(void 0, void 0, void 0, function* () { + // console.log('payment sent', { data }) + res_1.success(res, jsonUtils.messageToJson(message, chat)); + }), + failure: (error) => { + res.status(200); + res.json({ success: false, error }); + res.end(); + } + }); +}); +exports.sendPayment = sendPayment; +const receivePayment = (payload) => __awaiter(void 0, void 0, void 0, function* () { + console.log('received payment', { payload }); + var date = new Date(); + date.setMilliseconds(0); + const { owner, sender, chat, amount, content, mediaType, mediaToken } = yield helpers.parseReceiveParams(payload); + if (!owner || !sender || !chat) { + return console.log('=> no group chat!'); + } + const msg = { + chatId: chat.id, + type: constants.message_types.direct_payment, + sender: sender.id, + amount: amount, + amountMsat: parseFloat(amount) * 1000, + date: date, + createdAt: date, + updatedAt: date + }; + if (content) + msg.messageContent = content; + if (mediaType) + msg.mediaType = mediaType; + if (mediaToken) + msg.mediaToken = mediaToken; + const message = yield models_1.models.Message.create(msg); + console.log('saved message', message.dataValues); + socket.sendJson({ + type: 'direct_payment', + response: jsonUtils.messageToJson(message, chat) + }); + hub_1.sendNotification(chat, sender.alias, 'message'); +}); +exports.receivePayment = receivePayment; +const listPayments = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const limit = (req.query.limit && parseInt(req.query.limit)) || 100; + const offset = (req.query.offset && parseInt(req.query.offset)) || 0; + const payments = []; + const response = yield lightning.listInvoices(); + const invs = response && response.invoices; + if (invs && invs.length) { + invs.forEach(inv => { + const val = inv.value && parseInt(inv.value); + if (val && val > 1) { + let payment_hash = ''; + if (inv.r_hash) { + payment_hash = Buffer.from(inv.r_hash).toString('hex'); + } + payments.push({ + type: 'invoice', + amount: parseInt(inv.value), + date: parseInt(inv.creation_date), + payment_request: inv.payment_request, + payment_hash + }); + } + }); + } + const res2 = yield lightning.listPayments(); + const pays = res2 && res2.payments; + if (pays && pays.length) { + pays.forEach(pay => { + const val = pay.value && parseInt(pay.value); + if (val && val > 1) { + payments.push({ + type: 'payment', + amount: parseInt(pay.value), + date: parseInt(pay.creation_date), + pubkey: pay.path[pay.path.length - 1], + payment_hash: pay.payment_hash, + }); + } + }); + } + // latest one first + payments.sort((a, b) => b.date - a.date); + res_1.success(res, payments.splice(offset, limit)); +}); +exports.listPayments = listPayments; +//# sourceMappingURL=payment.js.map \ No newline at end of file diff --git a/dist/api/controllers/payment.js.map b/dist/api/controllers/payment.js.map new file mode 100644 index 0000000..aaf223e --- /dev/null +++ b/dist/api/controllers/payment.js.map @@ -0,0 +1 @@ +{"version":3,"file":"payment.js","sourceRoot":"","sources":["../../../api/controllers/payment.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/schemas.js b/dist/api/controllers/schemas.js new file mode 100644 index 0000000..e7ebe11 --- /dev/null +++ b/dist/api/controllers/schemas.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const yup = require("yup"); +/* +These schemas validate payloads coming from app, +do not necessarily match up with Models +*/ +const attachment = yup.object().shape({ + muid: yup.string().required(), + media_type: yup.string().required(), + media_key_map: yup.object().required(), +}); +exports.attachment = attachment; +const message = yup.object().shape({ + contact_id: yup.number().required(), +}); +exports.message = message; +const purchase = yup.object().shape({ + chat_id: yup.number().required(), + contact_id: yup.number().required(), + mediaToken: yup.string().required(), + amount: yup.number().required() +}); +exports.purchase = purchase; +//# sourceMappingURL=schemas.js.map \ No newline at end of file diff --git a/dist/api/controllers/schemas.js.map b/dist/api/controllers/schemas.js.map new file mode 100644 index 0000000..a2356d4 --- /dev/null +++ b/dist/api/controllers/schemas.js.map @@ -0,0 +1 @@ +{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../api/controllers/schemas.ts"],"names":[],"mappings":";;AAAA,2BAA0B;AAE1B;;;EAGE;AAEF,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IAClC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAA;AAcE,gCAAU;AAZd,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IAC/B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAA;AAYE,0BAAO;AAVX,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAA;AAIE,4BAAQ"} \ No newline at end of file diff --git a/dist/api/controllers/subscriptions.js b/dist/api/controllers/subscriptions.js new file mode 100644 index 0000000..3ffad03 --- /dev/null +++ b/dist/api/controllers/subscriptions.js @@ -0,0 +1,402 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const res_1 = require("../utils/res"); +const cron_1 = require("cron"); +const case_1 = require("../utils/case"); +const cronUtils = require("../utils/cron"); +const socket = require("../utils/socket"); +const jsonUtils = require("../utils/json"); +const helpers = require("../helpers"); +const rsa = require("../crypto/rsa"); +const moment = require("moment"); +const constants = require(__dirname + '/../../config/constants.json'); +// store all current running jobs in memory +let jobs = {}; +// init jobs from DB +const initializeCronJobs = () => __awaiter(void 0, void 0, void 0, function* () { + yield helpers.sleep(1000); + const subs = yield getRawSubs({ where: { ended: false } }); + subs.length && subs.forEach(sub => { + console.log("=> starting subscription cron job", sub.id + ":", sub.cron); + startCronJob(sub); + }); +}); +exports.initializeCronJobs = initializeCronJobs; +function startCronJob(sub) { + return __awaiter(this, void 0, void 0, function* () { + jobs[sub.id] = new cron_1.CronJob(sub.cron, function () { + return __awaiter(this, void 0, void 0, function* () { + const subscription = yield models_1.models.Subscription.findOne({ where: { id: sub.id } }); + if (!subscription) { + delete jobs[sub.id]; + return this.stop(); + } + console.log('EXEC CRON =>', subscription.id); + if (subscription.paused) { // skip, still in jobs{} tho + return this.stop(); + } + let STOP = checkSubscriptionShouldAlreadyHaveEnded(subscription); + if (STOP) { // end the job and return + console.log("stop"); + subscription.update({ ended: true }); + delete jobs[subscription.id]; + return this.stop(); + } + // SEND PAYMENT!!! + sendSubscriptionPayment(subscription, false); + }); + }, null, true); + }); +} +function checkSubscriptionShouldAlreadyHaveEnded(sub) { + if (sub.endDate) { + const now = new Date(); + if (now.getTime() > sub.endDate.getTime()) { + return true; + } + } + if (sub.endNumber) { + if (sub.count >= sub.endNumber) { + return true; + } + } + return false; +} +function checkSubscriptionShouldEndAfterThisPayment(sub) { + if (sub.endDate) { + const { ms } = cronUtils.parse(sub.cron); + const now = new Date(); + if ((now.getTime() + ms) > sub.endDate.getTime()) { + return true; + } + } + if (sub.endNumber) { + if (sub.count + 1 >= sub.endNumber) { + return true; + } + } + return false; +} +function msgForSubPayment(owner, sub, isFirstMessage, forMe) { + let text = ''; + if (isFirstMessage) { + const alias = forMe ? 'You' : owner.alias; + text = `${alias} subscribed\n`; + } + else { + text = 'Subscription\n'; + } + text += `Amount: ${sub.amount} sats\n`; + text += `Interval: ${cronUtils.parse(sub.cron).interval}\n`; + if (sub.endDate) { + text += `End: ${moment(sub.endDate).format('MM/DD/YY')}\n`; + text += `Status: ${sub.count + 1} sent`; + } + else if (sub.endNumber) { + text += `Status: ${sub.count + 1} of ${sub.endNumber} sent`; + } + return text; +} +function sendSubscriptionPayment(sub, isFirstMessage) { + return __awaiter(this, void 0, void 0, function* () { + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + var date = new Date(); + date.setMilliseconds(0); + const subscription = yield models_1.models.Subscription.findOne({ where: { id: sub.id } }); + if (!subscription) { + return; + } + const chat = yield models_1.models.Chat.findOne({ where: { id: subscription.chatId } }); + if (!subscription) { + console.log("=> no sub for this payment!!!"); + return; + } + const forMe = false; + const text = msgForSubPayment(owner, sub, isFirstMessage, forMe); + const contact = yield models_1.models.Contact.findByPk(sub.contactId); + const enc = rsa.encrypt(contact.contactKey, text); + helpers.sendMessage({ + chat: chat, + sender: owner, + type: constants.message_types.direct_payment, + message: { amount: sub.amount, content: enc }, + amount: sub.amount, + success: (data) => __awaiter(this, void 0, void 0, function* () { + const shouldEnd = checkSubscriptionShouldEndAfterThisPayment(subscription); + const obj = { + totalPaid: parseFloat(subscription.totalPaid || 0) + parseFloat(subscription.amount), + count: parseInt(subscription.count || 0) + 1, + ended: false, + }; + if (shouldEnd) { + obj.ended = true; + if (jobs[sub.id]) + jobs[subscription.id].stop(); + delete jobs[subscription.id]; + } + yield subscription.update(obj); + const forMe = true; + const text2 = msgForSubPayment(owner, sub, isFirstMessage, forMe); + const encText = rsa.encrypt(owner.contactKey, text2); + const message = yield models_1.models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.direct_payment, + status: constants.statuses.confirmed, + messageContent: encText, + amount: subscription.amount, + amountMsat: parseFloat(subscription.amount) * 1000, + date: date, + createdAt: date, + updatedAt: date, + subscriptionId: subscription.id, + }); + socket.sendJson({ + type: 'direct_payment', + response: jsonUtils.messageToJson(message, chat) + }); + }), + failure: (err) => __awaiter(this, void 0, void 0, function* () { + console.log("SEND PAY ERROR"); + let errMessage = constants.payment_errors[err] || 'Unknown'; + errMessage = 'Payment Failed: ' + errMessage; + const message = yield models_1.models.Message.create({ + chatId: chat.id, + sender: owner.id, + type: constants.message_types.direct_payment, + status: constants.statuses.failed, + messageContent: errMessage, + amount: sub.amount, + amountMsat: parseFloat(sub.amount) * 1000, + date: date, + createdAt: date, + updatedAt: date, + subscriptionId: sub.id, + }); + socket.sendJson({ + type: 'direct_payment', + response: jsonUtils.messageToJson(message, chat) + }); + }) + }); + }); +} +// pause sub +function pauseSubscription(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const id = parseInt(req.params.id); + try { + const sub = yield models_1.models.Subscription.findOne({ where: { id } }); + if (sub) { + sub.update({ paused: true }); + if (jobs[id]) + jobs[id].stop(); + res_1.success(res, jsonUtils.subscriptionToJson(sub, null)); + } + else { + res_1.failure(res, 'not found'); + } + } + catch (e) { + console.log('ERROR pauseSubscription', e); + res_1.failure(res, e); + } + }); +} +exports.pauseSubscription = pauseSubscription; +; +// restart sub +function restartSubscription(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const id = parseInt(req.params.id); + try { + const sub = yield models_1.models.Subscription.findOne({ where: { id } }); + if (sub) { + sub.update({ paused: false }); + if (jobs[id]) + jobs[id].start(); + res_1.success(res, jsonUtils.subscriptionToJson(sub, null)); + } + else { + res_1.failure(res, 'not found'); + } + } + catch (e) { + console.log('ERROR restartSubscription', e); + res_1.failure(res, e); + } + }); +} +exports.restartSubscription = restartSubscription; +; +function getRawSubs(opts = {}) { + return __awaiter(this, void 0, void 0, function* () { + const options = Object.assign({ order: [['id', 'asc']] }, opts); + try { + const subs = yield models_1.models.Subscription.findAll(options); + return subs; + } + catch (e) { + throw e; + } + }); +} +// all subs +const getAllSubscriptions = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + try { + const subs = yield getRawSubs(); + res_1.success(res, subs.map(sub => jsonUtils.subscriptionToJson(sub, null))); + } + catch (e) { + console.log('ERROR getAllSubscriptions', e); + res_1.failure(res, e); + } +}); +exports.getAllSubscriptions = getAllSubscriptions; +// one sub by id +function getSubscription(req, res) { + return __awaiter(this, void 0, void 0, function* () { + try { + const sub = yield models_1.models.Subscription.findOne({ where: { id: req.params.id } }); + res_1.success(res, jsonUtils.subscriptionToJson(sub, null)); + } + catch (e) { + console.log('ERROR getSubscription', e); + res_1.failure(res, e); + } + }); +} +exports.getSubscription = getSubscription; +; +// delete sub by id +function deleteSubscription(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const id = req.params.id; + if (!id) + return; + try { + if (jobs[id]) { + jobs[id].stop(); + delete jobs[id]; + } + models_1.models.Subscription.destroy({ where: { id } }); + res_1.success(res, true); + } + catch (e) { + console.log('ERROR deleteSubscription', e); + res_1.failure(res, e); + } + }); +} +exports.deleteSubscription = deleteSubscription; +; +// all subs for contact id +const getSubscriptionsForContact = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + try { + const subs = yield getRawSubs({ where: { contactId: req.params.contactId } }); + res_1.success(res, subs.map(sub => jsonUtils.subscriptionToJson(sub, null))); + } + catch (e) { + console.log('ERROR getSubscriptionsForContact', e); + res_1.failure(res, e); + } +}); +exports.getSubscriptionsForContact = getSubscriptionsForContact; +// create new sub +function createSubscription(req, res) { + return __awaiter(this, void 0, void 0, function* () { + const date = new Date(); + date.setMilliseconds(0); + const s = jsonToSubscription(Object.assign(Object.assign({}, req.body), { count: 0, total_paid: 0, createdAt: date, ended: false, paused: false })); + if (!s.cron) { + return res_1.failure(res, 'Invalid interval'); + } + try { + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const chat = yield helpers.findOrCreateChat({ + chat_id: req.body.chat_id, + owner_id: owner.id, + recipient_id: req.body.contact_id, + }); + s.chatId = chat.id; // add chat id if newly created + if (!owner || !chat) { + return res_1.failure(res, 'Invalid chat or contact'); + } + const sub = yield models_1.models.Subscription.create(s); + startCronJob(sub); + const isFirstMessage = true; + sendSubscriptionPayment(sub, isFirstMessage); + res_1.success(res, jsonUtils.subscriptionToJson(sub, chat)); + } + catch (e) { + console.log('ERROR createSubscription', e); + res_1.failure(res, e); + } + }); +} +exports.createSubscription = createSubscription; +; +function editSubscription(req, res) { + return __awaiter(this, void 0, void 0, function* () { + console.log('======> editSubscription'); + const date = new Date(); + date.setMilliseconds(0); + const id = parseInt(req.params.id); + const s = jsonToSubscription(Object.assign(Object.assign({}, req.body), { count: 0, createdAt: date, ended: false, paused: false })); + try { + if (!id || !s.chatId || !s.cron) { + return res_1.failure(res, 'Invalid data'); + } + const subRecord = yield models_1.models.Subscription.findOne({ where: { id } }); + if (!subRecord) { + return res_1.failure(res, 'No subscription found'); + } + // stop so it can be restarted + if (jobs[id]) + jobs[id].stop(); + const obj = { + cron: s.cron, + updatedAt: date, + }; + if (s.amount) + obj.amount = s.amount; + if (s.endDate) + obj.endDate = s.endDate; + if (s.endNumber) + obj.endNumber = s.endNumber; + const sub = yield subRecord.update(obj); + const end = checkSubscriptionShouldAlreadyHaveEnded(sub); + if (end) { + yield subRecord.update({ ended: true }); + delete jobs[id]; + } + else { + startCronJob(sub); // restart + } + const chat = yield models_1.models.Chat.findOne({ where: { id: s.chatId } }); + res_1.success(res, jsonUtils.subscriptionToJson(sub, chat)); + } + catch (e) { + console.log('ERROR createSubscription', e); + res_1.failure(res, e); + } + }); +} +exports.editSubscription = editSubscription; +; +function jsonToSubscription(j) { + console.log("=>", j); + const cron = cronUtils.make(j.interval); + return case_1.toCamel(Object.assign(Object.assign({}, j), { cron })); +} +//# sourceMappingURL=subscriptions.js.map \ No newline at end of file diff --git a/dist/api/controllers/subscriptions.js.map b/dist/api/controllers/subscriptions.js.map new file mode 100644 index 0000000..a0dee7d --- /dev/null +++ b/dist/api/controllers/subscriptions.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../api/controllers/subscriptions.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/controllers/uploads.js b/dist/api/controllers/uploads.js new file mode 100644 index 0000000..6eece59 --- /dev/null +++ b/dist/api/controllers/uploads.js @@ -0,0 +1,64 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; +// setup disk storage +var multer = require('multer'); +var avatarStorage = multer.diskStorage({ + destination: (req, file, cb) => { + let dir = __dirname.includes('/dist/') ? __dirname + '/..' : __dirname; + cb(null, dir + '/../../public/uploads'); + }, + filename: (req, file, cb) => { + const mime = file.mimetype; + const extA = mime.split("/"); + const ext = extA[extA.length - 1]; + if (req.body.chat_id) { + cb(null, `chat_${req.body.chat_id}_picture.${ext}`); + } + else { + cb(null, `${req.body.contact_id}_profile_picture.${ext}`); + } + } +}); +var avatarUpload = multer({ storage: avatarStorage }); +exports.avatarUpload = avatarUpload; +const uploadFile = (req, res) => __awaiter(void 0, void 0, void 0, function* () { + const { contact_id, chat_id } = req.body; + const { file } = req; + const photo_url = config.node_http_protocol + + '://' + + process.env.NODE_IP + + '/static/uploads/' + + file.filename; + if (contact_id) { + const contact = yield models_1.models.Contact.findOne({ where: { id: contact_id } }); + if (contact) + contact.update({ photoUrl: photo_url }); + } + if (chat_id) { + const chat = yield models_1.models.Chat.findOne({ where: { id: chat_id } }); + if (chat) + chat.update({ photoUrl: photo_url }); + } + res.status(200); + res.json({ + success: true, + contact_id: parseInt(contact_id || 0), + chat_id: parseInt(chat_id || 0), + photo_url + }); + res.end(); +}); +exports.uploadFile = uploadFile; +//# sourceMappingURL=uploads.js.map \ No newline at end of file diff --git a/dist/api/controllers/uploads.js.map b/dist/api/controllers/uploads.js.map new file mode 100644 index 0000000..086567c --- /dev/null +++ b/dist/api/controllers/uploads.js.map @@ -0,0 +1 @@ +{"version":3,"file":"uploads.js","sourceRoot":"","sources":["../../../api/controllers/uploads.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgC;AAEhC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC;AAElE,qBAAqB;AACrB,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC9B,IAAI,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC;IACrC,WAAW,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAC7B,IAAI,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,uBAAuB,CAAC,CAAA;IACzC,CAAC;IACD,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA;QAC/B,IAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAC;YAClB,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,YAAY,GAAG,EAAE,CAAC,CAAA;SACpD;aAAM;YACL,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,oBAAoB,GAAG,EAAE,CAAC,CAAA;SAC1D;IACH,CAAC;CACF,CAAC,CAAA;AACF,IAAI,YAAY,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;AAkCnD,oCAAY;AAhCd,MAAM,UAAU,GAAG,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;IACpC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;IAEpB,MAAM,SAAS,GACb,MAAM,CAAC,kBAAkB;QACzB,KAAK;QACL,OAAO,CAAC,GAAG,CAAC,OAAO;QACnB,kBAAkB;QAClB,IAAI,CAAC,QAAQ,CAAA;IAEf,IAAG,UAAU,EAAC;QACZ,MAAM,OAAO,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;QAC3E,IAAG,OAAO;YAAE,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;KACpD;IAED,IAAG,OAAO,EAAC;QACT,MAAM,IAAI,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QAClE,IAAG,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;KAC9C;IAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACf,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAE,CAAC,CAAC;QACnC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAE,CAAC,CAAC;QAC7B,SAAS;KACV,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC,CAAA,CAAA;AAIA,gCAAU"} \ No newline at end of file diff --git a/dist/api/crypto/rsa.js b/dist/api/crypto/rsa.js new file mode 100644 index 0000000..14a90f2 --- /dev/null +++ b/dist/api/crypto/rsa.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const crypto = require("crypto"); +function encrypt(key, txt) { + try { + const pubc = cert.pub(key); + const buf = crypto.publicEncrypt({ + key: pubc, + padding: crypto.constants.RSA_PKCS1_PADDING, + }, Buffer.from(txt, 'utf-8')); + return buf.toString('base64'); + } + catch (e) { + return ''; + } +} +exports.encrypt = encrypt; +function decrypt(privateKey, enc) { + try { + const privc = cert.priv(privateKey); + const buf = crypto.privateDecrypt({ + key: privc, + padding: crypto.constants.RSA_PKCS1_PADDING, + }, Buffer.from(enc, 'base64')); + return buf.toString('utf-8'); + } + catch (e) { + return ''; + } +} +exports.decrypt = decrypt; +function testRSA() { + crypto.generateKeyPair('rsa', { + modulusLength: 2048 + }, (err, publicKey, priv) => { + const pubPEM = publicKey.export({ + type: 'pkcs1', format: 'pem' + }); + const pub = cert.unpub(pubPEM); + const msg = 'hi'; + const enc = encrypt(pub, msg); + const dec = decrypt(priv, enc); + console.log("FINAL:", dec); + }); +} +exports.testRSA = testRSA; +const cert = { + unpub: function (key) { + let s = key; + s = s.replace('-----BEGIN RSA PUBLIC KEY-----', ''); + s = s.replace('-----END RSA PUBLIC KEY-----', ''); + return s.replace(/[\r\n]+/gm, ''); + }, + pub: function (key) { + return '-----BEGIN RSA PUBLIC KEY-----\n' + + key + '\n' + + '-----END RSA PUBLIC KEY-----'; + }, + priv: function (key) { + return '-----BEGIN RSA PRIVATE KEY-----\n' + + key + '\n' + + '-----END RSA PRIVATE KEY-----'; + } +}; +//# sourceMappingURL=rsa.js.map \ No newline at end of file diff --git a/dist/api/crypto/rsa.js.map b/dist/api/crypto/rsa.js.map new file mode 100644 index 0000000..ac20b5a --- /dev/null +++ b/dist/api/crypto/rsa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rsa.js","sourceRoot":"","sources":["../../../api/crypto/rsa.ts"],"names":[],"mappings":";;AAAA,iCAAiC;AAEjC,SAAgB,OAAO,CAAC,GAAG,EAAE,GAAG;IAC9B,IAAG;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC;YAC/B,GAAG,EAAC,IAAI;YACR,OAAO,EAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB;SAC3C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAC,OAAO,CAAC,CAAC,CAAA;QAC5B,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;KAC9B;IAAC,OAAM,CAAC,EAAE;QACT,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAXD,0BAWC;AAED,SAAgB,OAAO,CAAC,UAAU,EAAE,GAAG;IACrC,IAAG;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,cAAc,CAAC;YAChC,GAAG,EAAC,KAAK;YACT,OAAO,EAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB;SAC3C,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAC,QAAQ,CAAC,CAAC,CAAA;QAC7B,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;KAC7B;IAAC,OAAM,CAAC,EAAE;QACT,OAAO,EAAE,CAAA;KACV;AACH,CAAC;AAXD,0BAWC;AAED,SAAgB,OAAO;IACrB,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE;QAC5B,aAAa,EAAE,IAAI;KACpB,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAC,EAAE;QACzB,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAC9B,IAAI,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK;SAC1B,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAA;QAChB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAE7B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAC,GAAG,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC;AAfD,0BAeC;AAED,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,UAAS,GAAG;QACjB,IAAI,CAAC,GAAG,GAAG,CAAA;QACX,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gCAAgC,EAAC,EAAE,CAAC,CAAA;QAClD,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,8BAA8B,EAAC,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,GAAG,EAAC,UAAS,GAAG;QACd,OAAO,kCAAkC;YACvC,GAAG,GAAG,IAAI;YACV,8BAA8B,CAAA;IAClC,CAAC;IACD,IAAI,EAAC,UAAS,GAAG;QACf,OAAO,mCAAmC;YACxC,GAAG,GAAG,IAAI;YACV,+BAA+B,CAAA;IACnC,CAAC;CACF,CAAA"} \ No newline at end of file diff --git a/dist/api/grpc/index.js b/dist/api/grpc/index.js new file mode 100644 index 0000000..914e58c --- /dev/null +++ b/dist/api/grpc/index.js @@ -0,0 +1,150 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("../models"); +const socket = require("../utils/socket"); +const hub_1 = require("../hub"); +const jsonUtils = require("../utils/json"); +const decodeUtils = require("../utils/decode"); +const lightning_1 = require("../utils/lightning"); +const constants = require(__dirname + '/../../config/constants.json'); +function parseKeysendInvoice(i, actions) { + const recs = i.htlcs && i.htlcs[0] && i.htlcs[0].custom_records; + const buf = recs && recs[lightning_1.SPHINX_CUSTOM_RECORD_KEY]; + const data = buf && buf.toString(); + const value = i && i.value && parseInt(i.value); + if (!data) + return; + let payload; + if (data[0] === '{') { + try { + payload = JSON.parse(data); + } + catch (e) { } + } + else { + const threads = weave(data); + if (threads) + payload = JSON.parse(threads); + } + if (payload) { + const dat = payload.content || payload; + if (value && dat && dat.message) { + dat.message.amount = value; + } + if (actions[payload.type]) { + actions[payload.type](payload); + } + else { + console.log('Incorrect payload type:', payload.type); + } + } +} +const chunks = {}; +function weave(p) { + const pa = p.split('_'); + if (pa.length < 4) + return; + const ts = pa[0]; + const i = pa[1]; + const n = pa[2]; + const m = pa.filter((u, i) => i > 2).join('_'); + chunks[ts] = chunks[ts] ? [...chunks[ts], { i, n, m }] : [{ i, n, m }]; + if (chunks[ts].length === parseInt(n)) { + // got em all! + const all = chunks[ts]; + let payload = ''; + all.slice().sort((a, b) => a.i - b.i).forEach(obj => { + payload += obj.m; + }); + delete chunks[ts]; + return payload; + } +} +function subscribeInvoices(actions) { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const lightning = yield lightning_1.loadLightning(); + var call = lightning.subscribeInvoices(); + call.on('data', function (response) { + return __awaiter(this, void 0, void 0, function* () { + // console.log('subscribed invoices', { response }) + if (response['state'] !== 'SETTLED') { + return; + } + // console.log("IS KEYSEND", response.is_keysend) + if (response.is_keysend) { + parseKeysendInvoice(response, actions); + } + else { + const invoice = yield models_1.models.Message.findOne({ where: { type: constants.message_types.invoice, payment_request: response['payment_request'] } }); + if (invoice == null) { + // console.log("ERROR: Invoice " + response['payment_request'] + " not found"); + socket.sendJson({ + type: 'invoice_payment', + response: { invoice: response['payment_request'] } + }); + return; + } + models_1.models.Message.update({ status: constants.statuses.confirmed }, { where: { id: invoice.id } }); + let decodedPaymentRequest = decodeUtils.decode(response['payment_request']); + var paymentHash = ""; + for (var i = 0; i < decodedPaymentRequest["data"]["tags"].length; i++) { + let tag = decodedPaymentRequest["data"]["tags"][i]; + if (tag['description'] == 'payment_hash') { + paymentHash = tag['value']; + break; + } + } + let settleDate = parseInt(response['settle_date'] + '000'); + const chat = yield models_1.models.Chat.findOne({ where: { id: invoice.chatId } }); + const contactIds = JSON.parse(chat.contactIds); + const senderId = contactIds.find(id => id != invoice.sender); + const message = yield models_1.models.Message.create({ + chatId: invoice.chatId, + type: constants.message_types.payment, + sender: senderId, + amount: response['amt_paid_sat'], + amountMsat: response['amt_paid_msat'], + paymentHash: paymentHash, + date: new Date(settleDate), + messageContent: response['memo'], + status: constants.statuses.confirmed, + createdAt: new Date(settleDate), + updatedAt: new Date(settleDate) + }); + socket.sendJson({ + type: 'payment', + response: jsonUtils.messageToJson(message, chat) + }); + const sender = yield models_1.models.Contact.findOne({ where: { id: senderId } }); + hub_1.sendNotification(chat, sender.alias, 'message'); + } + }); + }); + call.on('status', function (status) { + console.log("Status", status); + resolve(status); + }); + call.on('error', function (err) { + // console.log(err) + reject(err); + }); + call.on('end', function () { + console.log("Closed stream"); + // The server has closed the stream. + }); + setTimeout(() => { + resolve(null); + }, 100); + })); +} +exports.subscribeInvoices = subscribeInvoices; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/api/grpc/index.js.map b/dist/api/grpc/index.js.map new file mode 100644 index 0000000..e40dd03 --- /dev/null +++ b/dist/api/grpc/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/grpc/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAgC;AAChC,0CAAyC;AACzC,gCAAyC;AACzC,2CAA0C;AAC1C,+CAA8C;AAC9C,kDAA0E;AAE1E,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,8BAA8B,CAAC,CAAC;AAEtE,SAAS,mBAAmB,CAAC,CAAC,EAAE,OAAO;IACtC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;IAC/D,MAAM,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,oCAAwB,CAAC,CAAA;IAClD,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC/C,IAAG,CAAC,IAAI;QAAE,OAAM;IAEhB,IAAI,OAAO,CAAA;IACX,IAAG,IAAI,CAAC,CAAC,CAAC,KAAG,GAAG,EAAC;QAChB,IAAI;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SAC1B;QAAC,OAAM,CAAC,EAAC,GAAE;KACZ;SAAM;QACN,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAG,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;KACzC;IACD,IAAG,OAAO,EAAC;QACV,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAA;QACtC,IAAG,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAA;SAC1B;QACD,IAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAA;SAC9B;aAAM;YACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;SACpD;KACD;AACF,CAAC;AAED,MAAM,MAAM,GAAG,EAAE,CAAA;AACjB,SAAS,KAAK,CAAC,CAAC;IACf,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,IAAG,EAAE,CAAC,MAAM,GAAC,CAAC;QAAE,OAAM;IACtB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IACf,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IACf,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,GAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAA;IAC9D,IAAG,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAG,QAAQ,CAAC,CAAC,CAAC,EAAC;QAClC,cAAc;QACd,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;QACtB,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA,EAAE;YAC7C,OAAO,IAAI,GAAG,CAAC,CAAC,CAAA;QACjB,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,OAAO,CAAA;KACd;AACF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAO;IACjC,OAAO,IAAI,OAAO,CAAC,CAAM,OAAO,EAAC,MAAM,EAAC,EAAE;QACzC,MAAM,SAAS,GAAG,MAAM,yBAAa,EAAE,CAAA;QAEvC,IAAI,IAAI,GAAG,SAAS,CAAC,iBAAiB,EAAE,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAe,QAAQ;;gBACtC,mDAAmD;gBACnD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE;oBACpC,OAAM;iBACN;gBACD,iDAAiD;gBACjD,IAAG,QAAQ,CAAC,UAAU,EAAE;oBACvB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;iBACtC;qBAAM;oBACN,MAAM,OAAO,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAA;oBAChJ,IAAI,OAAO,IAAI,IAAI,EAAE;wBACpB,+EAA+E;wBAC/E,MAAM,CAAC,QAAQ,CAAC;4BACf,IAAI,EAAE,iBAAiB;4BACvB,QAAQ,EAAE,EAAC,OAAO,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAC;yBAChD,CAAC,CAAA;wBACF,OAAM;qBACN;oBACD,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;oBAE9F,IAAI,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;oBAE5E,IAAI,WAAW,GAAG,EAAE,CAAC;oBACrB,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClE,IAAI,GAAG,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,cAAc,EAAE;4BACzC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC3B,MAAM;yBACN;qBACD;oBAED,IAAI,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC;oBAE3D,MAAM,IAAI,GAAG,MAAM,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;oBACzE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;oBAC9C,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;oBAE5D,MAAM,OAAO,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC;wBAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,OAAO;wBACrC,MAAM,EAAE,QAAQ;wBAChB,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC;wBAChC,UAAU,EAAE,QAAQ,CAAC,eAAe,CAAC;wBACrC,WAAW,EAAE,WAAW;wBACxB,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC;wBAC1B,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC;wBAChC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,SAAS;wBACpC,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC;wBAC/B,SAAS,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC;qBAC/B,CAAC,CAAA;oBACF,MAAM,CAAC,QAAQ,CAAC;wBACf,IAAI,EAAE,SAAS;wBACf,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;qBAChD,CAAC,CAAA;oBAEF,MAAM,MAAM,GAAG,MAAM,eAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;oBACxE,sBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;iBAC/C;YACF,CAAC;SAAA,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAS,MAAM;YAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,CAAA;QAChB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,UAAS,GAAG;YAC5B,mBAAmB;YACnB,MAAM,CAAC,GAAG,CAAC,CAAA;QACZ,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,oCAAoC;QACrC,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,GAAE,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,CAAA;QACd,CAAC,EAAC,GAAG,CAAC,CAAA;IACP,CAAC,CAAA,CAAC,CAAA;AACH,CAAC;AAGA,8CAAiB"} \ No newline at end of file diff --git a/dist/api/helpers.js b/dist/api/helpers.js new file mode 100644 index 0000000..cb6d681 --- /dev/null +++ b/dist/api/helpers.js @@ -0,0 +1,240 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("./models"); +const md5 = require("md5"); +const lightning_1 = require("./utils/lightning"); +const msg_1 = require("./utils/msg"); +const constants = require('../config/constants.json'); +const findOrCreateChat = (params) => __awaiter(void 0, void 0, void 0, function* () { + const { chat_id, owner_id, recipient_id } = params; + let chat; + let date = new Date(); + date.setMilliseconds(0); + if (chat_id) { + chat = yield models_1.models.Chat.findOne({ where: { id: chat_id } }); + // console.log('findOrCreateChat: chat_id exists') + } + else { + console.log("chat does not exists, create new"); + const owner = yield models_1.models.Contact.findOne({ where: { id: owner_id } }); + const recipient = yield models_1.models.Contact.findOne({ where: { id: recipient_id } }); + const uuid = md5([owner.publicKey, recipient.publicKey].sort().join("-")); + // find by uuid + chat = yield models_1.models.Chat.findOne({ where: { uuid } }); + if (!chat) { // no chat! create new + chat = yield models_1.models.Chat.create({ + uuid: uuid, + contactIds: JSON.stringify([parseInt(owner_id), parseInt(recipient_id)]), + createdAt: date, + updatedAt: date, + type: constants.chat_types.conversation + }); + } + } + return chat; +}); +exports.findOrCreateChat = findOrCreateChat; +const sendContactKeys = (args) => __awaiter(void 0, void 0, void 0, function* () { + const { type, contactIds, contactPubKey, sender, success, failure } = args; + const msg = newkeyexchangemsg(type, sender); + let yes = null; + let no = null; + let cids = contactIds; + if (!contactIds) + cids = [null]; // nully + yield asyncForEach(cids, (contactId) => __awaiter(void 0, void 0, void 0, function* () { + let destination_key; + if (!contactId) { // nully + destination_key = contactPubKey; + } + else { + if (contactId == sender.id) { + return; + } + const contact = yield models_1.models.Contact.findOne({ where: { id: contactId } }); + destination_key = contact.publicKey; + } + performKeysendMessage({ + destination_key, + amount: 1, + msg: JSON.stringify(msg), + success: (data) => { + yes = data; + }, + failure: (error) => { + no = error; + } + }); + })); + if (no && failure) { + failure(no); + } + if (!no && yes && success) { + success(yes); + } +}); +exports.sendContactKeys = sendContactKeys; +const sendMessage = (params) => __awaiter(void 0, void 0, void 0, function* () { + const { type, chat, message, sender, amount, success, failure } = params; + const m = newmsg(type, chat, sender, message); + const contactIds = typeof chat.contactIds === 'string' ? JSON.parse(chat.contactIds) : chat.contactIds; + let yes = null; + let no = null; + console.log('all contactIds', contactIds); + yield asyncForEach(contactIds, (contactId) => __awaiter(void 0, void 0, void 0, function* () { + if (contactId == sender.id) { + return; + } + const contact = yield models_1.models.Contact.findOne({ where: { id: contactId } }); + const destkey = contact.publicKey; + const finalMsg = yield msg_1.personalizeMessage(m, contactId, destkey); + const opts = { + dest: destkey, + data: JSON.stringify(finalMsg), + amt: amount || 1, + }; + try { + const r = yield lightning_1.keysendMessage(opts); + yes = r; + } + catch (e) { + console.log("KEYSEND ERROR", e); + no = e; + } + })); + if (yes) { + if (success) + success(yes); + } + else { + if (failure) + failure(no); + } +}); +exports.sendMessage = sendMessage; +const performKeysendMessage = ({ destination_key, amount, msg, success, failure }) => __awaiter(void 0, void 0, void 0, function* () { + const opts = { + dest: destination_key, + data: msg || JSON.stringify({}), + amt: amount || 1 + }; + try { + const r = yield lightning_1.keysendMessage(opts); + console.log("MESSAGE SENT outside SW!", r); + if (success) + success(r); + } + catch (e) { + console.log("MESSAGE ERROR", e); + if (failure) + failure(e); + } +}); +exports.performKeysendMessage = performKeysendMessage; +function findOrCreateContactByPubkey(senderPubKey) { + return __awaiter(this, void 0, void 0, function* () { + let sender = yield models_1.models.Contact.findOne({ where: { publicKey: senderPubKey } }); + if (!sender) { + sender = yield models_1.models.Contact.create({ + publicKey: senderPubKey, + alias: "Unknown", + status: 1 + }); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + sendContactKeys({ + contactIds: [sender.id], + sender: owner, + type: constants.message_types.contact_key, + }); + } + return sender; + }); +} +exports.findOrCreateContactByPubkey = findOrCreateContactByPubkey; +function findOrCreateChatByUUID(chat_uuid, contactIds) { + return __awaiter(this, void 0, void 0, function* () { + let chat = yield models_1.models.Chat.findOne({ where: { uuid: chat_uuid } }); + if (!chat) { + var date = new Date(); + date.setMilliseconds(0); + chat = yield models_1.models.Chat.create({ + uuid: chat_uuid, + contactIds: JSON.stringify(contactIds || []), + createdAt: date, + updatedAt: date, + type: 0 // conversation + }); + } + return chat; + }); +} +exports.findOrCreateChatByUUID = findOrCreateChatByUUID; +function sleep(ms) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise(resolve => setTimeout(resolve, ms)); + }); +} +exports.sleep = sleep; +function parseReceiveParams(payload) { + return __awaiter(this, void 0, void 0, function* () { + const dat = payload.content || payload; + const sender_pub_key = dat.sender.pub_key; + const chat_uuid = dat.chat.uuid; + const chat_type = dat.chat.type; + const chat_members = dat.chat.members || {}; + const chat_name = dat.chat.name; + const amount = dat.message.amount; + const content = dat.message.content; + const mediaToken = dat.message.mediaToken; + const msg_id = dat.message.id || 0; + const mediaKey = dat.message.mediaKey; + const mediaType = dat.message.mediaType; + const isGroup = chat_type && chat_type == constants.chat_types.group; + let sender; + let chat; + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + if (isGroup) { + sender = yield models_1.models.Contact.findOne({ where: { publicKey: sender_pub_key } }); + chat = yield models_1.models.Chat.findOne({ where: { uuid: chat_uuid } }); + } + else { + sender = yield findOrCreateContactByPubkey(sender_pub_key); + chat = yield findOrCreateChatByUUID(chat_uuid, [parseInt(owner.id), parseInt(sender.id)]); + } + return { owner, sender, chat, sender_pub_key, chat_uuid, amount, content, mediaToken, mediaKey, mediaType, chat_type, msg_id, chat_members, chat_name }; + }); +} +exports.parseReceiveParams = parseReceiveParams; +function asyncForEach(array, callback) { + return __awaiter(this, void 0, void 0, function* () { + for (let index = 0; index < array.length; index++) { + yield callback(array[index], index, array); + } + }); +} +function newmsg(type, chat, sender, message) { + return { + type: type, + chat: Object.assign(Object.assign(Object.assign({ uuid: chat.uuid }, chat.name && { name: chat.name }), chat.type && { type: chat.type }), chat.members && { members: chat.members }), + message: message, + sender: { + pub_key: sender.publicKey, + } + }; +} +function newkeyexchangemsg(type, sender) { + return { + type: type, + sender: Object.assign({ pub_key: sender.publicKey, contact_key: sender.contactKey }, sender.alias && { alias: sender.alias }) + }; +} +//# sourceMappingURL=helpers.js.map \ No newline at end of file diff --git a/dist/api/helpers.js.map b/dist/api/helpers.js.map new file mode 100644 index 0000000..994927d --- /dev/null +++ b/dist/api/helpers.js.map @@ -0,0 +1 @@ +{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../api/helpers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/hub.js b/dist/api/hub.js new file mode 100644 index 0000000..f9071b1 --- /dev/null +++ b/dist/api/hub.js @@ -0,0 +1,201 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const models_1 = require("./models"); +const fetch = require("node-fetch"); +const sequelize_1 = require("sequelize"); +const socket = require("./utils/socket"); +const jsonUtils = require("./utils/json"); +const helpers = require("./helpers"); +const nodeinfo_1 = require("./utils/nodeinfo"); +const constants = require(__dirname + '/../config/constants.json'); +const env = process.env.NODE_ENV || 'development'; +const config = require('../config/app.json')[env]; +const checkInviteHub = (params = {}) => __awaiter(void 0, void 0, void 0, function* () { + if (env != "production") { + return; + } + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + //console.log('[hub] checking invites ping') + const inviteStrings = yield models_1.models.Invite.findAll({ where: { status: { [sequelize_1.Op.notIn]: [constants.invite_statuses.complete, constants.invite_statuses.expired] } } }).map(invite => invite.inviteString); + fetch(config.hub_api_url + '/invites/check', { + method: 'POST', + body: JSON.stringify({ invite_strings: inviteStrings }), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + json.object.invites.map((object) => __awaiter(void 0, void 0, void 0, function* () { + const invite = object.invite; + const pubkey = object.pubkey; + const price = object.price; + const dbInvite = yield models_1.models.Invite.findOne({ where: { inviteString: invite.pin } }); + const contact = yield models_1.models.Contact.findOne({ where: { id: dbInvite.contactId } }); + if (dbInvite.status != invite.invite_status) { + dbInvite.update({ status: invite.invite_status, price: price }); + socket.sendJson({ + type: 'invite', + response: jsonUtils.inviteToJson(dbInvite) + }); + if (dbInvite.status == constants.invite_statuses.ready && contact) { + sendNotification(-1, contact.alias, 'invite'); + } + } + if (pubkey && dbInvite.status == constants.invite_statuses.complete && contact) { + contact.update({ publicKey: pubkey, status: constants.contact_statuses.confirmed }); + var contactJson = jsonUtils.contactToJson(contact); + contactJson.invite = jsonUtils.inviteToJson(dbInvite); + socket.sendJson({ + type: 'contact', + response: contactJson + }); + helpers.sendContactKeys({ + contactIds: [contact.id], + sender: owner, + type: constants.message_types.contact_key, + }); + } + })); + } + }) + .catch(error => { + console.log('[hub error]', error); + }); +}); +const pingHub = (params = {}) => __awaiter(void 0, void 0, void 0, function* () { + if (env != "production") { + return; + } + const node = yield nodeinfo_1.nodeinfo(); + sendHubCall(Object.assign(Object.assign({}, params), { node })); +}); +const sendHubCall = (params) => { + // console.log('[hub] sending ping') + fetch(config.hub_api_url + '/ping', { + method: 'POST', + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + // ? + }) + .catch(error => { + console.log('[hub error]', error); + }); +}; +exports.sendHubCall = sendHubCall; +const pingHubInterval = (ms) => { + setInterval(pingHub, ms); +}; +exports.pingHubInterval = pingHubInterval; +const checkInvitesHubInterval = (ms) => { + setInterval(checkInviteHub, ms); +}; +exports.checkInvitesHubInterval = checkInvitesHubInterval; +const finishInviteInHub = (params, onSuccess, onFailure) => { + fetch(config.hub_api_url + '/invites/finish', { + method: 'POST', + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + console.log('[hub] finished invite to hub'); + onSuccess(json); + } + else { + console.log('[hub] fail to finish invite in hub'); + onFailure(json); + } + }); +}; +exports.finishInviteInHub = finishInviteInHub; +const payInviteInHub = (invite_string, params, onSuccess, onFailure) => { + fetch(config.hub_api_url + '/invites/' + invite_string + '/pay', { + method: 'POST', + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + console.log('[hub] finished pay to hub'); + onSuccess(json); + } + else { + console.log('[hub] fail to pay invite in hub'); + onFailure(json); + } + }); +}; +exports.payInviteInHub = payInviteInHub; +const createInviteInHub = (params, onSuccess, onFailure) => { + fetch(config.hub_api_url + '/invites', { + method: 'POST', + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => { + if (json.object) { + console.log('[hub] sent invite to be created to hub'); + onSuccess(json); + } + else { + console.log('[hub] fail to create invite in hub'); + onFailure(json); + } + }); +}; +exports.createInviteInHub = createInviteInHub; +const sendNotification = (chat, name, type) => __awaiter(void 0, void 0, void 0, function* () { + let message = `You have a new message from ${name}`; + if (type === 'invite') { + message = `Your invite to ${name} is ready`; + } + if (type === 'group') { + message = `You have been added to group ${name}`; + } + if (type === 'message' && chat.type == constants.chat_types.group && chat.name && chat.name.length) { + message += ` on ${chat.name}`; + } + console.log('[send notification]', { chat_id: chat.id, message }); + if (chat.isMuted) { + console.log('[send notification] skipping. chat is muted.'); + return; + } + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + if (!owner.deviceId) { + console.log('[send notification] skipping. owner.deviceId not set.'); + return; + } + const unseenMessages = yield models_1.models.Message.findAll({ where: { sender: { [sequelize_1.Op.ne]: owner.id }, seen: false } }); + const params = { + device_id: owner.deviceId, + notification: { + chat_id: chat.id, + message, + badge: unseenMessages.length + } + }; + fetch("http://hub.sphinx.chat/api/v1/nodes/notify", { + method: 'POST', + body: JSON.stringify(params), + headers: { 'Content-Type': 'application/json' } + }) + .then(res => res.json()) + .then(json => console.log('[hub notification]', json)); +}); +exports.sendNotification = sendNotification; +//# sourceMappingURL=hub.js.map \ No newline at end of file diff --git a/dist/api/hub.js.map b/dist/api/hub.js.map new file mode 100644 index 0000000..1cabda9 --- /dev/null +++ b/dist/api/hub.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hub.js","sourceRoot":"","sources":["../../api/hub.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/models/index.js b/dist/api/models/index.js new file mode 100644 index 0000000..8e1b97c --- /dev/null +++ b/dist/api/models/index.js @@ -0,0 +1,10 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sequelize_typescript_1 = require("sequelize-typescript"); +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/config.json')[env]; +const sequelize = new sequelize_typescript_1.Sequelize(Object.assign(Object.assign({}, config), { logging: process.env.SQL_LOG === 'true' ? console.log : false, models: [__dirname + '/ts'] })); +exports.sequelize = sequelize; +const models = sequelize.models; +exports.models = models; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/api/models/index.js.map b/dist/api/models/index.js.map new file mode 100644 index 0000000..be95817 --- /dev/null +++ b/dist/api/models/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../api/models/index.ts"],"names":[],"mappings":";;AAAA,+DAA+C;AAE/C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,2BAA2B,CAAC,CAAC,GAAG,CAAC,CAAC;AAErE,MAAM,SAAS,GAAG,IAAI,gCAAS,iCAC1B,MAAM,KACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAC3D,MAAM,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,IAC3B,CAAA;AAIA,8BAAS;AAHX,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;AAI7B,wBAAM"} \ No newline at end of file diff --git a/dist/api/models/ts/chat.js b/dist/api/models/ts/chat.js new file mode 100644 index 0000000..b61b822 --- /dev/null +++ b/dist/api/models/ts/chat.js @@ -0,0 +1,72 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const sequelize_typescript_1 = require("sequelize-typescript"); +let Chat = class Chat extends sequelize_typescript_1.Model { +}; +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }), + __metadata("design:type", Number) +], Chat.prototype, "id", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Chat.prototype, "uuid", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Chat.prototype, "name", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Chat.prototype, "photoUrl", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Chat.prototype, "type", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Chat.prototype, "status", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Chat.prototype, "contactIds", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Boolean) +], Chat.prototype, "isMuted", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Chat.prototype, "createdAt", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Chat.prototype, "updatedAt", void 0); +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BOOLEAN, + defaultValue: false, + allowNull: false + }), + __metadata("design:type", Boolean) +], Chat.prototype, "deleted", void 0); +Chat = __decorate([ + sequelize_typescript_1.Table({ tableName: 'sphinx_chats', underscored: true }) +], Chat); +exports.default = Chat; +//# sourceMappingURL=chat.js.map \ No newline at end of file diff --git a/dist/api/models/ts/chat.js.map b/dist/api/models/ts/chat.js.map new file mode 100644 index 0000000..50b78b3 --- /dev/null +++ b/dist/api/models/ts/chat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../api/models/ts/chat.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAsE;AAGtE,IAAqB,IAAI,GAAzB,MAAqB,IAAK,SAAQ,4BAAW;CA4C5C,CAAA;AApCC;IANC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;KACpB,CAAC;;gCACQ;AAGV;IADC,6BAAM;;kCACK;AAGZ;IADC,6BAAM;;kCACK;AAGZ;IADC,6BAAM;;sCACS;AAGhB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;kCACZ;AAGZ;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;oCACV;AAGd;IADC,6BAAM;;wCACW;AAGlB;IADC,6BAAM;;qCACS;AAGhB;IADC,6BAAM;8BACI,IAAI;uCAAA;AAGf;IADC,6BAAM;8BACI,IAAI;uCAAA;AAOf;IALC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;qCACc;AA1CG,IAAI;IADxB,4BAAK,CAAC,EAAC,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;GACjC,IAAI,CA4CxB;kBA5CoB,IAAI"} \ No newline at end of file diff --git a/dist/api/models/ts/contact.js b/dist/api/models/ts/contact.js new file mode 100644 index 0000000..8b26ebf --- /dev/null +++ b/dist/api/models/ts/contact.js @@ -0,0 +1,84 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const sequelize_typescript_1 = require("sequelize-typescript"); +let Contact = class Contact extends sequelize_typescript_1.Model { +}; +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }), + __metadata("design:type", Number) +], Contact.prototype, "id", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Contact.prototype, "publicKey", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Contact.prototype, "nodeAlias", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Contact.prototype, "alias", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Contact.prototype, "photoUrl", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Boolean) +], Contact.prototype, "isOwner", void 0); +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BOOLEAN, + defaultValue: false, + allowNull: false + }), + __metadata("design:type", Boolean) +], Contact.prototype, "deleted", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Contact.prototype, "authToken", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Contact.prototype, "remoteId", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Contact.prototype, "status", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.TEXT), + __metadata("design:type", String) +], Contact.prototype, "contactKey", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Contact.prototype, "deviceId", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Contact.prototype, "createdAt", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Contact.prototype, "updatedAt", void 0); +Contact = __decorate([ + sequelize_typescript_1.Table({ tableName: 'sphinx_contacts', underscored: true }) +], Contact); +exports.default = Contact; +//# sourceMappingURL=contact.js.map \ No newline at end of file diff --git a/dist/api/models/ts/contact.js.map b/dist/api/models/ts/contact.js.map new file mode 100644 index 0000000..847924f --- /dev/null +++ b/dist/api/models/ts/contact.js.map @@ -0,0 +1 @@ +{"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../../api/models/ts/contact.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAsE;AAGtE,IAAqB,OAAO,GAA5B,MAAqB,OAAQ,SAAQ,4BAAc;CAqDlD,CAAA;AA7CC;IANC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;KACpB,CAAC;;mCACQ;AAGV;IADC,6BAAM;;0CACU;AAGjB;IADC,6BAAM;;0CACU;AAGjB;IADC,6BAAM;;sCACM;AAGb;IADC,6BAAM;;yCACS;AAGhB;IADC,6BAAM;;wCACS;AAOhB;IALC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;wCACc;AAGhB;IADC,6BAAM;;0CACU;AAGjB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;yCACR;AAGhB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;uCACV;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,IAAI,CAAC;;2CACJ;AAGlB;IADC,6BAAM;;yCACS;AAGhB;IADC,6BAAM;8BACI,IAAI;0CAAA;AAGf;IADC,6BAAM;8BACI,IAAI;0CAAA;AAnDI,OAAO;IAD3B,4BAAK,CAAC,EAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;GACpC,OAAO,CAqD3B;kBArDoB,OAAO"} \ No newline at end of file diff --git a/dist/api/models/ts/invite.js b/dist/api/models/ts/invite.js new file mode 100644 index 0000000..ccc97d1 --- /dev/null +++ b/dist/api/models/ts/invite.js @@ -0,0 +1,56 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const sequelize_typescript_1 = require("sequelize-typescript"); +let Invite = class Invite extends sequelize_typescript_1.Model { +}; +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }), + __metadata("design:type", Number) +], Invite.prototype, "id", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Invite.prototype, "inviteString", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Invite.prototype, "welcomeMessage", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Invite.prototype, "contactId", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Invite.prototype, "status", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.DECIMAL(10, 2)), + __metadata("design:type", Number) +], Invite.prototype, "price", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Invite.prototype, "createdAt", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Invite.prototype, "updatedAt", void 0); +Invite = __decorate([ + sequelize_typescript_1.Table({ tableName: 'sphinx_invites', underscored: true }) +], Invite); +exports.default = Invite; +//# sourceMappingURL=invite.js.map \ No newline at end of file diff --git a/dist/api/models/ts/invite.js.map b/dist/api/models/ts/invite.js.map new file mode 100644 index 0000000..b7ecb41 --- /dev/null +++ b/dist/api/models/ts/invite.js.map @@ -0,0 +1 @@ +{"version":3,"file":"invite.js","sourceRoot":"","sources":["../../../../api/models/ts/invite.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAsE;AAGtE,IAAqB,MAAM,GAA3B,MAAqB,MAAO,SAAQ,4BAAa;CA+BhD,CAAA;AAvBC;IANC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;KACpB,CAAC;;kCACQ;AAGV;IADC,6BAAM;;4CACa;AAGpB;IADC,6BAAM;;8CACe;AAGtB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;yCACP;AAGjB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;sCACV;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;;qCACnB;AAGb;IADC,6BAAM;8BACI,IAAI;yCAAA;AAGf;IADC,6BAAM;8BACI,IAAI;yCAAA;AA7BI,MAAM;IAD1B,4BAAK,CAAC,EAAC,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;GACnC,MAAM,CA+B1B;kBA/BoB,MAAM"} \ No newline at end of file diff --git a/dist/api/models/ts/mediaKey.js b/dist/api/models/ts/mediaKey.js new file mode 100644 index 0000000..eb9366c --- /dev/null +++ b/dist/api/models/ts/mediaKey.js @@ -0,0 +1,59 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const sequelize_typescript_1 = require("sequelize-typescript"); +/* +Used for media uploads. When you upload a file, +also upload the symetric key encrypted for each chat member. +When they buy the file, they can retrieve the key from here. + +"received" media keys are not stored here, only in Message +*/ +let MediaKey = class MediaKey extends sequelize_typescript_1.Model { +}; +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }), + __metadata("design:type", Number) +], MediaKey.prototype, "id", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], MediaKey.prototype, "muid", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], MediaKey.prototype, "chatId", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], MediaKey.prototype, "receiver", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], MediaKey.prototype, "key", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], MediaKey.prototype, "messageId", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], MediaKey.prototype, "createdAt", void 0); +MediaKey = __decorate([ + sequelize_typescript_1.Table({ tableName: 'sphinx_media_keys', underscored: true }) +], MediaKey); +exports.default = MediaKey; +//# sourceMappingURL=mediaKey.js.map \ No newline at end of file diff --git a/dist/api/models/ts/mediaKey.js.map b/dist/api/models/ts/mediaKey.js.map new file mode 100644 index 0000000..e2f8bf8 --- /dev/null +++ b/dist/api/models/ts/mediaKey.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mediaKey.js","sourceRoot":"","sources":["../../../../api/models/ts/mediaKey.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAsE;AAEtE;;;;;;EAME;AAGF,IAAqB,QAAQ,GAA7B,MAAqB,QAAS,SAAQ,4BAAe;CA2BpD,CAAA;AAnBC;IANC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;KACpB,CAAC;;oCACQ;AAGV;IADC,6BAAM;;sCACK;AAGZ;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;wCACV;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;0CACR;AAGhB;IADC,6BAAM;;qCACI;AAGX;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;2CACP;AAGjB;IADC,6BAAM;8BACI,IAAI;2CAAA;AA1BI,QAAQ;IAD5B,4BAAK,CAAC,EAAC,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;GACtC,QAAQ,CA2B5B;kBA3BoB,QAAQ"} \ No newline at end of file diff --git a/dist/api/models/ts/message.js b/dist/api/models/ts/message.js new file mode 100644 index 0000000..e05be7b --- /dev/null +++ b/dist/api/models/ts/message.js @@ -0,0 +1,128 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const sequelize_typescript_1 = require("sequelize-typescript"); +let Message = class Message extends sequelize_typescript_1.Model { +}; +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }), + __metadata("design:type", Number) +], Message.prototype, "id", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Message.prototype, "chatId", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Message.prototype, "type", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Message.prototype, "sender", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Message.prototype, "receiver", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.DECIMAL), + __metadata("design:type", Number) +], Message.prototype, "amount", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.DECIMAL), + __metadata("design:type", Number) +], Message.prototype, "amountMsat", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Message.prototype, "paymentHash", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.TEXT), + __metadata("design:type", String) +], Message.prototype, "paymentRequest", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Message.prototype, "date", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Message.prototype, "expirationDate", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.TEXT), + __metadata("design:type", String) +], Message.prototype, "messageContent", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.TEXT), + __metadata("design:type", String) +], Message.prototype, "remoteMessageContent", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Message.prototype, "status", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.TEXT), + __metadata("design:type", String) +], Message.prototype, "statusMap", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Message.prototype, "parentId", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Message.prototype, "subscriptionId", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Message.prototype, "mediaTerms", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Message.prototype, "receipt", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Message.prototype, "mediaKey", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Message.prototype, "mediaType", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", String) +], Message.prototype, "mediaToken", void 0); +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BOOLEAN, + defaultValue: false, + allowNull: false + }), + __metadata("design:type", Boolean) +], Message.prototype, "seen", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Message.prototype, "createdAt", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Message.prototype, "updatedAt", void 0); +Message = __decorate([ + sequelize_typescript_1.Table({ tableName: 'sphinx_messages', underscored: true }) +], Message); +exports.default = Message; +//# sourceMappingURL=message.js.map \ No newline at end of file diff --git a/dist/api/models/ts/message.js.map b/dist/api/models/ts/message.js.map new file mode 100644 index 0000000..b61c262 --- /dev/null +++ b/dist/api/models/ts/message.js.map @@ -0,0 +1 @@ +{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../../api/models/ts/message.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAsE;AAGtE,IAAqB,OAAO,GAA5B,MAAqB,OAAQ,SAAQ,4BAAc;CAqFlD,CAAA;AA7EC;IANC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;KACpB,CAAC;;mCACQ;AAGV;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;uCACV;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;qCACZ;AAGZ;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;uCACV;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;yCACR;AAGhB;IADC,6BAAM,CAAC,+BAAQ,CAAC,OAAO,CAAC;;uCACX;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,OAAO,CAAC;;2CACP;AAGlB;IADC,6BAAM;;4CACY;AAGnB;IADC,6BAAM,CAAC,+BAAQ,CAAC,IAAI,CAAC;;+CACA;AAGtB;IADC,6BAAM;8BACD,IAAI;qCAAA;AAGV;IADC,6BAAM;8BACS,IAAI;+CAAA;AAGpB;IADC,6BAAM,CAAC,+BAAQ,CAAC,IAAI,CAAC;;+CACA;AAGtB;IADC,6BAAM,CAAC,+BAAQ,CAAC,IAAI,CAAC;;qDACM;AAG5B;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;uCACV;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,IAAI,CAAC;;0CACL;AAGjB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;yCACR;AAGhB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;+CACF;AAGtB;IADC,6BAAM;;2CACW;AAGlB;IADC,6BAAM;;wCACQ;AAGf;IADC,6BAAM;;yCACS;AAGhB;IADC,6BAAM;;0CACU;AAGjB;IADC,6BAAM;;2CACW;AAOlB;IALC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,OAAO;QACtB,YAAY,EAAE,KAAK;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC;;qCACW;AAGb;IADC,6BAAM;8BACI,IAAI;0CAAA;AAGf;IADC,6BAAM;8BACI,IAAI;0CAAA;AApFI,OAAO;IAD3B,4BAAK,CAAC,EAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;GACpC,OAAO,CAqF3B;kBArFoB,OAAO"} \ No newline at end of file diff --git a/dist/api/models/ts/subscription.js b/dist/api/models/ts/subscription.js new file mode 100644 index 0000000..04a75dd --- /dev/null +++ b/dist/api/models/ts/subscription.js @@ -0,0 +1,76 @@ +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const sequelize_typescript_1 = require("sequelize-typescript"); +let Subscription = class Subscription extends sequelize_typescript_1.Model { +}; +__decorate([ + sequelize_typescript_1.Column({ + type: sequelize_typescript_1.DataType.BIGINT, + primaryKey: true, + unique: true, + autoIncrement: true + }), + __metadata("design:type", Number) +], Subscription.prototype, "id", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Subscription.prototype, "chatId", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Subscription.prototype, "contactId", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.TEXT), + __metadata("design:type", String) +], Subscription.prototype, "cron", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.DECIMAL), + __metadata("design:type", Number) +], Subscription.prototype, "amount", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.DECIMAL), + __metadata("design:type", Number) +], Subscription.prototype, "totalPaid", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Subscription.prototype, "endNumber", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Subscription.prototype, "endDate", void 0); +__decorate([ + sequelize_typescript_1.Column(sequelize_typescript_1.DataType.BIGINT), + __metadata("design:type", Number) +], Subscription.prototype, "count", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Boolean) +], Subscription.prototype, "ended", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Boolean) +], Subscription.prototype, "paused", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Subscription.prototype, "createdAt", void 0); +__decorate([ + sequelize_typescript_1.Column, + __metadata("design:type", Date) +], Subscription.prototype, "updatedAt", void 0); +Subscription = __decorate([ + sequelize_typescript_1.Table({ tableName: 'sphinx_subscriptions', underscored: true }) +], Subscription); +exports.default = Subscription; +//# sourceMappingURL=subscription.js.map \ No newline at end of file diff --git a/dist/api/models/ts/subscription.js.map b/dist/api/models/ts/subscription.js.map new file mode 100644 index 0000000..230783d --- /dev/null +++ b/dist/api/models/ts/subscription.js.map @@ -0,0 +1 @@ +{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../../../api/models/ts/subscription.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAsE;AAGtE,IAAqB,YAAY,GAAjC,MAAqB,YAAa,SAAQ,4BAAmB;CA6C5D,CAAA;AArCC;IANC,6BAAM,CAAC;QACN,IAAI,EAAE,+BAAQ,CAAC,MAAM;QACrB,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;KACpB,CAAC;;wCACQ;AAGV;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;4CACV;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;+CACP;AAGjB;IADC,6BAAM,CAAC,+BAAQ,CAAC,IAAI,CAAC;;0CACV;AAGZ;IADC,6BAAM,CAAC,+BAAQ,CAAC,OAAO,CAAC;;4CACX;AAGd;IADC,6BAAM,CAAC,+BAAQ,CAAC,OAAO,CAAC;;+CACR;AAGjB;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;+CACP;AAGjB;IADC,6BAAM;8BACE,IAAI;6CAAA;AAGb;IADC,6BAAM,CAAC,+BAAQ,CAAC,MAAM,CAAC;;2CACX;AAGb;IADC,6BAAM;;2CACO;AAGd;IADC,6BAAM;;4CACQ;AAGf;IADC,6BAAM;8BACI,IAAI;+CAAA;AAGf;IADC,6BAAM;8BACI,IAAI;+CAAA;AA5CI,YAAY;IADhC,4BAAK,CAAC,EAAC,SAAS,EAAE,sBAAsB,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC;GACzC,YAAY,CA6ChC;kBA7CoB,YAAY"} \ No newline at end of file diff --git a/dist/api/utils/case.js b/dist/api/utils/case.js new file mode 100644 index 0000000..4c92acb --- /dev/null +++ b/dist/api/utils/case.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const changeCase = require("change-case"); +const dateKeys = ['date', 'createdAt', 'updatedAt', 'created_at', 'updated_at']; +function toSnake(obj) { + const ret = {}; + for (let [key, value] of Object.entries(obj)) { + if (dateKeys.includes(key) && value) { + const v = value; + const d = new Date(v); + ret[changeCase.snakeCase(key)] = d.toISOString(); + } + else { + ret[changeCase.snakeCase(key)] = value; + } + } + return ret; +} +exports.toSnake = toSnake; +function toCamel(obj) { + const ret = {}; + for (let [key, value] of Object.entries(obj)) { + ret[changeCase.camelCase(key)] = value; + } + return ret; +} +exports.toCamel = toCamel; +//# sourceMappingURL=case.js.map \ No newline at end of file diff --git a/dist/api/utils/case.js.map b/dist/api/utils/case.js.map new file mode 100644 index 0000000..861f5f3 --- /dev/null +++ b/dist/api/utils/case.js.map @@ -0,0 +1 @@ +{"version":3,"file":"case.js","sourceRoot":"","sources":["../../../api/utils/case.ts"],"names":[],"mappings":";;AAAA,0CAA0C;AAE1C,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAC,WAAW,EAAC,WAAW,EAAC,YAAY,EAAC,YAAY,CAAC,CAAA;AAE3E,SAAS,OAAO,CAAC,GAAG;IAChB,MAAM,GAAG,GAAuB,EAAE,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC1C,IAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,EAAC;YAC/B,MAAM,CAAC,GAAQ,KAAK,CAAA;YACpB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;YACrB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;SACnD;aAAM;YACH,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;SACzC;KACJ;IACD,OAAO,GAAG,CAAA;AACd,CAAC;AAUO,0BAAO;AARf,SAAS,OAAO,CAAC,GAAG;IAChB,MAAM,GAAG,GAAuB,EAAE,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAC1C,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;KACzC;IACD,OAAO,GAAG,CAAA;AACd,CAAC;AAEgB,0BAAO"} \ No newline at end of file diff --git a/dist/api/utils/cron.js b/dist/api/utils/cron.js new file mode 100644 index 0000000..3206545 --- /dev/null +++ b/dist/api/utils/cron.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const parser = require("cron-parser"); +function daily() { + const now = new Date(); + const minute = now.getMinutes(); + const hour = now.getHours(); + return `${minute} ${hour} * * *`; +} +function weekly() { + const now = new Date(); + const minute = now.getMinutes(); + const hour = now.getHours(); + const dayOfWeek = now.getDay(); + return `${minute} ${hour} * * ${dayOfWeek}`; +} +function monthly() { + const now = new Date(); + const minute = now.getMinutes(); + const hour = now.getHours(); + const dayOfMonth = now.getDate(); + return `${minute} ${hour} ${dayOfMonth} * *`; +} +function parse(s) { + var interval = parser.parseExpression(s); + const next = interval.next().toString(); + if (s.endsWith(' * * *')) { + return { interval: 'daily', next, ms: 86400000 }; + } + if (s.endsWith(' * *')) { + return { interval: 'monthly', next, ms: 86400000 * 30 }; + } + return { interval: 'weekly', next, ms: 86400000 * 7 }; +} +exports.parse = parse; +function make(interval) { + if (interval === 'daily') + return daily(); + if (interval === 'weekly') + return weekly(); + if (interval === 'monthly') + return monthly(); +} +exports.make = make; +//# sourceMappingURL=cron.js.map \ No newline at end of file diff --git a/dist/api/utils/cron.js.map b/dist/api/utils/cron.js.map new file mode 100644 index 0000000..adda43e --- /dev/null +++ b/dist/api/utils/cron.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cron.js","sourceRoot":"","sources":["../../../api/utils/cron.ts"],"names":[],"mappings":";;AAAA,sCAAqC;AAErC,SAAS,KAAK;IACV,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3B,OAAO,GAAG,MAAM,IAAI,IAAI,QAAQ,CAAA;AACpC,CAAC;AAED,SAAS,MAAM;IACX,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA;IAC9B,OAAO,GAAG,MAAM,IAAI,IAAI,QAAQ,SAAS,EAAE,CAAA;AAC/C,CAAC;AAED,SAAS,OAAO;IACZ,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,EAAE,CAAA;IAChC,OAAO,GAAG,MAAM,IAAI,IAAI,IAAI,UAAU,MAAM,CAAA;AAChD,CAAC;AAED,SAAS,KAAK,CAAC,CAAC;IACZ,IAAI,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAA;IAEvC,IAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACrB,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAC,QAAQ,EAAC,CAAA;KAChD;IACD,IAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACnB,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAC,QAAQ,GAAC,EAAE,EAAC,CAAA;KACrD;IACD,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAC,QAAQ,GAAC,CAAC,EAAC,CAAA;AACpD,CAAC;AASG,sBAAK;AAPT,SAAS,IAAI,CAAC,QAAQ;IAClB,IAAG,QAAQ,KAAG,OAAO;QAAE,OAAO,KAAK,EAAE,CAAA;IACrC,IAAG,QAAQ,KAAG,QAAQ;QAAE,OAAO,MAAM,EAAE,CAAA;IACvC,IAAG,QAAQ,KAAG,SAAS;QAAE,OAAO,OAAO,EAAE,CAAA;AAC7C,CAAC;AAIG,oBAAI"} \ No newline at end of file diff --git a/dist/api/utils/decode/index.js b/dist/api/utils/decode/index.js new file mode 100644 index 0000000..e7653ec --- /dev/null +++ b/dist/api/utils/decode/index.js @@ -0,0 +1,294 @@ +const bech32CharValues = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'; +module.exports = { + decode: function (paymentRequest) { + let input = paymentRequest.toLowerCase(); + let splitPosition = input.lastIndexOf('1'); + let humanReadablePart = input.substring(0, splitPosition); + let data = input.substring(splitPosition + 1, input.length - 6); + let checksum = input.substring(input.length - 6, input.length); + if (!this.verify_checksum(humanReadablePart, this.bech32ToFiveBitArray(data + checksum))) { + return 'error'; + } + return { + 'human_readable_part': this.decodeHumanReadablePart(humanReadablePart), + 'data': this.decodeData(data, humanReadablePart), + 'checksum': checksum + }; + }, + decodeHumanReadablePart: function (humanReadablePart) { + let prefixes = ['lnbc', 'lntb', 'lnbcrt']; + let prefix; + prefixes.forEach(value => { + if (humanReadablePart.substring(0, value.length) === value) { + prefix = value; + } + }); + if (prefix == null) + return 'error'; // A reader MUST fail if it does not understand the prefix. + let amount = this.decodeAmount(humanReadablePart.substring(prefix.length, humanReadablePart.length)); + return { + 'prefix': prefix, + 'amount': amount + }; + }, + decodeData: function (data, humanReadablePart) { + let date32 = data.substring(0, 7); + let dateEpoch = this.bech32ToInt(date32); + let signature = data.substring(data.length - 104, data.length); + let tagData = data.substring(7, data.length - 104); + let decodedTags = this.decodeTags(tagData); + let value = this.bech32ToFiveBitArray(date32 + tagData); + value = this.fiveBitArrayTo8BitArray(value, true); + value = this.textToHexString(humanReadablePart).concat(this.byteArrayToHexString(value)); + return { + 'time_stamp': dateEpoch, + 'tags': decodedTags, + 'signature': this.decodeSignature(signature), + 'signing_data': value + }; + }, + decodeSignature: function (signature) { + let data = this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(signature)); + let recoveryFlag = data[data.length - 1]; + let r = this.byteArrayToHexString(data.slice(0, 32)); + let s = this.byteArrayToHexString(data.slice(32, data.length - 1)); + return { + 'r': r, + 's': s, + 'recovery_flag': recoveryFlag + }; + }, + decodeAmount: function (str) { + let multiplier = str.charAt(str.length - 1); + let amount = str.substring(0, str.length - 1); + if (amount.substring(0, 1) === '0') { + return 'error'; + } + amount = Number(amount); + if (amount < 0 || !Number.isInteger(amount)) { + return 'error'; + } + switch (multiplier) { + case '': + return 'Any amount'; // A reader SHOULD indicate if amount is unspecified + case 'p': + return amount / 10; + case 'n': + return amount * 100; + case 'u': + return amount * 100000; + case 'm': + return amount * 100000000; + default: + // A reader SHOULD fail if amount is followed by anything except a defined multiplier. + return 'error'; + } + }, + decodeTags: function (tagData) { + let tags = this.extractTags(tagData); + let decodedTags = []; + tags.forEach(value => decodedTags.push(this.decodeTag(value.type, value.length, value.data))); + return decodedTags; + }, + extractTags: function (str) { + let tags = []; + while (str.length > 0) { + let type = str.charAt(0); + let dataLength = this.bech32ToInt(str.substring(1, 3)); + let data = str.substring(3, dataLength + 3); + tags.push({ + 'type': type, + 'length': dataLength, + 'data': data + }); + str = str.substring(3 + dataLength, str.length); + } + return tags; + }, + decodeTag: function (type, length, data) { + switch (type) { + case 'p': + if (length !== 52) + break; // A reader MUST skip over a 'p' field that does not have data_length 52 + return { + 'type': type, + 'length': length, + 'description': 'payment_hash', + 'value': this.byteArrayToHexString(this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(data))) + }; + case 'd': + return { + 'type': type, + 'length': length, + 'description': 'description', + 'value': this.bech32ToUTF8String(data) + }; + case 'n': + if (length !== 53) + break; // A reader MUST skip over a 'n' field that does not have data_length 53 + return { + 'type': type, + 'length': length, + 'description': 'payee_public_key', + 'value': this.byteArrayToHexString(this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(data))) + }; + case 'h': + if (length !== 52) + break; // A reader MUST skip over a 'h' field that does not have data_length 52 + return { + 'type': type, + 'length': length, + 'description': 'description_hash', + 'value': data + }; + case 'x': + return { + 'type': type, + 'length': length, + 'description': 'expiry', + 'value': this.bech32ToInt(data) + }; + case 'c': + return { + 'type': type, + 'length': length, + 'description': 'min_final_cltv_expiry', + 'value': this.bech32ToInt(data) + }; + case 'f': + let version = this.bech32ToFiveBitArray(data.charAt(0))[0]; + if (version < 0 || version > 18) + break; // a reader MUST skip over an f field with unknown version. + data = data.substring(1, data.length); + return { + 'type': type, + 'length': length, + 'description': 'fallback_address', + 'value': { + 'version': version, + 'fallback_address': data + } + }; + case 'r': + data = this.fiveBitArrayTo8BitArray(this.bech32ToFiveBitArray(data)); + let pubkey = data.slice(0, 33); + let shortChannelId = data.slice(33, 41); + let feeBaseMsat = data.slice(41, 45); + let feeProportionalMillionths = data.slice(45, 49); + let cltvExpiryDelta = data.slice(49, 51); + return { + 'type': type, + 'length': length, + 'description': 'routing_information', + 'value': { + 'public_key': this.byteArrayToHexString(pubkey), + 'short_channel_id': this.byteArrayToHexString(shortChannelId), + 'fee_base_msat': this.byteArrayToInt(feeBaseMsat), + 'fee_proportional_millionths': this.byteArrayToInt(feeProportionalMillionths), + 'cltv_expiry_delta': this.byteArrayToInt(cltvExpiryDelta) + } + }; + default: + // reader MUST skip over unknown fields + } + }, + polymod: function (values) { + let GEN = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]; + let chk = 1; + values.forEach((value) => { + let b = (chk >> 25); + chk = (chk & 0x1ffffff) << 5 ^ value; + for (let i = 0; i < 5; i++) { + if (((b >> i) & 1) === 1) { + chk ^= GEN[i]; + } + else { + chk ^= 0; + } + } + }); + return chk; + }, + expand: function (str) { + let array = []; + for (let i = 0; i < str.length; i++) { + array.push(str.charCodeAt(i) >> 5); + } + array.push(0); + for (let i = 0; i < str.length; i++) { + array.push(str.charCodeAt(i) & 31); + } + return array; + }, + verify_checksum: function (hrp, data) { + hrp = this.expand(hrp); + let all = hrp.concat(data); + let bool = this.polymod(all); + return bool === 1; + }, + byteArrayToInt: function (byteArray) { + let value = 0; + for (let i = 0; i < byteArray.length; ++i) { + value = (value << 8) + byteArray[i]; + } + return value; + }, + bech32ToInt: function (str) { + let sum = 0; + for (let i = 0; i < str.length; i++) { + sum = sum * 32; + sum = sum + bech32CharValues.indexOf(str.charAt(i)); + } + return sum; + }, + bech32ToFiveBitArray: function (str) { + let array = []; + for (let i = 0; i < str.length; i++) { + array.push(bech32CharValues.indexOf(str.charAt(i))); + } + return array; + }, + fiveBitArrayTo8BitArray: function (int5Array, includeOverflow) { + let count = 0; + let buffer = 0; + let byteArray = []; + int5Array.forEach((value) => { + buffer = (buffer << 5) + value; + count += 5; + if (count >= 8) { + byteArray.push(buffer >> (count - 8) & 255); + count -= 8; + } + }); + if (includeOverflow && count > 0) { + byteArray.push(buffer << (8 - count) & 255); + } + return byteArray; + }, + bech32ToUTF8String: function (str) { + let int5Array = this.bech32ToFiveBitArray(str); + let byteArray = this.fiveBitArrayTo8BitArray(int5Array); + let utf8String = ''; + for (let i = 0; i < byteArray.length; i++) { + utf8String += '%' + ('0' + byteArray[i].toString(16)).slice(-2); + } + return decodeURIComponent(utf8String); + }, + byteArrayToHexString: function (byteArray) { + return Array.prototype.map.call(byteArray, function (byte) { + return ('0' + (byte & 0xFF).toString(16)).slice(-2); + }).join(''); + }, + textToHexString: function (text) { + let hexString = ''; + for (let i = 0; i < text.length; i++) { + hexString += text.charCodeAt(i).toString(16); + } + return hexString; + }, + epochToDate: function (int) { + let date = new Date(int * 1000); + return date.toUTCString(); + } +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/api/utils/decode/index.js.map b/dist/api/utils/decode/index.js.map new file mode 100644 index 0000000..64261b0 --- /dev/null +++ b/dist/api/utils/decode/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../api/utils/decode/index.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/utils/gitinfo.js b/dist/api/utils/gitinfo.js new file mode 100644 index 0000000..861cd84 --- /dev/null +++ b/dist/api/utils/gitinfo.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const child_process_1 = require("child_process"); +let commitHash; +function checkCommitHash() { + return new Promise((resolve, reject) => { + if (commitHash) { + return resolve(commitHash); + } + try { + child_process_1.exec(`git log -1 --pretty=format:%h`, { timeout: 999 }, (error, stdout, stderr) => { + if (stdout) { + commitHash = stdout.trim(); + return resolve(commitHash); + } + else { + resolve(''); + } + }); + } + catch (e) { + console.log(e); + resolve(''); + } + }); +} +exports.checkCommitHash = checkCommitHash; +let tag; +function checkTag() { + return new Promise((resolve, reject) => { + if (tag) { + return resolve(tag); + } + try { + child_process_1.exec(`git describe --abbrev=0 --tags`, { timeout: 999 }, (error, stdout, stderr) => { + if (stdout) { + tag = stdout.trim(); + return resolve(tag); + } + else { + resolve(''); + } + }); + } + catch (e) { + console.log(e); + resolve(''); + } + }); +} +exports.checkTag = checkTag; +//# sourceMappingURL=gitinfo.js.map \ No newline at end of file diff --git a/dist/api/utils/gitinfo.js.map b/dist/api/utils/gitinfo.js.map new file mode 100644 index 0000000..d365354 --- /dev/null +++ b/dist/api/utils/gitinfo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"gitinfo.js","sourceRoot":"","sources":["../../../api/utils/gitinfo.ts"],"names":[],"mappings":";;AAAA,iDAAoC;AAEpC,IAAI,UAAU,CAAA;AACd,SAAS,eAAe;IACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAC,EAAE;QACpC,IAAG,UAAU,EAAE;YACb,OAAO,OAAO,CAAC,UAAU,CAAC,CAAA;SAC3B;QACD,IAAG;YACD,oBAAI,CAAC,+BAA+B,EAAE,EAAC,OAAO,EAAC,GAAG,EAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBAC7E,IAAG,MAAM,EAAC;oBACR,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;oBAC1B,OAAO,OAAO,CAAC,UAAU,CAAC,CAAA;iBAC3B;qBAAM;oBACL,OAAO,CAAC,EAAE,CAAC,CAAA;iBACZ;YACH,CAAC,CAAC,CAAA;SACH;QAAC,OAAM,CAAC,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACd,OAAO,CAAC,EAAE,CAAC,CAAA;SACZ;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAyBC,0CAAe;AAvBjB,IAAI,GAAG,CAAA;AACP,SAAS,QAAQ;IACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAC,EAAE;QACpC,IAAG,GAAG,EAAE;YACN,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;SACpB;QACD,IAAG;YACD,oBAAI,CAAC,gCAAgC,EAAE,EAAC,OAAO,EAAC,GAAG,EAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;gBAC9E,IAAG,MAAM,EAAC;oBACR,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;oBACnB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;iBACpB;qBAAM;oBACL,OAAO,CAAC,EAAE,CAAC,CAAA;iBACZ;YACH,CAAC,CAAC,CAAA;SACH;QAAC,OAAM,CAAC,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACd,OAAO,CAAC,EAAE,CAAC,CAAA;SACZ;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAGkB,4BAAQ"} \ No newline at end of file diff --git a/dist/api/utils/json.js b/dist/api/utils/json.js new file mode 100644 index 0000000..48a5edb --- /dev/null +++ b/dist/api/utils/json.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const case_1 = require("../utils/case"); +const cronUtils = require("./cron"); +function chatToJson(c) { + const chat = c.dataValues || c; + let contactIds = chat.contactIds || null; + if (chat.contactIds && typeof chat.contactIds === 'string') { + contactIds = JSON.parse(chat.contactIds); + } + return case_1.toSnake(Object.assign(Object.assign({}, chat), { contactIds })); +} +exports.chatToJson = chatToJson; +function messageToJson(msg, chat = null) { + const message = msg.dataValues || msg; + let statusMap = message.statusMap || null; + if (message.statusMap && typeof message.statusMap === 'string') { + statusMap = JSON.parse(message.statusMap); + } + return case_1.toSnake(Object.assign(Object.assign({}, message), { statusMap, chat: chat ? chatToJson(chat) : null })); +} +exports.messageToJson = messageToJson; +const contactToJson = (contact) => case_1.toSnake(contact.dataValues || contact); +exports.contactToJson = contactToJson; +const inviteToJson = (invite) => case_1.toSnake(invite.dataValues || invite); +exports.inviteToJson = inviteToJson; +const jsonToContact = (json) => case_1.toCamel(json); +exports.jsonToContact = jsonToContact; +function subscriptionToJson(subscription, chat) { + const sub = subscription.dataValues || subscription; + const { interval, next } = cronUtils.parse(sub.cron); + return case_1.toSnake(Object.assign(Object.assign({}, sub), { interval, + next, chat: chat ? chatToJson(chat) : null })); +} +exports.subscriptionToJson = subscriptionToJson; +//# sourceMappingURL=json.js.map \ No newline at end of file diff --git a/dist/api/utils/json.js.map b/dist/api/utils/json.js.map new file mode 100644 index 0000000..0b75951 --- /dev/null +++ b/dist/api/utils/json.js.map @@ -0,0 +1 @@ +{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../api/utils/json.ts"],"names":[],"mappings":";;AAAA,wCAA6C;AAC7C,oCAAmC;AAEnC,SAAS,UAAU,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,IAAE,CAAC,CAAA;IAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAA;IACxC,IAAG,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,KAAG,QAAQ,EAAC;QACtD,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACzC;IACD,OAAO,cAAO,iCACT,IAAI,KACP,UAAU,IACV,CAAA;AACJ,CAAC;AAqCC,gCAAU;AAnCZ,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI;IACrC,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,IAAE,GAAG,CAAA;IACnC,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAA;IACzC,IAAG,OAAO,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAG,QAAQ,EAAC;QAC1D,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;KAC1C;IACD,OAAO,cAAO,iCACT,OAAO,KACV,SAAS,EACT,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IACpC,CAAA;AACJ,CAAC;AAoBC,sCAAa;AAlBf,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,cAAO,CAAC,OAAO,CAAC,UAAU,IAAE,OAAO,CAAC,CAAA;AAmBrE,sCAAa;AAjBf,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,cAAO,CAAC,MAAM,CAAC,UAAU,IAAE,MAAM,CAAC,CAAA;AAkBjE,oCAAY;AAhBd,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,cAAO,CAAC,IAAI,CAAC,CAAA;AAiB3C,sCAAa;AAff,SAAS,kBAAkB,CAAC,YAAY,EAAE,IAAI;IAC5C,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,IAAI,YAAY,CAAA;IACnD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACpD,OAAO,cAAO,iCACT,GAAG,KACN,QAAQ;QACR,IAAI,EACJ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IACpC,CAAA;AACJ,CAAC;AAQC,gDAAkB"} \ No newline at end of file diff --git a/dist/api/utils/ldat.js b/dist/api/utils/ldat.js new file mode 100644 index 0000000..9ca902f --- /dev/null +++ b/dist/api/utils/ldat.js @@ -0,0 +1,156 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const zbase32 = require("./zbase32"); +const lightning_1 = require("./lightning"); +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; +/* +Lightning Data Access Token +Base64 strings separated by dots: +{host}.{muid}.{buyerPubKey}.{exp}.{metadata}.{signature} + +- host: web host for data (ascii->base64) +- muid: ID of media +- buyerPubKey +- exp: unix timestamp expiration (encoded into 4 bytes) +- meta: key/value pairs, url query encoded (alphabetically ordered, ascii->base64) +- signature of all that (concatenated bytes of each) +*/ +function tokenFromTerms({ host, muid, ttl, pubkey, meta }) { + return __awaiter(this, void 0, void 0, function* () { + const theHost = host || config.media_host || ''; + const pubkeyBytes = Buffer.from(pubkey, 'hex'); + const pubkey64 = urlBase64FromBytes(pubkeyBytes); + const now = Math.floor(Date.now() / 1000); + const exp = ttl ? now + (60 * 60 * 24 * 365) : 0; + const ldat = startLDAT(theHost, muid, pubkey64, exp, meta); + if (pubkey != '') { + const sig = yield lightning_1.signBuffer(ldat.bytes); + const sigBytes = zbase32.decode(sig); + return ldat.terms + "." + urlBase64FromBytes(sigBytes); + } + else { + return ldat.terms; + } + }); +} +exports.tokenFromTerms = tokenFromTerms; +// host.muid.pk.exp.meta +function startLDAT(host, muid, pk, exp, meta = {}) { + const empty = Buffer.from([]); + var hostBuf = Buffer.from(host, 'ascii'); + var muidBuf = Buffer.from(muid, 'base64'); + var pkBuf = pk ? Buffer.from(pk, 'base64') : empty; + var expBuf = exp ? Buffer.from(exp.toString(16), 'hex') : empty; + var metaBuf = meta ? Buffer.from(serializeMeta(meta), 'ascii') : empty; + const totalLength = hostBuf.length + muidBuf.length + pkBuf.length + expBuf.length + metaBuf.length; + const buf = Buffer.concat([hostBuf, muidBuf, pkBuf, expBuf, metaBuf], totalLength); + let terms = `${urlBase64(hostBuf)}.${urlBase64(muidBuf)}.${urlBase64(pkBuf)}.${urlBase64(expBuf)}.${urlBase64(metaBuf)}`; + return { terms, bytes: buf }; +} +exports.startLDAT = startLDAT; +const termKeys = [{ + key: 'host', + func: buf => buf.toString('ascii') + }, { + key: 'muid', + func: buf => urlBase64(buf) + }, { + key: 'pubkey', + func: buf => buf.toString('hex') + }, { + key: 'ts', + func: buf => parseInt('0x' + buf.toString('hex')) + }, { + key: 'meta', + func: buf => { + const ascii = buf.toString('ascii'); + return ascii ? deserializeMeta(ascii) : {}; // parse this + } + }, { + key: 'sig', + func: buf => urlBase64(buf) + }]; +function parseLDAT(ldat) { + const a = ldat.split('.'); + const o = {}; + termKeys.forEach((t, i) => { + if (a[i]) + o[t.key] = t.func(Buffer.from(a[i], 'base64')); + }); + return o; +} +exports.parseLDAT = parseLDAT; +function testLDAT() { + return __awaiter(this, void 0, void 0, function* () { + console.log('testLDAT'); + const terms = { + host: '', + ttl: 31536000, + muid: 'qFSOa50yWeGSG8oelsMvctLYdejPRD090dsypBSx_xg=', + pubkey: '0373ca36a331d8fd847f190908715a34997b15dc3c5d560ca032cf3412fcf494e4', + meta: { + amt: 100, + ttl: 31536000, + dim: '1500x1300' + } + }; + const token = yield tokenFromTerms(terms); + console.log(token); + const terms2 = { + host: '', + ttl: 0, + muid: 'qFSOa50yWeGSG8oelsMvctLYdejPRD090dsypBSx_xg=', + pubkey: '', + meta: { + amt: 100, + ttl: 31536000, + } + }; + const token2 = yield tokenFromTerms(terms2); + console.log(token2); + console.log(parseLDAT(token2)); + }); +} +exports.testLDAT = testLDAT; +function serializeMeta(obj) { + var str = []; + for (var p in obj) { + if (obj.hasOwnProperty(p)) { + str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); + } + } + str.sort((a, b) => (a > b ? 1 : -1)); + return str.join("&"); +} +function deserializeMeta(str) { + const json = str && str.length > 2 ? JSON.parse('{"' + str.replace(/&/g, '","').replace(/=/g, '":"') + '"}', function (key, value) { return key === "" ? value : decodeURIComponent(value); }) : {}; + const ret = {}; + for (let [k, v] of Object.entries(json)) { + const value = (typeof v === 'string' && parseInt(v)) || v; + ret[k] = value; + } + return ret; +} +function urlBase64(buf) { + return buf.toString('base64').replace(/\//g, '_').replace(/\+/g, '-'); +} +exports.urlBase64 = urlBase64; +function urlBase64FromBytes(buf) { + return Buffer.from(buf).toString('base64').replace(/\//g, '_').replace(/\+/g, '-'); +} +exports.urlBase64FromBytes = urlBase64FromBytes; +function urlBase64FromAscii(ascii) { + return Buffer.from(ascii, 'ascii').toString('base64').replace(/\//g, '_').replace(/\+/g, '-'); +} +exports.urlBase64FromAscii = urlBase64FromAscii; +//# sourceMappingURL=ldat.js.map \ No newline at end of file diff --git a/dist/api/utils/ldat.js.map b/dist/api/utils/ldat.js.map new file mode 100644 index 0000000..d65535a --- /dev/null +++ b/dist/api/utils/ldat.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ldat.js","sourceRoot":"","sources":["../../../api/utils/ldat.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/utils/lightning.js b/dist/api/utils/lightning.js new file mode 100644 index 0000000..20a074e --- /dev/null +++ b/dist/api/utils/lightning.js @@ -0,0 +1,334 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ByteBuffer = require("bytebuffer"); +const fs = require("fs"); +const grpc = require("grpc"); +const helpers_1 = require("../helpers"); +const sha = require("js-sha256"); +const crypto = require("crypto"); +// var protoLoader = require('@grpc/proto-loader') +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/../../config/app.json')[env]; +const LND_KEYSEND_KEY = 5482373484; +exports.LND_KEYSEND_KEY = LND_KEYSEND_KEY; +const SPHINX_CUSTOM_RECORD_KEY = 133773310; +exports.SPHINX_CUSTOM_RECORD_KEY = SPHINX_CUSTOM_RECORD_KEY; +var lightningClient = null; +var walletUnlocker = null; +const loadCredentials = () => { + var lndCert = fs.readFileSync(config.tls_location); + var sslCreds = grpc.credentials.createSsl(lndCert); + var m = fs.readFileSync(config.macaroon_location); + var macaroon = m.toString('hex'); + var metadata = new grpc.Metadata(); + metadata.add('macaroon', macaroon); + var macaroonCreds = grpc.credentials.createFromMetadataGenerator((_args, callback) => { + callback(null, metadata); + }); + return grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds); +}; +exports.loadCredentials = loadCredentials; +// async function loadLightningNew() { +// if (lightningClient) { +// return lightningClient +// } else { +// var credentials = loadCredentials() +// const packageDefinition = await protoLoader.load("rpc.proto", {}) +// const lnrpcDescriptor = grpc.loadPackageDefinition(packageDefinition); +// var { lnrpc } = lnrpcDescriptor; +// lightningClient = new lnrpc.Lightning(config.node_ip + ':' + config.lnd_port, credentials); +// return lightningClient +// } +// } +const loadLightning = () => { + if (lightningClient) { + return lightningClient; + } + else { + try { + var credentials = loadCredentials(); + var lnrpcDescriptor = grpc.load("rpc.proto"); + var lnrpc = lnrpcDescriptor.lnrpc; + lightningClient = new lnrpc.Lightning(config.node_ip + ':' + config.lnd_port, credentials); + return lightningClient; + } + catch (e) { + throw e; + } + } +}; +exports.loadLightning = loadLightning; +const loadWalletUnlocker = () => { + if (walletUnlocker) { + return walletUnlocker; + } + else { + var credentials = loadCredentials(); + try { + var lnrpcDescriptor = grpc.load("rpc.proto"); + var lnrpc = lnrpcDescriptor.lnrpc; + walletUnlocker = new lnrpc.WalletUnlocker(config.node_ip + ':' + config.lnd_port, credentials); + return walletUnlocker; + } + catch (e) { + console.log(e); + } + } +}; +exports.loadWalletUnlocker = loadWalletUnlocker; +const getHeaders = (req) => { + return { + "X-User-Token": req.headers['x-user-token'], + "X-User-Email": req.headers['x-user-email'] + }; +}; +exports.getHeaders = getHeaders; +var isLocked = false; +let lockTimeout; +const getLock = () => isLocked; +exports.getLock = getLock; +const setLock = (value) => { + isLocked = value; + console.log({ isLocked }); + if (lockTimeout) + clearTimeout(lockTimeout); + lockTimeout = setTimeout(() => { + isLocked = false; + console.log({ isLocked }); + }, 1000 * 60 * 2); +}; +exports.setLock = setLock; +const getRoute = (pub_key, amt, callback) => __awaiter(void 0, void 0, void 0, function* () { + let lightning = yield loadLightning(); + lightning.queryRoutes({ pub_key, amt }, (err, response) => callback(err, response)); +}); +exports.getRoute = getRoute; +const keysend = (opts) => { + return new Promise(function (resolve, reject) { + return __awaiter(this, void 0, void 0, function* () { + let lightning = yield loadLightning(); + const randoStr = crypto.randomBytes(32).toString('hex'); + const preimage = ByteBuffer.fromHex(randoStr); + const options = { + amt: opts.amt, + final_cltv_delta: 10, + dest: ByteBuffer.fromHex(opts.dest), + dest_custom_records: { + [`${LND_KEYSEND_KEY}`]: preimage, + [`${SPHINX_CUSTOM_RECORD_KEY}`]: ByteBuffer.fromUTF8(opts.data), + }, + payment_hash: sha.sha256.arrayBuffer(preimage.toBuffer()), + dest_features: [9], + }; + const call = lightning.sendPayment(); + call.on('data', function (payment) { + if (payment.payment_error) { + reject(payment.payment_error); + } + else { + resolve(payment); + } + }); + call.on('error', function (err) { + reject(err); + }); + call.write(options); + }); + }); +}; +const MAX_MSG_LENGTH = 972; // 1146 - 20 +function keysendMessage(opts) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise(function (resolve, reject) { + return __awaiter(this, void 0, void 0, function* () { + if (!opts.data || typeof opts.data !== 'string') { + return reject('string plz'); + } + if (opts.data.length < MAX_MSG_LENGTH) { + try { + const res = yield keysend(opts); + resolve(res); + } + catch (e) { + reject(e); + } + return; + } + // too long! need to send serial + const n = Math.ceil(opts.data.length / MAX_MSG_LENGTH); + let success = false; + let fail = false; + let res = null; + const ts = new Date().valueOf(); + yield asyncForEach(Array.from(Array(n)), (u, i) => __awaiter(this, void 0, void 0, function* () { + const spliti = Math.ceil(opts.data.length / n); + const m = opts.data.substr(i * spliti, spliti); + try { + res = yield keysend(Object.assign(Object.assign({}, opts), { data: `${ts}_${i}_${n}_${m}` })); + success = true; + yield helpers_1.sleep(432); + } + catch (e) { + console.log(e); + fail = true; + } + })); + if (success && !fail) { + resolve(res); + } + else { + reject(new Error('fail')); + } + }); + }); + }); +} +exports.keysendMessage = keysendMessage; +function asyncForEach(array, callback) { + return __awaiter(this, void 0, void 0, function* () { + for (let index = 0; index < array.length; index++) { + yield callback(array[index], index, array); + } + }); +} +function signAscii(ascii) { + return __awaiter(this, void 0, void 0, function* () { + try { + const sig = yield signMessage(ascii_to_hexa(ascii)); + return sig; + } + catch (e) { + throw e; + } + }); +} +exports.signAscii = signAscii; +function listInvoices() { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const lightning = yield loadLightning(); + lightning.listInvoices({ + num_max_invoices: 100000, + reversed: true, + }, (err, response) => { + if (!err) { + resolve(response); + } + else { + reject(err); + } + }); + })); +} +exports.listInvoices = listInvoices; +function listPayments() { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const lightning = yield loadLightning(); + lightning.listPayments({}, (err, response) => { + if (!err) { + resolve(response); + } + else { + reject(err); + } + }); + })); +} +exports.listPayments = listPayments; +const signMessage = (msg) => { + return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () { + let lightning = yield loadLightning(); + try { + const options = { msg: ByteBuffer.fromHex(msg) }; + lightning.signMessage(options, function (err, sig) { + if (err || !sig.signature) { + reject(err); + } + else { + resolve(sig.signature); + } + }); + } + catch (e) { + reject(e); + } + })); +}; +exports.signMessage = signMessage; +const signBuffer = (msg) => { + return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () { + let lightning = yield loadLightning(); + try { + const options = { msg }; + lightning.signMessage(options, function (err, sig) { + if (err || !sig.signature) { + reject(err); + } + else { + resolve(sig.signature); + } + }); + } + catch (e) { + reject(e); + } + })); +}; +exports.signBuffer = signBuffer; +const verifyMessage = (msg, sig) => { + return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () { + let lightning = yield loadLightning(); + try { + const options = { + msg: ByteBuffer.fromHex(msg), + signature: sig, + }; + console.log(options); + lightning.verifyMessage(options, function (err, res) { + if (err || !res.pubkey) { + reject(err); + } + else { + resolve(res); + } + }); + } + catch (e) { + reject(e); + } + })); +}; +exports.verifyMessage = verifyMessage; +function checkConnection() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + const lightning = loadLightning(); + lightning.getInfo({}, function (err, response) { + if (err == null) { + resolve(response); + } + else { + reject(err); + } + }); + }); + }); +} +exports.checkConnection = checkConnection; +function ascii_to_hexa(str) { + var arr1 = []; + for (var n = 0, l = str.length; n < l; n++) { + var hex = Number(str.charCodeAt(n)).toString(16); + arr1.push(hex); + } + return arr1.join(''); +} +//# sourceMappingURL=lightning.js.map \ No newline at end of file diff --git a/dist/api/utils/lightning.js.map b/dist/api/utils/lightning.js.map new file mode 100644 index 0000000..49de575 --- /dev/null +++ b/dist/api/utils/lightning.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lightning.js","sourceRoot":"","sources":["../../../api/utils/lightning.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/utils/lock.js b/dist/api/utils/lock.js new file mode 100644 index 0000000..863ff6b --- /dev/null +++ b/dist/api/utils/lock.js @@ -0,0 +1,6 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const AsyncLock = require("async-lock"); +const lock = new AsyncLock(); +exports.default = lock; +//# sourceMappingURL=lock.js.map \ No newline at end of file diff --git a/dist/api/utils/lock.js.map b/dist/api/utils/lock.js.map new file mode 100644 index 0000000..8bc2245 --- /dev/null +++ b/dist/api/utils/lock.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../../api/utils/lock.ts"],"names":[],"mappings":";;AAAA,wCAAuC;AAEvC,MAAM,IAAI,GAAG,IAAI,SAAS,EAAE,CAAA;AAE5B,kBAAe,IAAI,CAAA"} \ No newline at end of file diff --git a/dist/api/utils/logger.js b/dist/api/utils/logger.js new file mode 100644 index 0000000..c697f65 --- /dev/null +++ b/dist/api/utils/logger.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const expressWinston = require("express-winston"); +const winston = require("winston"); +const moment = require("moment"); +const tsFormat = (ts) => moment(ts).format('YYYY-MM-DD hh:mm:ss').trim(); +const logger = expressWinston.logger({ + transports: [ + new winston.transports.Console() + ], + format: winston.format.combine(winston.format.timestamp(), winston.format.colorize(), winston.format.printf(info => { + return `-> ${tsFormat(info.timestamp)}: ${info.message}`; + })), + meta: false, + // msg: "HTTP {{req.method}} {{req.url}}", // optional: customize the default logging message. E.g. "{{res.statusCode}} {{req.method}} {{res.responseTime}}ms {{req.url}}" + expressFormat: true, + colorize: true, + ignoreRoute: function (req, res) { + if (req.path.startsWith('/json')) + return true; // debugger + return false; + } // optional: allows to skip some log messages based on request and/or response +}); +exports.default = logger; +//# sourceMappingURL=logger.js.map \ No newline at end of file diff --git a/dist/api/utils/logger.js.map b/dist/api/utils/logger.js.map new file mode 100644 index 0000000..8c1f3f4 --- /dev/null +++ b/dist/api/utils/logger.js.map @@ -0,0 +1 @@ +{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../api/utils/logger.ts"],"names":[],"mappings":";;AAAA,kDAAiD;AACjD,mCAAkC;AAClC,iCAAgC;AAEhC,MAAM,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;AAEzE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE;QACV,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE;KACjC;IACD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC1B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAA,EAAE;QAC1B,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAA;IAC5D,CAAC,CAAC,CACH;IACD,IAAI,EAAE,KAAK;IACX,0KAA0K;IAC1K,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,UAAU,GAAG,EAAE,GAAG;QAC7B,IAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAA,CAAC,WAAW;QACxD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,8EAA8E;CACnF,CAAC,CAAA;AAEF,kBAAe,MAAM,CAAA"} \ No newline at end of file diff --git a/dist/api/utils/msg.js b/dist/api/utils/msg.js new file mode 100644 index 0000000..28b4113 --- /dev/null +++ b/dist/api/utils/msg.js @@ -0,0 +1,80 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const ldat_1 = require("./ldat"); +function addInRemoteText(full, contactId) { + const m = full && full.message; + if (!(m && m.content)) + return full; + if (!(typeof m.content === 'object')) + return full; + return fillmsg(full, { content: m.content[contactId + ''] }); +} +function removeRecipientFromChatMembers(full, destkey) { + const c = full && full.chat; + if (!(c && c.members)) + return full; + if (!(typeof c.members === 'object')) + return full; + const members = Object.assign({}, c.members); + if (members[destkey]) + delete members[destkey]; + return fillchatmsg(full, { members }); +} +function addInMediaKey(full, contactId) { + const m = full && full.message; + if (!(m && m.mediaKey)) + return full; + if (!(m && m.mediaTerms)) + return full; + const mediaKey = m.mediaTerms.skipSigning ? '' : m.mediaKey[contactId + '']; + return fillmsg(full, { mediaKey }); +} +// add the token if its free, but if a price just the base64(host).muid +function finishTermsAndReceipt(full, destkey) { + return __awaiter(this, void 0, void 0, function* () { + const m = full && full.message; + if (!(m && m.mediaTerms)) + return full; + const t = m.mediaTerms; + const meta = t.meta || {}; + t.ttl = t.ttl || 31536000; + meta.ttl = t.ttl; + const mediaToken = yield ldat_1.tokenFromTerms({ + host: t.host || '', + muid: t.muid, + ttl: t.skipSigning ? 0 : t.ttl, + pubkey: t.skipSigning ? '' : destkey, + meta + }); + const fullmsg = fillmsg(full, { mediaToken }); + delete fullmsg.message.mediaTerms; + return fullmsg; + }); +} +function personalizeMessage(m, contactId, destkey) { + return __awaiter(this, void 0, void 0, function* () { + const cloned = JSON.parse(JSON.stringify(m)); + const msg = addInRemoteText(cloned, contactId); + const cleanMsg = removeRecipientFromChatMembers(msg, destkey); + const msgWithMediaKey = addInMediaKey(cleanMsg, contactId); + const finalMsg = yield finishTermsAndReceipt(msgWithMediaKey, destkey); + return finalMsg; + }); +} +exports.personalizeMessage = personalizeMessage; +function fillmsg(full, props) { + return Object.assign(Object.assign({}, full), { message: Object.assign(Object.assign({}, full.message), props) }); +} +function fillchatmsg(full, props) { + return Object.assign(Object.assign({}, full), { chat: Object.assign(Object.assign({}, full.chat), props) }); +} +//# sourceMappingURL=msg.js.map \ No newline at end of file diff --git a/dist/api/utils/msg.js.map b/dist/api/utils/msg.js.map new file mode 100644 index 0000000..c064b4a --- /dev/null +++ b/dist/api/utils/msg.js.map @@ -0,0 +1 @@ +{"version":3,"file":"msg.js","sourceRoot":"","sources":["../../../api/utils/msg.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/utils/nodeinfo.js b/dist/api/utils/nodeinfo.js new file mode 100644 index 0000000..365aabc --- /dev/null +++ b/dist/api/utils/nodeinfo.js @@ -0,0 +1,93 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const lightning_1 = require("../utils/lightning"); +const publicIp = require("public-ip"); +const gitinfo_1 = require("../utils/gitinfo"); +const models_1 = require("../models"); +function nodeinfo() { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + let public_ip = ""; + try { + public_ip = yield publicIp.v4(); + } + catch (e) { + console.log(e); + } + const commitHash = yield gitinfo_1.checkCommitHash(); + const tag = yield gitinfo_1.checkTag(); + const lightning = lightning_1.loadLightning(); + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const clean = yield isClean(); + lightning.channelBalance({}, (err, channelBalance) => { + if (err) + console.log(err); + // const { balance, pending_open_balance } = channelBalance + lightning.listChannels({}, (err, channelList) => { + if (err) + console.log(err); + const { channels } = channelList; + const localBalances = channels.map(c => c.local_balance); + const remoteBalances = channels.map(c => c.remote_balance); + const largestLocalBalance = Math.max(...localBalances); + const largestRemoteBalance = Math.max(...remoteBalances); + const totalLocalBalance = localBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0); + lightning.pendingChannels({}, (err, pendingChannels) => { + if (err) + console.log(err); + lightning.getInfo({}, (err, info) => { + if (err) + console.log(err); + if (!err && info) { + const node = { + node_alias: process.env.NODE_ALIAS, + ip: process.env.NODE_IP, + relay_commit: commitHash, + public_ip: public_ip, + pubkey: owner.publicKey, + number_channels: channels.length, + number_active_channels: info.num_active_channels, + number_pending_channels: info.num_pending_channels, + number_peers: info.num_peers, + largest_local_balance: largestLocalBalance, + largest_remote_balance: largestRemoteBalance, + total_local_balance: totalLocalBalance, + lnd_version: info.version, + relay_version: tag, + payment_channel: '', + hosting_provider: '', + open_channel_data: channels, + pending_channel_data: pendingChannels, + synced_to_chain: info.synced_to_chain, + synced_to_graph: info.synced_to_graph, + best_header_timestamp: info.best_header_timestamp, + testnet: info.testnet, + clean, + }; + resolve(node); + } + }); + }); + }); + }); + })); +} +exports.nodeinfo = nodeinfo; +function isClean() { + return __awaiter(this, void 0, void 0, function* () { + // has owner but with no auth token + const cleanOwner = yield models_1.models.Contact.findOne({ where: { isOwner: true, authToken: null } }); + if (cleanOwner) + return true; + return false; + }); +} +//# sourceMappingURL=nodeinfo.js.map \ No newline at end of file diff --git a/dist/api/utils/nodeinfo.js.map b/dist/api/utils/nodeinfo.js.map new file mode 100644 index 0000000..767de57 --- /dev/null +++ b/dist/api/utils/nodeinfo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"nodeinfo.js","sourceRoot":"","sources":["../../../api/utils/nodeinfo.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/utils/res.js b/dist/api/utils/res.js new file mode 100644 index 0000000..d479962 --- /dev/null +++ b/dist/api/utils/res.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function success(res, json) { + res.status(200); + res.json({ + success: true, + response: json, + }); + res.end(); +} +exports.success = success; +function failure(res, e) { + res.status(400); + res.json({ + success: false, + error: (e && e.message) || e, + }); + res.end(); +} +exports.failure = failure; +//# sourceMappingURL=res.js.map \ No newline at end of file diff --git a/dist/api/utils/res.js.map b/dist/api/utils/res.js.map new file mode 100644 index 0000000..270795f --- /dev/null +++ b/dist/api/utils/res.js.map @@ -0,0 +1 @@ +{"version":3,"file":"res.js","sourceRoot":"","sources":["../../../api/utils/res.ts"],"names":[],"mappings":";;AAAA,SAAS,OAAO,CAAC,GAAG,EAAE,IAAI;IACxB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC;AAWO,0BAAO;AATf,SAAS,OAAO,CAAC,GAAG,EAAE,CAAC;IACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,IAAI,CAAC;QACP,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC;AAEgB,0BAAO"} \ No newline at end of file diff --git a/dist/api/utils/setup.js b/dist/api/utils/setup.js new file mode 100644 index 0000000..fd1d204 --- /dev/null +++ b/dist/api/utils/setup.js @@ -0,0 +1,96 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const lightning_1 = require("./lightning"); +const models_1 = require("../models"); +const child_process_1 = require("child_process"); +const USER_VERSION = 1; +const setupDatabase = () => __awaiter(void 0, void 0, void 0, function* () { + console.log('=> [db] starting setup...'); + yield setVersion(); + try { + yield models_1.sequelize.sync(); + console.log("=> [db] done syncing"); + } + catch (e) { + console.log("db sync failed", e); + } + yield migrate(); + setupOwnerContact(); + console.log('=> [db] setup done'); +}); +exports.setupDatabase = setupDatabase; +function setVersion() { + return __awaiter(this, void 0, void 0, function* () { + try { + yield models_1.sequelize.query(`PRAGMA user_version = ${USER_VERSION}`); + } + catch (e) { + console.log('=> setVersion failed', e); + } + }); +} +function migrate() { + return __awaiter(this, void 0, void 0, function* () { + try { + yield models_1.sequelize.query(`update sphinx_chats SET deleted=false where deleted is null`); + } + catch (e) { + console.log('=> migrate failed', e); + } + }); +} +const setupOwnerContact = () => __awaiter(void 0, void 0, void 0, function* () { + const owner = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + if (!owner) { + const lightning = yield lightning_1.loadLightning(); + lightning.getInfo({}, (err, info) => __awaiter(void 0, void 0, void 0, function* () { + if (err) { + console.log('[db] error creating node owner due to lnd failure', err); + } + else { + try { + const one = yield models_1.models.Contact.findOne({ where: { id: 1 } }); + if (!one) { + const contact = yield models_1.models.Contact.create({ + id: 1, + publicKey: info.identity_pubkey, + isOwner: true, + authToken: null + }); + console.log('[db] created node owner contact, id:', contact.id); + } + } + catch (error) { + console.log('[db] error creating owner contact', error); + } + } + })); + } +}); +exports.setupOwnerContact = setupOwnerContact; +const runMigrations = () => __awaiter(void 0, void 0, void 0, function* () { + yield new Promise((resolve, reject) => { + const migrate = child_process_1.exec('node_modules/.bin/sequelize db:migrate', { env: process.env }, (err, stdout, stderr) => { + if (err) { + reject(err); + } + else { + resolve(); + } + }); + // Forward stdout+stderr to this process + migrate.stdout.pipe(process.stdout); + migrate.stderr.pipe(process.stderr); + }); +}); +exports.runMigrations = runMigrations; +//# sourceMappingURL=setup.js.map \ No newline at end of file diff --git a/dist/api/utils/setup.js.map b/dist/api/utils/setup.js.map new file mode 100644 index 0000000..2b0b23c --- /dev/null +++ b/dist/api/utils/setup.js.map @@ -0,0 +1 @@ +{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../api/utils/setup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/api/utils/socket.js b/dist/api/utils/socket.js new file mode 100644 index 0000000..3c4edcf --- /dev/null +++ b/dist/api/utils/socket.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const WebSocket = require("ws"); +let connections = new Map(); +let connectionCounter = 0; +const connect = (server) => { + server = new WebSocket.Server({ server }); + console.log('[socket] connected to server'); + server.on('connection', socket => { + console.log('[socket] connection received'); + var id = connectionCounter++; + connections.set(id, socket); + }); +}; +exports.connect = connect; +const send = (body) => { + connections.forEach((socket, index) => { + socket.send(body); + }); +}; +exports.send = send; +const sendJson = (object) => { + send(JSON.stringify(object)); +}; +exports.sendJson = sendJson; +//# sourceMappingURL=socket.js.map \ No newline at end of file diff --git a/dist/api/utils/socket.js.map b/dist/api/utils/socket.js.map new file mode 100644 index 0000000..95c2c21 --- /dev/null +++ b/dist/api/utils/socket.js.map @@ -0,0 +1 @@ +{"version":3,"file":"socket.js","sourceRoot":"","sources":["../../../api/utils/socket.ts"],"names":[],"mappings":";;AAAA,gCAA+B;AAE/B,IAAI,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;AAC3B,IAAI,iBAAiB,GAAG,CAAC,CAAA;AAEzB,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE;IACzB,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IAEzC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAC3C,IAAI,EAAE,GAAG,iBAAiB,EAAE,CAAC;QAC7B,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAA;AAaC,0BAAO;AAXT,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;IACpB,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAQC,oBAAI;AANN,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE;IAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9B,CAAC,CAAA;AAKC,4BAAQ"} \ No newline at end of file diff --git a/dist/api/utils/zbase32/index.js b/dist/api/utils/zbase32/index.js new file mode 100644 index 0000000..99ddd1e --- /dev/null +++ b/dist/api/utils/zbase32/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +require("./tv42_zbase32_gopherjs"); +function encode(b) { + return global['zbase32'].Encode(b); +} +exports.encode = encode; +function decode(txt) { + return global['zbase32'].Decode(txt); +} +exports.decode = decode; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/api/utils/zbase32/index.js.map b/dist/api/utils/zbase32/index.js.map new file mode 100644 index 0000000..a5c1c2b --- /dev/null +++ b/dist/api/utils/zbase32/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../api/utils/zbase32/index.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAEhC,SAAS,MAAM,CAAC,CAAC;IACb,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACtC,CAAC;AAKG,wBAAM;AAJV,SAAS,MAAM,CAAC,GAAG;IACf,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAGG,wBAAM"} \ No newline at end of file diff --git a/dist/api/utils/zbase32/tv42_zbase32_gopherjs.js b/dist/api/utils/zbase32/tv42_zbase32_gopherjs.js new file mode 100644 index 0000000..3dc88fd --- /dev/null +++ b/dist/api/utils/zbase32/tv42_zbase32_gopherjs.js @@ -0,0 +1,47246 @@ +"use strict"; +(function () { + Error.stackTraceLimit = Infinity; + var $global, $module; + if (typeof window !== "undefined") { /* web page */ + $global = window; + } + else if (typeof self !== "undefined") { /* web worker */ + $global = self; + } + else if (typeof global !== "undefined") { /* Node.js */ + $global = global; + $global.require = require; + } + else { /* others (e.g. Nashorn) */ + $global = this; + } + if ($global === undefined || $global.Array === undefined) { + throw new Error("no global object found"); + } + if (typeof module !== "undefined") { + $module = module; + } + var $packages = {}, $idCounter = 0; + var $keys = function (m) { return m ? Object.keys(m) : []; }; + var $flushConsole = function () { }; + var $throwRuntimeError; /* set by package "runtime" */ + var $throwNilPointerError = function () { $throwRuntimeError("invalid memory address or nil pointer dereference"); }; + var $call = function (fn, rcvr, args) { return fn.apply(rcvr, args); }; + var $makeFunc = function (fn) { return function () { return $externalize(fn(this, new ($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments, []))), $emptyInterface); }; }; + var $unused = function (v) { }; + var $mapArray = function (array, f) { + var newArray = new array.constructor(array.length); + for (var i = 0; i < array.length; i++) { + newArray[i] = f(array[i]); + } + return newArray; + }; + var $methodVal = function (recv, name) { + var vals = recv.$methodVals || {}; + recv.$methodVals = vals; /* noop for primitives */ + var f = vals[name]; + if (f !== undefined) { + return f; + } + var method = recv[name]; + f = function () { + $stackDepthOffset--; + try { + return method.apply(recv, arguments); + } + finally { + $stackDepthOffset++; + } + }; + vals[name] = f; + return f; + }; + var $methodExpr = function (typ, name) { + var method = typ.prototype[name]; + if (method.$expr === undefined) { + method.$expr = function () { + $stackDepthOffset--; + try { + if (typ.wrapped) { + arguments[0] = new typ(arguments[0]); + } + return Function.call.apply(method, arguments); + } + finally { + $stackDepthOffset++; + } + }; + } + return method.$expr; + }; + var $ifaceMethodExprs = {}; + var $ifaceMethodExpr = function (name) { + var expr = $ifaceMethodExprs["$" + name]; + if (expr === undefined) { + expr = $ifaceMethodExprs["$" + name] = function () { + $stackDepthOffset--; + try { + return Function.call.apply(arguments[0][name], arguments); + } + finally { + $stackDepthOffset++; + } + }; + } + return expr; + }; + var $subslice = function (slice, low, high, max) { + if (high === undefined) { + high = slice.$length; + } + if (max === undefined) { + max = slice.$capacity; + } + if (low < 0 || high < low || max < high || high > slice.$capacity || max > slice.$capacity) { + $throwRuntimeError("slice bounds out of range"); + } + if (slice === slice.constructor.nil) { + return slice; + } + var s = new slice.constructor(slice.$array); + s.$offset = slice.$offset + low; + s.$length = high - low; + s.$capacity = max - low; + return s; + }; + var $substring = function (str, low, high) { + if (low < 0 || high < low || high > str.length) { + $throwRuntimeError("slice bounds out of range"); + } + return str.substring(low, high); + }; + var $sliceToArray = function (slice) { + if (slice.$array.constructor !== Array) { + return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length); + } + return slice.$array.slice(slice.$offset, slice.$offset + slice.$length); + }; + var $decodeRune = function (str, pos) { + var c0 = str.charCodeAt(pos); + if (c0 < 0x80) { + return [c0, 1]; + } + if (c0 !== c0 || c0 < 0xC0) { + return [0xFFFD, 1]; + } + var c1 = str.charCodeAt(pos + 1); + if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) { + return [0xFFFD, 1]; + } + if (c0 < 0xE0) { + var r = (c0 & 0x1F) << 6 | (c1 & 0x3F); + if (r <= 0x7F) { + return [0xFFFD, 1]; + } + return [r, 2]; + } + var c2 = str.charCodeAt(pos + 2); + if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) { + return [0xFFFD, 1]; + } + if (c0 < 0xF0) { + var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F); + if (r <= 0x7FF) { + return [0xFFFD, 1]; + } + if (0xD800 <= r && r <= 0xDFFF) { + return [0xFFFD, 1]; + } + return [r, 3]; + } + var c3 = str.charCodeAt(pos + 3); + if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) { + return [0xFFFD, 1]; + } + if (c0 < 0xF8) { + var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F); + if (r <= 0xFFFF || 0x10FFFF < r) { + return [0xFFFD, 1]; + } + return [r, 4]; + } + return [0xFFFD, 1]; + }; + var $encodeRune = function (r) { + if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) { + r = 0xFFFD; + } + if (r <= 0x7F) { + return String.fromCharCode(r); + } + if (r <= 0x7FF) { + return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F)); + } + if (r <= 0xFFFF) { + return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); + } + return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); + }; + var $stringToBytes = function (str) { + var array = new Uint8Array(str.length); + for (var i = 0; i < str.length; i++) { + array[i] = str.charCodeAt(i); + } + return array; + }; + var $bytesToString = function (slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i += 10000) { + str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000))); + } + return str; + }; + var $stringToRunes = function (str) { + var array = new Int32Array(str.length); + var rune, j = 0; + for (var i = 0; i < str.length; i += rune[1], j++) { + rune = $decodeRune(str, i); + array[j] = rune[0]; + } + return array.subarray(0, j); + }; + var $runesToString = function (slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i++) { + str += $encodeRune(slice.$array[slice.$offset + i]); + } + return str; + }; + var $copyString = function (dst, src) { + var n = Math.min(src.length, dst.$length); + for (var i = 0; i < n; i++) { + dst.$array[dst.$offset + i] = src.charCodeAt(i); + } + return n; + }; + var $copySlice = function (dst, src) { + var n = Math.min(src.$length, dst.$length); + $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem); + return n; + }; + var $copyArray = function (dst, src, dstOffset, srcOffset, n, elem) { + if (n === 0 || (dst === src && dstOffset === srcOffset)) { + return; + } + if (src.subarray) { + dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset); + return; + } + switch (elem.kind) { + case $kindArray: + case $kindStruct: + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + for (var i = 0; i < n; i++) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + dst[dstOffset + i] = src[srcOffset + i]; + } + return; + } + for (var i = 0; i < n; i++) { + dst[dstOffset + i] = src[srcOffset + i]; + } + }; + var $clone = function (src, type) { + var clone = type.zero(); + type.copy(clone, src); + return clone; + }; + var $pointerOfStructConversion = function (obj, type) { + if (obj.$proxies === undefined) { + obj.$proxies = {}; + obj.$proxies[obj.constructor.string] = obj; + } + var proxy = obj.$proxies[type.string]; + if (proxy === undefined) { + var properties = {}; + for (var i = 0; i < type.elem.fields.length; i++) { + (function (fieldProp) { + properties[fieldProp] = { + get: function () { return obj[fieldProp]; }, + set: function (value) { obj[fieldProp] = value; } + }; + })(type.elem.fields[i].prop); + } + proxy = Object.create(type.prototype, properties); + proxy.$val = proxy; + obj.$proxies[type.string] = proxy; + proxy.$proxies = obj.$proxies; + } + return proxy; + }; + var $append = function (slice) { + return $internalAppend(slice, arguments, 1, arguments.length - 1); + }; + var $appendSlice = function (slice, toAppend) { + if (toAppend.constructor === String) { + var bytes = $stringToBytes(toAppend); + return $internalAppend(slice, bytes, 0, bytes.length); + } + return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length); + }; + var $internalAppend = function (slice, array, offset, length) { + if (length === 0) { + return slice; + } + var newArray = slice.$array; + var newOffset = slice.$offset; + var newLength = slice.$length + length; + var newCapacity = slice.$capacity; + if (newLength > newCapacity) { + newOffset = 0; + newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4)); + if (slice.$array.constructor === Array) { + newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length); + newArray.length = newCapacity; + var zero = slice.constructor.elem.zero; + for (var i = slice.$length; i < newCapacity; i++) { + newArray[i] = zero(); + } + } + else { + newArray = new slice.$array.constructor(newCapacity); + newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length)); + } + } + $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem); + var newSlice = new slice.constructor(newArray); + newSlice.$offset = newOffset; + newSlice.$length = newLength; + newSlice.$capacity = newCapacity; + return newSlice; + }; + var $equal = function (a, b, type) { + if (type === $jsObjectPtr) { + return a === b; + } + switch (type.kind) { + case $kindComplex64: + case $kindComplex128: + return a.$real === b.$real && a.$imag === b.$imag; + case $kindInt64: + case $kindUint64: + return a.$high === b.$high && a.$low === b.$low; + case $kindArray: + if (a.length !== b.length) { + return false; + } + for (var i = 0; i < a.length; i++) { + if (!$equal(a[i], b[i], type.elem)) { + return false; + } + } + return true; + case $kindStruct: + for (var i = 0; i < type.fields.length; i++) { + var f = type.fields[i]; + if (!$equal(a[f.prop], b[f.prop], f.typ)) { + return false; + } + } + return true; + case $kindInterface: + return $interfaceIsEqual(a, b); + default: + return a === b; + } + }; + var $interfaceIsEqual = function (a, b) { + if (a === $ifaceNil || b === $ifaceNil) { + return a === b; + } + if (a.constructor !== b.constructor) { + return false; + } + if (a.constructor === $jsObjectPtr) { + return a.object === b.object; + } + if (!a.constructor.comparable) { + $throwRuntimeError("comparing uncomparable type " + a.constructor.string); + } + return $equal(a.$val, b.$val, a.constructor); + }; + var $min = Math.min; + var $mod = function (x, y) { return x % y; }; + var $parseInt = parseInt; + var $parseFloat = function (f) { + if (f !== undefined && f !== null && f.constructor === Number) { + return f; + } + return parseFloat(f); + }; + var $froundBuf = new Float32Array(1); + var $fround = Math.fround || function (f) { + $froundBuf[0] = f; + return $froundBuf[0]; + }; + var $imul = Math.imul || function (a, b) { + var ah = (a >>> 16) & 0xffff; + var al = a & 0xffff; + var bh = (b >>> 16) & 0xffff; + var bl = b & 0xffff; + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0); + }; + var $floatKey = function (f) { + if (f !== f) { + $idCounter++; + return "NaN$" + $idCounter; + } + return String(f); + }; + var $flatten64 = function (x) { + return x.$high * 4294967296 + x.$low; + }; + var $shiftLeft64 = function (x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$low << (y - 32), 0); + } + return new x.constructor(0, 0); + }; + var $shiftRightInt64 = function (x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0); + } + if (x.$high < 0) { + return new x.constructor(-1, 4294967295); + } + return new x.constructor(0, 0); + }; + var $shiftRightUint64 = function (x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(0, x.$high >>> (y - 32)); + } + return new x.constructor(0, 0); + }; + var $mul64 = function (x, y) { + var high = 0, low = 0; + if ((y.$low & 1) !== 0) { + high = x.$high; + low = x.$low; + } + for (var i = 1; i < 32; i++) { + if ((y.$low & 1 << i) !== 0) { + high += x.$high << i | x.$low >>> (32 - i); + low += (x.$low << i) >>> 0; + } + } + for (var i = 0; i < 32; i++) { + if ((y.$high & 1 << i) !== 0) { + high += x.$low << i; + } + } + return new x.constructor(high, low); + }; + var $div64 = function (x, y, returnRemainder) { + if (y.$high === 0 && y.$low === 0) { + $throwRuntimeError("integer divide by zero"); + } + var s = 1; + var rs = 1; + var xHigh = x.$high; + var xLow = x.$low; + if (xHigh < 0) { + s = -1; + rs = -1; + xHigh = -xHigh; + if (xLow !== 0) { + xHigh--; + xLow = 4294967296 - xLow; + } + } + var yHigh = y.$high; + var yLow = y.$low; + if (y.$high < 0) { + s *= -1; + yHigh = -yHigh; + if (yLow !== 0) { + yHigh--; + yLow = 4294967296 - yLow; + } + } + var high = 0, low = 0, n = 0; + while (yHigh < 2147483648 && ((xHigh > yHigh) || (xHigh === yHigh && xLow > yLow))) { + yHigh = (yHigh << 1 | yLow >>> 31) >>> 0; + yLow = (yLow << 1) >>> 0; + n++; + } + for (var i = 0; i <= n; i++) { + high = high << 1 | low >>> 31; + low = (low << 1) >>> 0; + if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) { + xHigh = xHigh - yHigh; + xLow = xLow - yLow; + if (xLow < 0) { + xHigh--; + xLow += 4294967296; + } + low++; + if (low === 4294967296) { + high++; + low = 0; + } + } + yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0; + yHigh = yHigh >>> 1; + } + if (returnRemainder) { + return new x.constructor(xHigh * rs, xLow * rs); + } + return new x.constructor(high * s, low * s); + }; + var $divComplex = function (n, d) { + var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity; + var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity; + var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag); + var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag); + if (nnan || dnan) { + return new n.constructor(NaN, NaN); + } + if (ninf && !dinf) { + return new n.constructor(Infinity, Infinity); + } + if (!ninf && dinf) { + return new n.constructor(0, 0); + } + if (d.$real === 0 && d.$imag === 0) { + if (n.$real === 0 && n.$imag === 0) { + return new n.constructor(NaN, NaN); + } + return new n.constructor(Infinity, Infinity); + } + var a = Math.abs(d.$real); + var b = Math.abs(d.$imag); + if (a <= b) { + var ratio = d.$real / d.$imag; + var denom = d.$real * ratio + d.$imag; + return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom); + } + var ratio = d.$imag / d.$real; + var denom = d.$imag * ratio + d.$real; + return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom); + }; + var $kindBool = 1; + var $kindInt = 2; + var $kindInt8 = 3; + var $kindInt16 = 4; + var $kindInt32 = 5; + var $kindInt64 = 6; + var $kindUint = 7; + var $kindUint8 = 8; + var $kindUint16 = 9; + var $kindUint32 = 10; + var $kindUint64 = 11; + var $kindUintptr = 12; + var $kindFloat32 = 13; + var $kindFloat64 = 14; + var $kindComplex64 = 15; + var $kindComplex128 = 16; + var $kindArray = 17; + var $kindChan = 18; + var $kindFunc = 19; + var $kindInterface = 20; + var $kindMap = 21; + var $kindPtr = 22; + var $kindSlice = 23; + var $kindString = 24; + var $kindStruct = 25; + var $kindUnsafePointer = 26; + var $methodSynthesizers = []; + var $addMethodSynthesizer = function (f) { + if ($methodSynthesizers === null) { + f(); + return; + } + $methodSynthesizers.push(f); + }; + var $synthesizeMethods = function () { + $methodSynthesizers.forEach(function (f) { f(); }); + $methodSynthesizers = null; + }; + var $ifaceKeyFor = function (x) { + if (x === $ifaceNil) { + return 'nil'; + } + var c = x.constructor; + return c.string + '$' + c.keyFor(x.$val); + }; + var $identity = function (x) { return x; }; + var $typeIDCounter = 0; + var $idKey = function (x) { + if (x.$id === undefined) { + $idCounter++; + x.$id = $idCounter; + } + return String(x.$id); + }; + var $newType = function (size, kind, string, named, pkg, exported, constructor) { + var typ; + switch (kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $identity; + break; + case $kindString: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function (x) { return "$" + x; }; + break; + case $kindFloat32: + case $kindFloat64: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function (x) { return $floatKey(x); }; + break; + case $kindInt64: + typ = function (high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function (x) { return x.$high + "$" + x.$low; }; + break; + case $kindUint64: + typ = function (high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function (x) { return x.$high + "$" + x.$low; }; + break; + case $kindComplex64: + typ = function (real, imag) { + this.$real = $fround(real); + this.$imag = $fround(imag); + this.$val = this; + }; + typ.keyFor = function (x) { return x.$real + "$" + x.$imag; }; + break; + case $kindComplex128: + typ = function (real, imag) { + this.$real = real; + this.$imag = imag; + this.$val = this; + }; + typ.keyFor = function (x) { return x.$real + "$" + x.$imag; }; + break; + case $kindArray: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, function (array) { + this.$get = function () { return array; }; + this.$set = function (v) { typ.copy(this, v); }; + this.$val = array; + }); + typ.init = function (elem, len) { + typ.elem = elem; + typ.len = len; + typ.comparable = elem.comparable; + typ.keyFor = function (x) { + return Array.prototype.join.call($mapArray(x, function (e) { + return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }), "$"); + }; + typ.copy = function (dst, src) { + $copyArray(dst, src, 0, 0, src.length, elem); + }; + typ.ptr.init(typ); + Object.defineProperty(typ.ptr.nil, "nilCheck", { get: $throwNilPointerError }); + }; + break; + case $kindChan: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $idKey; + typ.init = function (elem, sendOnly, recvOnly) { + typ.elem = elem; + typ.sendOnly = sendOnly; + typ.recvOnly = recvOnly; + }; + break; + case $kindFunc: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function (params, results, variadic) { + typ.params = params; + typ.results = results; + typ.variadic = variadic; + typ.comparable = false; + }; + break; + case $kindInterface: + typ = { implementedBy: {}, missingMethodFor: {} }; + typ.keyFor = $ifaceKeyFor; + typ.init = function (methods) { + typ.methods = methods; + methods.forEach(function (m) { + $ifaceNil[m.prop] = $throwNilPointerError; + }); + }; + break; + case $kindMap: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function (key, elem) { + typ.key = key; + typ.elem = elem; + typ.comparable = false; + }; + break; + case $kindPtr: + typ = constructor || function (getter, setter, target) { + this.$get = getter; + this.$set = setter; + this.$target = target; + this.$val = this; + }; + typ.keyFor = $idKey; + typ.init = function (elem) { + typ.elem = elem; + typ.wrapped = (elem.kind === $kindArray); + typ.nil = new typ($throwNilPointerError, $throwNilPointerError); + }; + break; + case $kindSlice: + typ = function (array) { + if (array.constructor !== typ.nativeArray) { + array = new typ.nativeArray(array); + } + this.$array = array; + this.$offset = 0; + this.$length = array.length; + this.$capacity = array.length; + this.$val = this; + }; + typ.init = function (elem) { + typ.elem = elem; + typ.comparable = false; + typ.nativeArray = $nativeArray(elem.kind); + typ.nil = new typ([]); + }; + break; + case $kindStruct: + typ = function (v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor); + typ.ptr.elem = typ; + typ.ptr.prototype.$get = function () { return this; }; + typ.ptr.prototype.$set = function (v) { typ.copy(this, v); }; + typ.init = function (pkgPath, fields) { + typ.pkgPath = pkgPath; + typ.fields = fields; + fields.forEach(function (f) { + if (!f.typ.comparable) { + typ.comparable = false; + } + }); + typ.keyFor = function (x) { + var val = x.$val; + return $mapArray(fields, function (f) { + return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }).join("$"); + }; + typ.copy = function (dst, src) { + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + switch (f.typ.kind) { + case $kindArray: + case $kindStruct: + f.typ.copy(dst[f.prop], src[f.prop]); + continue; + default: + dst[f.prop] = src[f.prop]; + continue; + } + } + }; + /* nil value */ + var properties = {}; + fields.forEach(function (f) { + properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError }; + }); + typ.ptr.nil = Object.create(constructor.prototype, properties); + typ.ptr.nil.$val = typ.ptr.nil; + /* methods for embedded fields */ + $addMethodSynthesizer(function () { + var synthesizeMethod = function (target, m, f) { + if (target.prototype[m.prop] !== undefined) { + return; + } + target.prototype[m.prop] = function () { + var v = this.$val[f.prop]; + if (f.typ === $jsObjectPtr) { + v = new $jsObjectPtr(v); + } + if (v.$val === undefined) { + v = new f.typ(v); + } + return v[m.prop].apply(v, arguments); + }; + }; + fields.forEach(function (f) { + if (f.embedded) { + $methodSet(f.typ).forEach(function (m) { + synthesizeMethod(typ, m, f); + synthesizeMethod(typ.ptr, m, f); + }); + $methodSet($ptrType(f.typ)).forEach(function (m) { + synthesizeMethod(typ.ptr, m, f); + }); + } + }); + }); + }; + break; + default: + $panic(new $String("invalid kind: " + kind)); + } + switch (kind) { + case $kindBool: + case $kindMap: + typ.zero = function () { return false; }; + break; + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + case $kindFloat32: + case $kindFloat64: + typ.zero = function () { return 0; }; + break; + case $kindString: + typ.zero = function () { return ""; }; + break; + case $kindInt64: + case $kindUint64: + case $kindComplex64: + case $kindComplex128: + var zero = new typ(0, 0); + typ.zero = function () { return zero; }; + break; + case $kindPtr: + case $kindSlice: + typ.zero = function () { return typ.nil; }; + break; + case $kindChan: + typ.zero = function () { return $chanNil; }; + break; + case $kindFunc: + typ.zero = function () { return $throwNilPointerError; }; + break; + case $kindInterface: + typ.zero = function () { return $ifaceNil; }; + break; + case $kindArray: + typ.zero = function () { + var arrayClass = $nativeArray(typ.elem.kind); + if (arrayClass !== Array) { + return new arrayClass(typ.len); + } + var array = new Array(typ.len); + for (var i = 0; i < typ.len; i++) { + array[i] = typ.elem.zero(); + } + return array; + }; + break; + case $kindStruct: + typ.zero = function () { return new typ.ptr(); }; + break; + default: + $panic(new $String("invalid kind: " + kind)); + } + typ.id = $typeIDCounter; + $typeIDCounter++; + typ.size = size; + typ.kind = kind; + typ.string = string; + typ.named = named; + typ.pkg = pkg; + typ.exported = exported; + typ.methods = []; + typ.methodSetCache = null; + typ.comparable = true; + return typ; + }; + var $methodSet = function (typ) { + if (typ.methodSetCache !== null) { + return typ.methodSetCache; + } + var base = {}; + var isPtr = (typ.kind === $kindPtr); + if (isPtr && typ.elem.kind === $kindInterface) { + typ.methodSetCache = []; + return []; + } + var current = [{ typ: isPtr ? typ.elem : typ, indirect: isPtr }]; + var seen = {}; + while (current.length > 0) { + var next = []; + var mset = []; + current.forEach(function (e) { + if (seen[e.typ.string]) { + return; + } + seen[e.typ.string] = true; + if (e.typ.named) { + mset = mset.concat(e.typ.methods); + if (e.indirect) { + mset = mset.concat($ptrType(e.typ).methods); + } + } + switch (e.typ.kind) { + case $kindStruct: + e.typ.fields.forEach(function (f) { + if (f.embedded) { + var fTyp = f.typ; + var fIsPtr = (fTyp.kind === $kindPtr); + next.push({ typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr }); + } + }); + break; + case $kindInterface: + mset = mset.concat(e.typ.methods); + break; + } + }); + mset.forEach(function (m) { + if (base[m.name] === undefined) { + base[m.name] = m; + } + }); + current = next; + } + typ.methodSetCache = []; + Object.keys(base).sort().forEach(function (name) { + typ.methodSetCache.push(base[name]); + }); + return typ.methodSetCache; + }; + var $Bool = $newType(1, $kindBool, "bool", true, "", false, null); + var $Int = $newType(4, $kindInt, "int", true, "", false, null); + var $Int8 = $newType(1, $kindInt8, "int8", true, "", false, null); + var $Int16 = $newType(2, $kindInt16, "int16", true, "", false, null); + var $Int32 = $newType(4, $kindInt32, "int32", true, "", false, null); + var $Int64 = $newType(8, $kindInt64, "int64", true, "", false, null); + var $Uint = $newType(4, $kindUint, "uint", true, "", false, null); + var $Uint8 = $newType(1, $kindUint8, "uint8", true, "", false, null); + var $Uint16 = $newType(2, $kindUint16, "uint16", true, "", false, null); + var $Uint32 = $newType(4, $kindUint32, "uint32", true, "", false, null); + var $Uint64 = $newType(8, $kindUint64, "uint64", true, "", false, null); + var $Uintptr = $newType(4, $kindUintptr, "uintptr", true, "", false, null); + var $Float32 = $newType(4, $kindFloat32, "float32", true, "", false, null); + var $Float64 = $newType(8, $kindFloat64, "float64", true, "", false, null); + var $Complex64 = $newType(8, $kindComplex64, "complex64", true, "", false, null); + var $Complex128 = $newType(16, $kindComplex128, "complex128", true, "", false, null); + var $String = $newType(8, $kindString, "string", true, "", false, null); + var $UnsafePointer = $newType(4, $kindUnsafePointer, "unsafe.Pointer", true, "", false, null); + var $nativeArray = function (elemKind) { + switch (elemKind) { + case $kindInt: + return Int32Array; + case $kindInt8: + return Int8Array; + case $kindInt16: + return Int16Array; + case $kindInt32: + return Int32Array; + case $kindUint: + return Uint32Array; + case $kindUint8: + return Uint8Array; + case $kindUint16: + return Uint16Array; + case $kindUint32: + return Uint32Array; + case $kindUintptr: + return Uint32Array; + case $kindFloat32: + return Float32Array; + case $kindFloat64: + return Float64Array; + default: + return Array; + } + }; + var $toNativeArray = function (elemKind, array) { + var nativeArray = $nativeArray(elemKind); + if (nativeArray === Array) { + return array; + } + return new nativeArray(array); + }; + var $arrayTypes = {}; + var $arrayType = function (elem, len) { + var typeKey = elem.id + "$" + len; + var typ = $arrayTypes[typeKey]; + if (typ === undefined) { + typ = $newType(12, $kindArray, "[" + len + "]" + elem.string, false, "", false, null); + $arrayTypes[typeKey] = typ; + typ.init(elem, len); + } + return typ; + }; + var $chanType = function (elem, sendOnly, recvOnly) { + var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " ") + elem.string; + var field = sendOnly ? "SendChan" : (recvOnly ? "RecvChan" : "Chan"); + var typ = elem[field]; + if (typ === undefined) { + typ = $newType(4, $kindChan, string, false, "", false, null); + elem[field] = typ; + typ.init(elem, sendOnly, recvOnly); + } + return typ; + }; + var $Chan = function (elem, capacity) { + if (capacity < 0 || capacity > 2147483647) { + $throwRuntimeError("makechan: size out of range"); + } + this.$elem = elem; + this.$capacity = capacity; + this.$buffer = []; + this.$sendQueue = []; + this.$recvQueue = []; + this.$closed = false; + }; + var $chanNil = new $Chan(null, 0); + $chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function () { }, shift: function () { return undefined; }, indexOf: function () { return -1; } }; + var $funcTypes = {}; + var $funcType = function (params, results, variadic) { + var typeKey = $mapArray(params, function (p) { return p.id; }).join(",") + "$" + $mapArray(results, function (r) { return r.id; }).join(",") + "$" + variadic; + var typ = $funcTypes[typeKey]; + if (typ === undefined) { + var paramTypes = $mapArray(params, function (p) { return p.string; }); + if (variadic) { + paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substr(2); + } + var string = "func(" + paramTypes.join(", ") + ")"; + if (results.length === 1) { + string += " " + results[0].string; + } + else if (results.length > 1) { + string += " (" + $mapArray(results, function (r) { return r.string; }).join(", ") + ")"; + } + typ = $newType(4, $kindFunc, string, false, "", false, null); + $funcTypes[typeKey] = typ; + typ.init(params, results, variadic); + } + return typ; + }; + var $interfaceTypes = {}; + var $interfaceType = function (methods) { + var typeKey = $mapArray(methods, function (m) { return m.pkg + "," + m.name + "," + m.typ.id; }).join("$"); + var typ = $interfaceTypes[typeKey]; + if (typ === undefined) { + var string = "interface {}"; + if (methods.length !== 0) { + string = "interface { " + $mapArray(methods, function (m) { + return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substr(4); + }).join("; ") + " }"; + } + typ = $newType(8, $kindInterface, string, false, "", false, null); + $interfaceTypes[typeKey] = typ; + typ.init(methods); + } + return typ; + }; + var $emptyInterface = $interfaceType([]); + var $ifaceNil = {}; + var $error = $newType(8, $kindInterface, "error", true, "", false, null); + $error.init([{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]); + var $mapTypes = {}; + var $mapType = function (key, elem) { + var typeKey = key.id + "$" + elem.id; + var typ = $mapTypes[typeKey]; + if (typ === undefined) { + typ = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null); + $mapTypes[typeKey] = typ; + typ.init(key, elem); + } + return typ; + }; + var $makeMap = function (keyForFunc, entries) { + var m = {}; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + m[keyForFunc(e.k)] = e; + } + return m; + }; + var $ptrType = function (elem) { + var typ = elem.ptr; + if (typ === undefined) { + typ = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null); + elem.ptr = typ; + typ.init(elem); + } + return typ; + }; + var $newDataPointer = function (data, constructor) { + if (constructor.elem.kind === $kindStruct) { + return data; + } + return new constructor(function () { return data; }, function (v) { data = v; }); + }; + var $indexPtr = function (array, index, constructor) { + array.$ptr = array.$ptr || {}; + return array.$ptr[index] || (array.$ptr[index] = new constructor(function () { return array[index]; }, function (v) { array[index] = v; })); + }; + var $sliceType = function (elem) { + var typ = elem.slice; + if (typ === undefined) { + typ = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null); + elem.slice = typ; + typ.init(elem); + } + return typ; + }; + var $makeSlice = function (typ, length, capacity) { + capacity = capacity || length; + if (length < 0 || length > 2147483647) { + $throwRuntimeError("makeslice: len out of range"); + } + if (capacity < 0 || capacity < length || capacity > 2147483647) { + $throwRuntimeError("makeslice: cap out of range"); + } + var array = new typ.nativeArray(capacity); + if (typ.nativeArray === Array) { + for (var i = 0; i < capacity; i++) { + array[i] = typ.elem.zero(); + } + } + var slice = new typ(array); + slice.$length = length; + return slice; + }; + var $structTypes = {}; + var $structType = function (pkgPath, fields) { + var typeKey = $mapArray(fields, function (f) { return f.name + "," + f.typ.id + "," + f.tag; }).join("$"); + var typ = $structTypes[typeKey]; + if (typ === undefined) { + var string = "struct { " + $mapArray(fields, function (f) { + return f.name + " " + f.typ.string + (f.tag !== "" ? (" \"" + f.tag.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"") : ""); + }).join("; ") + " }"; + if (fields.length === 0) { + string = "struct {}"; + } + typ = $newType(0, $kindStruct, string, false, "", false, function () { + this.$val = this; + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + var arg = arguments[i]; + this[f.prop] = arg !== undefined ? arg : f.typ.zero(); + } + }); + $structTypes[typeKey] = typ; + typ.init(pkgPath, fields); + } + return typ; + }; + var $assertType = function (value, type, returnTuple) { + var isInterface = (type.kind === $kindInterface), ok, missingMethod = ""; + if (value === $ifaceNil) { + ok = false; + } + else if (!isInterface) { + ok = value.constructor === type; + } + else { + var valueTypeString = value.constructor.string; + ok = type.implementedBy[valueTypeString]; + if (ok === undefined) { + ok = true; + var valueMethodSet = $methodSet(value.constructor); + var interfaceMethods = type.methods; + for (var i = 0; i < interfaceMethods.length; i++) { + var tm = interfaceMethods[i]; + var found = false; + for (var j = 0; j < valueMethodSet.length; j++) { + var vm = valueMethodSet[j]; + if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) { + found = true; + break; + } + } + if (!found) { + ok = false; + type.missingMethodFor[valueTypeString] = tm.name; + break; + } + } + type.implementedBy[valueTypeString] = ok; + } + if (!ok) { + missingMethod = type.missingMethodFor[valueTypeString]; + } + } + if (!ok) { + if (returnTuple) { + return [type.zero(), false]; + } + $panic(new $packages["runtime"].TypeAssertionError.ptr($packages["runtime"]._type.ptr.nil, (value === $ifaceNil ? $packages["runtime"]._type.ptr.nil : new $packages["runtime"]._type.ptr(value.constructor.string)), new $packages["runtime"]._type.ptr(type.string), missingMethod)); + } + if (!isInterface) { + value = value.$val; + } + if (type === $jsObjectPtr) { + value = value.object; + } + return returnTuple ? [value, true] : value; + }; + var $stackDepthOffset = 0; + var $getStackDepth = function () { + var err = new Error(); + if (err.stack === undefined) { + return undefined; + } + return $stackDepthOffset + err.stack.split("\n").length; + }; + var $panicStackDepth = null, $panicValue; + var $callDeferred = function (deferred, jsErr, fromPanic) { + if (!fromPanic && deferred !== null && deferred.index >= $curGoroutine.deferStack.length) { + throw jsErr; + } + if (jsErr !== null) { + var newErr = null; + try { + $curGoroutine.deferStack.push(deferred); + $panic(new $jsErrorPtr(jsErr)); + } + catch (err) { + newErr = err; + } + $curGoroutine.deferStack.pop(); + $callDeferred(deferred, newErr); + return; + } + if ($curGoroutine.asleep) { + return; + } + $stackDepthOffset--; + var outerPanicStackDepth = $panicStackDepth; + var outerPanicValue = $panicValue; + var localPanicValue = $curGoroutine.panicStack.pop(); + if (localPanicValue !== undefined) { + $panicStackDepth = $getStackDepth(); + $panicValue = localPanicValue; + } + try { + while (true) { + if (deferred === null) { + deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1]; + if (deferred === undefined) { + /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */ + $panicStackDepth = null; + if (localPanicValue.Object instanceof Error) { + throw localPanicValue.Object; + } + var msg; + if (localPanicValue.constructor === $String) { + msg = localPanicValue.$val; + } + else if (localPanicValue.Error !== undefined) { + msg = localPanicValue.Error(); + } + else if (localPanicValue.String !== undefined) { + msg = localPanicValue.String(); + } + else { + msg = localPanicValue; + } + throw new Error(msg); + } + } + var call = deferred.pop(); + if (call === undefined) { + $curGoroutine.deferStack.pop(); + if (localPanicValue !== undefined) { + deferred = null; + continue; + } + return; + } + var r = call[0].apply(call[2], call[1]); + if (r && r.$blk !== undefined) { + deferred.push([r.$blk, [], r]); + if (fromPanic) { + throw null; + } + return; + } + if (localPanicValue !== undefined && $panicStackDepth === null) { + throw null; /* error was recovered */ + } + } + } + finally { + if (localPanicValue !== undefined) { + if ($panicStackDepth !== null) { + $curGoroutine.panicStack.push(localPanicValue); + } + $panicStackDepth = outerPanicStackDepth; + $panicValue = outerPanicValue; + } + $stackDepthOffset++; + } + }; + var $panic = function (value) { + $curGoroutine.panicStack.push(value); + $callDeferred(null, null, true); + }; + var $recover = function () { + if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) { + return $ifaceNil; + } + $panicStackDepth = null; + return $panicValue; + }; + var $throw = function (err) { throw err; }; + var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] }; + var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true; + var $mainFinished = false; + var $go = function (fun, args) { + $totalGoroutines++; + $awakeGoroutines++; + var $goroutine = function () { + try { + $curGoroutine = $goroutine; + var r = fun.apply(undefined, args); + if (r && r.$blk !== undefined) { + fun = function () { return r.$blk(); }; + args = []; + return; + } + $goroutine.exit = true; + } + catch (err) { + if (!$goroutine.exit) { + throw err; + } + } + finally { + $curGoroutine = $noGoroutine; + if ($goroutine.exit) { /* also set by runtime.Goexit() */ + $totalGoroutines--; + $goroutine.asleep = true; + } + if ($goroutine.asleep) { + $awakeGoroutines--; + if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock) { + console.error("fatal error: all goroutines are asleep - deadlock!"); + if ($global.process !== undefined) { + $global.process.exit(2); + } + } + } + } + }; + $goroutine.asleep = false; + $goroutine.exit = false; + $goroutine.deferStack = []; + $goroutine.panicStack = []; + $schedule($goroutine); + }; + var $scheduled = []; + var $runScheduled = function () { + try { + var r; + while ((r = $scheduled.shift()) !== undefined) { + r(); + } + } + finally { + if ($scheduled.length > 0) { + setTimeout($runScheduled, 0); + } + } + }; + var $schedule = function (goroutine) { + if (goroutine.asleep) { + goroutine.asleep = false; + $awakeGoroutines++; + } + $scheduled.push(goroutine); + if ($curGoroutine === $noGoroutine) { + $runScheduled(); + } + }; + var $setTimeout = function (f, t) { + $awakeGoroutines++; + return setTimeout(function () { + $awakeGoroutines--; + f(); + }, t); + }; + var $block = function () { + if ($curGoroutine === $noGoroutine) { + $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"); + } + $curGoroutine.asleep = true; + }; + var $send = function (chan, value) { + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv !== undefined) { + queuedRecv([value, true]); + return; + } + if (chan.$buffer.length < chan.$capacity) { + chan.$buffer.push(value); + return; + } + var thisGoroutine = $curGoroutine; + var closedDuringSend; + chan.$sendQueue.push(function (closed) { + closedDuringSend = closed; + $schedule(thisGoroutine); + return value; + }); + $block(); + return { + $blk: function () { + if (closedDuringSend) { + $throwRuntimeError("send on closed channel"); + } + } + }; + }; + var $recv = function (chan) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend !== undefined) { + chan.$buffer.push(queuedSend(false)); + } + var bufferedValue = chan.$buffer.shift(); + if (bufferedValue !== undefined) { + return [bufferedValue, true]; + } + if (chan.$closed) { + return [chan.$elem.zero(), false]; + } + var thisGoroutine = $curGoroutine; + var f = { $blk: function () { return this.value; } }; + var queueEntry = function (v) { + f.value = v; + $schedule(thisGoroutine); + }; + chan.$recvQueue.push(queueEntry); + $block(); + return f; + }; + var $close = function (chan) { + if (chan.$closed) { + $throwRuntimeError("close of closed channel"); + } + chan.$closed = true; + while (true) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend === undefined) { + break; + } + queuedSend(true); /* will panic */ + } + while (true) { + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv === undefined) { + break; + } + queuedRecv([chan.$elem.zero(), false]); + } + }; + var $select = function (comms) { + var ready = []; + var selection = -1; + for (var i = 0; i < comms.length; i++) { + var comm = comms[i]; + var chan = comm[0]; + switch (comm.length) { + case 0: /* default */ + selection = i; + break; + case 1: /* recv */ + if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) { + ready.push(i); + } + break; + case 2: /* send */ + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) { + ready.push(i); + } + break; + } + } + if (ready.length !== 0) { + selection = ready[Math.floor(Math.random() * ready.length)]; + } + if (selection !== -1) { + var comm = comms[selection]; + switch (comm.length) { + case 0: /* default */ + return [selection]; + case 1: /* recv */ + return [selection, $recv(comm[0])]; + case 2: /* send */ + $send(comm[0], comm[1]); + return [selection]; + } + } + var entries = []; + var thisGoroutine = $curGoroutine; + var f = { $blk: function () { return this.selection; } }; + var removeFromQueues = function () { + for (var i = 0; i < entries.length; i++) { + var entry = entries[i]; + var queue = entry[0]; + var index = queue.indexOf(entry[1]); + if (index !== -1) { + queue.splice(index, 1); + } + } + }; + for (var i = 0; i < comms.length; i++) { + (function (i) { + var comm = comms[i]; + switch (comm.length) { + case 1: /* recv */ + var queueEntry = function (value) { + f.selection = [i, value]; + removeFromQueues(); + $schedule(thisGoroutine); + }; + entries.push([comm[0].$recvQueue, queueEntry]); + comm[0].$recvQueue.push(queueEntry); + break; + case 2: /* send */ + var queueEntry = function () { + if (comm[0].$closed) { + $throwRuntimeError("send on closed channel"); + } + f.selection = [i]; + removeFromQueues(); + $schedule(thisGoroutine); + return comm[1]; + }; + entries.push([comm[0].$sendQueue, queueEntry]); + comm[0].$sendQueue.push(queueEntry); + break; + } + })(i); + } + $block(); + return f; + }; + var $jsObjectPtr, $jsErrorPtr; + var $needsExternalization = function (t) { + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return false; + default: + return t !== $jsObjectPtr; + } + }; + var $externalize = function (v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return v; + case $kindInt64: + case $kindUint64: + return $flatten64(v); + case $kindArray: + if ($needsExternalization(t.elem)) { + return $mapArray(v, function (e) { return $externalize(e, t.elem); }); + } + return v; + case $kindFunc: + return $externalizeFunction(v, t, false); + case $kindInterface: + if (v === $ifaceNil) { + return null; + } + if (v.constructor === $jsObjectPtr) { + return v.$val.object; + } + return $externalize(v.$val, v.constructor); + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var entry = v[keys[i]]; + m[$externalize(entry.k, t.key)] = $externalize(entry.v, t.elem); + } + return m; + case $kindPtr: + if (v === t.nil) { + return null; + } + return $externalize(v.$get(), t.elem); + case $kindSlice: + if ($needsExternalization(t.elem)) { + return $mapArray($sliceToArray(v), function (e) { return $externalize(e, t.elem); }); + } + return $sliceToArray(v); + case $kindString: + if ($isASCII(v)) { + return v; + } + var s = "", r; + for (var i = 0; i < v.length; i += r[1]) { + r = $decodeRune(v, i); + var c = r[0]; + if (c > 0xFFFF) { + var h = Math.floor((c - 0x10000) / 0x400) + 0xD800; + var l = (c - 0x10000) % 0x400 + 0xDC00; + s += String.fromCharCode(h, l); + continue; + } + s += String.fromCharCode(c); + } + return s; + case $kindStruct: + var timePkg = $packages["time"]; + if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) { + var milli = $div64(v.UnixNano(), new $Int64(0, 1000000)); + return new Date($flatten64(milli)); + } + var noJsObject = {}; + var searchJsObject = function (v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindPtr: + if (v === t.nil) { + return noJsObject; + } + return searchJsObject(v.$get(), t.elem); + case $kindStruct: + var f = t.fields[0]; + return searchJsObject(v[f.prop], f.typ); + case $kindInterface: + return searchJsObject(v.$val, v.constructor); + default: + return noJsObject; + } + }; + var o = searchJsObject(v, t); + if (o !== noJsObject) { + return o; + } + o = {}; + for (var i = 0; i < t.fields.length; i++) { + var f = t.fields[i]; + if (!f.exported) { + continue; + } + o[f.name] = $externalize(v[f.prop], f.typ); + } + return o; + } + $throwRuntimeError("cannot externalize " + t.string); + }; + var $externalizeFunction = function (v, t, passThis) { + if (v === $throwNilPointerError) { + return null; + } + if (v.$externalizeWrapper === undefined) { + $checkForDeadlock = false; + v.$externalizeWrapper = function () { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = []; + for (var j = i; j < arguments.length; j++) { + varargs.push($internalize(arguments[j], vt)); + } + args.push(new (t.params[i])(varargs)); + break; + } + args.push($internalize(arguments[i], t.params[i])); + } + var result = v.apply(passThis ? this : undefined, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $externalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $externalize(result[i], t.results[i]); + } + return result; + } + }; + } + return v.$externalizeWrapper; + }; + var $internalize = function (v, t, recv) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + if (v && v.__internal_object__ !== undefined) { + return $assertType(v.__internal_object__, t, false); + } + var timePkg = $packages["time"]; + if (timePkg !== undefined && t === timePkg.Time) { + if (!(v !== null && v !== undefined && v.constructor === Date)) { + $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date"); + } + return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000)); + } + switch (t.kind) { + case $kindBool: + return !!v; + case $kindInt: + return parseInt(v); + case $kindInt8: + return parseInt(v) << 24 >> 24; + case $kindInt16: + return parseInt(v) << 16 >> 16; + case $kindInt32: + return parseInt(v) >> 0; + case $kindUint: + return parseInt(v); + case $kindUint8: + return parseInt(v) << 24 >>> 24; + case $kindUint16: + return parseInt(v) << 16 >>> 16; + case $kindUint32: + case $kindUintptr: + return parseInt(v) >>> 0; + case $kindInt64: + case $kindUint64: + return new t(0, v); + case $kindFloat32: + case $kindFloat64: + return parseFloat(v); + case $kindArray: + if (v.length !== t.len) { + $throwRuntimeError("got array with wrong size from JavaScript native"); + } + return $mapArray(v, function (e) { return $internalize(e, t.elem); }); + case $kindFunc: + return function () { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = arguments[i]; + for (var j = 0; j < varargs.$length; j++) { + args.push($externalize(varargs.$array[varargs.$offset + j], vt)); + } + break; + } + args.push($externalize(arguments[i], t.params[i])); + } + var result = v.apply(recv, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $internalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $internalize(result[i], t.results[i]); + } + return result; + } + }; + case $kindInterface: + if (t.methods.length !== 0) { + $throwRuntimeError("cannot internalize " + t.string); + } + if (v === null) { + return $ifaceNil; + } + if (v === undefined) { + return new $jsObjectPtr(undefined); + } + switch (v.constructor) { + case Int8Array: + return new ($sliceType($Int8))(v); + case Int16Array: + return new ($sliceType($Int16))(v); + case Int32Array: + return new ($sliceType($Int))(v); + case Uint8Array: + return new ($sliceType($Uint8))(v); + case Uint16Array: + return new ($sliceType($Uint16))(v); + case Uint32Array: + return new ($sliceType($Uint))(v); + case Float32Array: + return new ($sliceType($Float32))(v); + case Float64Array: + return new ($sliceType($Float64))(v); + case Array: + return $internalize(v, $sliceType($emptyInterface)); + case Boolean: + return new $Bool(!!v); + case Date: + if (timePkg === undefined) { + /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */ + return new $jsObjectPtr(v); + } + return new timePkg.Time($internalize(v, timePkg.Time)); + case Function: + var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true); + return new funcType($internalize(v, funcType)); + case Number: + return new $Float64(parseFloat(v)); + case String: + return new $String($internalize(v, $String)); + default: + if ($global.Node && v instanceof $global.Node) { + return new $jsObjectPtr(v); + } + var mapType = $mapType($String, $emptyInterface); + return new mapType($internalize(v, mapType)); + } + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var k = $internalize(keys[i], t.key); + m[t.key.keyFor(k)] = { k: k, v: $internalize(v[keys[i]], t.elem) }; + } + return m; + case $kindPtr: + if (t.elem.kind === $kindStruct) { + return $internalize(v, t.elem); + } + case $kindSlice: + return new t($mapArray(v, function (e) { return $internalize(e, t.elem); })); + case $kindString: + v = String(v); + if ($isASCII(v)) { + return v; + } + var s = ""; + var i = 0; + while (i < v.length) { + var h = v.charCodeAt(i); + if (0xD800 <= h && h <= 0xDBFF) { + var l = v.charCodeAt(i + 1); + var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000; + s += $encodeRune(c); + i += 2; + continue; + } + s += $encodeRune(h); + i++; + } + return s; + case $kindStruct: + var noJsObject = {}; + var searchJsObject = function (t) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + switch (t.kind) { + case $kindPtr: + return searchJsObject(t.elem); + case $kindStruct: + var f = t.fields[0]; + var o = searchJsObject(f.typ); + if (o !== noJsObject) { + var n = new t.ptr(); + n[f.prop] = o; + return n; + } + return noJsObject; + default: + return noJsObject; + } + }; + var o = searchJsObject(t); + if (o !== noJsObject) { + return o; + } + } + $throwRuntimeError("cannot internalize " + t.string); + }; + /* $isASCII reports whether string s contains only ASCII characters. */ + var $isASCII = function (s) { + for (var i = 0; i < s.length; i++) { + if (s.charCodeAt(i) >= 128) { + return false; + } + } + return true; + }; + $packages["github.com/gopherjs/gopherjs/js"] = (function () { + var $pkg = {}, $init, Object, Error, sliceType, ptrType, ptrType$1, MakeFunc, init; + Object = $pkg.Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function (object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = null; + return; + } + this.object = object_; + }); + Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function (Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(Object); + ptrType$1 = $ptrType(Error); + Object.ptr.prototype.Get = function (key) { + var key, o; + o = this; + return o.object[$externalize(key, $String)]; + }; + Object.prototype.Get = function (key) { return this.$val.Get(key); }; + Object.ptr.prototype.Set = function (key, value) { + var key, o, value; + o = this; + o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + Object.prototype.Set = function (key, value) { return this.$val.Set(key, value); }; + Object.ptr.prototype.Delete = function (key) { + var key, o; + o = this; + delete o.object[$externalize(key, $String)]; + }; + Object.prototype.Delete = function (key) { return this.$val.Delete(key); }; + Object.ptr.prototype.Length = function () { + var o; + o = this; + return $parseInt(o.object.length); + }; + Object.prototype.Length = function () { return this.$val.Length(); }; + Object.ptr.prototype.Index = function (i) { + var i, o; + o = this; + return o.object[i]; + }; + Object.prototype.Index = function (i) { return this.$val.Index(i); }; + Object.ptr.prototype.SetIndex = function (i, value) { + var i, o, value; + o = this; + o.object[i] = $externalize(value, $emptyInterface); + }; + Object.prototype.SetIndex = function (i, value) { return this.$val.SetIndex(i, value); }; + Object.ptr.prototype.Call = function (name, args) { + var args, name, o, obj; + o = this; + return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType))); + }; + Object.prototype.Call = function (name, args) { return this.$val.Call(name, args); }; + Object.ptr.prototype.Invoke = function (args) { + var args, o; + o = this; + return o.object.apply(undefined, $externalize(args, sliceType)); + }; + Object.prototype.Invoke = function (args) { return this.$val.Invoke(args); }; + Object.ptr.prototype.New = function (args) { + var args, o; + o = this; + return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType)))); + }; + Object.prototype.New = function (args) { return this.$val.New(args); }; + Object.ptr.prototype.Bool = function () { + var o; + o = this; + return !!(o.object); + }; + Object.prototype.Bool = function () { return this.$val.Bool(); }; + Object.ptr.prototype.String = function () { + var o; + o = this; + return $internalize(o.object, $String); + }; + Object.prototype.String = function () { return this.$val.String(); }; + Object.ptr.prototype.Int = function () { + var o; + o = this; + return $parseInt(o.object) >> 0; + }; + Object.prototype.Int = function () { return this.$val.Int(); }; + Object.ptr.prototype.Int64 = function () { + var o; + o = this; + return $internalize(o.object, $Int64); + }; + Object.prototype.Int64 = function () { return this.$val.Int64(); }; + Object.ptr.prototype.Uint64 = function () { + var o; + o = this; + return $internalize(o.object, $Uint64); + }; + Object.prototype.Uint64 = function () { return this.$val.Uint64(); }; + Object.ptr.prototype.Float = function () { + var o; + o = this; + return $parseFloat(o.object); + }; + Object.prototype.Float = function () { return this.$val.Float(); }; + Object.ptr.prototype.Interface = function () { + var o; + o = this; + return $internalize(o.object, $emptyInterface); + }; + Object.prototype.Interface = function () { return this.$val.Interface(); }; + Object.ptr.prototype.Unsafe = function () { + var o; + o = this; + return o.object; + }; + Object.prototype.Unsafe = function () { return this.$val.Unsafe(); }; + Error.ptr.prototype.Error = function () { + var err; + err = this; + return "JavaScript error: " + $internalize(err.Object.message, $String); + }; + Error.prototype.Error = function () { return this.$val.Error(); }; + Error.ptr.prototype.Stack = function () { + var err; + err = this; + return $internalize(err.Object.stack, $String); + }; + Error.prototype.Stack = function () { return this.$val.Stack(); }; + MakeFunc = function (fn) { + var fn; + return $makeFunc(fn); + }; + $pkg.MakeFunc = MakeFunc; + init = function () { + var e; + e = new Error.ptr(null); + $unused(e); + }; + ptrType.methods = [{ prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false) }, { prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false) }, { prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false) }, { prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false) }, { prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false) }, { prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true) }, { prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true) }, { prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true) }, { prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false) }, { prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false) }, { prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false) }, { prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false) }]; + ptrType$1.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false) }]; + Object.init("github.com/gopherjs/gopherjs/js", [{ prop: "object", name: "object", embedded: false, exported: false, typ: ptrType, tag: "" }]); + Error.init("", [{ prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + init(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["internal/cpu"] = (function () { + var $pkg = {}, $init; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["internal/bytealg"] = (function () { + var $pkg = {}, $init, cpu, IndexByteString; + cpu = $packages["internal/cpu"]; + IndexByteString = function (s, c) { + var c, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { + break; + } + if (s.charCodeAt(i) === c) { + return i; + } + i = i + (1) >> 0; + } + return -1; + }; + $pkg.IndexByteString = IndexByteString; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = cpu.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["runtime/internal/sys"] = (function () { + var $pkg = {}, $init; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["runtime"] = (function () { + var $pkg = {}, $init, js, bytealg, sys, _type, TypeAssertionError, errorString, ptrType, ptrType$4, init, GOROOT, Goexit, SetFinalizer, KeepAlive, throw$1; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + sys = $packages["runtime/internal/sys"]; + _type = $pkg._type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function (str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + TypeAssertionError = $pkg.TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function (_interface_, concrete_, asserted_, missingMethod_) { + this.$val = this; + if (arguments.length === 0) { + this._interface = ptrType.nil; + this.concrete = ptrType.nil; + this.asserted = ptrType.nil; + this.missingMethod = ""; + return; + } + this._interface = _interface_; + this.concrete = concrete_; + this.asserted = asserted_; + this.missingMethod = missingMethod_; + }); + errorString = $pkg.errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); + ptrType = $ptrType(_type); + ptrType$4 = $ptrType(TypeAssertionError); + _type.ptr.prototype.string = function () { + var t; + t = this; + return t.str; + }; + _type.prototype.string = function () { return this.$val.string(); }; + _type.ptr.prototype.pkgpath = function () { + var t; + t = this; + return ""; + }; + _type.prototype.pkgpath = function () { return this.$val.pkgpath(); }; + init = function () { + var e, jsPkg; + jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; + $jsObjectPtr = jsPkg.Object.ptr; + $jsErrorPtr = jsPkg.Error.ptr; + $throwRuntimeError = throw$1; + e = $ifaceNil; + e = new TypeAssertionError.ptr(ptrType.nil, ptrType.nil, ptrType.nil, ""); + $unused(e); + }; + GOROOT = function () { + var process, v, v$1; + process = $global.process; + if (process === undefined) { + return "/"; + } + v = process.env.GOPHERJS_GOROOT; + if (!(v === undefined)) { + return $internalize(v, $String); + } + else { + v$1 = process.env.GOROOT; + if (!(v$1 === undefined)) { + return $internalize(v$1, $String); + } + } + return "/usr/local/go"; + }; + $pkg.GOROOT = GOROOT; + Goexit = function () { + $curGoroutine.exit = $externalize(true, $Bool); + $throw(null); + }; + $pkg.Goexit = Goexit; + SetFinalizer = function (x, f) { + var f, x; + }; + $pkg.SetFinalizer = SetFinalizer; + KeepAlive = function (param) { + var param; + }; + $pkg.KeepAlive = KeepAlive; + throw$1 = function (s) { + var s; + $panic(new errorString((s))); + }; + TypeAssertionError.ptr.prototype.RuntimeError = function () { + }; + TypeAssertionError.prototype.RuntimeError = function () { return this.$val.RuntimeError(); }; + TypeAssertionError.ptr.prototype.Error = function () { + var as, cs, e, inter, msg; + e = this; + inter = "interface"; + if (!(e._interface === ptrType.nil)) { + inter = e._interface.string(); + } + as = e.asserted.string(); + if (e.concrete === ptrType.nil) { + return "interface conversion: " + inter + " is nil, not " + as; + } + cs = e.concrete.string(); + if (e.missingMethod === "") { + msg = "interface conversion: " + inter + " is " + cs + ", not " + as; + if (cs === as) { + if (!(e.concrete.pkgpath() === e.asserted.pkgpath())) { + msg = msg + (" (types from different packages)"); + } + else { + msg = msg + (" (types from different scopes)"); + } + } + return msg; + } + return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod; + }; + TypeAssertionError.prototype.Error = function () { return this.$val.Error(); }; + errorString.prototype.RuntimeError = function () { + var e; + e = this.$val; + }; + $ptrType(errorString).prototype.RuntimeError = function () { return new errorString(this.$get()).RuntimeError(); }; + errorString.prototype.Error = function () { + var e; + e = this.$val; + return "runtime error: " + (e); + }; + $ptrType(errorString).prototype.Error = function () { return new errorString(this.$get()).Error(); }; + ptrType.methods = [{ prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false) }, { prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false) }]; + ptrType$4.methods = [{ prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false) }, { prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + errorString.methods = [{ prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false) }, { prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + _type.init("runtime", [{ prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: "" }]); + TypeAssertionError.init("runtime", [{ prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType, tag: "" }, { prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType, tag: "" }, { prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType, tag: "" }, { prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = js.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = bytealg.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sys.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + init(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["errors"] = (function () { + var $pkg = {}, $init, errorString, ptrType, New; + errorString = $pkg.errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function (s_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + return; + } + this.s = s_; + }); + ptrType = $ptrType(errorString); + New = function (text) { + var text; + return new errorString.ptr(text); + }; + $pkg.New = New; + errorString.ptr.prototype.Error = function () { + var e; + e = this; + return e.s; + }; + errorString.prototype.Error = function () { return this.$val.Error(); }; + ptrType.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + errorString.init("errors", [{ prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["math/bits"] = (function () { + var $pkg = {}, $init, deBruijn32tab, deBruijn64tab, len8tab, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, Len64; + LeadingZeros64 = function (x) { + var x; + return 64 - Len64(x) >> 0; + }; + $pkg.LeadingZeros64 = LeadingZeros64; + TrailingZeros = function (x) { + var x; + if (true) { + return TrailingZeros32(((x >>> 0))); + } + return TrailingZeros64((new $Uint64(0, x))); + }; + $pkg.TrailingZeros = TrailingZeros; + TrailingZeros32 = function (x) { + var x, x$1; + if (x === 0) { + return 32; + } + return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0)); + }; + $pkg.TrailingZeros32 = TrailingZeros32; + TrailingZeros64 = function (x) { + var x, x$1, x$2; + if ((x.$high === 0 && x.$low === 0)) { + return 64; + } + return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0)); + }; + $pkg.TrailingZeros64 = TrailingZeros64; + Len64 = function (x) { + var n, x; + n = 0; + if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) { + x = $shiftRightUint64(x, (32)); + n = 32; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) { + x = $shiftRightUint64(x, (16)); + n = n + (16) >> 0; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) { + x = $shiftRightUint64(x, (8)); + n = n + (8) >> 0; + } + n = n + (((($flatten64(x) < 0 || $flatten64(x) >= len8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : len8tab[$flatten64(x)]) >> 0)) >> 0; + return n; + }; + $pkg.Len64 = Len64; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]); + deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]); + len8tab = $toNativeArray($kindUint8, [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["math"] = (function () { + var $pkg = {}, $init, js, bits, arrayType, arrayType$1, arrayType$2, structType, math, zero, posInf, negInf, nan, buf, Inf, NaN, init, Float32bits, Float32frombits, Float64bits, Float64frombits; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bits = $packages["math/bits"]; + arrayType = $arrayType($Uint32, 2); + arrayType$1 = $arrayType($Float32, 2); + arrayType$2 = $arrayType($Float64, 1); + structType = $structType("math", [{ prop: "uint32array", name: "uint32array", embedded: false, exported: false, typ: arrayType, tag: "" }, { prop: "float32array", name: "float32array", embedded: false, exported: false, typ: arrayType$1, tag: "" }, { prop: "float64array", name: "float64array", embedded: false, exported: false, typ: arrayType$2, tag: "" }]); + Inf = function (sign) { + var sign; + if (sign >= 0) { + return posInf; + } + else { + return negInf; + } + }; + $pkg.Inf = Inf; + NaN = function () { + return nan; + }; + $pkg.NaN = NaN; + init = function () { + var ab; + ab = new ($global.ArrayBuffer)(8); + buf.uint32array = new ($global.Uint32Array)(ab); + buf.float32array = new ($global.Float32Array)(ab); + buf.float64array = new ($global.Float64Array)(ab); + }; + Float32bits = function (f) { + var f; + buf.float32array[0] = f; + return buf.uint32array[0]; + }; + $pkg.Float32bits = Float32bits; + Float32frombits = function (b) { + var b; + buf.uint32array[0] = b; + return buf.float32array[0]; + }; + $pkg.Float32frombits = Float32frombits; + Float64bits = function (f) { + var f, x, x$1; + buf.float64array[0] = f; + return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + $pkg.Float64bits = Float64bits; + Float64frombits = function (b) { + var b; + buf.uint32array[0] = ((b.$low >>> 0)); + buf.uint32array[1] = (($shiftRightUint64(b, 32).$low >>> 0)); + return buf.float64array[0]; + }; + $pkg.Float64frombits = Float64frombits; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = js.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = bits.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero()); + math = $global.Math; + zero = 0; + posInf = 1 / zero; + negInf = -1 / zero; + nan = 0 / zero; + init(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["unicode/utf8"] = (function () { + var $pkg = {}, $init, acceptRange, first, acceptRanges, DecodeRune, DecodeRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, ValidString, ValidRune; + acceptRange = $pkg.acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function (lo_, hi_) { + this.$val = this; + if (arguments.length === 0) { + this.lo = 0; + this.hi = 0; + return; + } + this.lo = lo_; + this.hi = hi_; + }); + DecodeRune = function (p) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1; + r = 0; + size = 0; + n = p.$length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]); + x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]); + if (b1 < accept.lo || accept.hi < b1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]); + if (b2 < 128 || 191 < b2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]); + if (b3 < 128 || 191 < b3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRune = DecodeRune; + DecodeRuneInString = function (s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1; + r = 0; + size = 0; + n = s.length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + s0 = s.charCodeAt(0); + x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + s1 = s.charCodeAt(1); + if (s1 < accept.lo || accept.hi < s1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + s2 = s.charCodeAt(2); + if (s2 < 128 || 191 < s2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + s3 = s.charCodeAt(3); + if (s3 < 128 || 191 < s3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRuneInString = DecodeRuneInString; + RuneLen = function (r) { + var r; + if (r < 0) { + return -1; + } + else if (r <= 127) { + return 1; + } + else if (r <= 2047) { + return 2; + } + else if (55296 <= r && r <= 57343) { + return -1; + } + else if (r <= 65535) { + return 3; + } + else if (r <= 1114111) { + return 4; + } + return -1; + }; + $pkg.RuneLen = RuneLen; + EncodeRune = function (p, r) { + var i, p, r; + i = ((r >>> 0)); + if (i <= 127) { + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24))); + return 1; + } + else if (i <= 2047) { + $unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 2; + } + else if ((i > 1114111) || (55296 <= i && i <= 57343)) { + r = 65533; + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } + else if (i <= 65535) { + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } + else { + $unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 4; + } + }; + $pkg.EncodeRune = EncodeRune; + RuneCount = function (p) { + var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4; + np = p.$length; + n = 0; + i = 0; + while (true) { + if (!(i < np)) { + break; + } + n = n + (1) >> 0; + c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + if (c < 128) { + i = i + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > np) { + i = i + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2])); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } + else if (size === 2) { + } + else { + c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3])); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } + else if (size === 3) { + } + else { + c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4])); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + } + return n; + }; + $pkg.RuneCount = RuneCount; + RuneCountInString = function (s) { + var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1; + n = 0; + ns = s.length; + i = 0; + while (true) { + if (!(i < ns)) { + break; + } + c = s.charCodeAt(i); + if (c < 128) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > ns) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = s.charCodeAt((i + 1 >> 0)); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } + else if (size === 2) { + } + else { + c$2 = s.charCodeAt((i + 2 >> 0)); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } + else if (size === 3) { + } + else { + c$3 = s.charCodeAt((i + 3 >> 0)); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + n = n + (1) >> 0; + } + n = n; + return n; + }; + $pkg.RuneCountInString = RuneCountInString; + ValidString = function (s) { + var accept, c, c$1, c$2, i, n, s, si, size, x, x$1; + n = s.length; + i = 0; + while (true) { + if (!(i < n)) { + break; + } + si = s.charCodeAt(i); + if (si < 128) { + i = i + (1) >> 0; + continue; + } + x = ((si < 0 || si >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[si]); + if (x === 241) { + return false; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > n) { + return false; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c = s.charCodeAt((i + 1 >> 0)); + if (c < accept.lo || accept.hi < c) { + return false; + } + else if (size === 2) { + } + else { + c$1 = s.charCodeAt((i + 2 >> 0)); + if (c$1 < 128 || 191 < c$1) { + return false; + } + else if (size === 3) { + } + else { + c$2 = s.charCodeAt((i + 3 >> 0)); + if (c$2 < 128 || 191 < c$2) { + return false; + } + } + } + i = i + (size) >> 0; + } + return true; + }; + $pkg.ValidString = ValidString; + ValidRune = function (r) { + var r; + if (0 <= r && r < 55296) { + return true; + } + else if (57343 < r && r <= 1114111) { + return true; + } + return false; + }; + $pkg.ValidRune = ValidRune; + acceptRange.init("unicode/utf8", [{ prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: "" }, { prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]); + acceptRanges = $toNativeArray($kindStruct, [new acceptRange.ptr(128, 191), new acceptRange.ptr(160, 191), new acceptRange.ptr(128, 159), new acceptRange.ptr(144, 191), new acceptRange.ptr(128, 143)]); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["strconv"] = (function () { + var $pkg = {}, $init, errors, bytealg, math, bits, utf8, NumError, decimal, leftCheat, extFloat, floatInfo, decimalSlice, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, arrayType, sliceType$6, ptrType, arrayType$1, arrayType$2, ptrType$1, arrayType$3, arrayType$4, ptrType$2, ptrType$3, ptrType$4, optimize, powtab, float64pow10, float32pow10, leftcheats, smallPowersOfTen, powersOfTen, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, ParseBool, FormatBool, equalIgnoreCase, special, readFloat, atof64exact, atof32exact, atof32, atof64, ParseFloat, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, frexp10Many, adjustLastDigitFixed, adjustLastDigit, FormatFloat, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, min, max, FormatUint, FormatInt, Itoa, small, formatBits, isPowerOfTwo, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, contains, bsearch16, bsearch32, IsPrint, isInGraphicList; + errors = $packages["errors"]; + bytealg = $packages["internal/bytealg"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + utf8 = $packages["unicode/utf8"]; + NumError = $pkg.NumError = $newType(0, $kindStruct, "strconv.NumError", true, "strconv", true, function (Func_, Num_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Func = ""; + this.Num = ""; + this.Err = $ifaceNil; + return; + } + this.Func = Func_; + this.Num = Num_; + this.Err = Err_; + }); + decimal = $pkg.decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function (d_, nd_, dp_, neg_, trunc_) { + this.$val = this; + if (arguments.length === 0) { + this.d = arrayType.zero(); + this.nd = 0; + this.dp = 0; + this.neg = false; + this.trunc = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + this.trunc = trunc_; + }); + leftCheat = $pkg.leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function (delta_, cutoff_) { + this.$val = this; + if (arguments.length === 0) { + this.delta = 0; + this.cutoff = ""; + return; + } + this.delta = delta_; + this.cutoff = cutoff_; + }); + extFloat = $pkg.extFloat = $newType(0, $kindStruct, "strconv.extFloat", true, "strconv", false, function (mant_, exp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.mant = new $Uint64(0, 0); + this.exp = 0; + this.neg = false; + return; + } + this.mant = mant_; + this.exp = exp_; + this.neg = neg_; + }); + floatInfo = $pkg.floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function (mantbits_, expbits_, bias_) { + this.$val = this; + if (arguments.length === 0) { + this.mantbits = 0; + this.expbits = 0; + this.bias = 0; + return; + } + this.mantbits = mantbits_; + this.expbits = expbits_; + this.bias = bias_; + }); + decimalSlice = $pkg.decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function (d_, nd_, dp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.d = sliceType$6.nil; + this.nd = 0; + this.dp = 0; + this.neg = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + }); + sliceType = $sliceType($Int); + sliceType$1 = $sliceType($Float64); + sliceType$2 = $sliceType($Float32); + sliceType$3 = $sliceType(leftCheat); + sliceType$4 = $sliceType($Uint16); + sliceType$5 = $sliceType($Uint32); + arrayType = $arrayType($Uint8, 800); + sliceType$6 = $sliceType($Uint8); + ptrType = $ptrType(NumError); + arrayType$1 = $arrayType($Uint8, 24); + arrayType$2 = $arrayType($Uint8, 32); + ptrType$1 = $ptrType(floatInfo); + arrayType$3 = $arrayType($Uint8, 65); + arrayType$4 = $arrayType($Uint8, 4); + ptrType$2 = $ptrType(decimal); + ptrType$3 = $ptrType(decimalSlice); + ptrType$4 = $ptrType(extFloat); + ParseBool = function (str) { + var _1, str; + _1 = str; + if (_1 === ("1") || _1 === ("t") || _1 === ("T") || _1 === ("true") || _1 === ("TRUE") || _1 === ("True")) { + return [true, $ifaceNil]; + } + else if (_1 === ("0") || _1 === ("f") || _1 === ("F") || _1 === ("false") || _1 === ("FALSE") || _1 === ("False")) { + return [false, $ifaceNil]; + } + return [false, syntaxError("ParseBool", str)]; + }; + $pkg.ParseBool = ParseBool; + FormatBool = function (b) { + var b; + if (b) { + return "true"; + } + return "false"; + }; + $pkg.FormatBool = FormatBool; + equalIgnoreCase = function (s1, s2) { + var c1, c2, i, s1, s2; + if (!((s1.length === s2.length))) { + return false; + } + i = 0; + while (true) { + if (!(i < s1.length)) { + break; + } + c1 = s1.charCodeAt(i); + if (65 <= c1 && c1 <= 90) { + c1 = c1 + (32) << 24 >>> 24; + } + c2 = s2.charCodeAt(i); + if (65 <= c2 && c2 <= 90) { + c2 = c2 + (32) << 24 >>> 24; + } + if (!((c1 === c2))) { + return false; + } + i = i + (1) >> 0; + } + return true; + }; + special = function (s) { + var _1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, f, ok, s; + f = 0; + ok = false; + if (s.length === 0) { + return [f, ok]; + } + _1 = s.charCodeAt(0); + if (_1 === (43)) { + if (equalIgnoreCase(s, "+inf") || equalIgnoreCase(s, "+infinity")) { + _tmp = math.Inf(1); + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } + } + else if (_1 === (45)) { + if (equalIgnoreCase(s, "-inf") || equalIgnoreCase(s, "-infinity")) { + _tmp$2 = math.Inf(-1); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } + } + else if ((_1 === (110)) || (_1 === (78))) { + if (equalIgnoreCase(s, "nan")) { + _tmp$4 = math.NaN(); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + } + else if ((_1 === (105)) || (_1 === (73))) { + if (equalIgnoreCase(s, "inf") || equalIgnoreCase(s, "infinity")) { + _tmp$6 = math.Inf(1); + _tmp$7 = true; + f = _tmp$6; + ok = _tmp$7; + return [f, ok]; + } + } + else { + return [f, ok]; + } + return [f, ok]; + }; + decimal.ptr.prototype.set = function (s) { + var b, e, esign, i, ok, s, sawdigits, sawdot, x, x$1; + ok = false; + b = this; + i = 0; + b.neg = false; + b.trunc = false; + if (i >= s.length) { + return ok; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } + else if ((s.charCodeAt(i) === 45)) { + b.neg = true; + i = i + (1) >> 0; + } + sawdot = false; + sawdigits = false; + while (true) { + if (!(i < s.length)) { + break; + } + if ((s.charCodeAt(i) === 46)) { + if (sawdot) { + return ok; + } + sawdot = true; + b.dp = b.nd; + i = i + (1) >> 0; + continue; + } + else if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) { + sawdigits = true; + if ((s.charCodeAt(i) === 48) && (b.nd === 0)) { + b.dp = b.dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + if (b.nd < 800) { + (x = b.d, x$1 = b.nd, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = s.charCodeAt(i))); + b.nd = b.nd + (1) >> 0; + } + else if (!((s.charCodeAt(i) === 48))) { + b.trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return ok; + } + if (!sawdot) { + b.dp = b.nd; + } + if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { + i = i + (1) >> 0; + if (i >= s.length) { + return ok; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } + else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return ok; + } + e = 0; + while (true) { + if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { + break; + } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + b.dp = b.dp + (($imul(e, esign))) >> 0; + } + if (!((i === s.length))) { + return ok; + } + ok = true; + return ok; + }; + decimal.prototype.set = function (s) { return this.$val.set(s); }; + readFloat = function (s) { + var _1, c, dp, e, esign, exp, i, mantissa, nd, ndMant, neg, ok, s, sawdigits, sawdot, trunc, x; + mantissa = new $Uint64(0, 0); + exp = 0; + neg = false; + trunc = false; + ok = false; + i = 0; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, ok]; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } + else if ((s.charCodeAt(i) === 45)) { + neg = true; + i = i + (1) >> 0; + } + sawdot = false; + sawdigits = false; + nd = 0; + ndMant = 0; + dp = 0; + while (true) { + if (!(i < s.length)) { + break; + } + c = s.charCodeAt(i); + _1 = true; + if (_1 === ((c === 46))) { + if (sawdot) { + return [mantissa, exp, neg, trunc, ok]; + } + sawdot = true; + dp = nd; + i = i + (1) >> 0; + continue; + } + else if (_1 === (48 <= c && c <= 57)) { + sawdigits = true; + if ((c === 48) && (nd === 0)) { + dp = dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + nd = nd + (1) >> 0; + if (ndMant < 19) { + mantissa = $mul64(mantissa, (new $Uint64(0, 10))); + mantissa = (x = (new $Uint64(0, (c - 48 << 24 >>> 24))), new $Uint64(mantissa.$high + x.$high, mantissa.$low + x.$low)); + ndMant = ndMant + (1) >> 0; + } + else if (!((s.charCodeAt(i) === 48))) { + trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return [mantissa, exp, neg, trunc, ok]; + } + if (!sawdot) { + dp = nd; + } + if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { + i = i + (1) >> 0; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, ok]; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } + else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return [mantissa, exp, neg, trunc, ok]; + } + e = 0; + while (true) { + if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { + break; + } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + dp = dp + (($imul(e, esign))) >> 0; + } + if (!((i === s.length))) { + return [mantissa, exp, neg, trunc, ok]; + } + if (!((mantissa.$high === 0 && mantissa.$low === 0))) { + exp = dp - ndMant >> 0; + } + ok = true; + return [mantissa, exp, neg, trunc, ok]; + }; + decimal.ptr.prototype.floatBits = function (flt) { + var _tmp, _tmp$1, b, bits$1, d, exp, flt, mant, n, n$1, n$2, overflow, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, y$1, y$2, y$3, $s; + /* */ $s = 0; + s: while (true) { + switch ($s) { + case 0: + b = new $Uint64(0, 0); + overflow = false; + d = this; + exp = 0; + mant = new $Uint64(0, 0); + /* */ if (d.nd === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (d.nd === 0) { */ case 1: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; + continue; + /* } */ case 2: + /* */ if (d.dp > 310) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (d.dp > 310) { */ case 4: + /* goto overflow */ $s = 6; + continue; + /* } */ case 5: + /* */ if (d.dp < -330) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if (d.dp < -330) { */ case 7: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; + continue; + /* } */ case 8: + exp = 0; + while (true) { + if (!(d.dp > 0)) { + break; + } + n = 0; + if (d.dp >= powtab.$length) { + n = 27; + } + else { + n = (x = d.dp, ((x < 0 || x >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x])); + } + d.Shift(-n); + exp = exp + (n) >> 0; + } + while (true) { + if (!(d.dp < 0 || (d.dp === 0) && d.d[0] < 53)) { + break; + } + n$1 = 0; + if (-d.dp >= powtab.$length) { + n$1 = 27; + } + else { + n$1 = (x$1 = -d.dp, ((x$1 < 0 || x$1 >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x$1])); + } + d.Shift(n$1); + exp = exp - (n$1) >> 0; + } + exp = exp - (1) >> 0; + if (exp < (flt.bias + 1 >> 0)) { + n$2 = (flt.bias + 1 >> 0) - exp >> 0; + d.Shift(-n$2); + exp = exp + (n$2) >> 0; + } + /* */ if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { + $s = 9; + continue; + } + /* */ $s = 10; + continue; + /* if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { */ case 9: + /* goto overflow */ $s = 6; + continue; + /* } */ case 10: + d.Shift((((1 + flt.mantbits >>> 0) >> 0))); + mant = d.RoundedInteger(); + /* */ if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { + $s = 11; + continue; + } + /* */ $s = 12; + continue; + /* if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { */ case 11: + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + /* */ if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { + $s = 13; + continue; + } + /* */ $s = 14; + continue; + /* if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { */ case 13: + /* goto overflow */ $s = 6; + continue; + /* } */ case 14: + /* } */ case 12: + if ((x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$4.$high, (mant.$low & x$4.$low) >>> 0)), (x$3.$high === 0 && x$3.$low === 0))) { + exp = flt.bias; + } + /* goto out */ $s = 3; + continue; + /* overflow: */ case 6: + mant = new $Uint64(0, 0); + exp = (((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; + overflow = true; + /* out: */ case 3: + bits$1 = (x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$6.$high - 0, x$6.$low - 1)), new $Uint64(mant.$high & x$5.$high, (mant.$low & x$5.$low) >>> 0)); + bits$1 = (x$7 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$3 = flt.expbits, y$3 < 32 ? (1 << y$3) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$7.$high, (bits$1.$low | x$7.$low) >>> 0)); + if (d.neg) { + bits$1 = (x$8 = $shiftLeft64($shiftLeft64(new $Uint64(0, 1), flt.mantbits), flt.expbits), new $Uint64(bits$1.$high | x$8.$high, (bits$1.$low | x$8.$low) >>> 0)); + } + _tmp = bits$1; + _tmp$1 = overflow; + b = _tmp; + overflow = _tmp$1; + $s = -1; + return [b, overflow]; + /* */ } + return; + } + }; + decimal.prototype.floatBits = function (flt) { return this.$val.floatBits(flt); }; + atof64exact = function (mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float64info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } + else if (exp > 0 && exp <= 37) { + if (exp > 22) { + f = f * ((x$1 = exp - 22 >> 0, ((x$1 < 0 || x$1 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$1]))); + exp = 22; + } + if (f > 1e+15 || f < -1e+15) { + return [f, ok]; + } + _tmp$2 = f * ((exp < 0 || exp >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + exp]); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } + else if (exp < 0 && exp >= -22) { + _tmp$4 = f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$2])); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atof32exact = function (mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float32info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } + else if (exp > 0 && exp <= 17) { + if (exp > 10) { + f = $fround(f * ((x$1 = exp - 10 >> 0, ((x$1 < 0 || x$1 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$1])))); + exp = 10; + } + if (f > 1e+07 || f < -1e+07) { + return [f, ok]; + } + _tmp$2 = $fround(f * ((exp < 0 || exp >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + exp])); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } + else if (exp < 0 && exp >= -10) { + _tmp$4 = $fround(f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$2]))); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atof32 = function (s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; + f = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = ($fround(val)); + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + return [f, err]; + } + if (optimize) { + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + ok$1 = _tuple$1[4]; + if (ok$1) { + if (!trunc) { + _tuple$2 = atof32exact(mantissa, exp, neg); + f$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + _tmp$2 = f$1; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + return [f, err]; + } + } + ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); + ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float32info); + if (ok$3) { + _tuple$3 = ext.floatBits(float32info); + b = _tuple$3[0]; + ovf = _tuple$3[1]; + f = math.Float32frombits(((b.$low >>> 0))); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$4 = f; + _tmp$5 = err; + f = _tmp$4; + err = _tmp$5; + return [f, err]; + } + } + } + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + if (!d.set(s)) { + _tmp$6 = 0; + _tmp$7 = syntaxError("ParseFloat", s); + f = _tmp$6; + err = _tmp$7; + return [f, err]; + } + _tuple$4 = d.floatBits(float32info); + b$1 = _tuple$4[0]; + ovf$1 = _tuple$4[1]; + f = math.Float32frombits(((b$1.$low >>> 0))); + if (ovf$1) { + err = rangeError("ParseFloat", s); + } + _tmp$8 = f; + _tmp$9 = err; + f = _tmp$8; + err = _tmp$9; + return [f, err]; + }; + atof64 = function (s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; + f = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = val; + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + return [f, err]; + } + if (optimize) { + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + ok$1 = _tuple$1[4]; + if (ok$1) { + if (!trunc) { + _tuple$2 = atof64exact(mantissa, exp, neg); + f$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + _tmp$2 = f$1; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + return [f, err]; + } + } + ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); + ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float64info); + if (ok$3) { + _tuple$3 = ext.floatBits(float64info); + b = _tuple$3[0]; + ovf = _tuple$3[1]; + f = math.Float64frombits(b); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$4 = f; + _tmp$5 = err; + f = _tmp$4; + err = _tmp$5; + return [f, err]; + } + } + } + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + if (!d.set(s)) { + _tmp$6 = 0; + _tmp$7 = syntaxError("ParseFloat", s); + f = _tmp$6; + err = _tmp$7; + return [f, err]; + } + _tuple$4 = d.floatBits(float64info); + b$1 = _tuple$4[0]; + ovf$1 = _tuple$4[1]; + f = math.Float64frombits(b$1); + if (ovf$1) { + err = rangeError("ParseFloat", s); + } + _tmp$8 = f; + _tmp$9 = err; + f = _tmp$8; + err = _tmp$9; + return [f, err]; + }; + ParseFloat = function (s, bitSize) { + var _tuple, bitSize, err, f, s; + if (bitSize === 32) { + _tuple = atof32(s); + f = _tuple[0]; + err = _tuple[1]; + return [(f), err]; + } + return atof64(s); + }; + $pkg.ParseFloat = ParseFloat; + NumError.ptr.prototype.Error = function () { + var _r, e, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + e = $f.e; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + e = this; + _r = e.Err.Error(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: NumError.ptr.prototype.Error }; + } + $f._r = _r; + $f.e = e; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + NumError.prototype.Error = function () { return this.$val.Error(); }; + syntaxError = function (fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrSyntax); + }; + rangeError = function (fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrRange); + }; + baseError = function (fn, str, base) { + var base, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid base " + Itoa(base))); + }; + bitSizeError = function (fn, str, bitSize) { + var bitSize, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid bit size " + Itoa(bitSize))); + }; + ParseUint = function (s, base, bitSize) { + var _1, _i, _ref, base, bitSize, c, cutoff, d, maxVal, n, n1, s, s0, x, x$1, x$2; + if (s.length === 0) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s)]; + } + s0 = s; + if (2 <= base && base <= 36) { + } + else if ((base === 0)) { + if ((s.charCodeAt(0) === 48) && s.length > 1 && ((s.charCodeAt(1) === 120) || (s.charCodeAt(1) === 88))) { + if (s.length < 3) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + base = 16; + s = $substring(s, 2); + } + else if ((s.charCodeAt(0) === 48)) { + base = 8; + s = $substring(s, 1); + } + else { + base = 10; + } + } + else { + return [new $Uint64(0, 0), baseError("ParseUint", s0, base)]; + } + if (bitSize === 0) { + bitSize = 32; + } + else if (bitSize < 0 || bitSize > 64) { + return [new $Uint64(0, 0), bitSizeError("ParseUint", s0, bitSize)]; + } + cutoff = new $Uint64(0, 0); + _1 = base; + if (_1 === (10)) { + cutoff = new $Uint64(429496729, 2576980378); + } + else if (_1 === (16)) { + cutoff = new $Uint64(268435456, 0); + } + else { + cutoff = (x = $div64(new $Uint64(4294967295, 4294967295), (new $Uint64(0, base)), false), new $Uint64(x.$high + 0, x.$low + 1)); + } + maxVal = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((bitSize >>> 0))), new $Uint64(x$1.$high - 0, x$1.$low - 1)); + n = new $Uint64(0, 0); + _ref = (new sliceType$6($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + d = 0; + if (48 <= c && c <= 57) { + d = c - 48 << 24 >>> 24; + } + else if (97 <= c && c <= 122) { + d = (c - 97 << 24 >>> 24) + 10 << 24 >>> 24; + } + else if (65 <= c && c <= 90) { + d = (c - 65 << 24 >>> 24) + 10 << 24 >>> 24; + } + else { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if (d >= ((base << 24 >>> 24))) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = $mul64(n, ((new $Uint64(0, base)))); + n1 = (x$2 = (new $Uint64(0, d)), new $Uint64(n.$high + x$2.$high, n.$low + x$2.$low)); + if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = n1; + _i++; + } + return [n, $ifaceNil]; + }; + $pkg.ParseUint = ParseUint; + ParseInt = function (s, base, bitSize) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, base, bitSize, cutoff, err, i, n, neg, s, s0, un, x, x$1; + i = new $Int64(0, 0); + err = $ifaceNil; + if (s.length === 0) { + _tmp = new $Int64(0, 0); + _tmp$1 = syntaxError("ParseInt", s); + i = _tmp; + err = _tmp$1; + return [i, err]; + } + s0 = s; + neg = false; + if (s.charCodeAt(0) === 43) { + s = $substring(s, 1); + } + else if (s.charCodeAt(0) === 45) { + neg = true; + s = $substring(s, 1); + } + un = new $Uint64(0, 0); + _tuple = ParseUint(s, base, bitSize); + un = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual($assertType(err, ptrType).Err, $pkg.ErrRange))) { + $assertType(err, ptrType).Func = "ParseInt"; + $assertType(err, ptrType).Num = s0; + _tmp$2 = new $Int64(0, 0); + _tmp$3 = err; + i = _tmp$2; + err = _tmp$3; + return [i, err]; + } + if (bitSize === 0) { + bitSize = 32; + } + cutoff = ($shiftLeft64(new $Uint64(0, 1), (((bitSize - 1 >> 0) >>> 0)))); + if (!neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low >= cutoff.$low))) { + _tmp$4 = ((x = new $Uint64(cutoff.$high - 0, cutoff.$low - 1), new $Int64(x.$high, x.$low))); + _tmp$5 = rangeError("ParseInt", s0); + i = _tmp$4; + err = _tmp$5; + return [i, err]; + } + if (neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low > cutoff.$low))) { + _tmp$6 = (x$1 = (new $Int64(cutoff.$high, cutoff.$low)), new $Int64(-x$1.$high, -x$1.$low)); + _tmp$7 = rangeError("ParseInt", s0); + i = _tmp$6; + err = _tmp$7; + return [i, err]; + } + n = (new $Int64(un.$high, un.$low)); + if (neg) { + n = new $Int64(-n.$high, -n.$low); + } + _tmp$8 = n; + _tmp$9 = $ifaceNil; + i = _tmp$8; + err = _tmp$9; + return [i, err]; + }; + $pkg.ParseInt = ParseInt; + decimal.ptr.prototype.String = function () { + var a, buf, n, w; + a = this; + n = 10 + a.nd >> 0; + if (a.dp > 0) { + n = n + (a.dp) >> 0; + } + if (a.dp < 0) { + n = n + (-a.dp) >> 0; + } + buf = $makeSlice(sliceType$6, n); + w = 0; + if ((a.nd === 0)) { + return "0"; + } + else if (a.dp <= 0) { + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + w = w + (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + } + else if (a.dp < a.nd) { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0; + } + else { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0; + } + return ($bytesToString($subslice(buf, 0, w))); + }; + decimal.prototype.String = function () { return this.$val.String(); }; + digitZero = function (dst) { + var _i, _ref, dst, i; + _ref = dst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48); + _i++; + } + return dst.$length; + }; + trim = function (a) { + var a, x, x$1; + while (true) { + if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { + break; + } + a.nd = a.nd - (1) >> 0; + } + if (a.nd === 0) { + a.dp = 0; + } + }; + decimal.ptr.prototype.Assign = function (v) { + var a, buf, n, v, v1, x, x$1, x$2; + a = this; + buf = arrayType$1.zero(); + n = 0; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { + break; + } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n + (1) >> 0; + v = v1; + } + a.nd = 0; + n = n - (1) >> 0; + while (true) { + if (!(n >= 0)) { + break; + } + (x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n]))); + a.nd = a.nd + (1) >> 0; + n = n - (1) >> 0; + } + a.dp = a.nd; + trim(a); + }; + decimal.prototype.Assign = function (v) { return this.$val.Assign(v); }; + rightShift = function (a, k) { + var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4; + r = 0; + w = 0; + n = 0; + while (true) { + if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { + break; + } + if (r >= a.nd) { + if (n === 0) { + a.nd = 0; + return; + } + while (true) { + if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { + break; + } + n = n * 10 >>> 0; + r = r + (1) >> 0; + } + break; + } + c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)); + n = ((n * 10 >>> 0) + c >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + a.dp = a.dp - ((r - 1 >> 0)) >> 0; + mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0; + while (true) { + if (!(r < a.nd)) { + break; + } + c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0)); + dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; + n = (n & (mask)) >>> 0; + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + n = ((n * 10 >>> 0) + c$1 >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + while (true) { + if (!(n > 0)) { + break; + } + dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; + n = (n & (mask)) >>> 0; + if (w < 800) { + (x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + } + else if (dig$1 > 0) { + a.trunc = true; + } + n = n * 10 >>> 0; + } + a.nd = w; + trim(a); + }; + prefixIsLessThan = function (b, s) { + var b, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { + break; + } + if (i >= b.$length) { + return true; + } + if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) { + return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i); + } + i = i + (1) >> 0; + } + return false; + }; + leftShift = function (a, k) { + var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y; + delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta; + if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) { + delta = delta - (1) >> 0; + } + r = a.nd; + w = a.nd + delta >> 0; + n = 0; + r = r - (1) >> 0; + while (true) { + if (!(r >= 0)) { + break; + } + n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0; + quo = (_q = n / 10, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rem = n - (10 * quo >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24)))); + } + else if (!((rem === 0))) { + a.trunc = true; + } + n = quo; + r = r - (1) >> 0; + } + while (true) { + if (!(n > 0)) { + break; + } + quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + rem$1 = n - (10 * quo$1 >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24)))); + } + else if (!((rem$1 === 0))) { + a.trunc = true; + } + n = quo$1; + } + a.nd = a.nd + (delta) >> 0; + if (a.nd >= 800) { + a.nd = 800; + } + a.dp = a.dp + (delta) >> 0; + trim(a); + }; + decimal.ptr.prototype.Shift = function (k) { + var a, k; + a = this; + if ((a.nd === 0)) { + } + else if (k > 0) { + while (true) { + if (!(k > 28)) { + break; + } + leftShift(a, 28); + k = k - (28) >> 0; + } + leftShift(a, ((k >>> 0))); + } + else if (k < 0) { + while (true) { + if (!(k < -28)) { + break; + } + rightShift(a, 28); + k = k + (28) >> 0; + } + rightShift(a, ((-k >>> 0))); + } + }; + decimal.prototype.Shift = function (k) { return this.$val.Shift(k); }; + shouldRoundUp = function (a, nd) { + var _r, a, nd, x, x$1, x$2, x$3; + if (nd < 0 || nd >= a.nd) { + return false; + } + if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) { + if (a.trunc) { + return true; + } + return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)); + } + return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53; + }; + decimal.ptr.prototype.Round = function (nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + if (shouldRoundUp(a, nd)) { + a.RoundUp(nd); + } + else { + a.RoundDown(nd); + } + }; + decimal.prototype.Round = function (nd) { return this.$val.Round(nd); }; + decimal.ptr.prototype.RoundDown = function (nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + a.nd = nd; + trim(a); + }; + decimal.prototype.RoundDown = function (nd) { return this.$val.RoundDown(nd); }; + decimal.ptr.prototype.RoundUp = function (nd) { + var a, c, i, nd, x, x$1, x$2; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + i = nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { + break; + } + c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + if (c < 57) { + (x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24))); + a.nd = i + 1 >> 0; + return; + } + i = i - (1) >> 0; + } + a.d[0] = 49; + a.nd = 1; + a.dp = a.dp + (1) >> 0; + }; + decimal.prototype.RoundUp = function (nd) { return this.$val.RoundUp(nd); }; + decimal.ptr.prototype.RoundedInteger = function () { + var a, i, n, x, x$1, x$2, x$3; + a = this; + if (a.dp > 20) { + return new $Uint64(4294967295, 4294967295); + } + i = 0; + n = new $Uint64(0, 0); + i = 0; + while (true) { + if (!(i < a.dp && i < a.nd)) { + break; + } + n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + i = i + (1) >> 0; + } + while (true) { + if (!(i < a.dp)) { + break; + } + n = $mul64(n, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + if (shouldRoundUp(a, a.dp)) { + n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low)); + } + return n; + }; + decimal.prototype.RoundedInteger = function () { return this.$val.RoundedInteger(); }; + extFloat.ptr.prototype.floatBits = function (flt) { + var bits$1, exp, f, flt, mant, n, overflow, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2; + bits$1 = new $Uint64(0, 0); + overflow = false; + f = this; + f.Normalize(); + exp = f.exp + 63 >> 0; + if (exp < (flt.bias + 1 >> 0)) { + n = (flt.bias + 1 >> 0) - exp >> 0; + f.mant = $shiftRightUint64(f.mant, (((n >>> 0)))); + exp = exp + (n) >> 0; + } + mant = $shiftRightUint64(f.mant, ((63 - flt.mantbits >>> 0))); + if (!((x = (x$1 = f.mant, x$2 = $shiftLeft64(new $Uint64(0, 1), ((62 - flt.mantbits >>> 0))), new $Uint64(x$1.$high & x$2.$high, (x$1.$low & x$2.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + mant = (x$3 = new $Uint64(0, 1), new $Uint64(mant.$high + x$3.$high, mant.$low + x$3.$low)); + } + if ((x$4 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$4.$high && mant.$low === x$4.$low))) { + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + } + if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { + mant = new $Uint64(0, 0); + exp = (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; + overflow = true; + } + else if ((x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$6.$high, (mant.$low & x$6.$low) >>> 0)), (x$5.$high === 0 && x$5.$low === 0))) { + exp = flt.bias; + } + bits$1 = (x$7 = (x$8 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$8.$high - 0, x$8.$low - 1)), new $Uint64(mant.$high & x$7.$high, (mant.$low & x$7.$low) >>> 0)); + bits$1 = (x$9 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$9.$high, (bits$1.$low | x$9.$low) >>> 0)); + if (f.neg) { + bits$1 = (x$10 = $shiftLeft64(new $Uint64(0, 1), ((flt.mantbits + flt.expbits >>> 0))), new $Uint64(bits$1.$high | x$10.$high, (bits$1.$low | x$10.$low) >>> 0)); + } + return [bits$1, overflow]; + }; + extFloat.prototype.floatBits = function (flt) { return this.$val.floatBits(flt); }; + extFloat.ptr.prototype.AssignComputeBounds = function (mant, exp, neg, flt) { + var _tmp, _tmp$1, exp, expBiased, f, flt, lower, mant, neg, upper, x, x$1, x$2, x$3, x$4; + lower = new extFloat.ptr(new $Uint64(0, 0), 0, false); + upper = new extFloat.ptr(new $Uint64(0, 0), 0, false); + f = this; + f.mant = mant; + f.exp = exp - ((flt.mantbits >> 0)) >> 0; + f.neg = neg; + if (f.exp <= 0 && (x = $shiftLeft64(($shiftRightUint64(mant, ((-f.exp >>> 0)))), ((-f.exp >>> 0))), (mant.$high === x.$high && mant.$low === x.$low))) { + f.mant = $shiftRightUint64(f.mant, (((-f.exp >>> 0)))); + f.exp = 0; + _tmp = $clone(f, extFloat); + _tmp$1 = $clone(f, extFloat); + extFloat.copy(lower, _tmp); + extFloat.copy(upper, _tmp$1); + return [lower, upper]; + } + expBiased = exp - flt.bias >> 0; + extFloat.copy(upper, new extFloat.ptr((x$1 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$1.$high + 0, x$1.$low + 1)), f.exp - 1 >> 0, f.neg)); + if (!((x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) || (expBiased === 1)) { + extFloat.copy(lower, new extFloat.ptr((x$3 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$3.$high - 0, x$3.$low - 1)), f.exp - 1 >> 0, f.neg)); + } + else { + extFloat.copy(lower, new extFloat.ptr((x$4 = $mul64(new $Uint64(0, 4), f.mant), new $Uint64(x$4.$high - 0, x$4.$low - 1)), f.exp - 2 >> 0, f.neg)); + } + return [lower, upper]; + }; + extFloat.prototype.AssignComputeBounds = function (mant, exp, neg, flt) { return this.$val.AssignComputeBounds(mant, exp, neg, flt); }; + extFloat.ptr.prototype.Normalize = function () { + var f, shift, x; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + return 0; + } + shift = bits.LeadingZeros64(f.mant); + f.mant = $shiftLeft64(f.mant, (((shift >>> 0)))); + f.exp = f.exp - (shift) >> 0; + return ((shift >>> 0)); + }; + extFloat.prototype.Normalize = function () { return this.$val.Normalize(); }; + extFloat.ptr.prototype.Multiply = function (g) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, cross1, cross2, f, fhi, flo, g, ghi, glo, rem, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + _tmp = $shiftRightUint64(f.mant, 32); + _tmp$1 = (new $Uint64(0, ((f.mant.$low >>> 0)))); + fhi = _tmp; + flo = _tmp$1; + _tmp$2 = $shiftRightUint64(g.mant, 32); + _tmp$3 = (new $Uint64(0, ((g.mant.$low >>> 0)))); + ghi = _tmp$2; + glo = _tmp$3; + cross1 = $mul64(fhi, glo); + cross2 = $mul64(flo, ghi); + f.mant = (x = (x$1 = $mul64(fhi, ghi), x$2 = $shiftRightUint64(cross1, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)), x$3 = $shiftRightUint64(cross2, 32), new $Uint64(x.$high + x$3.$high, x.$low + x$3.$low)); + rem = (x$4 = (x$5 = (new $Uint64(0, ((cross1.$low >>> 0)))), x$6 = (new $Uint64(0, ((cross2.$low >>> 0)))), new $Uint64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)), x$7 = $shiftRightUint64(($mul64(flo, glo)), 32), new $Uint64(x$4.$high + x$7.$high, x$4.$low + x$7.$low)); + rem = (x$8 = new $Uint64(0, 2147483648), new $Uint64(rem.$high + x$8.$high, rem.$low + x$8.$low)); + f.mant = (x$9 = f.mant, x$10 = ($shiftRightUint64(rem, 32)), new $Uint64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); + f.exp = (f.exp + g.exp >> 0) + 64 >> 0; + }; + extFloat.prototype.Multiply = function (g) { return this.$val.Multiply(g); }; + extFloat.ptr.prototype.AssignDecimal = function (mantissa, exp10, neg, trunc, flt) { + var _q, _r, adjExp, denormalExp, errors$1, exp10, extrabits, f, flt, halfway, i, mant_extra, mantissa, neg, ok, shift, trunc, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y; + ok = false; + f = this; + errors$1 = 0; + if (trunc) { + errors$1 = errors$1 + (4) >> 0; + } + f.mant = mantissa; + f.exp = 0; + f.neg = neg; + i = (_q = ((exp10 - -348 >> 0)) / 8, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (exp10 < -348 || i >= 87) { + ok = false; + return ok; + } + adjExp = (_r = ((exp10 - -348 >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + if (adjExp < 19 && (x = (x$1 = 19 - adjExp >> 0, ((x$1 < 0 || x$1 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$1])), (mantissa.$high < x.$high || (mantissa.$high === x.$high && mantissa.$low < x.$low)))) { + f.mant = $mul64(f.mant, (((adjExp < 0 || adjExp >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[adjExp]))); + f.Normalize(); + } + else { + f.Normalize(); + f.Multiply($clone(((adjExp < 0 || adjExp >= smallPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : smallPowersOfTen[adjExp]), extFloat)); + errors$1 = errors$1 + (4) >> 0; + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + if (errors$1 > 0) { + errors$1 = errors$1 + (1) >> 0; + } + errors$1 = errors$1 + (4) >> 0; + shift = f.Normalize(); + errors$1 = (y = (shift), y < 32 ? (errors$1 << y) : 0) >> 0; + denormalExp = flt.bias - 63 >> 0; + extrabits = 0; + if (f.exp <= denormalExp) { + extrabits = ((63 - flt.mantbits >>> 0) + 1 >>> 0) + (((denormalExp - f.exp >> 0) >>> 0)) >>> 0; + } + else { + extrabits = 63 - flt.mantbits >>> 0; + } + halfway = $shiftLeft64(new $Uint64(0, 1), ((extrabits - 1 >>> 0))); + mant_extra = (x$2 = f.mant, x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), extrabits), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); + if ((x$5 = (x$6 = (new $Int64(halfway.$high, halfway.$low)), x$7 = (new $Int64(0, errors$1)), new $Int64(x$6.$high - x$7.$high, x$6.$low - x$7.$low)), x$8 = (new $Int64(mant_extra.$high, mant_extra.$low)), (x$5.$high < x$8.$high || (x$5.$high === x$8.$high && x$5.$low < x$8.$low))) && (x$9 = (new $Int64(mant_extra.$high, mant_extra.$low)), x$10 = (x$11 = (new $Int64(halfway.$high, halfway.$low)), x$12 = (new $Int64(0, errors$1)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), (x$9.$high < x$10.$high || (x$9.$high === x$10.$high && x$9.$low < x$10.$low)))) { + ok = false; + return ok; + } + ok = true; + return ok; + }; + extFloat.prototype.AssignDecimal = function (mantissa, exp10, neg, trunc, flt) { return this.$val.AssignDecimal(mantissa, exp10, neg, trunc, flt); }; + extFloat.ptr.prototype.frexp10 = function () { + var _q, _q$1, _tmp, _tmp$1, approxExp10, exp, exp10, f, i, index; + exp10 = 0; + index = 0; + f = this; + approxExp10 = (_q = ($imul(((-46 - f.exp >> 0)), 28)) / 93, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + i = (_q$1 = ((approxExp10 - -348 >> 0)) / 8, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + Loop: while (true) { + exp = (f.exp + ((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]).exp >> 0) + 64 >> 0; + if (exp < -60) { + i = i + (1) >> 0; + } + else if (exp > -32) { + i = i - (1) >> 0; + } + else { + break Loop; + } + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + _tmp = -((-348 + ($imul(i, 8)) >> 0)); + _tmp$1 = i; + exp10 = _tmp; + index = _tmp$1; + return [exp10, index]; + }; + extFloat.prototype.frexp10 = function () { return this.$val.frexp10(); }; + frexp10Many = function (a, b, c) { + var _tuple, a, b, c, exp10, i; + exp10 = 0; + _tuple = c.frexp10(); + exp10 = _tuple[0]; + i = _tuple[1]; + a.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + b.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + return exp10; + }; + extFloat.ptr.prototype.FixedDecimal = function (d, n) { + var $CE$B5, _q, _q$1, _tmp, _tmp$1, _tuple, buf, d, digit, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, n, nd, needed, ok, pos, pow, pow10, rest, shift, v, v1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if (n === 0) { + $panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0")); + } + f.Normalize(); + _tuple = f.frexp10(); + exp10 = _tuple[0]; + shift = ((-f.exp >>> 0)); + integer = (($shiftRightUint64(f.mant, shift).$low >>> 0)); + fraction = (x$1 = f.mant, x$2 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + $CE$B5 = new $Uint64(0, 1); + needed = n; + integerDigits = 0; + pow10 = new $Uint64(0, 1); + _tmp = 0; + _tmp$1 = new $Uint64(0, 1); + i = _tmp; + pow = _tmp$1; + while (true) { + if (!(i < 20)) { + break; + } + if ((x$3 = (new $Uint64(0, integer)), (pow.$high > x$3.$high || (pow.$high === x$3.$high && pow.$low > x$3.$low)))) { + integerDigits = i; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + rest = integer; + if (integerDigits > needed) { + pow10 = (x$4 = integerDigits - needed >> 0, ((x$4 < 0 || x$4 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$4])); + integer = (_q = integer / (((pow10.$low >>> 0))), (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rest = rest - (($imul(integer, ((pow10.$low >>> 0))) >>> 0)) >>> 0; + } + else { + rest = 0; + } + buf = arrayType$2.zero(); + pos = 32; + v = integer; + while (true) { + if (!(v > 0)) { + break; + } + v1 = (_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + v = v - (($imul(10, v1) >>> 0)) >>> 0; + pos = pos - (1) >> 0; + ((pos < 0 || pos >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[pos] = (((v + 48 >>> 0) << 24 >>> 24))); + v = v1; + } + i$1 = pos; + while (true) { + if (!(i$1 < 32)) { + break; + } + (x$5 = d.d, x$6 = i$1 - pos >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = ((i$1 < 0 || i$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i$1]))); + i$1 = i$1 + (1) >> 0; + } + nd = 32 - pos >> 0; + d.nd = nd; + d.dp = integerDigits + exp10 >> 0; + needed = needed - (nd) >> 0; + if (needed > 0) { + if (!((rest === 0)) || !((pow10.$high === 0 && pow10.$low === 1))) { + $panic(new $String("strconv: internal error, rest != 0 but needed > 0")); + } + while (true) { + if (!(needed > 0)) { + break; + } + fraction = $mul64(fraction, (new $Uint64(0, 10))); + $CE$B5 = $mul64($CE$B5, (new $Uint64(0, 10))); + if ((x$7 = $mul64(new $Uint64(0, 2), $CE$B5), x$8 = $shiftLeft64(new $Uint64(0, 1), shift), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) { + return false; + } + digit = $shiftRightUint64(fraction, shift); + (x$9 = d.d, ((nd < 0 || nd >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + nd] = ((new $Uint64(digit.$high + 0, digit.$low + 48).$low << 24 >>> 24)))); + fraction = (x$10 = $shiftLeft64(digit, shift), new $Uint64(fraction.$high - x$10.$high, fraction.$low - x$10.$low)); + nd = nd + (1) >> 0; + needed = needed - (1) >> 0; + } + d.nd = nd; + } + ok = adjustLastDigitFixed(d, (x$11 = $shiftLeft64((new $Uint64(0, rest)), shift), new $Uint64(x$11.$high | fraction.$high, (x$11.$low | fraction.$low) >>> 0)), pow10, shift, $CE$B5); + if (!ok) { + return false; + } + i$2 = d.nd - 1 >> 0; + while (true) { + if (!(i$2 >= 0)) { + break; + } + if (!(((x$12 = d.d, ((i$2 < 0 || i$2 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i$2])) === 48))) { + d.nd = i$2 + 1 >> 0; + break; + } + i$2 = i$2 - (1) >> 0; + } + return true; + }; + extFloat.prototype.FixedDecimal = function (d, n) { return this.$val.FixedDecimal(d, n); }; + adjustLastDigitFixed = function (d, num, den, shift, $CE$B5) { + var $CE$B5, d, den, i, num, shift, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $shiftLeft64(den, shift), (num.$high > x.$high || (num.$high === x.$high && num.$low > x.$low)))) { + $panic(new $String("strconv: num > den< x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + $panic(new $String("strconv: \xCE\xB5 > (den< x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { + i = d.nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { + break; + } + if ((x$7 = d.d, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])) === 57) { + d.nd = d.nd - (1) >> 0; + } + else { + break; + } + i = i - (1) >> 0; + } + if (i < 0) { + (x$8 = d.d, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 49)); + d.nd = 1; + d.dp = d.dp + (1) >> 0; + } + else { + (x$10 = d.d, ((i < 0 || i >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + i] = ((x$9 = d.d, ((i < 0 || i >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i])) + (1) << 24 >>> 24))); + } + return true; + } + return false; + }; + extFloat.ptr.prototype.ShortestDecimal = function (d, lower, upper) { + var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, allowance, buf, currentDiff, d, digit, digit$1, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, lower, multiplier, n, nd, pow, pow$1, shift, targetDiff, upper, v, v1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if ((f.exp === 0) && $equal(lower, f, extFloat) && $equal(lower, upper, extFloat)) { + buf = arrayType$1.zero(); + n = 23; + v = f.mant; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { + break; + } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x$1 = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x$1.$high, v.$low - x$1.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n - (1) >> 0; + v = v1; + } + nd = (24 - n >> 0) - 1 >> 0; + i = 0; + while (true) { + if (!(i < nd)) { + break; + } + (x$3 = d.d, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = (x$2 = (n + 1 >> 0) + i >> 0, ((x$2 < 0 || x$2 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$2])))); + i = i + (1) >> 0; + } + _tmp = nd; + _tmp$1 = nd; + d.nd = _tmp; + d.dp = _tmp$1; + while (true) { + if (!(d.nd > 0 && ((x$4 = d.d, x$5 = d.nd - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 48))) { + break; + } + d.nd = d.nd - (1) >> 0; + } + if (d.nd === 0) { + d.dp = 0; + } + d.neg = f.neg; + return true; + } + upper.Normalize(); + if (f.exp > upper.exp) { + f.mant = $shiftLeft64(f.mant, ((((f.exp - upper.exp >> 0) >>> 0)))); + f.exp = upper.exp; + } + if (lower.exp > upper.exp) { + lower.mant = $shiftLeft64(lower.mant, ((((lower.exp - upper.exp >> 0) >>> 0)))); + lower.exp = upper.exp; + } + exp10 = frexp10Many(lower, f, upper); + upper.mant = (x$6 = upper.mant, x$7 = new $Uint64(0, 1), new $Uint64(x$6.$high + x$7.$high, x$6.$low + x$7.$low)); + lower.mant = (x$8 = lower.mant, x$9 = new $Uint64(0, 1), new $Uint64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)); + shift = ((-upper.exp >>> 0)); + integer = (($shiftRightUint64(upper.mant, shift).$low >>> 0)); + fraction = (x$10 = upper.mant, x$11 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$10.$high - x$11.$high, x$10.$low - x$11.$low)); + allowance = (x$12 = upper.mant, x$13 = lower.mant, new $Uint64(x$12.$high - x$13.$high, x$12.$low - x$13.$low)); + targetDiff = (x$14 = upper.mant, x$15 = f.mant, new $Uint64(x$14.$high - x$15.$high, x$14.$low - x$15.$low)); + integerDigits = 0; + _tmp$2 = 0; + _tmp$3 = new $Uint64(0, 1); + i$1 = _tmp$2; + pow = _tmp$3; + while (true) { + if (!(i$1 < 20)) { + break; + } + if ((x$16 = (new $Uint64(0, integer)), (pow.$high > x$16.$high || (pow.$high === x$16.$high && pow.$low > x$16.$low)))) { + integerDigits = i$1; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < integerDigits)) { + break; + } + pow$1 = (x$17 = (integerDigits - i$2 >> 0) - 1 >> 0, ((x$17 < 0 || x$17 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$17])); + digit = (_q = integer / ((pow$1.$low >>> 0)), (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$18 = d.d, ((i$2 < 0 || i$2 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$2] = (((digit + 48 >>> 0) << 24 >>> 24)))); + integer = integer - (($imul(digit, ((pow$1.$low >>> 0))) >>> 0)) >>> 0; + currentDiff = (x$19 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$19.$high + fraction.$high, x$19.$low + fraction.$low)); + if ((currentDiff.$high < allowance.$high || (currentDiff.$high === allowance.$high && currentDiff.$low < allowance.$low))) { + d.nd = i$2 + 1 >> 0; + d.dp = integerDigits + exp10 >> 0; + d.neg = f.neg; + return adjustLastDigit(d, currentDiff, targetDiff, allowance, $shiftLeft64(pow$1, shift), new $Uint64(0, 2)); + } + i$2 = i$2 + (1) >> 0; + } + d.nd = integerDigits; + d.dp = d.nd + exp10 >> 0; + d.neg = f.neg; + digit$1 = 0; + multiplier = new $Uint64(0, 1); + while (true) { + fraction = $mul64(fraction, (new $Uint64(0, 10))); + multiplier = $mul64(multiplier, (new $Uint64(0, 10))); + digit$1 = (($shiftRightUint64(fraction, shift).$low >> 0)); + (x$20 = d.d, x$21 = d.nd, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = (((digit$1 + 48 >> 0) << 24 >>> 24)))); + d.nd = d.nd + (1) >> 0; + fraction = (x$22 = $shiftLeft64((new $Uint64(0, digit$1)), shift), new $Uint64(fraction.$high - x$22.$high, fraction.$low - x$22.$low)); + if ((x$23 = $mul64(allowance, multiplier), (fraction.$high < x$23.$high || (fraction.$high === x$23.$high && fraction.$low < x$23.$low)))) { + return adjustLastDigit(d, fraction, $mul64(targetDiff, multiplier), $mul64(allowance, multiplier), $shiftLeft64(new $Uint64(0, 1), shift), $mul64(multiplier, new $Uint64(0, 2))); + } + } + }; + extFloat.prototype.ShortestDecimal = function (d, lower, upper) { return this.$val.ShortestDecimal(d, lower, upper); }; + adjustLastDigit = function (d, currentDiff, targetDiff, maxDiff, ulpDecimal, ulpBinary) { + var _index, currentDiff, d, maxDiff, targetDiff, ulpBinary, ulpDecimal, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $mul64(new $Uint64(0, 2), ulpBinary), (ulpDecimal.$high < x.$high || (ulpDecimal.$high === x.$high && ulpDecimal.$low < x.$low)))) { + return false; + } + while (true) { + if (!((x$1 = (x$2 = (x$3 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(currentDiff.$high + x$3.$high, currentDiff.$low + x$3.$low)), new $Uint64(x$2.$high + ulpBinary.$high, x$2.$low + ulpBinary.$low)), (x$1.$high < targetDiff.$high || (x$1.$high === targetDiff.$high && x$1.$low < targetDiff.$low))))) { + break; + } + _index = d.nd - 1 >> 0; + (x$5 = d.d, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = d.d, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) - (1) << 24 >>> 24))); + currentDiff = (x$6 = ulpDecimal, new $Uint64(currentDiff.$high + x$6.$high, currentDiff.$low + x$6.$low)); + } + if ((x$7 = new $Uint64(currentDiff.$high + ulpDecimal.$high, currentDiff.$low + ulpDecimal.$low), x$8 = (x$9 = (x$10 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(targetDiff.$high + x$10.$high, targetDiff.$low + x$10.$low)), new $Uint64(x$9.$high + ulpBinary.$high, x$9.$low + ulpBinary.$low)), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low <= x$8.$low)))) { + return false; + } + if ((currentDiff.$high < ulpBinary.$high || (currentDiff.$high === ulpBinary.$high && currentDiff.$low < ulpBinary.$low)) || (x$11 = new $Uint64(maxDiff.$high - ulpBinary.$high, maxDiff.$low - ulpBinary.$low), (currentDiff.$high > x$11.$high || (currentDiff.$high === x$11.$high && currentDiff.$low > x$11.$low)))) { + return false; + } + if ((d.nd === 1) && ((x$12 = d.d, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])) === 48)) { + d.nd = 0; + d.dp = 0; + } + return true; + }; + FormatFloat = function (f, fmt, prec, bitSize) { + var bitSize, f, fmt, prec; + return ($bytesToString(genericFtoa($makeSlice(sliceType$6, 0, max(prec + 4 >> 0, 24)), f, fmt, prec, bitSize))); + }; + $pkg.FormatFloat = FormatFloat; + AppendFloat = function (dst, f, fmt, prec, bitSize) { + var bitSize, dst, f, fmt, prec; + return genericFtoa(dst, f, fmt, prec, bitSize); + }; + $pkg.AppendFloat = AppendFloat; + genericFtoa = function (dst, val, fmt, prec, bitSize) { + var _1, _2, _3, _4, _tuple, bitSize, bits$1, buf, buf$1, digits, digs, dst, exp, f, f$1, flt, fmt, lower, mant, neg, ok, prec, s, shortest, upper, val, x, x$1, x$2, x$3, y, y$1; + bits$1 = new $Uint64(0, 0); + flt = ptrType$1.nil; + _1 = bitSize; + if (_1 === (32)) { + bits$1 = (new $Uint64(0, math.Float32bits(($fround(val))))); + flt = float32info; + } + else if (_1 === (64)) { + bits$1 = math.Float64bits(val); + flt = float64info; + } + else { + $panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize")); + } + neg = !((x = $shiftRightUint64(bits$1, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0))); + exp = (($shiftRightUint64(bits$1, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)); + mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits$1.$high & x$1.$high, (bits$1.$low & x$1.$low) >>> 0)); + _2 = exp; + if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) { + s = ""; + if (!((mant.$high === 0 && mant.$low === 0))) { + s = "NaN"; + } + else if (neg) { + s = "-Inf"; + } + else { + s = "+Inf"; + } + return $appendSlice(dst, s); + } + else if (_2 === (0)) { + exp = exp + (1) >> 0; + } + else { + mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0)); + } + exp = exp + (flt.bias) >> 0; + if (fmt === 98) { + return fmtB(dst, neg, mant, exp, flt); + } + if (!optimize) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + ok = false; + shortest = prec < 0; + if (shortest) { + f = new extFloat.ptr(new $Uint64(0, 0), 0, false); + _tuple = f.AssignComputeBounds(mant, exp, neg, flt); + lower = $clone(_tuple[0], extFloat); + upper = $clone(_tuple[1], extFloat); + buf = arrayType$2.zero(); + digs.d = new sliceType$6(buf); + ok = f.ShortestDecimal(digs, lower, upper); + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + _3 = fmt; + if ((_3 === (101)) || (_3 === (69))) { + prec = max(digs.nd - 1 >> 0, 0); + } + else if (_3 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } + else if ((_3 === (103)) || (_3 === (71))) { + prec = digs.nd; + } + } + else if (!((fmt === 102))) { + digits = prec; + _4 = fmt; + if ((_4 === (101)) || (_4 === (69))) { + digits = digits + (1) >> 0; + } + else if ((_4 === (103)) || (_4 === (71))) { + if (prec === 0) { + prec = 1; + } + digits = prec; + } + if (digits <= 15) { + buf$1 = arrayType$1.zero(); + digs.d = new sliceType$6(buf$1); + f$1 = new extFloat.ptr(mant, exp - ((flt.mantbits >> 0)) >> 0, neg); + ok = f$1.FixedDecimal(digs, digits); + } + } + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + bigFtoa = function (dst, prec, fmt, neg, mant, exp, flt) { + var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest; + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + d.Assign(mant); + d.Shift(exp - ((flt.mantbits >> 0)) >> 0); + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + shortest = prec < 0; + if (shortest) { + roundShortest(d, mant, exp, flt); + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + prec = digs.nd - 1 >> 0; + } + else if (_1 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } + else if ((_1 === (103)) || (_1 === (71))) { + prec = digs.nd; + } + } + else { + _2 = fmt; + if ((_2 === (101)) || (_2 === (69))) { + d.Round(prec + 1 >> 0); + } + else if (_2 === (102)) { + d.Round(d.dp + prec >> 0); + } + else if ((_2 === (103)) || (_2 === (71))) { + if (prec === 0) { + prec = 1; + } + d.Round(prec); + } + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + formatDigits = function (dst, shortest, neg, digs, prec, fmt) { + var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest; + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt); + } + else if (_1 === (102)) { + return fmtF(dst, neg, $clone(digs, decimalSlice), prec); + } + else if ((_1 === (103)) || (_1 === (71))) { + eprec = prec; + if (eprec > digs.nd && digs.nd >= digs.dp) { + eprec = digs.nd; + } + if (shortest) { + eprec = 6; + } + exp = digs.dp - 1 >> 0; + if (exp < -4 || exp >= eprec) { + if (prec > digs.nd) { + prec = digs.nd; + } + return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24); + } + if (prec > digs.dp) { + prec = digs.nd; + } + return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0)); + } + return $append(dst, 37, fmt); + }; + roundShortest = function (d, mant, exp, flt) { + var d, exp, explo, flt, i, inclusive, l, lower, m, mant, mantlo, minexp, okdown, okup, u, upper, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + if ((mant.$high === 0 && mant.$low === 0)) { + d.nd = 0; + return; + } + minexp = flt.bias + 1 >> 0; + if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) { + return; + } + upper = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1))); + upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + mantlo = new $Uint64(0, 0); + explo = 0; + if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) { + mantlo = new $Uint64(mant.$high - 0, mant.$low - 1); + explo = exp; + } + else { + mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1)); + explo = exp - 1 >> 0; + } + lower = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + lower.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1))); + lower.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0)); + i = 0; + while (true) { + if (!(i < d.nd)) { + break; + } + l = 48; + if (i < lower.nd) { + l = (x$5 = lower.d, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])); + } + m = (x$6 = d.d, ((i < 0 || i >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i])); + u = 48; + if (i < upper.nd) { + u = (x$7 = upper.d, ((i < 0 || i >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[i])); + } + okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.nd); + okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.nd); + if (okdown && okup) { + d.Round(i + 1 >> 0); + return; + } + else if (okdown) { + d.RoundDown(i + 1 >> 0); + return; + } + else if (okup) { + d.RoundUp(i + 1 >> 0); + return; + } + i = i + (1) >> 0; + } + }; + fmtE = function (dst, neg, d, prec, fmt) { + var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + ch = 48; + if (!((d.nd === 0))) { + ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + dst = $append(dst, ch); + if (prec > 0) { + dst = $append(dst, 46); + i = 1; + m = min(d.nd, prec + 1 >> 0); + if (i < m) { + dst = $appendSlice(dst, $subslice(d.d, i, m)); + i = m; + } + while (true) { + if (!(i <= prec)) { + break; + } + dst = $append(dst, 48); + i = i + (1) >> 0; + } + } + dst = $append(dst, fmt); + exp = d.dp - 1 >> 0; + if (d.nd === 0) { + exp = 0; + } + if (exp < 0) { + ch = 45; + exp = -exp; + } + else { + ch = 43; + } + dst = $append(dst, ch); + if (exp < 10) { + dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24); + } + else if (exp < 100) { + dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } + else { + dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1 / 0 && _q$2 !== -1 / 0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } + return dst; + }; + fmtF = function (dst, neg, d, prec) { + var ch, d, dst, i, j, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + if (d.dp > 0) { + m = min(d.nd, d.dp); + dst = $appendSlice(dst, $subslice(d.d, 0, m)); + while (true) { + if (!(m < d.dp)) { + break; + } + dst = $append(dst, 48); + m = m + (1) >> 0; + } + } + else { + dst = $append(dst, 48); + } + if (prec > 0) { + dst = $append(dst, 46); + i = 0; + while (true) { + if (!(i < prec)) { + break; + } + ch = 48; + j = d.dp + i >> 0; + if (0 <= j && j < d.nd) { + ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + } + dst = $append(dst, ch); + i = i + (1) >> 0; + } + } + return dst; + }; + fmtB = function (dst, neg, mant, exp, flt) { + var _tuple, _tuple$1, dst, exp, flt, mant, neg; + if (neg) { + dst = $append(dst, 45); + } + _tuple = formatBits(dst, mant, 10, false, true); + dst = _tuple[0]; + dst = $append(dst, 112); + exp = exp - (((flt.mantbits >> 0))) >> 0; + if (exp >= 0) { + dst = $append(dst, 43); + } + _tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true); + dst = _tuple$1[0]; + return dst; + }; + min = function (a, b) { + var a, b; + if (a < b) { + return a; + } + return b; + }; + max = function (a, b) { + var a, b; + if (a > b) { + return a; + } + return b; + }; + FormatUint = function (i, base) { + var _tuple, base, i, s; + if (true && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small(((i.$low >> 0))); + } + _tuple = formatBits(sliceType$6.nil, i, base, false, false); + s = _tuple[1]; + return s; + }; + $pkg.FormatUint = FormatUint; + FormatInt = function (i, base) { + var _tuple, base, i, s; + if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0))); + } + _tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false); + s = _tuple[1]; + return s; + }; + $pkg.FormatInt = FormatInt; + Itoa = function (i) { + var i; + return FormatInt((new $Int64(0, i)), 10); + }; + $pkg.Itoa = Itoa; + small = function (i) { + var i; + if (i < 10) { + return $substring("0123456789abcdefghijklmnopqrstuvwxyz", i, (i + 1 >> 0)); + } + return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0)); + }; + formatBits = function (dst, u, base, neg, append_) { + var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, shift, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5; + d = sliceType$6.nil; + s = ""; + if (base < 2 || base > 36) { + $panic(new $String("strconv: illegal AppendInt/FormatInt base")); + } + a = arrayType$3.zero(); + i = 65; + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if (base === 10) { + if (true) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { + break; + } + q = $div64(u, new $Uint64(0, 1000000000), false); + us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0)); + j = 4; + while (true) { + if (!(j > 0)) { + break; + } + is = (_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us = (_q = us / (100), (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0)))); + (x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0)))); + j = j - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((us * 2 >>> 0) + 1 >>> 0))); + u = q; + } + } + us$1 = ((u.$low >>> 0)); + while (true) { + if (!(us$1 >= 100)) { + break; + } + is$1 = (_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0)))); + (x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0)))); + } + is$2 = us$1 * 2 >>> 0; + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0))); + if (us$1 >= 10) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2)); + } + } + else if (isPowerOfTwo(base)) { + shift = (((bits.TrailingZeros(((base >>> 0))) >>> 0)) & 7) >>> 0; + b = (new $Uint64(0, base)); + m = ((base >>> 0)) - 1 >>> 0; + while (true) { + if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { + break; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0))); + u = $shiftRightUint64(u, (shift)); + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } + else { + b$1 = (new $Uint64(0, base)); + while (true) { + if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { + break; + } + i = i - (1) >> 0; + q$1 = $div64(u, b$1, false); + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0)))); + u = q$1; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } + if (neg) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45); + } + if (append_) { + d = $appendSlice(dst, $subslice(new sliceType$6(a), i)); + return [d, s]; + } + s = ($bytesToString($subslice(new sliceType$6(a), i))); + return [d, s]; + }; + isPowerOfTwo = function (x) { + var x; + return (x & ((x - 1 >> 0))) === 0; + }; + quoteWith = function (s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _q, graphicOnly, quote, s; + return ($bytesToString(appendQuotedWith($makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), s, quote, ASCIIonly, graphicOnly))); + }; + appendQuotedWith = function (buf, s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _tuple, buf, graphicOnly, quote, r, s, width; + buf = $append(buf, quote); + width = 0; + while (true) { + if (!(s.length > 0)) { + break; + } + r = ((s.charCodeAt(0) >> 0)); + width = 1; + if (r >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + width = _tuple[1]; + } + if ((width === 1) && (r === 65533)) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0))); + s = $substring(s, width); + continue; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + s = $substring(s, width); + } + buf = $append(buf, quote); + return buf; + }; + appendQuotedRuneWith = function (buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, buf, graphicOnly, quote, r; + buf = $append(buf, quote); + if (!utf8.ValidRune(r)) { + r = 65533; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + buf = $append(buf, quote); + return buf; + }; + appendEscapedRune = function (buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1; + runeTmp = arrayType$4.zero(); + if ((r === ((quote >> 0))) || (r === 92)) { + buf = $append(buf, 92); + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + if (ASCIIonly) { + if (r < 128 && IsPrint(r)) { + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + } + else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) { + n = utf8.EncodeRune(new sliceType$6(runeTmp), r); + buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n)); + return buf; + } + _1 = r; + if (_1 === (7)) { + buf = $appendSlice(buf, "\\a"); + } + else if (_1 === (8)) { + buf = $appendSlice(buf, "\\b"); + } + else if (_1 === (12)) { + buf = $appendSlice(buf, "\\f"); + } + else if (_1 === (10)) { + buf = $appendSlice(buf, "\\n"); + } + else if (_1 === (13)) { + buf = $appendSlice(buf, "\\r"); + } + else if (_1 === (9)) { + buf = $appendSlice(buf, "\\t"); + } + else if (_1 === (11)) { + buf = $appendSlice(buf, "\\v"); + } + else { + if (r < 32) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0))); + } + else if (r > 1114111) { + r = 65533; + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { + break; + } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } + else if (r < 65536) { + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { + break; + } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } + else { + buf = $appendSlice(buf, "\\U"); + s$1 = 28; + while (true) { + if (!(s$1 >= 0)) { + break; + } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15))); + s$1 = s$1 - (4) >> 0; + } + } + } + return buf; + }; + Quote = function (s) { + var s; + return quoteWith(s, 34, false, false); + }; + $pkg.Quote = Quote; + AppendQuote = function (dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, false, false); + }; + $pkg.AppendQuote = AppendQuote; + AppendQuoteToASCII = function (dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, true, false); + }; + $pkg.AppendQuoteToASCII = AppendQuoteToASCII; + AppendQuoteRune = function (dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, false, false); + }; + $pkg.AppendQuoteRune = AppendQuoteRune; + AppendQuoteRuneToASCII = function (dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, true, false); + }; + $pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII; + CanBackquote = function (s) { + var _tuple, r, s, wid; + while (true) { + if (!(s.length > 0)) { + break; + } + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + wid = _tuple[1]; + s = $substring(s, wid); + if (wid > 1) { + if (r === 65279) { + return false; + } + continue; + } + if (r === 65533) { + return false; + } + if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) { + return false; + } + } + return true; + }; + $pkg.CanBackquote = CanBackquote; + unhex = function (b) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v; + v = 0; + ok = false; + c = ((b >> 0)); + if (48 <= c && c <= 57) { + _tmp = c - 48 >> 0; + _tmp$1 = true; + v = _tmp; + ok = _tmp$1; + return [v, ok]; + } + else if (97 <= c && c <= 102) { + _tmp$2 = (c - 97 >> 0) + 10 >> 0; + _tmp$3 = true; + v = _tmp$2; + ok = _tmp$3; + return [v, ok]; + } + else if (65 <= c && c <= 70) { + _tmp$4 = (c - 65 >> 0) + 10 >> 0; + _tmp$5 = true; + v = _tmp$4; + ok = _tmp$5; + return [v, ok]; + } + return [v, ok]; + }; + UnquoteChar = function (s, quote) { + var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1; + value = 0; + multibyte = false; + tail = ""; + err = $ifaceNil; + if (s.length === 0) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c = s.charCodeAt(0); + if ((c === quote) && ((quote === 39) || (quote === 34))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + else if (c >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + _tmp = r; + _tmp$1 = true; + _tmp$2 = $substring(s, size); + _tmp$3 = $ifaceNil; + value = _tmp; + multibyte = _tmp$1; + tail = _tmp$2; + err = _tmp$3; + return [value, multibyte, tail, err]; + } + else if (!((c === 92))) { + _tmp$4 = ((s.charCodeAt(0) >> 0)); + _tmp$5 = false; + _tmp$6 = $substring(s, 1); + _tmp$7 = $ifaceNil; + value = _tmp$4; + multibyte = _tmp$5; + tail = _tmp$6; + err = _tmp$7; + return [value, multibyte, tail, err]; + } + if (s.length <= 1) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c$1 = s.charCodeAt(1); + s = $substring(s, 2); + switch (0) { + default: + _1 = c$1; + if (_1 === (97)) { + value = 7; + } + else if (_1 === (98)) { + value = 8; + } + else if (_1 === (102)) { + value = 12; + } + else if (_1 === (110)) { + value = 10; + } + else if (_1 === (114)) { + value = 13; + } + else if (_1 === (116)) { + value = 9; + } + else if (_1 === (118)) { + value = 11; + } + else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) { + n = 0; + _2 = c$1; + if (_2 === (120)) { + n = 2; + } + else if (_2 === (117)) { + n = 4; + } + else if (_2 === (85)) { + n = 8; + } + v = 0; + if (s.length < n) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j = 0; + while (true) { + if (!(j < n)) { + break; + } + _tuple$1 = unhex(s.charCodeAt(j)); + x = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v = (v << 4 >> 0) | x; + j = j + (1) >> 0; + } + s = $substring(s, n); + if (c$1 === 120) { + value = v; + break; + } + if (v > 1114111) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v; + multibyte = true; + } + else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + v$1 = ((c$1 >> 0)) - 48 >> 0; + if (s.length < 2) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j$1 = 0; + while (true) { + if (!(j$1 < 2)) { + break; + } + x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0; + if (x$1 < 0 || x$1 > 7) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v$1 = ((v$1 << 3 >> 0)) | x$1; + j$1 = j$1 + (1) >> 0; + } + s = $substring(s, 2); + if (v$1 > 255) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v$1; + } + else if (_1 === (92)) { + value = 92; + } + else if ((_1 === (39)) || (_1 === (34))) { + if (!((c$1 === quote))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = ((c$1 >> 0)); + } + else { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + } + tail = s; + return [value, multibyte, tail, err]; + }; + $pkg.UnquoteChar = UnquoteChar; + Unquote = function (s) { + var _1, _q, _tuple, _tuple$1, buf, buf$1, c, err, i, multibyte, n, n$1, quote, r, runeTmp, s, size, ss; + n = s.length; + if (n < 2) { + return ["", $pkg.ErrSyntax]; + } + quote = s.charCodeAt(0); + if (!((quote === s.charCodeAt((n - 1 >> 0))))) { + return ["", $pkg.ErrSyntax]; + } + s = $substring(s, 1, (n - 1 >> 0)); + if (quote === 96) { + if (contains(s, 96)) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 13)) { + buf = $makeSlice(sliceType$6, 0, (s.length - 1 >> 0)); + i = 0; + while (true) { + if (!(i < s.length)) { + break; + } + if (!((s.charCodeAt(i) === 13))) { + buf = $append(buf, s.charCodeAt(i)); + } + i = i + (1) >> 0; + } + return [($bytesToString(buf)), $ifaceNil]; + } + return [s, $ifaceNil]; + } + if (!((quote === 34)) && !((quote === 39))) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 10)) { + return ["", $pkg.ErrSyntax]; + } + if (!contains(s, 92) && !contains(s, quote)) { + _1 = quote; + if (_1 === (34)) { + if (utf8.ValidString(s)) { + return [s, $ifaceNil]; + } + } + else if (_1 === (39)) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + if ((size === s.length) && (!((r === 65533)) || !((size === 1)))) { + return [s, $ifaceNil]; + } + } + } + runeTmp = arrayType$4.zero(); + buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + while (true) { + if (!(s.length > 0)) { + break; + } + _tuple$1 = UnquoteChar(s, quote); + c = _tuple$1[0]; + multibyte = _tuple$1[1]; + ss = _tuple$1[2]; + err = _tuple$1[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return ["", err]; + } + s = ss; + if (c < 128 || !multibyte) { + buf$1 = $append(buf$1, ((c << 24 >>> 24))); + } + else { + n$1 = utf8.EncodeRune(new sliceType$6(runeTmp), c); + buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(runeTmp), 0, n$1)); + } + if ((quote === 39) && !((s.length === 0))) { + return ["", $pkg.ErrSyntax]; + } + } + return [($bytesToString(buf$1)), $ifaceNil]; + }; + $pkg.Unquote = Unquote; + contains = function (s, c) { + var c, s; + return !((bytealg.IndexByteString(s, c) === -1)); + }; + bsearch16 = function (a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { + break; + } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } + else { + j = h; + } + } + return i; + }; + bsearch32 = function (a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { + break; + } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } + else { + j = h; + } + } + return i; + }; + IsPrint = function (r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3; + if (r <= 255) { + if (32 <= r && r <= 126) { + return true; + } + if (161 <= r && r <= 255) { + return !((r === 173)); + } + return false; + } + if (0 <= r && r < 65536) { + _tmp = ((r << 16 >>> 16)); + _tmp$1 = isPrint16; + _tmp$2 = isNotPrint16; + rr = _tmp; + isPrint = _tmp$1; + isNotPrint = _tmp$2; + i = bsearch16(isPrint, rr); + if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) { + return false; + } + j = bsearch16(isNotPrint, rr); + return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr)); + } + _tmp$3 = ((r >>> 0)); + _tmp$4 = isPrint32; + _tmp$5 = isNotPrint32; + rr$1 = _tmp$3; + isPrint$1 = _tmp$4; + isNotPrint$1 = _tmp$5; + i$1 = bsearch32(isPrint$1, rr$1); + if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) { + return false; + } + if (r >= 131072) { + return true; + } + r = r - (65536) >> 0; + j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16))); + return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16)))); + }; + $pkg.IsPrint = IsPrint; + isInGraphicList = function (r) { + var i, r, rr; + if (r > 65535) { + return false; + } + rr = ((r << 16 >>> 16)); + i = bsearch16(isGraphic, rr); + return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i])); + }; + ptrType.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$2.methods = [{ prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false) }, { prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false) }, { prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false) }, { prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false) }, { prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false) }, { prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false) }, { prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false) }]; + ptrType$4.methods = [{ prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false) }, { prop: "AssignComputeBounds", name: "AssignComputeBounds", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, ptrType$1], [extFloat, extFloat], false) }, { prop: "Normalize", name: "Normalize", pkg: "", typ: $funcType([], [$Uint], false) }, { prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([extFloat], [], false) }, { prop: "AssignDecimal", name: "AssignDecimal", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, $Bool, ptrType$1], [$Bool], false) }, { prop: "frexp10", name: "frexp10", pkg: "strconv", typ: $funcType([], [$Int, $Int], false) }, { prop: "FixedDecimal", name: "FixedDecimal", pkg: "", typ: $funcType([ptrType$3, $Int], [$Bool], false) }, { prop: "ShortestDecimal", name: "ShortestDecimal", pkg: "", typ: $funcType([ptrType$3, ptrType$4, ptrType$4], [$Bool], false) }]; + NumError.init("", [{ prop: "Func", name: "Func", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Num", name: "Num", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: "" }]); + decimal.init("strconv", [{ prop: "d", name: "d", embedded: false, exported: false, typ: arrayType, tag: "" }, { prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "trunc", name: "trunc", embedded: false, exported: false, typ: $Bool, tag: "" }]); + leftCheat.init("strconv", [{ prop: "delta", name: "delta", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "cutoff", name: "cutoff", embedded: false, exported: false, typ: $String, tag: "" }]); + extFloat.init("strconv", [{ prop: "mant", name: "mant", embedded: false, exported: false, typ: $Uint64, tag: "" }, { prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: "" }]); + floatInfo.init("strconv", [{ prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: "" }, { prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: "" }, { prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: "" }]); + decimalSlice.init("strconv", [{ prop: "d", name: "d", embedded: false, exported: false, typ: sliceType$6, tag: "" }, { prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = bytealg.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = math.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = bits.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = utf8.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + optimize = true; + powtab = new sliceType([1, 3, 6, 9, 13, 16, 19, 23, 26]); + float64pow10 = new sliceType$1([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, 1e+21, 1e+22]); + float32pow10 = new sliceType$2([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10]); + $pkg.ErrRange = errors.New("value out of range"); + $pkg.ErrSyntax = errors.New("invalid syntax"); + leftcheats = new sliceType$3([new leftCheat.ptr(0, ""), new leftCheat.ptr(1, "5"), new leftCheat.ptr(1, "25"), new leftCheat.ptr(1, "125"), new leftCheat.ptr(2, "625"), new leftCheat.ptr(2, "3125"), new leftCheat.ptr(2, "15625"), new leftCheat.ptr(3, "78125"), new leftCheat.ptr(3, "390625"), new leftCheat.ptr(3, "1953125"), new leftCheat.ptr(4, "9765625"), new leftCheat.ptr(4, "48828125"), new leftCheat.ptr(4, "244140625"), new leftCheat.ptr(4, "1220703125"), new leftCheat.ptr(5, "6103515625"), new leftCheat.ptr(5, "30517578125"), new leftCheat.ptr(5, "152587890625"), new leftCheat.ptr(6, "762939453125"), new leftCheat.ptr(6, "3814697265625"), new leftCheat.ptr(6, "19073486328125"), new leftCheat.ptr(7, "95367431640625"), new leftCheat.ptr(7, "476837158203125"), new leftCheat.ptr(7, "2384185791015625"), new leftCheat.ptr(7, "11920928955078125"), new leftCheat.ptr(8, "59604644775390625"), new leftCheat.ptr(8, "298023223876953125"), new leftCheat.ptr(8, "1490116119384765625"), new leftCheat.ptr(9, "7450580596923828125"), new leftCheat.ptr(9, "37252902984619140625"), new leftCheat.ptr(9, "186264514923095703125"), new leftCheat.ptr(10, "931322574615478515625"), new leftCheat.ptr(10, "4656612873077392578125"), new leftCheat.ptr(10, "23283064365386962890625"), new leftCheat.ptr(10, "116415321826934814453125"), new leftCheat.ptr(11, "582076609134674072265625"), new leftCheat.ptr(11, "2910383045673370361328125"), new leftCheat.ptr(11, "14551915228366851806640625"), new leftCheat.ptr(12, "72759576141834259033203125"), new leftCheat.ptr(12, "363797880709171295166015625"), new leftCheat.ptr(12, "1818989403545856475830078125"), new leftCheat.ptr(13, "9094947017729282379150390625"), new leftCheat.ptr(13, "45474735088646411895751953125"), new leftCheat.ptr(13, "227373675443232059478759765625"), new leftCheat.ptr(13, "1136868377216160297393798828125"), new leftCheat.ptr(14, "5684341886080801486968994140625"), new leftCheat.ptr(14, "28421709430404007434844970703125"), new leftCheat.ptr(14, "142108547152020037174224853515625"), new leftCheat.ptr(15, "710542735760100185871124267578125"), new leftCheat.ptr(15, "3552713678800500929355621337890625"), new leftCheat.ptr(15, "17763568394002504646778106689453125"), new leftCheat.ptr(16, "88817841970012523233890533447265625"), new leftCheat.ptr(16, "444089209850062616169452667236328125"), new leftCheat.ptr(16, "2220446049250313080847263336181640625"), new leftCheat.ptr(16, "11102230246251565404236316680908203125"), new leftCheat.ptr(17, "55511151231257827021181583404541015625"), new leftCheat.ptr(17, "277555756156289135105907917022705078125"), new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), new leftCheat.ptr(19, "867361737988403547205962240695953369140625")]); + smallPowersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(2147483648, 0), -63, false), new extFloat.ptr(new $Uint64(2684354560, 0), -60, false), new extFloat.ptr(new $Uint64(3355443200, 0), -57, false), new extFloat.ptr(new $Uint64(4194304000, 0), -54, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3276800000, 0), -47, false), new extFloat.ptr(new $Uint64(4096000000, 0), -44, false), new extFloat.ptr(new $Uint64(2560000000, 0), -40, false)]); + powersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(4203730336, 136053384), -1220, false), new extFloat.ptr(new $Uint64(3132023167, 2722021238), -1193, false), new extFloat.ptr(new $Uint64(2333539104, 810921078), -1166, false), new extFloat.ptr(new $Uint64(3477244234, 1573795306), -1140, false), new extFloat.ptr(new $Uint64(2590748842, 1432697645), -1113, false), new extFloat.ptr(new $Uint64(3860516611, 1025131999), -1087, false), new extFloat.ptr(new $Uint64(2876309015, 3348809418), -1060, false), new extFloat.ptr(new $Uint64(4286034428, 3200048207), -1034, false), new extFloat.ptr(new $Uint64(3193344495, 1097586188), -1007, false), new extFloat.ptr(new $Uint64(2379227053, 2424306748), -980, false), new extFloat.ptr(new $Uint64(3545324584, 827693699), -954, false), new extFloat.ptr(new $Uint64(2641472655, 2913388981), -927, false), new extFloat.ptr(new $Uint64(3936100983, 602835915), -901, false), new extFloat.ptr(new $Uint64(2932623761, 1081627501), -874, false), new extFloat.ptr(new $Uint64(2184974969, 1572261463), -847, false), new extFloat.ptr(new $Uint64(3255866422, 1308317239), -821, false), new extFloat.ptr(new $Uint64(2425809519, 944281679), -794, false), new extFloat.ptr(new $Uint64(3614737867, 629291719), -768, false), new extFloat.ptr(new $Uint64(2693189581, 2545915892), -741, false), new extFloat.ptr(new $Uint64(4013165208, 388672741), -715, false), new extFloat.ptr(new $Uint64(2990041083, 708162190), -688, false), new extFloat.ptr(new $Uint64(2227754207, 3536207675), -661, false), new extFloat.ptr(new $Uint64(3319612455, 450088378), -635, false), new extFloat.ptr(new $Uint64(2473304014, 3139815830), -608, false), new extFloat.ptr(new $Uint64(3685510180, 2103616900), -582, false), new extFloat.ptr(new $Uint64(2745919064, 224385782), -555, false), new extFloat.ptr(new $Uint64(4091738259, 3737383206), -529, false), new extFloat.ptr(new $Uint64(3048582568, 2868871352), -502, false), new extFloat.ptr(new $Uint64(2271371013, 1820084875), -475, false), new extFloat.ptr(new $Uint64(3384606560, 885076051), -449, false), new extFloat.ptr(new $Uint64(2521728396, 2444895829), -422, false), new extFloat.ptr(new $Uint64(3757668132, 1881767613), -396, false), new extFloat.ptr(new $Uint64(2799680927, 3102062735), -369, false), new extFloat.ptr(new $Uint64(4171849679, 2289335700), -343, false), new extFloat.ptr(new $Uint64(3108270227, 2410191823), -316, false), new extFloat.ptr(new $Uint64(2315841784, 3205436779), -289, false), new extFloat.ptr(new $Uint64(3450873173, 1697722806), -263, false), new extFloat.ptr(new $Uint64(2571100870, 3497754540), -236, false), new extFloat.ptr(new $Uint64(3831238852, 707476230), -210, false), new extFloat.ptr(new $Uint64(2854495385, 1769181907), -183, false), new extFloat.ptr(new $Uint64(4253529586, 2197867022), -157, false), new extFloat.ptr(new $Uint64(3169126500, 2450594539), -130, false), new extFloat.ptr(new $Uint64(2361183241, 1867548876), -103, false), new extFloat.ptr(new $Uint64(3518437208, 3793315116), -77, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3906250000, 0), -24, false), new extFloat.ptr(new $Uint64(2910383045, 2892103680), 3, false), new extFloat.ptr(new $Uint64(2168404344, 4170451332), 30, false), new extFloat.ptr(new $Uint64(3231174267, 3372684723), 56, false), new extFloat.ptr(new $Uint64(2407412430, 2078956656), 83, false), new extFloat.ptr(new $Uint64(3587324068, 2884206696), 109, false), new extFloat.ptr(new $Uint64(2672764710, 395977285), 136, false), new extFloat.ptr(new $Uint64(3982729777, 3569679143), 162, false), new extFloat.ptr(new $Uint64(2967364920, 2361961896), 189, false), new extFloat.ptr(new $Uint64(2210859150, 447440347), 216, false), new extFloat.ptr(new $Uint64(3294436857, 1114709402), 242, false), new extFloat.ptr(new $Uint64(2454546732, 2786846552), 269, false), new extFloat.ptr(new $Uint64(3657559652, 443583978), 295, false), new extFloat.ptr(new $Uint64(2725094297, 2599384906), 322, false), new extFloat.ptr(new $Uint64(4060706939, 3028118405), 348, false), new extFloat.ptr(new $Uint64(3025462433, 2044532855), 375, false), new extFloat.ptr(new $Uint64(2254145170, 1536935362), 402, false), new extFloat.ptr(new $Uint64(3358938053, 3365297469), 428, false), new extFloat.ptr(new $Uint64(2502603868, 4204241075), 455, false), new extFloat.ptr(new $Uint64(3729170365, 2577424355), 481, false), new extFloat.ptr(new $Uint64(2778448436, 3677981733), 508, false), new extFloat.ptr(new $Uint64(4140210802, 2744688476), 534, false), new extFloat.ptr(new $Uint64(3084697427, 1424604878), 561, false), new extFloat.ptr(new $Uint64(2298278679, 4062331362), 588, false), new extFloat.ptr(new $Uint64(3424702107, 3546052773), 614, false), new extFloat.ptr(new $Uint64(2551601907, 2065781727), 641, false), new extFloat.ptr(new $Uint64(3802183132, 2535403578), 667, false), new extFloat.ptr(new $Uint64(2832847187, 1558426518), 694, false), new extFloat.ptr(new $Uint64(4221271257, 2762425404), 720, false), new extFloat.ptr(new $Uint64(3145092172, 2812560400), 747, false), new extFloat.ptr(new $Uint64(2343276271, 3057687578), 774, false), new extFloat.ptr(new $Uint64(3491753744, 2790753324), 800, false), new extFloat.ptr(new $Uint64(2601559269, 3918606633), 827, false), new extFloat.ptr(new $Uint64(3876625403, 2711358621), 853, false), new extFloat.ptr(new $Uint64(2888311001, 1648096297), 880, false), new extFloat.ptr(new $Uint64(2151959390, 2057817989), 907, false), new extFloat.ptr(new $Uint64(3206669376, 61660461), 933, false), new extFloat.ptr(new $Uint64(2389154863, 1581580175), 960, false), new extFloat.ptr(new $Uint64(3560118173, 2626467905), 986, false), new extFloat.ptr(new $Uint64(2652494738, 3034782633), 1013, false), new extFloat.ptr(new $Uint64(3952525166, 3135207385), 1039, false), new extFloat.ptr(new $Uint64(2944860731, 2616258155), 1066, false)]); + uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); + float32info = new floatInfo.ptr(23, 8, -127); + float64info = new floatInfo.ptr(52, 11, -1023); + isPrint16 = new sliceType$4([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1520, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2048, 2093, 2096, 2139, 2142, 2154, 2208, 2237, 2260, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2557, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2677, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3192, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3455, 3458, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3716, 3719, 3722, 3725, 3725, 3732, 3751, 3754, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6846, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7360, 7367, 7376, 7417, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11157, 11160, 11193, 11197, 11218, 11244, 11247, 11264, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11849, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12590, 12593, 12730, 12736, 12771, 12784, 19893, 19904, 40938, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42935, 42999, 43051, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43261, 43264, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43877, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); + isNotPrint16 = new sliceType$4([173, 907, 909, 930, 1328, 1376, 1416, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3076, 3085, 3089, 3113, 3141, 3145, 3159, 3204, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3332, 3341, 3345, 3397, 3401, 3460, 3506, 3516, 3541, 3543, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3770, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11209, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12687, 12831, 13055, 42927, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); + isPrint32 = new sliceType$5([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65947, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68147, 68152, 68154, 68159, 68167, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68863, 69216, 69246, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69955, 69968, 70006, 70016, 70093, 70096, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70457, 70460, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70749, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71351, 71360, 71369, 71424, 71449, 71453, 71467, 71472, 71487, 71840, 71922, 71935, 71935, 72192, 72263, 72272, 72323, 72326, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73728, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93952, 94020, 94032, 94078, 94095, 94111, 94176, 94177, 94208, 100332, 100352, 101106, 110592, 110878, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119552, 119638, 119648, 119665, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 124928, 125124, 125127, 125142, 125184, 125258, 125264, 125273, 125278, 125279, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127244, 127248, 127339, 127344, 127404, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128724, 128736, 128748, 128752, 128760, 128768, 128883, 128896, 128980, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129280, 129291, 129296, 129356, 129360, 129387, 129408, 129431, 129472, 129472, 129488, 129510, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999]); + isNotPrint32 = new sliceType$4([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 5210, 5212, 6813, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 61743, 63807]); + isGraphic = new sliceType$4([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["internal/race"] = (function () { + var $pkg = {}, $init, Acquire, Release, ReleaseMerge, Disable, Enable, ReadRange, WriteRange; + Acquire = function (addr) { + var addr; + }; + $pkg.Acquire = Acquire; + Release = function (addr) { + var addr; + }; + $pkg.Release = Release; + ReleaseMerge = function (addr) { + var addr; + }; + $pkg.ReleaseMerge = ReleaseMerge; + Disable = function () { + }; + $pkg.Disable = Disable; + Enable = function () { + }; + $pkg.Enable = Enable; + ReadRange = function (addr, len) { + var addr, len; + }; + $pkg.ReadRange = ReadRange; + WriteRange = function (addr, len) { + var addr, len; + }; + $pkg.WriteRange = WriteRange; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["sync/atomic"] = (function () { + var $pkg = {}, $init, js, Value, ptrType, CompareAndSwapInt32, CompareAndSwapUint64, AddInt32, LoadInt32, LoadUint64, StoreInt32, StoreUint32; + js = $packages["github.com/gopherjs/gopherjs/js"]; + Value = $pkg.Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function (v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = $ifaceNil; + return; + } + this.v = v_; + }); + ptrType = $ptrType(Value); + CompareAndSwapInt32 = function (addr, old, new$1) { + var addr, new$1, old; + if (addr.$get() === old) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapInt32 = CompareAndSwapInt32; + CompareAndSwapUint64 = function (addr, old, new$1) { + var addr, new$1, old, x; + if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapUint64 = CompareAndSwapUint64; + AddInt32 = function (addr, delta) { + var addr, delta, new$1; + new$1 = addr.$get() + delta >> 0; + addr.$set(new$1); + return new$1; + }; + $pkg.AddInt32 = AddInt32; + LoadInt32 = function (addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadInt32 = LoadInt32; + LoadUint64 = function (addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadUint64 = LoadUint64; + StoreInt32 = function (addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreInt32 = StoreInt32; + StoreUint32 = function (addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreUint32 = StoreUint32; + Value.ptr.prototype.Load = function () { + var v, x; + x = $ifaceNil; + v = this; + x = v.v; + return x; + }; + Value.prototype.Load = function () { return this.$val.Load(); }; + Value.ptr.prototype.Store = function (x) { + var v, x; + v = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + $panic(new $String("sync/atomic: store of nil value into Value")); + } + if (!($interfaceIsEqual(v.v, $ifaceNil)) && !(x.constructor === v.v.constructor)) { + $panic(new $String("sync/atomic: store of inconsistently typed value into Value")); + } + v.v = x; + }; + Value.prototype.Store = function (x) { return this.$val.Store(x); }; + ptrType.methods = [{ prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false) }]; + Value.init("sync/atomic", [{ prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = js.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["sync"] = (function () { + var $pkg = {}, $init, js, race, runtime, atomic, Pool, Mutex, Locker, poolLocalInternal, poolLocal, notifyList, RWMutex, rlocker, ptrType, sliceType, ptrType$1, chanType, sliceType$1, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, funcType, ptrType$16, arrayType$2, semWaiters, semAwoken, expunged, allPools, runtime_registerPoolCleanup, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, poolCleanup, init, indexLocal, init$1, runtime_doSpin; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + Pool = $pkg.Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function (local_, localSize_, store_, New_) { + this.$val = this; + if (arguments.length === 0) { + this.local = 0; + this.localSize = 0; + this.store = sliceType$4.nil; + this.New = $throwNilPointerError; + return; + } + this.local = local_; + this.localSize = localSize_; + this.store = store_; + this.New = New_; + }); + Mutex = $pkg.Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function (state_, sema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = 0; + this.sema = 0; + return; + } + this.state = state_; + this.sema = sema_; + }); + Locker = $pkg.Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null); + poolLocalInternal = $pkg.poolLocalInternal = $newType(0, $kindStruct, "sync.poolLocalInternal", true, "sync", false, function (private$0_, shared_, Mutex_) { + this.$val = this; + if (arguments.length === 0) { + this.private$0 = $ifaceNil; + this.shared = sliceType$4.nil; + this.Mutex = new Mutex.ptr(0, 0); + return; + } + this.private$0 = private$0_; + this.shared = shared_; + this.Mutex = Mutex_; + }); + poolLocal = $pkg.poolLocal = $newType(0, $kindStruct, "sync.poolLocal", true, "sync", false, function (poolLocalInternal_, pad_) { + this.$val = this; + if (arguments.length === 0) { + this.poolLocalInternal = new poolLocalInternal.ptr($ifaceNil, sliceType$4.nil, new Mutex.ptr(0, 0)); + this.pad = arrayType$2.zero(); + return; + } + this.poolLocalInternal = poolLocalInternal_; + this.pad = pad_; + }); + notifyList = $pkg.notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function (wait_, notify_, lock_, head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.wait = 0; + this.notify = 0; + this.lock = 0; + this.head = 0; + this.tail = 0; + return; + } + this.wait = wait_; + this.notify = notify_; + this.lock = lock_; + this.head = head_; + this.tail = tail_; + }); + RWMutex = $pkg.RWMutex = $newType(0, $kindStruct, "sync.RWMutex", true, "sync", true, function (w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + rlocker = $pkg.rlocker = $newType(0, $kindStruct, "sync.rlocker", true, "sync", false, function (w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + ptrType = $ptrType(Pool); + sliceType = $sliceType(ptrType); + ptrType$1 = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType$1 = $sliceType(chanType); + ptrType$6 = $ptrType($Int32); + ptrType$7 = $ptrType(poolLocal); + sliceType$4 = $sliceType($emptyInterface); + ptrType$8 = $ptrType(rlocker); + ptrType$9 = $ptrType(RWMutex); + funcType = $funcType([], [$emptyInterface], false); + ptrType$16 = $ptrType(Mutex); + arrayType$2 = $arrayType($Uint8, 100); + Pool.ptr.prototype.Get = function () { + var _r, p, x, x$1, x$2, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + p = $f.p; + x = $f.x; + x$1 = $f.x$1; + x$2 = $f.x$2; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + /* */ if (p.store.$length === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (p.store.$length === 0) { */ case 1: + /* */ if (!(p.New === $throwNilPointerError)) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (!(p.New === $throwNilPointerError)) { */ case 3: + _r = p.New(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } */ case 4: + $s = -1; + return $ifaceNil; + /* } */ case 2: + x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); + $s = -1; + return x$2; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Pool.ptr.prototype.Get }; + } + $f._r = _r; + $f.p = p; + $f.x = x; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Pool.prototype.Get = function () { return this.$val.Get(); }; + Pool.ptr.prototype.Put = function (x) { + var p, x; + p = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + return; + } + p.store = $append(p.store, x); + }; + Pool.prototype.Put = function (x) { return this.$val.Put(x); }; + runtime_registerPoolCleanup = function (cleanup) { + var cleanup; + }; + runtime_SemacquireMutex = function (s, lifo) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _entry$1 = $f._entry$1; + _entry$2 = $f._entry$2; + _entry$3 = $f._entry$3; + _entry$4 = $f._entry$4; + _key = $f._key; + _key$1 = $f._key$1; + _key$2 = $f._key$2; + _r = $f._r; + ch = $f.ch; + lifo = $f.lifo; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: + ch = new $Chan($Bool, 0); + if (lifo) { + _key = s; + (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = semWaiters[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }; + } + else { + _key$1 = s; + (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: $append((_entry$2 = semWaiters[ptrType$1.keyFor(s)], _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }; + } + _r = $recv(ch); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r[0]; + _key$2 = s; + (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$2)] = { k: _key$2, v: (_entry$3 = semAwoken[ptrType$1.keyFor(s)], _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }; + if ((_entry$4 = semAwoken[ptrType$1.keyFor(s)], _entry$4 !== undefined ? _entry$4.v : 0) === 0) { + delete semAwoken[ptrType$1.keyFor(s)]; + } + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: runtime_SemacquireMutex }; + } + $f._entry = _entry; + $f._entry$1 = _entry$1; + $f._entry$2 = _entry$2; + $f._entry$3 = _entry$3; + $f._entry$4 = _entry$4; + $f._key = _key; + $f._key$1 = _key$1; + $f._key$2 = _key$2; + $f._r = _r; + $f.ch = ch; + $f.lifo = lifo; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + runtime_Semrelease = function (s, handoff) { + var _entry, _entry$1, _key, _key$1, ch, handoff, s, w, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _entry$1 = $f._entry$1; + _key = $f._key; + _key$1 = $f._key$1; + ch = $f.ch; + handoff = $f.handoff; + s = $f.s; + w = $f.w; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : sliceType$1.nil); + if (w.$length === 0) { + $s = -1; + return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; + (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType$1.keyFor(s)]; + } + _key$1 = s; + (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = semAwoken[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }; + $r = $send(ch, true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: runtime_Semrelease }; + } + $f._entry = _entry; + $f._entry$1 = _entry$1; + $f._key = _key; + $f._key$1 = _key$1; + $f.ch = ch; + $f.handoff = handoff; + $f.s = s; + $f.w = w; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + runtime_notifyListCheck = function (size) { + var size; + }; + runtime_canSpin = function (i) { + var i; + return false; + }; + runtime_nanotime = function () { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + throw$1 = function (s) { + var s; + $throwRuntimeError($externalize(s, $String)); + }; + Mutex.ptr.prototype.Lock = function () { + var awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + awoke = $f.awoke; + delta = $f.delta; + iter = $f.iter; + m = $f.m; + new$1 = $f.new$1; + old = $f.old; + queueLifo = $f.queueLifo; + starving = $f.starving; + waitStartTime = $f.waitStartTime; + x = $f.x; + x$1 = $f.x$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + m = this; + if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, m))), 0, 1)) { + if (false) { + race.Acquire((m)); + } + $s = -1; + return; + } + waitStartTime = new $Int64(0, 0); + starving = false; + awoke = false; + iter = 0; + old = m.state; + /* while (true) { */ case 1: + /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: + if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, m))), old, old | 2)) { + awoke = true; + } + runtime_doSpin(); + iter = iter + (1) >> 0; + old = m.state; + /* continue; */ $s = 1; + continue; + /* } */ case 4: + new$1 = old; + if ((old & 4) === 0) { + new$1 = new$1 | (1); + } + if (!(((old & 5) === 0))) { + new$1 = new$1 + (8) >> 0; + } + if (starving && !(((old & 1) === 0))) { + new$1 = new$1 | (4); + } + if (awoke) { + if ((new$1 & 2) === 0) { + throw$1("sync: inconsistent mutex state"); + } + new$1 = (new$1 & ~(2)) >> 0; + } + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, m))), old, new$1)) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 5: + if ((old & 5) === 0) { + /* break; */ $s = 2; + continue; + } + queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0)); + if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) { + waitStartTime = runtime_nanotime(); + } + $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function () { return this.$target.sema; }, function ($v) { this.$target.sema = $v; }, m))), queueLifo); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + starving = starving || (x = (x$1 = runtime_nanotime(), new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); + old = m.state; + if (!(((old & 4) === 0))) { + if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) { + throw$1("sync: inconsistent mutex state"); + } + delta = -7; + if (!starving || ((old >> 3 >> 0) === 1)) { + delta = delta - (4) >> 0; + } + atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, m))), delta); + /* break; */ $s = 2; + continue; + } + awoke = true; + iter = 0; + $s = 7; + continue; + /* } else { */ case 6: + old = m.state; + /* } */ case 7: + /* } */ $s = 1; + continue; + case 2: + if (false) { + race.Acquire((m)); + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Mutex.ptr.prototype.Lock }; + } + $f.awoke = awoke; + $f.delta = delta; + $f.iter = iter; + $f.m = m; + $f.new$1 = new$1; + $f.old = old; + $f.queueLifo = queueLifo; + $f.starving = starving; + $f.waitStartTime = waitStartTime; + $f.x = x; + $f.x$1 = x$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Mutex.prototype.Lock = function () { return this.$val.Lock(); }; + Mutex.ptr.prototype.Unlock = function () { + var m, new$1, old, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + m = $f.m; + new$1 = $f.new$1; + old = $f.old; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + m = this; + if (false) { + $unused(m.state); + race.Release((m)); + } + new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, m))), -1); + if ((((new$1 + 1 >> 0)) & 1) === 0) { + throw$1("sync: unlock of unlocked mutex"); + } + /* */ if ((new$1 & 4) === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if ((new$1 & 4) === 0) { */ case 1: + old = new$1; + /* while (true) { */ case 4: + if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) { + $s = -1; + return; + } + new$1 = ((old - 8 >> 0)) | 2; + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, m))), old, new$1)) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function () { return this.$target.sema; }, function ($v) { this.$target.sema = $v; }, m))), false); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* } */ case 7: + old = m.state; + /* } */ $s = 4; + continue; + case 5: + $s = 3; + continue; + /* } else { */ case 2: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function () { return this.$target.sema; }, function ($v) { this.$target.sema = $v; }, m))), true); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 3: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Mutex.ptr.prototype.Unlock }; + } + $f.m = m; + $f.new$1 = new$1; + $f.old = old; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Mutex.prototype.Unlock = function () { return this.$val.Unlock(); }; + poolCleanup = function () { + var _i, _i$1, _ref, _ref$1, i, i$1, j, l, p, x; + _ref = allPools; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= allPools.$length) ? ($throwRuntimeError("index out of range"), undefined) : allPools.$array[allPools.$offset + i] = ptrType.nil); + i$1 = 0; + while (true) { + if (!(i$1 < ((p.localSize >> 0)))) { + break; + } + l = indexLocal(p.local, i$1); + l.poolLocalInternal.private$0 = $ifaceNil; + _ref$1 = l.poolLocalInternal.shared; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { + break; + } + j = _i$1; + (x = l.poolLocalInternal.shared, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j] = $ifaceNil)); + _i$1++; + } + l.poolLocalInternal.shared = sliceType$4.nil; + i$1 = i$1 + (1) >> 0; + } + p.local = 0; + p.localSize = 0; + _i++; + } + allPools = new sliceType([]); + }; + init = function () { + runtime_registerPoolCleanup(poolCleanup); + }; + indexLocal = function (l, i) { + var i, l, lp; + lp = (((l) + ($imul(((i >>> 0)), 128) >>> 0) >>> 0)); + return ($pointerOfStructConversion(lp, ptrType$7)); + }; + init$1 = function () { + var n; + n = new notifyList.ptr(0, 0, 0, 0, 0); + runtime_notifyListCheck(20); + }; + runtime_doSpin = function () { + $throwRuntimeError("native function not implemented: sync.runtime_doSpin"); + }; + RWMutex.ptr.prototype.RLock = function () { + var rw, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + rw = $f.rw; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function () { return this.$target.readerCount; }, function ($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { */ case 1: + $r = runtime_SemacquireMutex((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function () { return this.$target.readerSem; }, function ($v) { this.$target.readerSem = $v; }, rw))), false); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 2: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function () { return this.$target.readerSem; }, function ($v) { this.$target.readerSem = $v; }, rw))))); + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: RWMutex.ptr.prototype.RLock }; + } + $f.rw = rw; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + RWMutex.prototype.RLock = function () { return this.$val.RLock(); }; + RWMutex.ptr.prototype.RUnlock = function () { + var r, rw, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + r = $f.r; + rw = $f.rw; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function () { return this.$target.writerSem; }, function ($v) { this.$target.writerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function () { return this.$target.readerCount; }, function ($v) { this.$target.readerCount = $v; }, rw))), -1); + /* */ if (r < 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (r < 0) { */ case 1: + if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) { + race.Enable(); + throw$1("sync: RUnlock of unlocked RWMutex"); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function () { return this.$target.readerWait; }, function ($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { */ case 3: + $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function () { return this.$target.writerSem; }, function ($v) { this.$target.writerSem = $v; }, rw))), false); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 4: + /* } */ case 2: + if (false) { + race.Enable(); + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: RWMutex.ptr.prototype.RUnlock }; + } + $f.r = r; + $f.rw = rw; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + RWMutex.prototype.RUnlock = function () { return this.$val.RUnlock(); }; + RWMutex.ptr.prototype.Lock = function () { + var r, rw, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + r = $f.r; + rw = $f.rw; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + $r = rw.w.Lock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function () { return this.$target.readerCount; }, function ($v) { this.$target.readerCount = $v; }, rw))), -1073741824) + 1073741824 >> 0; + /* */ if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function () { return this.$target.readerWait; }, function ($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { */ case 2: + $r = runtime_SemacquireMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function () { return this.$target.writerSem; }, function ($v) { this.$target.writerSem = $v; }, rw))), false); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 3: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function () { return this.$target.readerSem; }, function ($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function () { return this.$target.writerSem; }, function ($v) { this.$target.writerSem = $v; }, rw))))); + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: RWMutex.ptr.prototype.Lock }; + } + $f.r = r; + $f.rw = rw; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + RWMutex.prototype.Lock = function () { return this.$val.Lock(); }; + RWMutex.ptr.prototype.Unlock = function () { + var i, r, rw, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + i = $f.i; + r = $f.r; + rw = $f.rw; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function () { return this.$target.readerSem; }, function ($v) { this.$target.readerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function () { return this.$target.readerCount; }, function ($v) { this.$target.readerCount = $v; }, rw))), 1073741824); + if (r >= 1073741824) { + race.Enable(); + throw$1("sync: Unlock of unlocked RWMutex"); + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < ((r >> 0)))) { break; } */ if (!(i < ((r >> 0)))) { + $s = 2; + continue; + } + $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function () { return this.$target.readerSem; }, function ($v) { this.$target.readerSem = $v; }, rw))), false); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i = i + (1) >> 0; + /* } */ $s = 1; + continue; + case 2: + $r = rw.w.Unlock(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + if (false) { + race.Enable(); + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: RWMutex.ptr.prototype.Unlock }; + } + $f.i = i; + $f.r = r; + $f.rw = rw; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + RWMutex.prototype.Unlock = function () { return this.$val.Unlock(); }; + RWMutex.ptr.prototype.RLocker = function () { + var rw; + rw = this; + return ($pointerOfStructConversion(rw, ptrType$8)); + }; + RWMutex.prototype.RLocker = function () { return this.$val.RLocker(); }; + rlocker.ptr.prototype.Lock = function () { + var r, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + r = $f.r; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rlocker.ptr.prototype.Lock }; + } + $f.r = r; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rlocker.prototype.Lock = function () { return this.$val.Lock(); }; + rlocker.ptr.prototype.Unlock = function () { + var r, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + r = $f.r; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RUnlock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rlocker.ptr.prototype.Unlock }; + } + $f.r = r; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rlocker.prototype.Unlock = function () { return this.$val.Unlock(); }; + ptrType.methods = [{ prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false) }, { prop: "getSlow", name: "getSlow", pkg: "sync", typ: $funcType([], [$emptyInterface], false) }, { prop: "pin", name: "pin", pkg: "sync", typ: $funcType([], [ptrType$7], false) }, { prop: "pinSlow", name: "pinSlow", pkg: "sync", typ: $funcType([], [ptrType$7], false) }]; + ptrType$16.methods = [{ prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false) }, { prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false) }]; + ptrType$9.methods = [{ prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false) }, { prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false) }, { prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false) }, { prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false) }, { prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false) }]; + ptrType$8.methods = [{ prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false) }, { prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false) }]; + Pool.init("sync", [{ prop: "local", name: "local", embedded: false, exported: false, typ: $UnsafePointer, tag: "" }, { prop: "localSize", name: "localSize", embedded: false, exported: false, typ: $Uintptr, tag: "" }, { prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$4, tag: "" }, { prop: "New", name: "New", embedded: false, exported: true, typ: funcType, tag: "" }]); + Mutex.init("sync", [{ prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: "" }, { prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: "" }]); + Locker.init([{ prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false) }, { prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false) }]); + poolLocalInternal.init("sync", [{ prop: "private$0", name: "private", embedded: false, exported: false, typ: $emptyInterface, tag: "" }, { prop: "shared", name: "shared", embedded: false, exported: false, typ: sliceType$4, tag: "" }, { prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: Mutex, tag: "" }]); + poolLocal.init("sync", [{ prop: "poolLocalInternal", name: "poolLocalInternal", embedded: true, exported: false, typ: poolLocalInternal, tag: "" }, { prop: "pad", name: "pad", embedded: false, exported: false, typ: arrayType$2, tag: "" }]); + notifyList.init("sync", [{ prop: "wait", name: "wait", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "notify", name: "notify", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "lock", name: "lock", embedded: false, exported: false, typ: $Uintptr, tag: "" }, { prop: "head", name: "head", embedded: false, exported: false, typ: $UnsafePointer, tag: "" }, { prop: "tail", name: "tail", embedded: false, exported: false, typ: $UnsafePointer, tag: "" }]); + RWMutex.init("sync", [{ prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: "" }, { prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: "" }, { prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: "" }]); + rlocker.init("sync", [{ prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: "" }, { prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: "" }, { prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = js.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = race.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = runtime.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = atomic.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + allPools = sliceType.nil; + semWaiters = {}; + semAwoken = {}; + expunged = (new Uint8Array(8)); + init(); + init$1(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["unicode"] = (function () { + var $pkg = {}, $init; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["reflect"] = (function () { + var $pkg = {}, $init, errors, js, math, runtime, strconv, sync, unicode, utf8, uncommonType, funcType, name, nameData, mapIter, Type, Kind, tflag, rtype, typeAlg, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, Value, flag, ValueError, MapIter, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, funcType$1, sliceType$4, ptrType$3, ptrType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$5, ptrType$6, structType$3, sliceType$8, sliceType$9, ptrType$7, ptrType$8, sliceType$10, sliceType$11, ptrType$9, ptrType$10, sliceType$13, sliceType$14, ptrType$11, sliceType$15, ptrType$17, sliceType$18, funcType$3, funcType$4, funcType$5, ptrType$18, arrayType$8, ptrType$19, ptrType$20, initialized, uncommonTypeMap, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, kindNames, uint8Type, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, keyFor, mapaccess, mapassign, mapdelete, mapiterinit, mapiterkey, mapitervalue, mapiternext, maplen, cvtDirect, methodReceiver, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, PtrTo, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, copyVal, overflowFloat32, New, convertOp, makeFloat, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + math = $packages["math"]; + runtime = $packages["runtime"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function (pkgPath_, mcount_, xcount_, moff_, _methods_) { + this.$val = this; + if (arguments.length === 0) { + this.pkgPath = 0; + this.mcount = 0; + this.xcount = 0; + this.moff = 0; + this._methods = sliceType$5.nil; + return; + } + this.pkgPath = pkgPath_; + this.mcount = mcount_; + this.xcount = xcount_; + this.moff = moff_; + this._methods = _methods_; + }); + funcType = $pkg.funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function (rtype_, inCount_, outCount_, _in_, _out_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.inCount = 0; + this.outCount = 0; + this._in = sliceType$2.nil; + this._out = sliceType$2.nil; + return; + } + this.rtype = rtype_; + this.inCount = inCount_; + this.outCount = outCount_; + this._in = _in_; + this._out = _out_; + }); + name = $pkg.name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function (bytes_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = ptrType$4.nil; + return; + } + this.bytes = bytes_; + }); + nameData = $pkg.nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function (name_, tag_, exported_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.tag = ""; + this.exported = false; + return; + } + this.name = name_; + this.tag = tag_; + this.exported = exported_; + }); + mapIter = $pkg.mapIter = $newType(0, $kindStruct, "reflect.mapIter", true, "reflect", false, function (t_, m_, keys_, i_, last_) { + this.$val = this; + if (arguments.length === 0) { + this.t = $ifaceNil; + this.m = null; + this.keys = null; + this.i = 0; + this.last = null; + return; + } + this.t = t_; + this.m = m_; + this.keys = keys_; + this.i = i_; + this.last = last_; + }); + Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); + Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); + tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); + rtype = $pkg.rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function (size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, alg_, gcdata_, str_, ptrToThis_) { + this.$val = this; + if (arguments.length === 0) { + this.size = 0; + this.ptrdata = 0; + this.hash = 0; + this.tflag = 0; + this.align = 0; + this.fieldAlign = 0; + this.kind = 0; + this.alg = ptrType$3.nil; + this.gcdata = ptrType$4.nil; + this.str = 0; + this.ptrToThis = 0; + return; + } + this.size = size_; + this.ptrdata = ptrdata_; + this.hash = hash_; + this.tflag = tflag_; + this.align = align_; + this.fieldAlign = fieldAlign_; + this.kind = kind_; + this.alg = alg_; + this.gcdata = gcdata_; + this.str = str_; + this.ptrToThis = ptrToThis_; + }); + typeAlg = $pkg.typeAlg = $newType(0, $kindStruct, "reflect.typeAlg", true, "reflect", false, function (hash_, equal_) { + this.$val = this; + if (arguments.length === 0) { + this.hash = $throwNilPointerError; + this.equal = $throwNilPointerError; + return; + } + this.hash = hash_; + this.equal = equal_; + }); + method = $pkg.method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function (name_, mtyp_, ifn_, tfn_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.mtyp = 0; + this.ifn = 0; + this.tfn = 0; + return; + } + this.name = name_; + this.mtyp = mtyp_; + this.ifn = ifn_; + this.tfn = tfn_; + }); + ChanDir = $pkg.ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); + arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function (rtype_, elem_, slice_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.slice = ptrType$1.nil; + this.len = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.slice = slice_; + this.len = len_; + }); + chanType = $pkg.chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function (rtype_, elem_, dir_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.dir = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.dir = dir_; + }); + imethod = $pkg.imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function (name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.typ = 0; + return; + } + this.name = name_; + this.typ = typ_; + }); + interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function (rtype_, pkgPath_, methods_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.methods = sliceType$6.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.methods = methods_; + }); + mapType = $pkg.mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function (rtype_, key_, elem_, bucket_, keysize_, valuesize_, bucketsize_, flags_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.key = ptrType$1.nil; + this.elem = ptrType$1.nil; + this.bucket = ptrType$1.nil; + this.keysize = 0; + this.valuesize = 0; + this.bucketsize = 0; + this.flags = 0; + return; + } + this.rtype = rtype_; + this.key = key_; + this.elem = elem_; + this.bucket = bucket_; + this.keysize = keysize_; + this.valuesize = valuesize_; + this.bucketsize = bucketsize_; + this.flags = flags_; + }); + ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function (rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function (rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + structField = $pkg.structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function (name_, typ_, offsetEmbed_) { + this.$val = this; + if (arguments.length === 0) { + this.name = new name.ptr(ptrType$4.nil); + this.typ = ptrType$1.nil; + this.offsetEmbed = 0; + return; + } + this.name = name_; + this.typ = typ_; + this.offsetEmbed = offsetEmbed_; + }); + structType = $pkg.structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function (rtype_, pkgPath_, fields_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.fields = sliceType$7.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.fields = fields_; + }); + Method = $pkg.Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function (Name_, PkgPath_, Type_, Func_, Index_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Func = new Value.ptr(ptrType$1.nil, 0, 0); + this.Index = 0; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Func = Func_; + this.Index = Index_; + }); + nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); + typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); + textOff = $pkg.textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); + StructField = $pkg.StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function (Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Tag = ""; + this.Offset = 0; + this.Index = sliceType$13.nil; + this.Anonymous = false; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Tag = Tag_; + this.Offset = Offset_; + this.Index = Index_; + this.Anonymous = Anonymous_; + }); + StructTag = $pkg.StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null); + fieldScan = $pkg.fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function (typ_, index_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$11.nil; + this.index = sliceType$13.nil; + return; + } + this.typ = typ_; + this.index = index_; + }); + Value = $pkg.Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function (typ_, ptr_, flag_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$1.nil; + this.ptr = 0; + this.flag = 0; + return; + } + this.typ = typ_; + this.ptr = ptr_; + this.flag = flag_; + }); + flag = $pkg.flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null); + ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function (Method_, Kind_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Kind = 0; + return; + } + this.Method = Method_; + this.Kind = Kind_; + }); + MapIter = $pkg.MapIter = $newType(0, $kindStruct, "reflect.MapIter", true, "reflect", true, function (m_, it_) { + this.$val = this; + if (arguments.length === 0) { + this.m = new Value.ptr(ptrType$1.nil, 0, 0); + this.it = 0; + return; + } + this.m = m_; + this.it = it_; + }); + sliceType$1 = $sliceType(name); + ptrType$1 = $ptrType(rtype); + sliceType$2 = $sliceType(ptrType$1); + sliceType$3 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(js.Object); + funcType$1 = $funcType([sliceType$3], [ptrType$2], true); + sliceType$4 = $sliceType($String); + ptrType$3 = $ptrType(typeAlg); + ptrType$4 = $ptrType($Uint8); + sliceType$5 = $sliceType(method); + sliceType$6 = $sliceType(imethod); + sliceType$7 = $sliceType(structField); + ptrType$5 = $ptrType(uncommonType); + ptrType$6 = $ptrType(nameData); + structType$3 = $structType("reflect", [{ prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: "" }]); + sliceType$8 = $sliceType(ptrType$2); + sliceType$9 = $sliceType(Value); + ptrType$7 = $ptrType(mapIter); + ptrType$8 = $ptrType(funcType); + sliceType$10 = $sliceType(Type); + sliceType$11 = $sliceType(sliceType$8); + ptrType$9 = $ptrType(interfaceType); + ptrType$10 = $ptrType(imethod); + sliceType$13 = $sliceType($Int); + sliceType$14 = $sliceType(fieldScan); + ptrType$11 = $ptrType(structType); + sliceType$15 = $sliceType($Uint8); + ptrType$17 = $ptrType($UnsafePointer); + sliceType$18 = $sliceType($Int32); + funcType$3 = $funcType([$String], [$Bool], false); + funcType$4 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); + funcType$5 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); + ptrType$18 = $ptrType(structField); + arrayType$8 = $arrayType($Uintptr, 2); + ptrType$19 = $ptrType(MapIter); + ptrType$20 = $ptrType(ValueError); + init = function () { + var used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + used = $f.used; + x = $f.x; + x$1 = $f.x$1; + x$10 = $f.x$10; + x$11 = $f.x$11; + x$12 = $f.x$12; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + x$6 = $f.x$6; + x$7 = $f.x$7; + x$8 = $f.x$8; + x$9 = $f.x$9; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + used = (function (i) { + var i; + }); + $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new x.constructor.elem(x))); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$6.nil), new x$6.constructor.elem(x$6))); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, 0, 0, 0, 0), new x$7.constructor.elem(x$7))); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$7.nil), new x$10.constructor.elem(x$10))); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$4.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ + $s = 13; + case 13: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + initialized = true; + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: init }; + } + $f.used = used; + $f.x = x; + $f.x$1 = x$1; + $f.x$10 = x$10; + $f.x$11 = x$11; + $f.x$12 = x$12; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.x$6 = x$6; + $f.x$7 = x$7; + $f.x$8 = x$8; + $f.x$9 = x$9; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + jsType = function (typ) { + var typ; + return typ.jsType; + }; + reflectType = function (typ) { + var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, offsetEmbed, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; + if (typ.reflectType === undefined) { + rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), ptrType$3.nil, ptrType$4.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported)), name)), 0); + rt.jsType = typ; + typ.reflectType = rt; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + rt.tflag = (rt.tflag | (1)) >>> 0; + if (!!(typ.named)) { + rt.tflag = (rt.tflag | (4)) >>> 0; + } + reflectMethods = sliceType$5.nil; + i = 0; + while (true) { + if (!(i < $parseInt(methodSet.length))) { + break; + } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { + i = i + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported), name)), newTypeOff(reflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; + } + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { + break; + } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); + _key = rt; + (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: ut }; + ut.jsType = typ; + } + _1 = rt.Kind(); + if (_1 === (17)) { + setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } + else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); + } + else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { + break; + } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } + else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$6, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { + break; + } + i$4 = _i$2; + m$2 = methods[i$4]; + imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === ""), name)), newTypeOff(reflectType(m$2.typ)))); + _i$2++; + } + setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false), name), imethods)); + } + else if (_1 === (21)) { + setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, 0, 0, 0, 0)); + } + else if (_1 === (22)) { + setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } + else if (_1 === (23)) { + setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } + else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$7, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { + break; + } + i$5 = _i$3; + f = fields[i$5]; + offsetEmbed = ((i$5 >>> 0)) << 1 >>> 0; + if (!!(f.embedded)) { + offsetEmbed = (offsetEmbed | (1)) >>> 0; + } + structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported)), name), reflectType(f.typ), offsetEmbed)); + _i$3++; + } + setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false), name), reflectFields)); + } + } + return ((typ.reflectType)); + }; + setKindType = function (rt, kindType) { + var kindType, rt; + rt.kindType = kindType; + kindType.rtype = rt; + }; + uncommonType.ptr.prototype.methods = function () { + var t; + t = this; + return t._methods; + }; + uncommonType.prototype.methods = function () { return this.$val.methods(); }; + uncommonType.ptr.prototype.exportedMethods = function () { + var t; + t = this; + return $subslice(t._methods, 0, t.xcount, t.xcount); + }; + uncommonType.prototype.exportedMethods = function () { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.uncommon = function () { + var _entry, t; + t = this; + return (_entry = uncommonTypeMap[ptrType$1.keyFor(t)], _entry !== undefined ? _entry.v : ptrType$5.nil); + }; + rtype.prototype.uncommon = function () { return this.$val.uncommon(); }; + funcType.ptr.prototype.in$ = function () { + var t; + t = this; + return t._in; + }; + funcType.prototype.in$ = function () { return this.$val.in$(); }; + funcType.ptr.prototype.out = function () { + var t; + t = this; + return t._out; + }; + funcType.prototype.out = function () { return this.$val.out(); }; + name.ptr.prototype.name = function () { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).name; + return s; + }; + name.prototype.name = function () { return this.$val.name(); }; + name.ptr.prototype.tag = function () { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).tag; + return s; + }; + name.prototype.tag = function () { return this.$val.tag(); }; + name.ptr.prototype.pkgPath = function () { + var n; + n = this; + return ""; + }; + name.prototype.pkgPath = function () { return this.$val.pkgPath(); }; + name.ptr.prototype.isExported = function () { + var _entry, n; + n = this; + return (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).exported; + }; + name.prototype.isExported = function () { return this.$val.isExported(); }; + newName = function (n, tag, exported) { + var _key, b, exported, n, tag; + b = $newDataPointer(0, ptrType$4); + _key = b; + (nameMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$4.keyFor(_key)] = { k: _key, v: new nameData.ptr(n, tag, exported) }; + return new name.ptr(b); + }; + rtype.ptr.prototype.nameOff = function (off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); + }; + rtype.prototype.nameOff = function (off) { return this.$val.nameOff(off); }; + newNameOff = function (n) { + var i, n; + i = nameOffList.$length; + nameOffList = $append(nameOffList, n); + return ((i >> 0)); + }; + rtype.ptr.prototype.typeOff = function (off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); + }; + rtype.prototype.typeOff = function (off) { return this.$val.typeOff(off); }; + newTypeOff = function (t) { + var i, t; + i = typeOffList.$length; + typeOffList = $append(typeOffList, t); + return ((i >> 0)); + }; + internalStr = function (strObj) { + var c, strObj; + c = new structType$3.ptr(""); + c.str = strObj; + return c.str; + }; + isWrapped = function (typ) { + var typ; + return !!(jsType(typ).wrapped); + }; + copyStruct = function (dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = jsType(typ).fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { + break; + } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + makeValue = function (t, v, fl) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _v = $f._v; + _v$1 = $f._v$1; + fl = $f.fl; + rt = $f.rt; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = t.common(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + rt = _r; + _r$1 = t.Kind(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + if (_r$1 === 17) { + _v$1 = true; + $s = 5; + continue s; + } + _r$2 = t.Kind(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _v$1 = _r$2 === 25; + case 5: + if (_v$1) { + _v = true; + $s = 4; + continue s; + } + _r$3 = t.Kind(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _v = _r$3 === 22; + case 4: + /* */ if (_v) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (_v) { */ case 2: + _r$4 = t.Kind(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + $s = -1; + return new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); + /* } */ case 3: + _r$5 = t.Kind(); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + $s = -1; + return new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeValue }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._v = _v; + $f._v$1 = _v$1; + $f.fl = fl; + $f.rt = rt; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + MakeSlice = function (typ, len, cap) { + var _r, _r$1, cap, len, typ, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + cap = $f.cap; + len = $f.len; + typ = $f.typ; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + typ = [typ]; + _r = typ[0].Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!((_r === 23))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((_r === 23))) { */ case 1: + $panic(new $String("reflect.MakeSlice of non-slice type")); + /* } */ case 2: + if (len < 0) { + $panic(new $String("reflect.MakeSlice: negative len")); + } + if (cap < 0) { + $panic(new $String("reflect.MakeSlice: negative cap")); + } + if (len > cap) { + $panic(new $String("reflect.MakeSlice: len > cap")); + } + _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function (typ) { + return function $b() { + var _r$1, _r$2, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r$1 = typ[0].Elem(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = jsType(_r$1); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return _r$2.zero(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $b }; + } + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + })(typ)), 0); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: MakeSlice }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.cap = cap; + $f.len = len; + $f.typ = typ; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.MakeSlice = MakeSlice; + TypeOf = function (i) { + var i; + if (!initialized) { + return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + } + if ($interfaceIsEqual(i, $ifaceNil)) { + return $ifaceNil; + } + return reflectType(i.constructor); + }; + $pkg.TypeOf = TypeOf; + ValueOf = function (i) { + var _r, i, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + i = $f.i; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if ($interfaceIsEqual(i, $ifaceNil)) { + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ValueOf }; + } + $f._r = _r; + $f.i = i; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.ValueOf = ValueOf; + FuncOf = function (in$1, out, variadic) { + var _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _i$1 = $f._i$1; + _r = $f._r; + _ref = $f._ref; + _ref$1 = $f._ref$1; + _v = $f._v; + _v$1 = $f._v$1; + i = $f.i; + i$1 = $f.i$1; + in$1 = $f.in$1; + jsIn = $f.jsIn; + jsOut = $f.jsOut; + out = $f.out; + v = $f.v; + v$1 = $f.v$1; + variadic = $f.variadic; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if (!(variadic)) { + _v = false; + $s = 3; + continue s; + } + if (in$1.$length === 0) { + _v$1 = true; + $s = 4; + continue s; + } + _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _v$1 = !((_r === 23)); + case 4: + _v = _v$1; + case 3: + /* */ if (_v) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_v) { */ case 1: + $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); + /* } */ case 2: + jsIn = $makeSlice(sliceType$8, in$1.$length); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); + _i++; + } + jsOut = $makeSlice(sliceType$8, out.$length); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { + break; + } + i$1 = _i$1; + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); + _i$1++; + } + $s = -1; + return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FuncOf }; + } + $f._i = _i; + $f._i$1 = _i$1; + $f._r = _r; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f._v = _v; + $f._v$1 = _v$1; + $f.i = i; + $f.i$1 = i$1; + $f.in$1 = in$1; + $f.jsIn = jsIn; + $f.jsOut = jsOut; + $f.out = out; + $f.v = v; + $f.v$1 = v$1; + $f.variadic = variadic; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.FuncOf = FuncOf; + rtype.ptr.prototype.ptrTo = function () { + var t; + t = this; + return reflectType($ptrType(jsType(t))); + }; + rtype.prototype.ptrTo = function () { return this.$val.ptrTo(); }; + SliceOf = function (t) { + var t; + return reflectType($sliceType(jsType(t))); + }; + $pkg.SliceOf = SliceOf; + Zero = function (typ) { + var _r, typ, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + typ = $f.typ; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeValue(typ, jsType(typ).zero(), 0); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Zero }; + } + $f._r = _r; + $f.typ = typ; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Zero = Zero; + unsafe_New = function (typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (jsType(typ).ptr)()); + } + else if (_1 === (17)) { + return (jsType(typ).zero()); + } + else { + return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); + } + }; + makeInt = function (f, bits, t) { + var _1, _r, bits, f, ptr, t, typ, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + bits = $f.bits; + f = $f.f; + ptr = $f.ptr; + t = $f.t; + typ = $f.typ; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = t.common(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.Kind(); + if (_1 === (3)) { + (ptr).$set(((bits.$low << 24 >> 24))); + } + else if (_1 === (4)) { + (ptr).$set(((bits.$low << 16 >> 16))); + } + else if ((_1 === (2)) || (_1 === (5))) { + (ptr).$set(((bits.$low >> 0))); + } + else if (_1 === (6)) { + (ptr).$set((new $Int64(bits.$high, bits.$low))); + } + else if (_1 === (8)) { + (ptr).$set(((bits.$low << 24 >>> 24))); + } + else if (_1 === (9)) { + (ptr).$set(((bits.$low << 16 >>> 16))); + } + else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) { + (ptr).$set(((bits.$low >>> 0))); + } + else if (_1 === (11)) { + (ptr).$set((bits)); + } + $s = -1; + return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeInt }; + } + $f._1 = _1; + $f._r = _r; + $f.bits = bits; + $f.f = f; + $f.ptr = ptr; + $f.t = t; + $f.typ = typ; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + typedmemmove = function (t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + keyFor = function (t, key) { + var k, key, kv, t; + kv = key; + if (!(kv.$get === undefined)) { + kv = kv.$get(); + } + k = $internalize(jsType(t.Key()).keyFor(kv), $String); + return [kv, k]; + }; + mapaccess = function (t, m, key) { + var _tuple, entry, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + entry = m[$externalize(k, $String)]; + if (entry === undefined) { + return 0; + } + return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + }; + mapassign = function (t, m, key, val) { + var _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + entry = $f.entry; + et = $f.et; + jsVal = $f.jsVal; + k = $f.k; + key = $f.key; + kv = $f.kv; + m = $f.m; + newVal = $f.newVal; + t = $f.t; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _tuple = keyFor(t, key); + kv = _tuple[0]; + k = _tuple[1]; + jsVal = val.$get(); + et = t.Elem(); + _r = et.Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r === 25) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_r === 25) { */ case 1: + newVal = jsType(et).zero(); + copyStruct(newVal, jsVal, et); + jsVal = newVal; + /* } */ case 2: + entry = new ($global.Object)(); + entry.k = kv; + entry.v = jsVal; + m[$externalize(k, $String)] = entry; + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: mapassign }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.entry = entry; + $f.et = et; + $f.jsVal = jsVal; + $f.k = k; + $f.key = key; + $f.kv = kv; + $f.m = m; + $f.newVal = newVal; + $f.t = t; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + mapdelete = function (t, m, key) { + var _tuple, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + delete m[$externalize(k, $String)]; + }; + mapIter.ptr.prototype.skipUntilValidKey = function () { + var iter, k; + iter = this; + while (true) { + if (!(iter.i < $parseInt(iter.keys.length))) { + break; + } + k = iter.keys[iter.i]; + if (!(iter.m[$externalize($internalize(k, $String), $String)] === undefined)) { + break; + } + iter.i = iter.i + (1) >> 0; + } + }; + mapIter.prototype.skipUntilValidKey = function () { return this.$val.skipUntilValidKey(); }; + mapiterinit = function (t, m) { + var m, t; + return (new mapIter.ptr(t, m, $keys(m), 0, null)); + }; + mapiterkey = function (it) { + var _r, _r$1, _r$2, it, iter, k, kv, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + it = $f.it; + iter = $f.iter; + k = $f.k; + kv = $f.kv; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + iter = ($pointerOfStructConversion(it, ptrType$7)); + kv = null; + if (!(iter.last === null)) { + kv = iter.last; + } + else { + iter.skipUntilValidKey(); + if (iter.i === $parseInt(iter.keys.length)) { + $s = -1; + return 0; + } + k = iter.keys[iter.i]; + kv = iter.m[$externalize($internalize(k, $String), $String)]; + iter.last = kv; + } + _r = iter.t.Key(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = PtrTo(_r); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = jsType(_r$1); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return ($newDataPointer(kv.k, _r$2)); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: mapiterkey }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.it = it; + $f.iter = iter; + $f.k = k; + $f.kv = kv; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + mapitervalue = function (it) { + var _r, _r$1, _r$2, it, iter, k, kv, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + it = $f.it; + iter = $f.iter; + k = $f.k; + kv = $f.kv; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + iter = ($pointerOfStructConversion(it, ptrType$7)); + kv = null; + if (!(iter.last === null)) { + kv = iter.last; + } + else { + iter.skipUntilValidKey(); + if (iter.i === $parseInt(iter.keys.length)) { + $s = -1; + return 0; + } + k = iter.keys[iter.i]; + kv = iter.m[$externalize($internalize(k, $String), $String)]; + iter.last = kv; + } + _r = iter.t.Elem(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = PtrTo(_r); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = jsType(_r$1); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return ($newDataPointer(kv.v, _r$2)); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: mapitervalue }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.it = it; + $f.iter = iter; + $f.k = k; + $f.kv = kv; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + mapiternext = function (it) { + var it, iter; + iter = ($pointerOfStructConversion(it, ptrType$7)); + iter.last = null; + iter.i = iter.i + (1) >> 0; + }; + maplen = function (m) { + var m; + return $parseInt($keys(m).length); + }; + cvtDirect = function (v, typ) { + var _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + k = $f.k; + slice = $f.slice; + srcVal = $f.srcVal; + typ = $f.typ; + v = $f.v; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + srcVal = $clone(v, Value).object(); + /* */ if (srcVal === jsType(v.typ).nil) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (srcVal === jsType(v.typ).nil) { */ case 1: + _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } */ case 2: + val = null; + _r$1 = typ.Kind(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + k = _r$1; + _1 = k; + /* */ if (_1 === (23)) { + $s = 6; + continue; + } + /* */ if (_1 === (22)) { + $s = 7; + continue; + } + /* */ if (_1 === (25)) { + $s = 8; + continue; + } + /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { + $s = 9; + continue; + } + /* */ $s = 10; + continue; + /* if (_1 === (23)) { */ case 6: + slice = new (jsType(typ))(srcVal.$array); + slice.$offset = srcVal.$offset; + slice.$length = srcVal.$length; + slice.$capacity = srcVal.$capacity; + val = $newDataPointer(slice, jsType(PtrTo(typ))); + $s = 11; + continue; + /* } else if (_1 === (22)) { */ case 7: + _r$2 = typ.Elem(); /* */ + $s = 14; + case 14: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _r$3 = _r$2.Kind(); /* */ + $s = 15; + case 15: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + /* */ if (_r$3 === 25) { + $s = 12; + continue; + } + /* */ $s = 13; + continue; + /* if (_r$3 === 25) { */ case 12: + _r$4 = typ.Elem(); /* */ + $s = 18; + case 18: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { + $s = 16; + continue; + } + /* */ $s = 17; + continue; + /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 16: + val = srcVal; + /* break; */ $s = 4; + continue; + /* } */ case 17: + val = new (jsType(typ))(); + _arg = val; + _arg$1 = srcVal; + _r$5 = typ.Elem(); /* */ + $s = 19; + case 19: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + _arg$2 = _r$5; + $r = copyStruct(_arg, _arg$1, _arg$2); /* */ + $s = 20; + case 20: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* break; */ $s = 4; + continue; + /* } */ case 13: + val = new (jsType(typ))(srcVal.$get, srcVal.$set); + $s = 11; + continue; + /* } else if (_1 === (25)) { */ case 8: + val = new (jsType(typ).ptr)(); + copyStruct(val, srcVal, typ); + $s = 11; + continue; + /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { */ case 9: + val = v.ptr; + $s = 11; + continue; + /* } else { */ case 10: + $panic(new ValueError.ptr("reflect.Convert", k)); + /* } */ case 11: + case 4: + _r$6 = typ.common(); /* */ + $s = 21; + case 21: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + _r$7 = typ.Kind(); /* */ + $s = 22; + case 22: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + $s = -1; + return new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtDirect }; + } + $f._1 = _1; + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f.k = k; + $f.slice = slice; + $f.srcVal = srcVal; + $f.typ = typ; + $f.v = v; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + methodReceiver = function (op, v, i) { + var _$39, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; + _$39 = ptrType$1.nil; + t = ptrType$8.nil; + fn = 0; + prop = ""; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (i < 0 || i >= tt.methods.$length) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (tt.rtype.typeOff(m.typ).kindType); + prop = $clone(tt.rtype.nameOff(m.name), name).name(); + } + else { + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (v.typ.typeOff(m$1.mtyp).kindType); + prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + } + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + fn = (rcvr[$externalize(prop, $String)]); + return [_$39, t, fn]; + }; + valueInterface = function (v, safe) { + var _r, safe, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + safe = $f.safe; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.Interface", 0)); + } + if (safe && !((((v.flag & 96) >>> 0) === 0))) { + $panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method")); + } + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Interface", $clone(v, Value)); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + v = _r; + /* } */ case 2: + if (isWrapped(v.typ)) { + $s = -1; + return ((new (jsType(v.typ))($clone(v, Value).object()))); + } + $s = -1; + return (($clone(v, Value).object())); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: valueInterface }; + } + $f._r = _r; + $f.safe = safe; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ifaceE2I = function (t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + methodName = function () { + return "?FIXME?"; + }; + makeMethodValue = function (op, v) { + var _r, _tuple, fn, fv, op, rcvr, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + fn = $f.fn; + fv = $f.fv; + op = $f.op; + rcvr = $f.rcvr; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fn = [fn]; + rcvr = [rcvr]; + if (((v.flag & 512) >>> 0) === 0) { + $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); + } + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + fn[0] = _tuple[2]; + rcvr[0] = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr[0] = new (jsType(v.typ))(rcvr[0]); + } + fv = js.MakeFunc((function (fn, rcvr) { + return function (this$1, arguments$1) { + var arguments$1, this$1; + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); + }; + })(fn, rcvr)); + _r = $clone(v, Value).Type().common(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeMethodValue }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.fn = fn; + $f.fv = fv; + $f.op = op; + $f.rcvr = rcvr; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.ptr.prototype.pointers = function () { + var _1, t; + t = this; + _1 = t.Kind(); + if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { + return true; + } + else { + return false; + } + }; + rtype.prototype.pointers = function () { return this.$val.pointers(); }; + rtype.ptr.prototype.Comparable = function () { + var _1, _r, _r$1, i, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _r$1 = $f._r$1; + i = $f.i; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _1 = t.Kind(); + /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { + $s = 2; + continue; + } + /* */ if (_1 === (17)) { + $s = 3; + continue; + } + /* */ if (_1 === (25)) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: + $s = -1; + return false; + /* } else if (_1 === (17)) { */ case 3: + _r = t.Elem().Comparable(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } else if (_1 === (25)) { */ case 4: + i = 0; + /* while (true) { */ case 7: + /* if (!(i < t.NumField())) { break; } */ if (!(i < t.NumField())) { + $s = 8; + continue; + } + _r$1 = t.Field(i).Type.Comparable(); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (!_r$1) { + $s = 9; + continue; + } + /* */ $s = 10; + continue; + /* if (!_r$1) { */ case 9: + $s = -1; + return false; + /* } */ case 10: + i = i + (1) >> 0; + /* } */ $s = 7; + continue; + case 8: + /* } */ case 5: + case 1: + $s = -1; + return true; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.Comparable }; + } + $f._1 = _1; + $f._r = _r; + $f._r$1 = _r$1; + $f.i = i; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.Comparable = function () { return this.$val.Comparable(); }; + rtype.ptr.prototype.Method = function (i) { + var _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _i$1 = $f._i$1; + _r = $f._r; + _ref = $f._ref; + _ref$1 = $f._ref$1; + arg = $f.arg; + fl = $f.fl; + fn = $f.fn; + ft = $f.ft; + i = $f.i; + in$1 = $f.in$1; + m = $f.m; + methods = $f.methods; + mt = $f.mt; + mtyp = $f.mtyp; + out = $f.out; + p = $f.p; + pname = $f.pname; + prop = $f.prop; + ret = $f.ret; + t = $f.t; + tt = $f.tt; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + prop = [prop]; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + Method.copy(m, tt.Method(i)); + $s = -1; + return m; + } + methods = t.exportedMethods(); + if (i < 0 || i >= methods.$length) { + $panic(new $String("reflect: Method index out of range")); + } + p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); + pname = $clone(t.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + fl = 19; + mtyp = t.typeOff(p.mtyp); + ft = (mtyp.kindType); + in$1 = $makeSlice(sliceType$10, 0, (1 + ft.in$().$length >> 0)); + in$1 = $append(in$1, t); + _ref = ft.in$(); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + in$1 = $append(in$1, arg); + _i++; + } + out = $makeSlice(sliceType$10, 0, ft.out().$length); + _ref$1 = ft.out(); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { + break; + } + ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + out = $append(out, ret); + _i$1++; + } + _r = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + mt = _r; + m.Type = mt; + prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); + fn = js.MakeFunc((function (prop) { + return function (this$1, arguments$1) { + var arguments$1, rcvr, this$1; + rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); + }; + })(prop)); + m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl); + m.Index = i; + Method.copy(m, m); + $s = -1; + return m; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.Method }; + } + $f._i = _i; + $f._i$1 = _i$1; + $f._r = _r; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f.arg = arg; + $f.fl = fl; + $f.fn = fn; + $f.ft = ft; + $f.i = i; + $f.in$1 = in$1; + $f.m = m; + $f.methods = methods; + $f.mt = mt; + $f.mtyp = mtyp; + $f.out = out; + $f.p = p; + $f.pname = pname; + $f.prop = prop; + $f.ret = ret; + $f.t = t; + $f.tt = tt; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.Method = function (i) { return this.$val.Method(i); }; + Value.ptr.prototype.object = function () { + var _1, newVal, v, val; + v = this; + if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + return v.ptr; + } + if (!((((v.flag & 128) >>> 0) === 0))) { + val = v.ptr.$get(); + if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + switch (0) { + default: + _1 = v.typ.Kind(); + if ((_1 === (11)) || (_1 === (6))) { + val = new (jsType(v.typ))(val.$high, val.$low); + } + else if ((_1 === (15)) || (_1 === (16))) { + val = new (jsType(v.typ))(val.$real, val.$imag); + } + else if (_1 === (23)) { + if (val === val.constructor.nil) { + val = jsType(v.typ).nil; + break; + } + newVal = new (jsType(v.typ))(val.$array); + newVal.$offset = val.$offset; + newVal.$length = val.$length; + newVal.$capacity = val.$capacity; + val = newVal; + } + } + } + return val; + } + return v.ptr; + }; + Value.prototype.object = function () { return this.$val.object(); }; + Value.ptr.prototype.assignTo = function (context, dst, target) { + var _r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + context = $f.context; + dst = $f.dst; + fl = $f.fl; + target = $f.target; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue(context, $clone(v, Value)); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + v = _r; + /* } */ case 2: + _r$1 = directlyAssignable(dst, v.typ); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (_r$1) { + $s = 5; + continue; + } + /* */ if (implements$1(dst, v.typ)) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (_r$1) { */ case 5: + fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; + fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; + $s = -1; + return new Value.ptr(dst, v.ptr, fl); + /* } else if (implements$1(dst, v.typ)) { */ case 6: + if (target === 0) { + target = unsafe_New(dst); + } + _r$2 = valueInterface($clone(v, Value), false); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + x = _r$2; + if (dst.NumMethod() === 0) { + (target).$set(x); + } + else { + ifaceE2I(dst, x, target); + } + $s = -1; + return new Value.ptr(dst, target, 148); + /* } */ case 7: + case 4: + $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.assignTo }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.context = context; + $f.dst = dst; + $f.fl = fl; + $f.target = target; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.assignTo = function (context, dst, target) { return this.$val.assignTo(context, dst, target); }; + Value.ptr.prototype.call = function (op, in$1) { + var _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _arg$3 = $f._arg$3; + _i = $f._i; + _i$1 = $f._i$1; + _i$2 = $f._i$2; + _r = $f._r; + _r$1 = $f._r$1; + _r$10 = $f._r$10; + _r$11 = $f._r$11; + _r$12 = $f._r$12; + _r$13 = $f._r$13; + _r$14 = $f._r$14; + _r$15 = $f._r$15; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + _r$8 = $f._r$8; + _r$9 = $f._r$9; + _ref = $f._ref; + _ref$1 = $f._ref$1; + _ref$2 = $f._ref$2; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + arg = $f.arg; + argsArray = $f.argsArray; + elem = $f.elem; + fn = $f.fn; + i = $f.i; + i$1 = $f.i$1; + i$2 = $f.i$2; + i$3 = $f.i$3; + in$1 = $f.in$1; + isSlice = $f.isSlice; + m = $f.m; + n = $f.n; + nin = $f.nin; + nout = $f.nout; + op = $f.op; + origIn = $f.origIn; + rcvr = $f.rcvr; + results = $f.results; + ret = $f.ret; + slice = $f.slice; + t = $f.t; + targ = $f.targ; + v = $f.v; + x = $f.x; + x$1 = $f.x$1; + x$2 = $f.x$2; + xt = $f.xt; + xt$1 = $f.xt$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + t = ptrType$8.nil; + fn = 0; + rcvr = null; + if (!((((v.flag & 512) >>> 0) === 0))) { + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + t = _tuple[1]; + fn = _tuple[2]; + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + } + else { + t = (v.typ.kindType); + fn = ($clone(v, Value).object()); + rcvr = undefined; + } + if (fn === 0) { + $panic(new $String("reflect.Value.Call: call of nil function")); + } + isSlice = op === "CallSlice"; + n = t.rtype.NumIn(); + if (isSlice) { + if (!t.rtype.IsVariadic()) { + $panic(new $String("reflect: CallSlice of non-variadic function")); + } + if (in$1.$length < n) { + $panic(new $String("reflect: CallSlice with too few input arguments")); + } + if (in$1.$length > n) { + $panic(new $String("reflect: CallSlice with too many input arguments")); + } + } + else { + if (t.rtype.IsVariadic()) { + n = n - (1) >> 0; + } + if (in$1.$length < n) { + $panic(new $String("reflect: Call with too few input arguments")); + } + if (!t.rtype.IsVariadic() && in$1.$length > n) { + $panic(new $String("reflect: Call with too many input arguments")); + } + } + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($clone(x, Value).Kind() === 0) { + $panic(new $String("reflect: " + op + " using zero Value argument")); + } + _i++; + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if (!(i < n)) { + $s = 2; + continue; + } + _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type(); + _tmp$1 = t.rtype.In(i); + xt = _tmp; + targ = _tmp$1; + _r = xt.AssignableTo(targ); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!_r) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (!_r) { */ case 3: + _r$1 = xt.String(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = targ.String(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); + /* } */ case 4: + i = i + (1) >> 0; + /* } */ $s = 1; + continue; + case 2: + /* */ if (!isSlice && t.rtype.IsVariadic()) { + $s = 8; + continue; + } + /* */ $s = 9; + continue; + /* if (!isSlice && t.rtype.IsVariadic()) { */ case 8: + m = in$1.$length - n >> 0; + _r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + slice = _r$3; + _r$4 = t.rtype.In(n).Elem(); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + elem = _r$4; + i$1 = 0; + /* while (true) { */ case 12: + /* if (!(i$1 < m)) { break; } */ if (!(i$1 < m)) { + $s = 13; + continue; + } + x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1])); + xt$1 = $clone(x$2, Value).Type(); + _r$5 = xt$1.AssignableTo(elem); /* */ + $s = 16; + case 16: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + /* */ if (!_r$5) { + $s = 14; + continue; + } + /* */ $s = 15; + continue; + /* if (!_r$5) { */ case 14: + _r$6 = xt$1.String(); /* */ + $s = 17; + case 17: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + _r$7 = elem.String(); /* */ + $s = 18; + case 18: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); + /* } */ case 15: + _r$8 = $clone(slice, Value).Index(i$1); /* */ + $s = 19; + case 19: + if ($c) { + $c = false; + _r$8 = _r$8.$blk(); + } + if (_r$8 && _r$8.$blk !== undefined) { + break s; + } + $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ + $s = 20; + case 20: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 12; + continue; + case 13: + origIn = in$1; + in$1 = $makeSlice(sliceType$9, (n + 1 >> 0)); + $copySlice($subslice(in$1, 0, n), origIn); + ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice); + /* } */ case 9: + nin = in$1.$length; + if (!((nin === t.rtype.NumIn()))) { + $panic(new $String("reflect.Value.Call: wrong argument count")); + } + nout = t.rtype.NumOut(); + argsArray = new ($global.Array)(t.rtype.NumIn()); + _ref$1 = in$1; + _i$1 = 0; + /* while (true) { */ case 21: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if (!(_i$1 < _ref$1.$length)) { + $s = 22; + continue; + } + i$2 = _i$1; + arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _arg = t.rtype.In(i$2); + _r$9 = t.rtype.In(i$2).common(); /* */ + $s = 23; + case 23: + if ($c) { + $c = false; + _r$9 = _r$9.$blk(); + } + if (_r$9 && _r$9.$blk !== undefined) { + break s; + } + _arg$1 = _r$9; + _arg$2 = 0; + _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ + $s = 24; + case 24: + if ($c) { + $c = false; + _r$10 = _r$10.$blk(); + } + if (_r$10 && _r$10.$blk !== undefined) { + break s; + } + _r$11 = $clone(_r$10, Value).object(); /* */ + $s = 25; + case 25: + if ($c) { + $c = false; + _r$11 = _r$11.$blk(); + } + if (_r$11 && _r$11.$blk !== undefined) { + break s; + } + _arg$3 = _r$11; + _r$12 = unwrapJsObject(_arg, _arg$3); /* */ + $s = 26; + case 26: + if ($c) { + $c = false; + _r$12 = _r$12.$blk(); + } + if (_r$12 && _r$12.$blk !== undefined) { + break s; + } + argsArray[i$2] = _r$12; + _i$1++; + /* } */ $s = 21; + continue; + case 22: + _r$13 = callHelper(new sliceType$3([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ + $s = 27; + case 27: + if ($c) { + $c = false; + _r$13 = _r$13.$blk(); + } + if (_r$13 && _r$13.$blk !== undefined) { + break s; + } + results = _r$13; + _1 = nout; + /* */ if (_1 === (0)) { + $s = 29; + continue; + } + /* */ if (_1 === (1)) { + $s = 30; + continue; + } + /* */ $s = 31; + continue; + /* if (_1 === (0)) { */ case 29: + $s = -1; + return sliceType$9.nil; + /* } else if (_1 === (1)) { */ case 30: + _r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ + $s = 33; + case 33: + if ($c) { + $c = false; + _r$14 = _r$14.$blk(); + } + if (_r$14 && _r$14.$blk !== undefined) { + break s; + } + $s = -1; + return new sliceType$9([$clone(_r$14, Value)]); + /* } else { */ case 31: + ret = $makeSlice(sliceType$9, nout); + _ref$2 = ret; + _i$2 = 0; + /* while (true) { */ case 34: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if (!(_i$2 < _ref$2.$length)) { + $s = 35; + continue; + } + i$3 = _i$2; + _r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ + $s = 36; + case 36: + if ($c) { + $c = false; + _r$15 = _r$15.$blk(); + } + if (_r$15 && _r$15.$blk !== undefined) { + break s; + } + ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); + _i$2++; + /* } */ $s = 34; + continue; + case 35: + $s = -1; + return ret; + /* } */ case 32: + case 28: + $s = -1; + return sliceType$9.nil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.call }; + } + $f._1 = _1; + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._arg$3 = _arg$3; + $f._i = _i; + $f._i$1 = _i$1; + $f._i$2 = _i$2; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$10 = _r$10; + $f._r$11 = _r$11; + $f._r$12 = _r$12; + $f._r$13 = _r$13; + $f._r$14 = _r$14; + $f._r$15 = _r$15; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f._r$8 = _r$8; + $f._r$9 = _r$9; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f._ref$2 = _ref$2; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.arg = arg; + $f.argsArray = argsArray; + $f.elem = elem; + $f.fn = fn; + $f.i = i; + $f.i$1 = i$1; + $f.i$2 = i$2; + $f.i$3 = i$3; + $f.in$1 = in$1; + $f.isSlice = isSlice; + $f.m = m; + $f.n = n; + $f.nin = nin; + $f.nout = nout; + $f.op = op; + $f.origIn = origIn; + $f.rcvr = rcvr; + $f.results = results; + $f.ret = ret; + $f.slice = slice; + $f.t = t; + $f.targ = targ; + $f.v = v; + $f.x = x; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.xt = xt; + $f.xt$1 = xt$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.call = function (op, in$1) { return this.$val.call(op, in$1); }; + Value.ptr.prototype.Cap = function () { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (17)) { + return v.typ.Len(); + } + else if ((_1 === (18)) || (_1 === (23))) { + return $parseInt($clone(v, Value).object().$capacity) >> 0; + } + $panic(new ValueError.ptr("reflect.Value.Cap", k)); + }; + Value.prototype.Cap = function () { return this.$val.Cap(); }; + wrapJsObject = function (typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return new (jsType(jsObjectPtr))(val); + } + return val; + }; + unwrapJsObject = function (typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return val.object; + } + return val; + }; + Value.ptr.prototype.Elem = function () { + var _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + fl = $f.fl; + k = $f.k; + tt = $f.tt; + typ = $f.typ; + v = $f.v; + val = $f.val; + val$1 = $f.val$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (20)) { + $s = 2; + continue; + } + /* */ if (_1 === (22)) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (_1 === (20)) { */ case 2: + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = reflectType(val.constructor); + _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } else if (_1 === (22)) { */ case 3: + if ($clone(v, Value).IsNil()) { + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (v.typ.kindType); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; + $s = -1; + return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + /* } */ case 5: + case 1: + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Elem }; + } + $f._1 = _1; + $f._r = _r; + $f.fl = fl; + $f.k = k; + $f.tt = tt; + $f.typ = typ; + $f.v = v; + $f.val = val; + $f.val$1 = val$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Elem = function () { return this.$val.Elem(); }; + Value.ptr.prototype.Field = function (i) { + var _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + field = $f.field; + fl = $f.fl; + i = $f.i; + jsTag = $f.jsTag; + o = $f.o; + prop = $f.prop; + s = $f.s; + tag = $f.tag; + tt = $f.tt; + typ = $f.typ; + v = $f.v; + x = $f.x; + x$1 = $f.x$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + jsTag = [jsTag]; + prop = [prop]; + s = [s]; + typ = [typ]; + v = this; + if (!((new flag(v.flag).kind() === 25))) { + $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); + } + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + $panic(new $String("reflect: Field index out of range")); + } + prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); + field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + typ[0] = field.typ; + fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + if (!$clone(field.name, name).isExported()) { + if (field.embedded()) { + fl = (fl | (64)) >>> 0; + } + else { + fl = (fl | (32)) >>> 0; + } + } + tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); + /* */ if (!(tag === "") && !((i === 0))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!(tag === "") && !((i === 0))) { */ case 1: + jsTag[0] = getJsTag(tag); + /* */ if (!(jsTag[0] === "")) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (!(jsTag[0] === "")) { */ case 3: + /* while (true) { */ case 5: + o = [o]; + _r = $clone(v, Value).Field(0); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + v = _r; + /* */ if (v.typ === jsObjectPtr) { + $s = 8; + continue; + } + /* */ $s = 9; + continue; + /* if (v.typ === jsObjectPtr) { */ case 8: + o[0] = $clone(v, Value).object().object; + $s = -1; + return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function (jsTag, o, prop, s, typ) { + return function () { + return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); + }; + })(jsTag, o, prop, s, typ), (function (jsTag, o, prop, s, typ) { + return function (x$2) { + var x$2; + o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); + }; + })(jsTag, o, prop, s, typ))), fl); + /* } */ case 9: + /* */ if (v.typ.Kind() === 22) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (v.typ.Kind() === 22) { */ case 10: + _r$1 = $clone(v, Value).Elem(); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + v = _r$1; + /* } */ case 11: + /* } */ $s = 5; + continue; + case 6: + /* } */ case 4: + /* } */ case 2: + s[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { + $s = 13; + continue; + } + /* */ $s = 14; + continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: + $s = -1; + return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function (jsTag, prop, s, typ) { + return function () { + return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); + }; + })(jsTag, prop, s, typ), (function (jsTag, prop, s, typ) { + return function (x$2) { + var x$2; + s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); + }; + })(jsTag, prop, s, typ))), fl); + /* } */ case 14: + _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ + $s = 15; + case 15: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return _r$2; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Field }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.field = field; + $f.fl = fl; + $f.i = i; + $f.jsTag = jsTag; + $f.o = o; + $f.prop = prop; + $f.s = s; + $f.tag = tag; + $f.tt = tt; + $f.typ = typ; + $f.v = v; + $f.x = x; + $f.x$1 = x$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Field = function (i) { return this.$val.Field(i); }; + getJsTag = function (tag) { + var _tuple, i, name$1, qvalue, tag, value; + while (true) { + if (!(!(tag === ""))) { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { + break; + } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { + break; + } + i = i + (1) >> 0; + } + if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { + break; + } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (name$1 === "js") { + _tuple = strconv.Unquote(qvalue); + value = _tuple[0]; + return value; + } + } + return ""; + }; + Value.ptr.prototype.Index = function (i) { + var _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _r$1 = $f._r$1; + a = $f.a; + a$1 = $f.a$1; + c = $f.c; + fl = $f.fl; + fl$1 = $f.fl$1; + fl$2 = $f.fl$2; + i = $f.i; + k = $f.k; + s = $f.s; + str = $f.str; + tt = $f.tt; + tt$1 = $f.tt$1; + typ = $f.typ; + typ$1 = $f.typ$1; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + a = [a]; + a$1 = [a$1]; + c = [c]; + i = [i]; + typ = [typ]; + typ$1 = [typ$1]; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (17)) { + $s = 2; + continue; + } + /* */ if (_1 === (23)) { + $s = 3; + continue; + } + /* */ if (_1 === (24)) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_1 === (17)) { */ case 2: + tt = (v.typ.kindType); + if (i[0] < 0 || i[0] > ((tt.len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ[0] = tt.elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + a[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: + $s = -1; + return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function (a, a$1, c, i, typ, typ$1) { + return function () { + return wrapJsObject(typ[0], a[0][i[0]]); + }; + })(a, a$1, c, i, typ, typ$1), (function (a, a$1, c, i, typ, typ$1) { + return function (x) { + var x; + a[0][i[0]] = unwrapJsObject(typ[0], x); + }; + })(a, a$1, c, i, typ, typ$1))), fl); + /* } */ case 8: + _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } else if (_1 === (23)) { */ case 3: + s = $clone(v, Value).object(); + if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (v.typ.kindType); + typ$1[0] = tt$1.elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; + i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; + a$1[0] = s.$array; + /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 10: + $s = -1; + return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function (a, a$1, c, i, typ, typ$1) { + return function () { + return wrapJsObject(typ$1[0], a$1[0][i[0]]); + }; + })(a, a$1, c, i, typ, typ$1), (function (a, a$1, c, i, typ, typ$1) { + return function (x) { + var x; + a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); + }; + })(a, a$1, c, i, typ, typ$1))), fl$1); + /* } */ case 11: + _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i[0] < 0 || i[0] >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c[0] = str.charCodeAt(i[0]); + $s = -1; + return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$4(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, c)))), fl$2); + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Index", k)); + /* } */ case 6: + case 1: + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Index }; + } + $f._1 = _1; + $f._r = _r; + $f._r$1 = _r$1; + $f.a = a; + $f.a$1 = a$1; + $f.c = c; + $f.fl = fl; + $f.fl$1 = fl$1; + $f.fl$2 = fl$2; + $f.i = i; + $f.k = k; + $f.s = s; + $f.str = str; + $f.tt = tt; + $f.tt$1 = tt$1; + $f.typ = typ; + $f.typ$1 = typ$1; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Index = function (i) { return this.$val.Index(i); }; + Value.ptr.prototype.InterfaceData = function () { + var v; + v = this; + $panic(errors.New("InterfaceData is not supported by GopherJS")); + }; + Value.prototype.InterfaceData = function () { return this.$val.InterfaceData(); }; + Value.ptr.prototype.IsNil = function () { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (22)) || (_1 === (23))) { + return $clone(v, Value).object() === jsType(v.typ).nil; + } + else if (_1 === (18)) { + return $clone(v, Value).object() === $chanNil; + } + else if (_1 === (19)) { + return $clone(v, Value).object() === $throwNilPointerError; + } + else if (_1 === (21)) { + return $clone(v, Value).object() === false; + } + else if (_1 === (20)) { + return $clone(v, Value).object() === $ifaceNil; + } + else if (_1 === (26)) { + return $clone(v, Value).object() === 0; + } + else { + $panic(new ValueError.ptr("reflect.Value.IsNil", k)); + } + }; + Value.prototype.IsNil = function () { return this.$val.IsNil(); }; + Value.ptr.prototype.Len = function () { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (17)) || (_1 === (24))) { + return $parseInt($clone(v, Value).object().length); + } + else if (_1 === (23)) { + return $parseInt($clone(v, Value).object().$length) >> 0; + } + else if (_1 === (18)) { + return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + } + else if (_1 === (21)) { + return $parseInt($keys($clone(v, Value).object()).length); + } + else { + $panic(new ValueError.ptr("reflect.Value.Len", k)); + } + }; + Value.prototype.Len = function () { return this.$val.Len(); }; + Value.ptr.prototype.Pointer = function () { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object(); + } + else if (_1 === (19)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return 1; + } + else if (_1 === (23)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object().$array; + } + else { + $panic(new ValueError.ptr("reflect.Value.Pointer", k)); + } + }; + Value.prototype.Pointer = function () { return this.$val.Pointer(); }; + Value.ptr.prototype.Set = function (x) { + var _1, _r, _r$1, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _r$1 = $f._r$1; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + x = _r; + /* */ if (!((((v.flag & 128) >>> 0) === 0))) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: + _1 = v.typ.Kind(); + /* */ if (_1 === (17)) { + $s = 5; + continue; + } + /* */ if (_1 === (20)) { + $s = 6; + continue; + } + /* */ if (_1 === (25)) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if (_1 === (17)) { */ case 5: + jsType(v.typ).copy(v.ptr, x.ptr); + $s = 9; + continue; + /* } else if (_1 === (20)) { */ case 6: + _r$1 = valueInterface($clone(x, Value), false); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + v.ptr.$set(_r$1); + $s = 9; + continue; + /* } else if (_1 === (25)) { */ case 7: + copyStruct(v.ptr, x.ptr, v.typ); + $s = 9; + continue; + /* } else { */ case 8: + v.ptr.$set($clone(x, Value).object()); + /* } */ case 9: + case 4: + $s = -1; + return; + /* } */ case 3: + v.ptr = x.ptr; + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Set }; + } + $f._1 = _1; + $f._r = _r; + $f._r$1 = _r$1; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Set = function (x) { return this.$val.Set(x); }; + Value.ptr.prototype.SetBytes = function (x) { + var _r, _r$1, _v, slice, typedSlice, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _v = $f._v; + slice = $f.slice; + typedSlice = $f.typedSlice; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!((_r === 8))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.SetBytes of non-byte slice")); + /* } */ case 2: + slice = x; + if (!(v.typ.Name() === "")) { + _v = true; + $s = 6; + continue s; + } + _r$1 = v.typ.Elem().Name(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _v = !(_r$1 === ""); + case 6: + /* */ if (_v) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_v) { */ case 4: + typedSlice = new (jsType(v.typ))(slice.$array); + typedSlice.$offset = slice.$offset; + typedSlice.$length = slice.$length; + typedSlice.$capacity = slice.$capacity; + slice = typedSlice; + /* } */ case 5: + v.ptr.$set(slice); + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.SetBytes }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._v = _v; + $f.slice = slice; + $f.typedSlice = typedSlice; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.SetBytes = function (x) { return this.$val.SetBytes(x); }; + Value.ptr.prototype.SetCap = function (n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice capacity out of range in SetCap")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = s.$length; + newSlice.$capacity = n; + v.ptr.$set(newSlice); + }; + Value.prototype.SetCap = function (n) { return this.$val.SetCap(n); }; + Value.ptr.prototype.SetLen = function (n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice length out of range in SetLen")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = n; + newSlice.$capacity = s.$capacity; + v.ptr.$set(newSlice); + }; + Value.prototype.SetLen = function (n) { return this.$val.SetLen(n); }; + Value.ptr.prototype.Slice = function (i, j) { + var _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _r$1 = $f._r$1; + cap = $f.cap; + i = $f.i; + j = $f.j; + kind = $f.kind; + s = $f.s; + str = $f.str; + tt = $f.tt; + typ = $f.typ; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + /* */ if (_1 === (17)) { + $s = 2; + continue; + } + /* */ if (_1 === (23)) { + $s = 3; + continue; + } + /* */ if (_1 === (24)) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + $s = 6; + continue; + /* } else if (_1 === (23)) { */ case 3: + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 6; + continue; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i < 0 || j < i || j > str.length) { + $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); + } + _r = ValueOf(new $String($substring(str, i, j))); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Slice", kind)); + /* } */ case 6: + case 1: + if (i < 0 || j < i || j > cap) { + $panic(new $String("reflect.Value.Slice: slice index out of bounds")); + } + _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Slice }; + } + $f._1 = _1; + $f._r = _r; + $f._r$1 = _r$1; + $f.cap = cap; + $f.i = i; + $f.j = j; + $f.kind = kind; + $f.s = s; + $f.str = str; + $f.tt = tt; + $f.typ = typ; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Slice = function (i, j) { return this.$val.Slice(i, j); }; + Value.ptr.prototype.Slice3 = function (i, j, k) { + var _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + cap = $f.cap; + i = $f.i; + j = $f.j; + k = $f.k; + kind = $f.kind; + s = $f.s; + tt = $f.tt; + typ = $f.typ; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + if (_1 === (17)) { + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + } + else if (_1 === (23)) { + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + } + else { + $panic(new ValueError.ptr("reflect.Value.Slice3", kind)); + } + if (i < 0 || j < i || k < j || k > cap) { + $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + } + _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Slice3 }; + } + $f._1 = _1; + $f._r = _r; + $f.cap = cap; + $f.i = i; + $f.j = j; + $f.k = k; + $f.kind = kind; + $f.s = s; + $f.tt = tt; + $f.typ = typ; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Slice3 = function (i, j, k) { return this.$val.Slice3(i, j, k); }; + Value.ptr.prototype.Close = function () { + var v; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + $close($clone(v, Value).object()); + }; + Value.prototype.Close = function () { return this.$val.Close(); }; + chanrecv = function (ch, nb, val) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + ch = $f.ch; + comms = $f.comms; + nb = $f.nb; + received = $f.received; + recvRes = $f.recvRes; + selectRes = $f.selectRes; + selected = $f.selected; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + selected = false; + received = false; + comms = new sliceType$11([new sliceType$8([ch])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + _tmp = false; + _tmp$1 = false; + selected = _tmp; + received = _tmp$1; + $s = -1; + return [selected, received]; + } + recvRes = selectRes[1]; + val.$set(recvRes[0]); + _tmp$2 = true; + _tmp$3 = !!(recvRes[1]); + selected = _tmp$2; + received = _tmp$3; + $s = -1; + return [selected, received]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: chanrecv }; + } + $f._r = _r; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f.ch = ch; + $f.comms = comms; + $f.nb = nb; + $f.received = received; + $f.recvRes = recvRes; + $f.selectRes = selectRes; + $f.selected = selected; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + chansend = function (ch, val, nb) { + var _r, ch, comms, nb, selectRes, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + ch = $f.ch; + comms = $f.comms; + nb = $f.nb; + selectRes = $f.selectRes; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + comms = new sliceType$11([new sliceType$8([ch, val.$get()])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + $s = -1; + return false; + } + $s = -1; + return true; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: chansend }; + } + $f._r = _r; + $f.ch = ch; + $f.comms = comms; + $f.nb = nb; + $f.selectRes = selectRes; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + structField.ptr.prototype.offset = function () { + var f; + f = this; + return f.offsetEmbed >>> 1 >>> 0; + }; + structField.prototype.offset = function () { return this.$val.offset(); }; + structField.ptr.prototype.embedded = function () { + var f; + f = this; + return !((((f.offsetEmbed & 1) >>> 0) === 0)); + }; + structField.prototype.embedded = function () { return this.$val.embedded(); }; + Kind.prototype.String = function () { + var k; + k = this.$val; + if (((k >> 0)) < kindNames.$length) { + return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); + } + return "kind" + strconv.Itoa(((k >> 0))); + }; + $ptrType(Kind).prototype.String = function () { return new Kind(this.$get()).String(); }; + rtype.ptr.prototype.String = function () { + var s, t; + t = this; + s = $clone(t.nameOff(t.str), name).name(); + if (!((((t.tflag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + rtype.prototype.String = function () { return this.$val.String(); }; + rtype.ptr.prototype.Size = function () { + var t; + t = this; + return t.size; + }; + rtype.prototype.Size = function () { return this.$val.Size(); }; + rtype.ptr.prototype.Bits = function () { + var k, t; + t = this; + if (t === ptrType$1.nil) { + $panic(new $String("reflect: Bits of nil Type")); + } + k = t.Kind(); + if (k < 2 || k > 16) { + $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); + } + return $imul(((t.size >> 0)), 8); + }; + rtype.prototype.Bits = function () { return this.$val.Bits(); }; + rtype.ptr.prototype.Align = function () { + var t; + t = this; + return ((t.align >> 0)); + }; + rtype.prototype.Align = function () { return this.$val.Align(); }; + rtype.ptr.prototype.FieldAlign = function () { + var t; + t = this; + return ((t.fieldAlign >> 0)); + }; + rtype.prototype.FieldAlign = function () { return this.$val.FieldAlign(); }; + rtype.ptr.prototype.Kind = function () { + var t; + t = this; + return ((((t.kind & 31) >>> 0) >>> 0)); + }; + rtype.prototype.Kind = function () { return this.$val.Kind(); }; + rtype.ptr.prototype.common = function () { + var t; + t = this; + return t; + }; + rtype.prototype.common = function () { return this.$val.common(); }; + rtype.ptr.prototype.exportedMethods = function () { + var t, ut; + t = this; + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return sliceType$5.nil; + } + return ut.exportedMethods(); + }; + rtype.prototype.exportedMethods = function () { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.NumMethod = function () { + var t, tt; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); + } + return t.exportedMethods().$length; + }; + rtype.prototype.NumMethod = function () { return this.$val.NumMethod(); }; + rtype.ptr.prototype.MethodByName = function (name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _ref = $f._ref; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tmp$4 = $f._tmp$4; + _tmp$5 = $f._tmp$5; + _tuple = $f._tuple; + i = $f.i; + m = $f.m; + name$1 = $f.name$1; + ok = $f.ok; + p = $f.p; + t = $f.t; + tt = $f.tt; + ut = $f.ut; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + _tuple = tt.MethodByName(name$1); + Method.copy(m, _tuple[0]); + ok = _tuple[1]; + $s = -1; + return [m, ok]; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$1 = false; + Method.copy(m, _tmp); + ok = _tmp$1; + $s = -1; + return [m, ok]; + } + _ref = ut.exportedMethods(); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 2; + continue; + } + i = _i; + p = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method); + /* */ if ($clone(t.nameOff(p.name), name).name() === name$1) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if ($clone(t.nameOff(p.name), name).name() === name$1) { */ case 3: + _r = t.Method(i); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tmp$2 = $clone(_r, Method); + _tmp$3 = true; + Method.copy(m, _tmp$2); + ok = _tmp$3; + $s = -1; + return [m, ok]; + /* } */ case 4: + _i++; + /* } */ $s = 1; + continue; + case 2: + _tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$5 = false; + Method.copy(m, _tmp$4); + ok = _tmp$5; + $s = -1; + return [m, ok]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.MethodByName }; + } + $f._i = _i; + $f._r = _r; + $f._ref = _ref; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tmp$4 = _tmp$4; + $f._tmp$5 = _tmp$5; + $f._tuple = _tuple; + $f.i = i; + $f.m = m; + $f.name$1 = name$1; + $f.ok = ok; + $f.p = p; + $f.t = t; + $f.tt = tt; + $f.ut = ut; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.MethodByName = function (name$1) { return this.$val.MethodByName(name$1); }; + rtype.ptr.prototype.PkgPath = function () { + var t, ut; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return ""; + } + return $clone(t.nameOff(ut.pkgPath), name).name(); + }; + rtype.prototype.PkgPath = function () { return this.$val.PkgPath(); }; + rtype.ptr.prototype.Name = function () { + var i, s, t; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + s = t.String(); + i = s.length - 1 >> 0; + while (true) { + if (!(i >= 0)) { + break; + } + if (s.charCodeAt(i) === 46) { + break; + } + i = i - (1) >> 0; + } + return $substring(s, (i + 1 >> 0)); + }; + rtype.prototype.Name = function () { return this.$val.Name(); }; + rtype.ptr.prototype.ChanDir = function () { + var t, tt; + t = this; + if (!((t.Kind() === 18))) { + $panic(new $String("reflect: ChanDir of non-chan type")); + } + tt = (t.kindType); + return ((tt.dir >> 0)); + }; + rtype.prototype.ChanDir = function () { return this.$val.ChanDir(); }; + rtype.ptr.prototype.IsVariadic = function () { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type")); + } + tt = (t.kindType); + return !((((tt.outCount & 32768) >>> 0) === 0)); + }; + rtype.prototype.IsVariadic = function () { return this.$val.IsVariadic(); }; + rtype.ptr.prototype.Elem = function () { + var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + t = this; + _1 = t.Kind(); + if (_1 === (17)) { + tt = (t.kindType); + return toType(tt.elem); + } + else if (_1 === (18)) { + tt$1 = (t.kindType); + return toType(tt$1.elem); + } + else if (_1 === (21)) { + tt$2 = (t.kindType); + return toType(tt$2.elem); + } + else if (_1 === (22)) { + tt$3 = (t.kindType); + return toType(tt$3.elem); + } + else if (_1 === (23)) { + tt$4 = (t.kindType); + return toType(tt$4.elem); + } + $panic(new $String("reflect: Elem of invalid type")); + }; + rtype.prototype.Elem = function () { return this.$val.Elem(); }; + rtype.ptr.prototype.Field = function (i) { + var i, t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: Field of non-struct type")); + } + tt = (t.kindType); + return tt.Field(i); + }; + rtype.prototype.Field = function (i) { return this.$val.Field(i); }; + rtype.ptr.prototype.FieldByIndex = function (index) { + var _r, index, t, tt, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + index = $f.index; + t = $f.t; + tt = $f.tt; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByIndex of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByIndex(index); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.FieldByIndex }; + } + $f._r = _r; + $f.index = index; + $f.t = t; + $f.tt = tt; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.FieldByIndex = function (index) { return this.$val.FieldByIndex(index); }; + rtype.ptr.prototype.FieldByName = function (name$1) { + var _r, name$1, t, tt, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + name$1 = $f.name$1; + t = $f.t; + tt = $f.tt; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByName of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByName(name$1); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.FieldByName }; + } + $f._r = _r; + $f.name$1 = name$1; + $f.t = t; + $f.tt = tt; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.FieldByName = function (name$1) { return this.$val.FieldByName(name$1); }; + rtype.ptr.prototype.FieldByNameFunc = function (match) { + var _r, match, t, tt, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + match = $f.match; + t = $f.t; + tt = $f.tt; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByNameFunc of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByNameFunc(match); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.FieldByNameFunc }; + } + $f._r = _r; + $f.match = match; + $f.t = t; + $f.tt = tt; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.FieldByNameFunc = function (match) { return this.$val.FieldByNameFunc(match); }; + rtype.ptr.prototype.In = function (i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.In = function (i) { return this.$val.In(i); }; + rtype.ptr.prototype.Key = function () { + var t, tt; + t = this; + if (!((t.Kind() === 21))) { + $panic(new $String("reflect: Key of non-map type")); + } + tt = (t.kindType); + return toType(tt.key); + }; + rtype.prototype.Key = function () { return this.$val.Key(); }; + rtype.ptr.prototype.Len = function () { + var t, tt; + t = this; + if (!((t.Kind() === 17))) { + $panic(new $String("reflect: Len of non-array type")); + } + tt = (t.kindType); + return ((tt.len >> 0)); + }; + rtype.prototype.Len = function () { return this.$val.Len(); }; + rtype.ptr.prototype.NumField = function () { + var t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: NumField of non-struct type")); + } + tt = (t.kindType); + return tt.fields.$length; + }; + rtype.prototype.NumField = function () { return this.$val.NumField(); }; + rtype.ptr.prototype.NumIn = function () { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumIn of non-func type")); + } + tt = (t.kindType); + return ((tt.inCount >> 0)); + }; + rtype.prototype.NumIn = function () { return this.$val.NumIn(); }; + rtype.ptr.prototype.NumOut = function () { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumOut of non-func type")); + } + tt = (t.kindType); + return tt.out().$length; + }; + rtype.prototype.NumOut = function () { return this.$val.NumOut(); }; + rtype.ptr.prototype.Out = function (i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: Out of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.Out = function (i) { return this.$val.Out(i); }; + ChanDir.prototype.String = function () { + var _1, d; + d = this.$val; + _1 = d; + if (_1 === (2)) { + return "chan<-"; + } + else if (_1 === (1)) { + return "<-chan"; + } + else if (_1 === (3)) { + return "chan"; + } + return "ChanDir" + strconv.Itoa(((d >> 0))); + }; + $ptrType(ChanDir).prototype.String = function () { return new ChanDir(this.$get()).String(); }; + interfaceType.ptr.prototype.Method = function (i) { + var i, m, p, pname, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (i < 0 || i >= t.methods.$length) { + return m; + } + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + pname = $clone(t.rtype.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + if (!$clone(pname, name).isExported()) { + m.PkgPath = $clone(pname, name).pkgPath(); + if (m.PkgPath === "") { + m.PkgPath = $clone(t.pkgPath, name).name(); + } + } + m.Type = toType(t.rtype.typeOff(p.typ)); + m.Index = i; + return m; + }; + interfaceType.prototype.Method = function (i) { return this.$val.Method(i); }; + interfaceType.ptr.prototype.NumMethod = function () { + var t; + t = this; + return t.methods.$length; + }; + interfaceType.prototype.NumMethod = function () { return this.$val.NumMethod(); }; + interfaceType.ptr.prototype.MethodByName = function (name$1) { + var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t === ptrType$9.nil) { + return [m, ok]; + } + p = ptrType$10.nil; + _ref = t.methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { + _tmp = $clone(t.Method(i), Method); + _tmp$1 = true; + Method.copy(m, _tmp); + ok = _tmp$1; + return [m, ok]; + } + _i++; + } + return [m, ok]; + }; + interfaceType.prototype.MethodByName = function (name$1) { return this.$val.MethodByName(name$1); }; + StructTag.prototype.Get = function (key) { + var _tuple, key, tag, v; + tag = this.$val; + _tuple = new StructTag(tag).Lookup(key); + v = _tuple[0]; + return v; + }; + $ptrType(StructTag).prototype.Get = function (key) { return new StructTag(this.$get()).Get(key); }; + StructTag.prototype.Lookup = function (key) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; + value = ""; + ok = false; + tag = this.$val; + while (true) { + if (!(!(tag === ""))) { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { + break; + } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { + break; + } + i = i + (1) >> 0; + } + if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { + break; + } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (key === name$1) { + _tuple = strconv.Unquote(qvalue); + value$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + break; + } + _tmp = value$1; + _tmp$1 = true; + value = _tmp; + ok = _tmp$1; + return [value, ok]; + } + } + _tmp$2 = ""; + _tmp$3 = false; + value = _tmp$2; + ok = _tmp$3; + return [value, ok]; + }; + $ptrType(StructTag).prototype.Lookup = function (key) { return new StructTag(this.$get()).Lookup(key); }; + structType.ptr.prototype.Field = function (i) { + var f, i, p, t, tag, x; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + if (i < 0 || i >= t.fields.$length) { + $panic(new $String("reflect: Field index out of bounds")); + } + p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f.Type = toType(p.typ); + f.Name = $clone(p.name, name).name(); + f.Anonymous = p.embedded(); + if (!$clone(p.name, name).isExported()) { + f.PkgPath = $clone(t.pkgPath, name).name(); + } + tag = $clone(p.name, name).tag(); + if (!(tag === "")) { + f.Tag = (tag); + } + f.Offset = p.offset(); + f.Index = new sliceType$13([i]); + return f; + }; + structType.prototype.Field = function (i) { return this.$val.Field(i); }; + structType.ptr.prototype.FieldByIndex = function (index) { + var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _ref = $f._ref; + _v = $f._v; + f = $f.f; + ft = $f.ft; + i = $f.i; + index = $f.index; + t = $f.t; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + f.Type = toType(t.rtype); + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 2; + continue; + } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (i > 0) { */ case 3: + ft = f.Type; + _r = ft.Kind(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + if (!(_r === 22)) { + _v = false; + $s = 7; + continue s; + } + _r$1 = ft.Elem(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = _r$1.Kind(); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _v = _r$2 === 25; + case 7: + /* */ if (_v) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (_v) { */ case 5: + _r$3 = ft.Elem(); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + ft = _r$3; + /* } */ case 6: + f.Type = ft; + /* } */ case 4: + _r$4 = f.Type.Field(x); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + StructField.copy(f, _r$4); + _i++; + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return f; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: structType.ptr.prototype.FieldByIndex }; + } + $f._i = _i; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._ref = _ref; + $f._v = _v; + $f.f = f; + $f.ft = ft; + $f.i = i; + $f.index = index; + $f.t = t; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + structType.prototype.FieldByIndex = function (index) { return this.$val.FieldByIndex(index); }; + structType.ptr.prototype.FieldByNameFunc = function (match) { + var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _entry$1 = $f._entry$1; + _entry$2 = $f._entry$2; + _entry$3 = $f._entry$3; + _i = $f._i; + _i$1 = $f._i$1; + _key = $f._key; + _key$1 = $f._key$1; + _key$2 = $f._key$2; + _key$3 = $f._key$3; + _r = $f._r; + _r$1 = $f._r$1; + _ref = $f._ref; + _ref$1 = $f._ref$1; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + count = $f.count; + current = $f.current; + f = $f.f; + fname = $f.fname; + i = $f.i; + index = $f.index; + match = $f.match; + next = $f.next; + nextCount = $f.nextCount; + ntyp = $f.ntyp; + ok = $f.ok; + result = $f.result; + scan = $f.scan; + styp = $f.styp; + t = $f.t; + t$1 = $f.t$1; + visited = $f.visited; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + ok = false; + t = this; + current = new sliceType$14([]); + next = new sliceType$14([new fieldScan.ptr(t, sliceType$13.nil)]); + nextCount = false; + visited = $makeMap(ptrType$11.keyFor, []); + /* while (true) { */ case 1: + /* if (!(next.$length > 0)) { break; } */ if (!(next.$length > 0)) { + $s = 2; + continue; + } + _tmp = next; + _tmp$1 = $subslice(current, 0, 0); + current = _tmp; + next = _tmp$1; + count = nextCount; + nextCount = false; + _ref = current; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 4; + continue; + } + scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); + t$1 = scan.typ; + /* */ if ((_entry = visited[ptrType$11.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if ((_entry = visited[ptrType$11.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { */ case 5: + _i++; + /* continue; */ $s = 3; + continue; + /* } */ case 6: + _key = t$1; + (visited || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key)] = { k: _key, v: true }; + _ref$1 = t$1.fields; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if (!(_i$1 < _ref$1.$length)) { + $s = 8; + continue; + } + i = _i$1; + f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + fname = $clone(f.name, name).name(); + ntyp = ptrType$1.nil; + /* */ if (f.embedded()) { + $s = 9; + continue; + } + /* */ $s = 10; + continue; + /* if (f.embedded()) { */ case 9: + ntyp = f.typ; + /* */ if (ntyp.Kind() === 22) { + $s = 11; + continue; + } + /* */ $s = 12; + continue; + /* if (ntyp.Kind() === 22) { */ case 11: + _r = ntyp.Elem().common(); /* */ + $s = 13; + case 13: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + ntyp = _r; + /* } */ case 12: + /* } */ case 10: + _r$1 = match(fname); /* */ + $s = 16; + case 16: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (_r$1) { + $s = 14; + continue; + } + /* */ $s = 15; + continue; + /* if (_r$1) { */ case 14: + if ((_entry$1 = count[ptrType$11.keyFor(t$1)], _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { + _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + _tmp$3 = false; + StructField.copy(result, _tmp$2); + ok = _tmp$3; + $s = -1; + return [result, ok]; + } + StructField.copy(result, t$1.Field(i)); + result.Index = sliceType$13.nil; + result.Index = $appendSlice(result.Index, scan.index); + result.Index = $append(result.Index, i); + ok = true; + _i$1++; + /* continue; */ $s = 7; + continue; + /* } */ case 15: + if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) { + _i$1++; + /* continue; */ $s = 7; + continue; + } + styp = (ntyp.kindType); + if ((_entry$2 = nextCount[ptrType$11.keyFor(styp)], _entry$2 !== undefined ? _entry$2.v : 0) > 0) { + _key$1 = styp; + (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$1)] = { k: _key$1, v: 2 }; + _i$1++; + /* continue; */ $s = 7; + continue; + } + if (nextCount === false) { + nextCount = $makeMap(ptrType$11.keyFor, []); + } + _key$2 = styp; + (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$2)] = { k: _key$2, v: 1 }; + if ((_entry$3 = count[ptrType$11.keyFor(t$1)], _entry$3 !== undefined ? _entry$3.v : 0) > 1) { + _key$3 = styp; + (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$11.keyFor(_key$3)] = { k: _key$3, v: 2 }; + } + index = sliceType$13.nil; + index = $appendSlice(index, scan.index); + index = $append(index, i); + next = $append(next, new fieldScan.ptr(styp, index)); + _i$1++; + /* } */ $s = 7; + continue; + case 8: + _i++; + /* } */ $s = 3; + continue; + case 4: + if (ok) { + /* break; */ $s = 2; + continue; + } + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return [result, ok]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: structType.ptr.prototype.FieldByNameFunc }; + } + $f._entry = _entry; + $f._entry$1 = _entry$1; + $f._entry$2 = _entry$2; + $f._entry$3 = _entry$3; + $f._i = _i; + $f._i$1 = _i$1; + $f._key = _key; + $f._key$1 = _key$1; + $f._key$2 = _key$2; + $f._key$3 = _key$3; + $f._r = _r; + $f._r$1 = _r$1; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f.count = count; + $f.current = current; + $f.f = f; + $f.fname = fname; + $f.i = i; + $f.index = index; + $f.match = match; + $f.next = next; + $f.nextCount = nextCount; + $f.ntyp = ntyp; + $f.ok = ok; + $f.result = result; + $f.scan = scan; + $f.styp = styp; + $f.t = t; + $f.t$1 = t$1; + $f.visited = visited; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + structType.prototype.FieldByNameFunc = function (match) { return this.$val.FieldByNameFunc(match); }; + structType.ptr.prototype.FieldByName = function (name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _ref = $f._ref; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + f = $f.f; + hasEmbeds = $f.hasEmbeds; + i = $f.i; + name$1 = $f.name$1; + present = $f.present; + t = $f.t; + tf = $f.tf; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + name$1 = [name$1]; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + present = false; + t = this; + hasEmbeds = false; + if (!(name$1[0] === "")) { + _ref = t.fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(tf.name, name).name() === name$1[0]) { + _tmp = $clone(t.Field(i), StructField); + _tmp$1 = true; + StructField.copy(f, _tmp); + present = _tmp$1; + $s = -1; + return [f, present]; + } + if (tf.embedded()) { + hasEmbeds = true; + } + _i++; + } + } + if (!hasEmbeds) { + $s = -1; + return [f, present]; + } + _r = t.FieldByNameFunc((function (name$1) { + return function (s) { + var s; + return s === name$1[0]; + }; + })(name$1)); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + StructField.copy(f, _tuple[0]); + present = _tuple[1]; + $s = -1; + return [f, present]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: structType.ptr.prototype.FieldByName }; + } + $f._i = _i; + $f._r = _r; + $f._ref = _ref; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.f = f; + $f.hasEmbeds = hasEmbeds; + $f.i = i; + $f.name$1 = name$1; + $f.present = present; + $f.t = t; + $f.tf = tf; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + structType.prototype.FieldByName = function (name$1) { return this.$val.FieldByName(name$1); }; + PtrTo = function (t) { + var t; + return $assertType(t, ptrType$1).ptrTo(); + }; + $pkg.PtrTo = PtrTo; + rtype.ptr.prototype.Implements = function (u) { + var _r, t, u, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + u = $f.u; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.Implements")); + } + _r = u.Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!((_r === 20))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((_r === 20))) { */ case 1: + $panic(new $String("reflect: non-interface type passed to Type.Implements")); + /* } */ case 2: + $s = -1; + return implements$1($assertType(u, ptrType$1), t); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.Implements }; + } + $f._r = _r; + $f.t = t; + $f.u = u; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.Implements = function (u) { return this.$val.Implements(u); }; + rtype.ptr.prototype.AssignableTo = function (u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + u = $f.u; + uu = $f.uu; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + } + uu = $assertType(u, ptrType$1); + _r = directlyAssignable(uu, t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r || implements$1(uu, t); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.AssignableTo }; + } + $f._r = _r; + $f.t = t; + $f.u = u; + $f.uu = uu; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.AssignableTo = function (u) { return this.$val.AssignableTo(u); }; + rtype.ptr.prototype.ConvertibleTo = function (u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + u = $f.u; + uu = $f.uu; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); + } + uu = $assertType(u, ptrType$1); + _r = convertOp(uu, t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return !(_r === $throwNilPointerError); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rtype.ptr.prototype.ConvertibleTo }; + } + $f._r = _r; + $f.t = t; + $f.u = u; + $f.uu = uu; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rtype.prototype.ConvertibleTo = function (u) { return this.$val.ConvertibleTo(u); }; + implements$1 = function (T, V) { + var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + if (!((T.Kind() === 20))) { + return false; + } + t = (T.kindType); + if (t.methods.$length === 0) { + return true; + } + if (V.Kind() === 20) { + v = (V.kindType); + i = 0; + j = 0; + while (true) { + if (!(j < v.methods.$length)) { + break; + } + tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + tmName = $clone(t.rtype.nameOff(tm.name), name); + vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); + vmName = $clone(V.nameOff(vm.name), name); + if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { + if (!$clone(tmName, name).isExported()) { + tmPkgPath = $clone(tmName, name).pkgPath(); + if (tmPkgPath === "") { + tmPkgPath = $clone(t.pkgPath, name).name(); + } + vmPkgPath = $clone(vmName, name).pkgPath(); + if (vmPkgPath === "") { + vmPkgPath = $clone(v.pkgPath, name).name(); + } + if (!(tmPkgPath === vmPkgPath)) { + j = j + (1) >> 0; + continue; + } + } + i = i + (1) >> 0; + if (i >= t.methods.$length) { + return true; + } + } + j = j + (1) >> 0; + } + return false; + } + v$1 = V.uncommon(); + if (v$1 === ptrType$5.nil) { + return false; + } + i$1 = 0; + vmethods = v$1.methods(); + j$1 = 0; + while (true) { + if (!(j$1 < ((v$1.mcount >> 0)))) { + break; + } + tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); + vmName$1 = $clone(V.nameOff(vm$1.name), name); + if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { + if (!$clone(tmName$1, name).isExported()) { + tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (tmPkgPath$1 === "") { + tmPkgPath$1 = $clone(t.pkgPath, name).name(); + } + vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + if (vmPkgPath$1 === "") { + vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + } + if (!(tmPkgPath$1 === vmPkgPath$1)) { + j$1 = j$1 + (1) >> 0; + continue; + } + } + i$1 = i$1 + (1) >> 0; + if (i$1 >= t.methods.$length) { + return true; + } + } + j$1 = j$1 + (1) >> 0; + } + return false; + }; + directlyAssignable = function (T, V) { + var T, V, _r, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + T = $f.T; + V = $f.V; + _r = $f._r; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if (T === V) { + $s = -1; + return true; + } + if (!(T.Name() === "") && !(V.Name() === "") || !((T.Kind() === V.Kind()))) { + $s = -1; + return false; + } + _r = haveIdenticalUnderlyingType(T, V, true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: directlyAssignable }; + } + $f.T = T; + $f.V = V; + $f._r = _r; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + haveIdenticalType = function (T, V, cmpTags) { + var T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + T = $f.T; + V = $f.V; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _v = $f._v; + cmpTags = $f.cmpTags; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if (cmpTags) { + $s = -1; + return $interfaceIsEqual(T, V); + } + _r = T.Name(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = V.Name(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + if (!(_r === _r$1)) { + _v = true; + $s = 3; + continue s; + } + _r$2 = T.Kind(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _r$3 = V.Kind(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _v = !((_r$2 === _r$3)); + case 3: + /* */ if (_v) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_v) { */ case 1: + $s = -1; + return false; + /* } */ case 2: + _r$4 = T.common(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + _arg = _r$4; + _r$5 = V.common(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + _arg$1 = _r$5; + _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + $s = -1; + return _r$6; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: haveIdenticalType }; + } + $f.T = T; + $f.V = V; + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._v = _v; + $f.cmpTags = cmpTags; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + haveIdenticalUnderlyingType = function (T, V, cmpTags) { + var T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + T = $f.T; + V = $f.V; + _1 = $f._1; + _i = $f._i; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + _r$8 = $f._r$8; + _ref = $f._ref; + _v = $f._v; + _v$1 = $f._v$1; + _v$2 = $f._v$2; + _v$3 = $f._v$3; + cmpTags = $f.cmpTags; + i = $f.i; + i$1 = $f.i$1; + i$2 = $f.i$2; + kind = $f.kind; + t = $f.t; + t$1 = $f.t$1; + t$2 = $f.t$2; + tf = $f.tf; + v = $f.v; + v$1 = $f.v$1; + v$2 = $f.v$2; + vf = $f.vf; + x = $f.x; + x$1 = $f.x$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if (T === V) { + $s = -1; + return true; + } + kind = T.Kind(); + if (!((kind === V.Kind()))) { + $s = -1; + return false; + } + if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) { + $s = -1; + return true; + } + _1 = kind; + /* */ if (_1 === (17)) { + $s = 2; + continue; + } + /* */ if (_1 === (18)) { + $s = 3; + continue; + } + /* */ if (_1 === (19)) { + $s = 4; + continue; + } + /* */ if (_1 === (20)) { + $s = 5; + continue; + } + /* */ if (_1 === (21)) { + $s = 6; + continue; + } + /* */ if ((_1 === (22)) || (_1 === (23))) { + $s = 7; + continue; + } + /* */ if (_1 === (25)) { + $s = 8; + continue; + } + /* */ $s = 9; + continue; + /* if (_1 === (17)) { */ case 2: + if (!(T.Len() === V.Len())) { + _v = false; + $s = 10; + continue s; + } + _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _v = _r; + case 10: + $s = -1; + return _v; + /* } else if (_1 === (18)) { */ case 3: + if (!(V.ChanDir() === 3)) { + _v$1 = false; + $s = 14; + continue s; + } + _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ + $s = 15; + case 15: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _v$1 = _r$1; + case 14: + /* */ if (_v$1) { + $s = 12; + continue; + } + /* */ $s = 13; + continue; + /* if (_v$1) { */ case 12: + $s = -1; + return true; + /* } */ case 13: + if (!(V.ChanDir() === T.ChanDir())) { + _v$2 = false; + $s = 16; + continue s; + } + _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ + $s = 17; + case 17: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _v$2 = _r$2; + case 16: + $s = -1; + return _v$2; + /* } else if (_1 === (19)) { */ case 4: + t = (T.kindType); + v = (V.kindType); + if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { + $s = -1; + return false; + } + i = 0; + /* while (true) { */ case 18: + /* if (!(i < t.rtype.NumIn())) { break; } */ if (!(i < t.rtype.NumIn())) { + $s = 19; + continue; + } + _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ + $s = 22; + case 22: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + /* */ if (!_r$3) { + $s = 20; + continue; + } + /* */ $s = 21; + continue; + /* if (!_r$3) { */ case 20: + $s = -1; + return false; + /* } */ case 21: + i = i + (1) >> 0; + /* } */ $s = 18; + continue; + case 19: + i$1 = 0; + /* while (true) { */ case 23: + /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if (!(i$1 < t.rtype.NumOut())) { + $s = 24; + continue; + } + _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ + $s = 27; + case 27: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + /* */ if (!_r$4) { + $s = 25; + continue; + } + /* */ $s = 26; + continue; + /* if (!_r$4) { */ case 25: + $s = -1; + return false; + /* } */ case 26: + i$1 = i$1 + (1) >> 0; + /* } */ $s = 23; + continue; + case 24: + $s = -1; + return true; + /* } else if (_1 === (20)) { */ case 5: + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { + $s = -1; + return true; + } + $s = -1; + return false; + /* } else if (_1 === (21)) { */ case 6: + _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ + $s = 29; + case 29: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + if (!(_r$5)) { + _v$3 = false; + $s = 28; + continue s; + } + _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ + $s = 30; + case 30: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + _v$3 = _r$6; + case 28: + $s = -1; + return _v$3; + /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: + _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ + $s = 31; + case 31: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + $s = -1; + return _r$7; + /* } else if (_1 === (25)) { */ case 8: + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.fields.$length === v$2.fields.$length))) { + $s = -1; + return false; + } + if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { + $s = -1; + return false; + } + _ref = t$2.fields; + _i = 0; + /* while (true) { */ case 32: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 33; + continue; + } + i$2 = _i; + tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); + vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); + if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { + $s = -1; + return false; + } + _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ + $s = 36; + case 36: + if ($c) { + $c = false; + _r$8 = _r$8.$blk(); + } + if (_r$8 && _r$8.$blk !== undefined) { + break s; + } + /* */ if (!_r$8) { + $s = 34; + continue; + } + /* */ $s = 35; + continue; + /* if (!_r$8) { */ case 34: + $s = -1; + return false; + /* } */ case 35: + if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { + $s = -1; + return false; + } + if (!((tf.offsetEmbed === vf.offsetEmbed))) { + $s = -1; + return false; + } + _i++; + /* } */ $s = 32; + continue; + case 33: + $s = -1; + return true; + /* } */ case 9: + case 1: + $s = -1; + return false; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: haveIdenticalUnderlyingType }; + } + $f.T = T; + $f.V = V; + $f._1 = _1; + $f._i = _i; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f._r$8 = _r$8; + $f._ref = _ref; + $f._v = _v; + $f._v$1 = _v$1; + $f._v$2 = _v$2; + $f._v$3 = _v$3; + $f.cmpTags = cmpTags; + $f.i = i; + $f.i$1 = i$1; + $f.i$2 = i$2; + $f.kind = kind; + $f.t = t; + $f.t$1 = t$1; + $f.t$2 = t$2; + $f.tf = tf; + $f.v = v; + $f.v$1 = v$1; + $f.v$2 = v$2; + $f.vf = vf; + $f.x = x; + $f.x$1 = x$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + toType = function (t) { + var t; + if (t === ptrType$1.nil) { + return $ifaceNil; + } + return t; + }; + ifaceIndir = function (t) { + var t; + return ((t.kind & 32) >>> 0) === 0; + }; + flag.prototype.kind = function () { + var f; + f = this.$val; + return ((((f & 31) >>> 0) >>> 0)); + }; + $ptrType(flag).prototype.kind = function () { return new flag(this.$get()).kind(); }; + flag.prototype.ro = function () { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0))) { + return 32; + } + return 0; + }; + $ptrType(flag).prototype.ro = function () { return new flag(this.$get()).ro(); }; + Value.ptr.prototype.pointer = function () { + var v; + v = this; + if (!((v.typ.size === 4)) || !v.typ.pointers()) { + $panic(new $String("can't call pointer on a non-pointer Value")); + } + if (!((((v.flag & 128) >>> 0) === 0))) { + return (v.ptr).$get(); + } + return v.ptr; + }; + Value.prototype.pointer = function () { return this.$val.pointer(); }; + ValueError.ptr.prototype.Error = function () { + var e; + e = this; + if (e.Kind === 0) { + return "reflect: call of " + e.Method + " on zero Value"; + } + return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; + }; + ValueError.prototype.Error = function () { return this.$val.Error(); }; + flag.prototype.mustBe = function (expected) { + var expected, f; + f = this.$val; + if (!((new flag(f).kind() === expected))) { + $panic(new ValueError.ptr(methodName(), new flag(f).kind())); + } + }; + $ptrType(flag).prototype.mustBe = function (expected) { return new flag(this.$get()).mustBe(expected); }; + flag.prototype.mustBeExported = function () { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + }; + $ptrType(flag).prototype.mustBeExported = function () { return new flag(this.$get()).mustBeExported(); }; + flag.prototype.mustBeAssignable = function () { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + if (((f & 256) >>> 0) === 0) { + $panic(new $String("reflect: " + methodName() + " using unaddressable value")); + } + }; + $ptrType(flag).prototype.mustBeAssignable = function () { return new flag(this.$get()).mustBeAssignable(); }; + Value.ptr.prototype.Addr = function () { + var v; + v = this; + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Addr of unaddressable value")); + } + return new Value.ptr(v.typ.ptrTo(), v.ptr, (new flag(v.flag).ro() | 22) >>> 0); + }; + Value.prototype.Addr = function () { return this.$val.Addr(); }; + Value.ptr.prototype.Bool = function () { + var v; + v = this; + new flag(v.flag).mustBe(1); + return (v.ptr).$get(); + }; + Value.prototype.Bool = function () { return this.$val.Bool(); }; + Value.ptr.prototype.Bytes = function () { + var _r, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!((_r === 8))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-byte slice")); + /* } */ case 2: + $s = -1; + return (v.ptr).$get(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Bytes }; + } + $f._r = _r; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Bytes = function () { return this.$val.Bytes(); }; + Value.ptr.prototype.runes = function () { + var _r, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!((_r === 5))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-rune slice")); + /* } */ case 2: + $s = -1; + return (v.ptr).$get(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.runes }; + } + $f._r = _r; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.runes = function () { return this.$val.runes(); }; + Value.ptr.prototype.CanAddr = function () { + var v; + v = this; + return !((((v.flag & 256) >>> 0) === 0)); + }; + Value.prototype.CanAddr = function () { return this.$val.CanAddr(); }; + Value.ptr.prototype.CanSet = function () { + var v; + v = this; + return ((v.flag & 352) >>> 0) === 256; + }; + Value.prototype.CanSet = function () { return this.$val.CanSet(); }; + Value.ptr.prototype.Call = function (in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + in$1 = $f.in$1; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("Call", in$1); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Call }; + } + $f._r = _r; + $f.in$1 = in$1; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Call = function (in$1) { return this.$val.Call(in$1); }; + Value.ptr.prototype.CallSlice = function (in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + in$1 = $f.in$1; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("CallSlice", in$1); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.CallSlice }; + } + $f._r = _r; + $f.in$1 = in$1; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.CallSlice = function (in$1) { return this.$val.CallSlice(in$1); }; + Value.ptr.prototype.Complex = function () { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag))); + } + else if (_1 === (16)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind())); + }; + Value.prototype.Complex = function () { return this.$val.Complex(); }; + Value.ptr.prototype.FieldByIndex = function (index) { + var _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _ref = $f._ref; + _v = $f._v; + i = $f.i; + index = $f.index; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + /* */ if (index.$length === 1) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (index.$length === 1) { */ case 1: + _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } */ case 2: + new flag(v.flag).mustBe(25); + _ref = index; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 5; + continue; + } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (i > 0) { */ case 6: + if (!($clone(v, Value).Kind() === 22)) { + _v = false; + $s = 10; + continue s; + } + _r$1 = v.typ.Elem().Kind(); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _v = _r$1 === 25; + case 10: + /* */ if (_v) { + $s = 8; + continue; + } + /* */ $s = 9; + continue; + /* if (_v) { */ case 8: + if ($clone(v, Value).IsNil()) { + $panic(new $String("reflect: indirection through nil pointer to embedded struct")); + } + _r$2 = $clone(v, Value).Elem(); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + v = _r$2; + /* } */ case 9: + /* } */ case 7: + _r$3 = $clone(v, Value).Field(x); /* */ + $s = 13; + case 13: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + v = _r$3; + _i++; + /* } */ $s = 4; + continue; + case 5: + $s = -1; + return v; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.FieldByIndex }; + } + $f._i = _i; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._ref = _ref; + $f._v = _v; + $f.i = i; + $f.index = index; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.FieldByIndex = function (index) { return this.$val.FieldByIndex(index); }; + Value.ptr.prototype.FieldByName = function (name$1) { + var _r, _r$1, _tuple, f, name$1, ok, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + f = $f.f; + name$1 = $f.name$1; + ok = $f.ok; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(25); + _r = v.typ.FieldByName(name$1); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* } */ case 3: + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.FieldByName }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.f = f; + $f.name$1 = name$1; + $f.ok = ok; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.FieldByName = function (name$1) { return this.$val.FieldByName(name$1); }; + Value.ptr.prototype.FieldByNameFunc = function (match) { + var _r, _r$1, _tuple, f, match, ok, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + f = $f.f; + match = $f.match; + ok = $f.ok; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + _r = v.typ.FieldByNameFunc(match); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* } */ case 3: + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.FieldByNameFunc }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.f = f; + $f.match = match; + $f.ok = ok; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.FieldByNameFunc = function (match) { return this.$val.FieldByNameFunc(match); }; + Value.ptr.prototype.Float = function () { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return ((v.ptr).$get()); + } + else if (_1 === (14)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind())); + }; + Value.prototype.Float = function () { return this.$val.Float(); }; + Value.ptr.prototype.Int = function () { + var _1, k, p, v; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (2)) { + return (new $Int64(0, (p).$get())); + } + else if (_1 === (3)) { + return (new $Int64(0, (p).$get())); + } + else if (_1 === (4)) { + return (new $Int64(0, (p).$get())); + } + else if (_1 === (5)) { + return (new $Int64(0, (p).$get())); + } + else if (_1 === (6)) { + return (p).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind())); + }; + Value.prototype.Int = function () { return this.$val.Int(); }; + Value.ptr.prototype.CanInterface = function () { + var v; + v = this; + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.CanInterface", 0)); + } + return ((v.flag & 96) >>> 0) === 0; + }; + Value.prototype.CanInterface = function () { return this.$val.CanInterface(); }; + Value.ptr.prototype.Interface = function () { + var _r, i, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + i = $f.i; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + i = $ifaceNil; + v = this; + _r = valueInterface($clone(v, Value), true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + i = _r; + $s = -1; + return i; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Interface }; + } + $f._r = _r; + $f.i = i; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Interface = function () { return this.$val.Interface(); }; + Value.ptr.prototype.IsValid = function () { + var v; + v = this; + return !((v.flag === 0)); + }; + Value.prototype.IsValid = function () { return this.$val.IsValid(); }; + Value.ptr.prototype.Kind = function () { + var v; + v = this; + return new flag(v.flag).kind(); + }; + Value.prototype.Kind = function () { return this.$val.Kind(); }; + Value.ptr.prototype.MapIndex = function (key) { + var _r, e, fl, k, key, tt, typ, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + e = $f.e; + fl = $f.fl; + k = $f.k; + key = $f.key; + tt = $f.tt; + typ = $f.typ; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } + else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$17(function () { return this.$target.ptr; }, function ($v) { this.$target.ptr = $v; }, key)))); + } + e = mapaccess(v.typ, $clone(v, Value).pointer(), k); + if (e === 0) { + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = tt.elem; + fl = new flag((((v.flag | key.flag) >>> 0))).ro(); + fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; + $s = -1; + return copyVal(typ, fl, e); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.MapIndex }; + } + $f._r = _r; + $f.e = e; + $f.fl = fl; + $f.k = k; + $f.key = key; + $f.tt = tt; + $f.typ = typ; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.MapIndex = function (key) { return this.$val.MapIndex(key); }; + Value.ptr.prototype.MapKeys = function () { + var _r, a, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + a = $f.a; + fl = $f.fl; + i = $f.i; + it = $f.it; + key = $f.key; + keyType = $f.keyType; + m = $f.m; + mlen = $f.mlen; + tt = $f.tt; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + keyType = tt.key; + fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; + m = $clone(v, Value).pointer(); + mlen = 0; + if (!(m === 0)) { + mlen = maplen(m); + } + it = mapiterinit(v.typ, m); + a = $makeSlice(sliceType$9, mlen); + i = 0; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < a.$length)) { break; } */ if (!(i < a.$length)) { + $s = 2; + continue; + } + _r = mapiterkey(it); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + key = _r; + if (key === 0) { + /* break; */ $s = 2; + continue; + } + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = copyVal(keyType, fl, key)); + mapiternext(it); + i = i + (1) >> 0; + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return $subslice(a, 0, i); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.MapKeys }; + } + $f._r = _r; + $f.a = a; + $f.fl = fl; + $f.i = i; + $f.it = it; + $f.key = key; + $f.keyType = keyType; + $f.m = m; + $f.mlen = mlen; + $f.tt = tt; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.MapKeys = function () { return this.$val.MapKeys(); }; + MapIter.ptr.prototype.Key = function () { + var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, it, ktype, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + it = $f.it; + ktype = $f.ktype; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + it = this; + if (it.it === 0) { + $panic(new $String("MapIter.Key called before Next")); + } + _r = mapiterkey(it.it); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_r === 0) { */ case 1: + $panic(new $String("MapIter.Key called on exhausted iterator")); + /* } */ case 2: + t = (it.m.typ.kindType); + ktype = t.key; + _arg = ktype; + _arg$1 = (new flag(it.m.flag).ro() | ((ktype.Kind() >>> 0))) >>> 0; + _r$1 = mapiterkey(it.it); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _arg$2 = _r$1; + _r$2 = copyVal(_arg, _arg$1, _arg$2); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return _r$2; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: MapIter.ptr.prototype.Key }; + } + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.it = it; + $f.ktype = ktype; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + MapIter.prototype.Key = function () { return this.$val.Key(); }; + MapIter.ptr.prototype.Value = function () { + var _arg, _arg$1, _arg$2, _r, _r$1, _r$2, it, t, vtype, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + it = $f.it; + t = $f.t; + vtype = $f.vtype; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + it = this; + if (it.it === 0) { + $panic(new $String("MapIter.Value called before Next")); + } + _r = mapiterkey(it.it); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_r === 0) { */ case 1: + $panic(new $String("MapIter.Value called on exhausted iterator")); + /* } */ case 2: + t = (it.m.typ.kindType); + vtype = t.elem; + _arg = vtype; + _arg$1 = (new flag(it.m.flag).ro() | ((vtype.Kind() >>> 0))) >>> 0; + _r$1 = mapitervalue(it.it); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _arg$2 = _r$1; + _r$2 = copyVal(_arg, _arg$1, _arg$2); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return _r$2; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: MapIter.ptr.prototype.Value }; + } + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.it = it; + $f.t = t; + $f.vtype = vtype; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + MapIter.prototype.Value = function () { return this.$val.Value(); }; + MapIter.ptr.prototype.Next = function () { + var _r, _r$1, it, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + it = $f.it; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + it = this; + /* */ if (it.it === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (it.it === 0) { */ case 1: + it.it = mapiterinit(it.m.typ, $clone(it.m, Value).pointer()); + $s = 3; + continue; + /* } else { */ case 2: + _r = mapiterkey(it.it); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r === 0) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_r === 0) { */ case 4: + $panic(new $String("MapIter.Next called on exhausted iterator")); + /* } */ case 5: + mapiternext(it.it); + /* } */ case 3: + _r$1 = mapiterkey(it.it); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return !(_r$1 === 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: MapIter.ptr.prototype.Next }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.it = it; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + MapIter.prototype.Next = function () { return this.$val.Next(); }; + Value.ptr.prototype.MapRange = function () { + var v; + v = this; + new flag(v.flag).mustBe(21); + return new MapIter.ptr($clone(v, Value), 0); + }; + Value.prototype.MapRange = function () { return this.$val.MapRange(); }; + copyVal = function (typ, fl, ptr) { + var c, fl, ptr, typ; + if (ifaceIndir(typ)) { + c = unsafe_New(typ); + typedmemmove(typ, c, ptr); + return new Value.ptr(typ, c, (fl | 128) >>> 0); + } + return new Value.ptr(typ, (ptr).$get(), fl); + }; + Value.ptr.prototype.Method = function (i) { + var fl, i, v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.Method", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) { + $panic(new $String("reflect: Method index out of range")); + } + if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { + $panic(new $String("reflect: Method on nil interface value")); + } + fl = (v.flag & 160) >>> 0; + fl = (fl | (19)) >>> 0; + fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; + return new Value.ptr(v.typ, v.ptr, fl); + }; + Value.prototype.Method = function (i) { return this.$val.Method(i); }; + Value.ptr.prototype.NumMethod = function () { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + return 0; + } + return v.typ.NumMethod(); + }; + Value.prototype.NumMethod = function () { return this.$val.NumMethod(); }; + Value.ptr.prototype.MethodByName = function (name$1) { + var _r, _tuple, m, name$1, ok, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + m = $f.m; + name$1 = $f.name$1; + ok = $f.ok; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = v.typ.MethodByName(name$1); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + m = $clone(_tuple[0], Method); + ok = _tuple[1]; + if (!ok) { + $s = -1; + return new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; + return $clone(v, Value).Method(m.Index); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.MethodByName }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.m = m; + $f.name$1 = name$1; + $f.ok = ok; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.MethodByName = function (name$1) { return this.$val.MethodByName(name$1); }; + Value.ptr.prototype.NumField = function () { + var tt, v; + v = this; + new flag(v.flag).mustBe(25); + tt = (v.typ.kindType); + return tt.fields.$length; + }; + Value.prototype.NumField = function () { return this.$val.NumField(); }; + Value.ptr.prototype.OverflowComplex = function (x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return overflowFloat32(x.$real) || overflowFloat32(x.$imag); + } + else if (_1 === (16)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind())); + }; + Value.prototype.OverflowComplex = function (x) { return this.$val.OverflowComplex(x); }; + Value.ptr.prototype.OverflowFloat = function (x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return overflowFloat32(x); + } + else if (_1 === (14)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind())); + }; + Value.prototype.OverflowFloat = function (x) { return this.$val.OverflowFloat(x); }; + overflowFloat32 = function (x) { + var x; + if (x < 0) { + x = -x; + } + return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308; + }; + Value.ptr.prototype.OverflowInt = function (x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind())); + }; + Value.prototype.OverflowInt = function (x) { return this.$val.OverflowInt(x); }; + Value.ptr.prototype.OverflowUint = function (x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind())); + }; + Value.prototype.OverflowUint = function (x) { return this.$val.OverflowUint(x); }; + Value.ptr.prototype.Recv = function () { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + ok = $f.ok; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(false); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; + return [x, ok]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Recv }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.ok = ok; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Recv = function () { return this.$val.Recv(); }; + Value.ptr.prototype.recv = function (nb) { + var _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + nb = $f.nb; + ok = $f.ok; + p = $f.p; + selected = $f.selected; + t = $f.t; + tt = $f.tt; + v = $f.v; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + val = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 1) === 0) { + $panic(new $String("reflect: recv on send-only channel")); + } + t = tt.elem; + val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); + p = 0; + if (ifaceIndir(t)) { + p = unsafe_New(t); + val.ptr = p; + val.flag = (val.flag | (128)) >>> 0; + } + else { + p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$17(function () { return this.$target.ptr; }, function ($v) { this.$target.ptr = $v; }, val)))); + } + _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + selected = _tuple[0]; + ok = _tuple[1]; + if (!selected) { + val = new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; + return [val, ok]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.recv }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.nb = nb; + $f.ok = ok; + $f.p = p; + $f.selected = selected; + $f.t = t; + $f.tt = tt; + $f.v = v; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.recv = function (nb) { return this.$val.recv(nb); }; + Value.ptr.prototype.Send = function (x) { + var _r, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), false); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r; + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Send }; + } + $f._r = _r; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Send = function (x) { return this.$val.Send(x); }; + Value.ptr.prototype.send = function (x, nb) { + var _r, _r$1, nb, p, selected, tt, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + nb = $f.nb; + p = $f.p; + selected = $f.selected; + tt = $f.tt; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + selected = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 2) === 0) { + $panic(new $String("reflect: send on recv-only channel")); + } + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + x = _r; + p = 0; + if (!((((x.flag & 128) >>> 0) === 0))) { + p = x.ptr; + } + else { + p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$17(function () { return this.$target.ptr; }, function ($v) { this.$target.ptr = $v; }, x)))); + } + _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + selected = _r$1; + $s = -1; + return selected; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.send }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.nb = nb; + $f.p = p; + $f.selected = selected; + $f.tt = tt; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.send = function (x, nb) { return this.$val.send(x, nb); }; + Value.ptr.prototype.SetBool = function (x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(1); + (v.ptr).$set(x); + }; + Value.prototype.SetBool = function (x) { return this.$val.SetBool(x); }; + Value.ptr.prototype.setRunes = function (x) { + var _r, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!((_r === 5))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.setRunes of non-rune slice")); + /* } */ case 2: + (v.ptr).$set(x); + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.setRunes }; + } + $f._r = _r; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.setRunes = function (x) { return this.$val.setRunes(x); }; + Value.ptr.prototype.SetComplex = function (x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + (v.ptr).$set((new $Complex64(x.$real, x.$imag))); + } + else if (_1 === (16)) { + (v.ptr).$set(x); + } + else { + $panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind())); + } + }; + Value.prototype.SetComplex = function (x) { return this.$val.SetComplex(x); }; + Value.ptr.prototype.SetFloat = function (x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + (v.ptr).$set(($fround(x))); + } + else if (_1 === (14)) { + (v.ptr).$set(x); + } + else { + $panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind())); + } + }; + Value.prototype.SetFloat = function (x) { return this.$val.SetFloat(x); }; + Value.ptr.prototype.SetInt = function (x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (2)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } + else if (_1 === (3)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24))); + } + else if (_1 === (4)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16))); + } + else if (_1 === (5)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } + else if (_1 === (6)) { + (v.ptr).$set(x); + } + else { + $panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind())); + } + }; + Value.prototype.SetInt = function (x) { return this.$val.SetInt(x); }; + Value.ptr.prototype.SetMapIndex = function (key, val) { + var _r, _r$1, e, k, key, tt, v, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + e = $f.e; + k = $f.k; + key = $f.key; + tt = $f.tt; + v = $f.v; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(21); + new flag(v.flag).mustBeExported(); + new flag(key.flag).mustBeExported(); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } + else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$17(function () { return this.$target.ptr; }, function ($v) { this.$target.ptr = $v; }, key)))); + } + if (val.typ === ptrType$1.nil) { + mapdelete(v.typ, $clone(v, Value).pointer(), k); + $s = -1; + return; + } + new flag(val.flag).mustBeExported(); + _r$1 = $clone(val, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + val = _r$1; + e = 0; + if (!((((val.flag & 128) >>> 0) === 0))) { + e = val.ptr; + } + else { + e = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$17(function () { return this.$target.ptr; }, function ($v) { this.$target.ptr = $v; }, val)))); + } + $r = mapassign(v.typ, $clone(v, Value).pointer(), k, e); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.SetMapIndex }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.e = e; + $f.k = k; + $f.key = key; + $f.tt = tt; + $f.v = v; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.SetMapIndex = function (key, val) { return this.$val.SetMapIndex(key, val); }; + Value.ptr.prototype.SetUint = function (x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (7)) { + (v.ptr).$set(((x.$low >>> 0))); + } + else if (_1 === (8)) { + (v.ptr).$set(((x.$low << 24 >>> 24))); + } + else if (_1 === (9)) { + (v.ptr).$set(((x.$low << 16 >>> 16))); + } + else if (_1 === (10)) { + (v.ptr).$set(((x.$low >>> 0))); + } + else if (_1 === (11)) { + (v.ptr).$set(x); + } + else if (_1 === (12)) { + (v.ptr).$set(((x.$low >>> 0))); + } + else { + $panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind())); + } + }; + Value.prototype.SetUint = function (x) { return this.$val.SetUint(x); }; + Value.ptr.prototype.SetPointer = function (x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(26); + (v.ptr).$set(x); + }; + Value.prototype.SetPointer = function (x) { return this.$val.SetPointer(x); }; + Value.ptr.prototype.SetString = function (x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(24); + (v.ptr).$set(x); + }; + Value.prototype.SetString = function (x) { return this.$val.SetString(x); }; + Value.ptr.prototype.String = function () { + var _1, _r, k, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + k = $f.k; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (0)) { + $s = -1; + return ""; + } + else if (_1 === (24)) { + $s = -1; + return (v.ptr).$get(); + } + _r = $clone(v, Value).Type().String(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return "<" + _r + " Value>"; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.String }; + } + $f._1 = _1; + $f._r = _r; + $f.k = k; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.String = function () { return this.$val.String(); }; + Value.ptr.prototype.TryRecv = function () { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + ok = $f.ok; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; + return [x, ok]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.TryRecv }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.ok = ok; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.TryRecv = function () { return this.$val.TryRecv(); }; + Value.ptr.prototype.TrySend = function (x) { + var _r, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.TrySend }; + } + $f._r = _r; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.TrySend = function (x) { return this.$val.TrySend(x); }; + Value.ptr.prototype.Type = function () { + var f, i, m, m$1, ms, tt, v, x; + v = this; + f = v.flag; + if (f === 0) { + $panic(new ValueError.ptr("reflect.Value.Type", 0)); + } + if (((f & 512) >>> 0) === 0) { + return v.typ; + } + i = ((v.flag >> 0)) >> 10 >> 0; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + return v.typ.typeOff(m.typ); + } + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + return v.typ.typeOff(m$1.mtyp); + }; + Value.prototype.Type = function () { return this.$val.Type(); }; + Value.ptr.prototype.Uint = function () { + var _1, k, p, v, x; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (7)) { + return (new $Uint64(0, (p).$get())); + } + else if (_1 === (8)) { + return (new $Uint64(0, (p).$get())); + } + else if (_1 === (9)) { + return (new $Uint64(0, (p).$get())); + } + else if (_1 === (10)) { + return (new $Uint64(0, (p).$get())); + } + else if (_1 === (11)) { + return (p).$get(); + } + else if (_1 === (12)) { + return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1))); + } + $panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind())); + }; + Value.prototype.Uint = function () { return this.$val.Uint(); }; + Value.ptr.prototype.UnsafeAddr = function () { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); + } + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); + } + return (v.ptr); + }; + Value.prototype.UnsafeAddr = function () { return this.$val.UnsafeAddr(); }; + New = function (typ) { + var fl, ptr, t, typ; + if ($interfaceIsEqual(typ, $ifaceNil)) { + $panic(new $String("reflect: New(nil)")); + } + t = $assertType(typ, ptrType$1); + ptr = unsafe_New(t); + fl = 22; + return new Value.ptr(t.ptrTo(), ptr, fl); + }; + $pkg.New = New; + Value.ptr.prototype.Convert = function (t) { + var _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + op = $f.op; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Convert", $clone(v, Value)); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + v = _r; + /* } */ case 2: + _r$1 = t.common(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = convertOp(_r$1, v.typ); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + op = _r$2; + /* */ if (op === $throwNilPointerError) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (op === $throwNilPointerError) { */ case 6: + _r$3 = t.String(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); + /* } */ case 7: + _r$4 = op($clone(v, Value), t); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + $s = -1; + return _r$4; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Value.ptr.prototype.Convert }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f.op = op; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Value.prototype.Convert = function (t) { return this.$val.Convert(t); }; + convertOp = function (dst, src) { + var _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, dst, src, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _2 = $f._2; + _3 = $f._3; + _4 = $f._4; + _5 = $f._5; + _6 = $f._6; + _7 = $f._7; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + _v = $f._v; + _v$1 = $f._v$1; + _v$2 = $f._v$2; + dst = $f.dst; + src = $f.src; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _1 = src.Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + $s = 2; + continue; + } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + $s = 3; + continue; + } + /* */ if ((_1 === (13)) || (_1 === (14))) { + $s = 4; + continue; + } + /* */ if ((_1 === (15)) || (_1 === (16))) { + $s = 5; + continue; + } + /* */ if (_1 === (24)) { + $s = 6; + continue; + } + /* */ if (_1 === (23)) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _2 = dst.Kind(); + if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { + $s = -1; + return cvtInt; + } + else if ((_2 === (13)) || (_2 === (14))) { + $s = -1; + return cvtIntFloat; + } + else if (_2 === (24)) { + $s = -1; + return cvtIntString; + } + $s = 8; + continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _3 = dst.Kind(); + if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { + $s = -1; + return cvtUint; + } + else if ((_3 === (13)) || (_3 === (14))) { + $s = -1; + return cvtUintFloat; + } + else if (_3 === (24)) { + $s = -1; + return cvtUintString; + } + $s = 8; + continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: + _4 = dst.Kind(); + if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { + $s = -1; + return cvtFloatInt; + } + else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { + $s = -1; + return cvtFloatUint; + } + else if ((_4 === (13)) || (_4 === (14))) { + $s = -1; + return cvtFloat; + } + $s = 8; + continue; + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: + _5 = dst.Kind(); + if ((_5 === (15)) || (_5 === (16))) { + $s = -1; + return cvtComplex; + } + $s = 8; + continue; + /* } else if (_1 === (24)) { */ case 6: + if (!(dst.Kind() === 23)) { + _v = false; + $s = 11; + continue s; + } + _r = dst.Elem().PkgPath(); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _v = _r === ""; + case 11: + /* */ if (_v) { + $s = 9; + continue; + } + /* */ $s = 10; + continue; + /* if (_v) { */ case 9: + _r$1 = dst.Elem().Kind(); /* */ + $s = 14; + case 14: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _6 = _r$1; + if (_6 === (8)) { + $s = -1; + return cvtStringBytes; + } + else if (_6 === (5)) { + $s = -1; + return cvtStringRunes; + } + case 13: + /* } */ case 10: + $s = 8; + continue; + /* } else if (_1 === (23)) { */ case 7: + if (!(dst.Kind() === 24)) { + _v$1 = false; + $s = 17; + continue s; + } + _r$2 = src.Elem().PkgPath(); /* */ + $s = 18; + case 18: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _v$1 = _r$2 === ""; + case 17: + /* */ if (_v$1) { + $s = 15; + continue; + } + /* */ $s = 16; + continue; + /* if (_v$1) { */ case 15: + _r$3 = src.Elem().Kind(); /* */ + $s = 20; + case 20: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _7 = _r$3; + if (_7 === (8)) { + $s = -1; + return cvtBytesString; + } + else if (_7 === (5)) { + $s = -1; + return cvtRunesString; + } + case 19: + /* } */ case 16: + /* } */ case 8: + case 1: + _r$4 = haveIdenticalUnderlyingType(dst, src, false); /* */ + $s = 23; + case 23: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + /* */ if (_r$4) { + $s = 21; + continue; + } + /* */ $s = 22; + continue; + /* if (_r$4) { */ case 21: + $s = -1; + return cvtDirect; + /* } */ case 22: + if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { + _v$2 = false; + $s = 26; + continue s; + } + _r$5 = dst.Elem().common(); /* */ + $s = 27; + case 27: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + _arg = _r$5; + _r$6 = src.Elem().common(); /* */ + $s = 28; + case 28: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + _arg$1 = _r$6; + _r$7 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ + $s = 29; + case 29: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + _v$2 = _r$7; + case 26: + /* */ if (_v$2) { + $s = 24; + continue; + } + /* */ $s = 25; + continue; + /* if (_v$2) { */ case 24: + $s = -1; + return cvtDirect; + /* } */ case 25: + if (implements$1(dst, src)) { + if (src.Kind() === 20) { + $s = -1; + return cvtI2I; + } + $s = -1; + return cvtT2I; + } + $s = -1; + return $throwNilPointerError; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: convertOp }; + } + $f._1 = _1; + $f._2 = _2; + $f._3 = _3; + $f._4 = _4; + $f._5 = _5; + $f._6 = _6; + $f._7 = _7; + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f._v = _v; + $f._v$1 = _v$1; + $f._v$2 = _v$2; + $f.dst = dst; + $f.src = src; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + makeFloat = function (f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + f = $f.f; + ptr = $f.ptr; + t = $f.t; + typ = $f.typ; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = t.common(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (4)) { + (ptr).$set(($fround(v))); + } + else if (_1 === (8)) { + (ptr).$set(v); + } + $s = -1; + return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeFloat }; + } + $f._1 = _1; + $f._r = _r; + $f.f = f; + $f.ptr = ptr; + $f.t = t; + $f.typ = typ; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + makeComplex = function (f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + f = $f.f; + ptr = $f.ptr; + t = $f.t; + typ = $f.typ; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = t.common(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (8)) { + (ptr).$set((new $Complex64(v.$real, v.$imag))); + } + else if (_1 === (16)) { + (ptr).$set(v); + } + $s = -1; + return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeComplex }; + } + $f._1 = _1; + $f._r = _r; + $f.f = f; + $f.ptr = ptr; + $f.t = t; + $f.typ = typ; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + makeString = function (f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + f = $f.f; + ret = $f.ret; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = $clone(New(t), Value).Elem(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + ret = _r; + $clone(ret, Value).SetString(v); + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; + return ret; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeString }; + } + $f._r = _r; + $f.f = f; + $f.ret = ret; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + makeBytes = function (f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + f = $f.f; + ret = $f.ret; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = $clone(New(t), Value).Elem(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + ret = _r; + $r = $clone(ret, Value).SetBytes(v); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; + return ret; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeBytes }; + } + $f._r = _r; + $f.f = f; + $f.ret = ret; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + makeRunes = function (f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + f = $f.f; + ret = $f.ret; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = $clone(New(t), Value).Elem(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + ret = _r; + $r = $clone(ret, Value).setRunes(v); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; + return ret; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: makeRunes }; + } + $f._r = _r; + $f.f = f; + $f.ret = ret; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtInt = function (v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtInt }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtUint = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeInt(new flag(v.flag).ro(), $clone(v, Value).Uint(), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtUint }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtFloatInt = function (v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtFloatInt }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtFloatUint = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeInt(new flag(v.flag).ro(), (new $Uint64(0, $clone(v, Value).Float())), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtFloatUint }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtIntFloat = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Int())), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtIntFloat }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtUintFloat = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Uint())), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtUintFloat }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtFloat = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeFloat(new flag(v.flag).ro(), $clone(v, Value).Float(), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtFloat }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtComplex = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeComplex(new flag(v.flag).ro(), $clone(v, Value).Complex(), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtComplex }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtIntString = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Int().$low)), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtIntString }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtUintString = function (v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Uint().$low)), t); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtUintString }; + } + $f._r = _r; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtBytesString = function (v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _r = $f._r; + _r$1 = $f._r$1; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).Bytes(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _arg$1 = ($bytesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtBytesString }; + } + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._r = _r; + $f._r$1 = _r$1; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtStringBytes = function (v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _r = $f._r; + _r$1 = $f._r$1; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _arg$1 = (new sliceType$15($stringToBytes(_r))); + _arg$2 = t; + _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtStringBytes }; + } + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._r = _r; + $f._r$1 = _r$1; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtRunesString = function (v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _r = $f._r; + _r$1 = $f._r$1; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).runes(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _arg$1 = ($runesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtRunesString }; + } + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._r = _r; + $f._r$1 = _r$1; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtStringRunes = function (v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _r = $f._r; + _r$1 = $f._r$1; + t = $f.t; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _arg$1 = (new sliceType$18($stringToRunes(_r))); + _arg$2 = t; + _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtStringRunes }; + } + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._r = _r; + $f._r$1 = _r$1; + $f.t = t; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtT2I = function (v, typ) { + var _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + target = $f.target; + typ = $f.typ; + v = $f.v; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = typ.common(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = unsafe_New(_r); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + target = _r$1; + _r$2 = valueInterface($clone(v, Value), false); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + x = _r$2; + _r$3 = typ.NumMethod(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + /* */ if (_r$3 === 0) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_r$3 === 0) { */ case 4: + (target).$set(x); + $s = 6; + continue; + /* } else { */ case 5: + ifaceE2I($assertType(typ, ptrType$1), x, target); + /* } */ case 6: + _r$4 = typ.common(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + $s = -1; + return new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtT2I }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f.target = target; + $f.typ = typ; + $f.v = v; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + cvtI2I = function (v, typ) { + var _r, _r$1, _r$2, ret, typ, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + ret = $f.ret; + typ = $f.typ; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ if ($clone(v, Value).IsNil()) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if ($clone(v, Value).IsNil()) { */ case 1: + _r = Zero(typ); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + ret = _r; + ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0; + $s = -1; + return ret; + /* } */ case 2: + _r$1 = $clone(v, Value).Elem(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return _r$2; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: cvtI2I }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.ret = ret; + $f.typ = typ; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ptrType$5.methods = [{ prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$5], false) }, { prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false) }]; + ptrType$8.methods = [{ prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false) }, { prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false) }]; + name.methods = [{ prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false) }, { prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false) }, { prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false) }, { prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false) }, { prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$4], false) }, { prop: "nameLen", name: "nameLen", pkg: "reflect", typ: $funcType([], [$Int], false) }, { prop: "tagLen", name: "tagLen", pkg: "reflect", typ: $funcType([], [$Int], false) }]; + ptrType$7.methods = [{ prop: "skipUntilValidKey", name: "skipUntilValidKey", pkg: "reflect", typ: $funcType([], [], false) }]; + Kind.methods = [{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$1.methods = [{ prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false) }, { prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false) }, { prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false) }, { prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false) }, { prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false) }, { prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false) }, { prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false) }, { prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false) }, { prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false) }, { prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false) }, { prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false) }, { prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false) }, { prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false) }, { prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false) }, { prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false) }, { prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false) }, { prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false) }, { prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false) }, { prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false) }, { prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false) }, { prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false) }, { prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false) }, { prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false) }, { prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false) }]; + ChanDir.methods = [{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$9.methods = [{ prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false) }, { prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false) }]; + ptrType$18.methods = [{ prop: "offset", name: "offset", pkg: "reflect", typ: $funcType([], [$Uintptr], false) }, { prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false) }]; + ptrType$11.methods = [{ prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false) }, { prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false) }, { prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false) }, { prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false) }]; + StructTag.methods = [{ prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false) }, { prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false) }]; + Value.methods = [{ prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false) }, { prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false) }, { prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$9], [sliceType$9], false) }, { prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false) }, { prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false) }, { prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false) }, { prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$8], false) }, { prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false) }, { prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false) }, { prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$15], [], false) }, { prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false) }, { prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false) }, { prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false) }, { prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false) }, { prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false) }, { prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false) }, { prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false) }, { prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$15], false) }, { prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$18], false) }, { prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false) }, { prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false) }, { prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false) }, { prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [Value], false) }, { prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false) }, { prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false) }, { prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false) }, { prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false) }, { prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false) }, { prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false) }, { prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$9], false) }, { prop: "MapRange", name: "MapRange", pkg: "", typ: $funcType([], [ptrType$19], false) }, { prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false) }, { prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false) }, { prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false) }, { prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false) }, { prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false) }, { prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false) }, { prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false) }, { prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false) }, { prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false) }, { prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false) }, { prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false) }, { prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$18], [], false) }, { prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false) }, { prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false) }, { prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false) }, { prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false) }, { prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false) }, { prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false) }, { prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false) }, { prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false) }, { prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false) }, { prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false) }, { prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false) }, { prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false) }]; + flag.methods = [{ prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false) }, { prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false) }, { prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false) }, { prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false) }, { prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false) }]; + ptrType$20.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$19.methods = [{ prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Value], false) }, { prop: "Value", name: "Value", pkg: "", typ: $funcType([], [Value], false) }, { prop: "Next", name: "Next", pkg: "", typ: $funcType([], [$Bool], false) }]; + uncommonType.init("reflect", [{ prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: "" }, { prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: "" }, { prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: "" }, { prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: "" }]); + funcType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\"" }, { prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: "" }, { prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: "" }, { prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: "" }, { prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: "" }]); + name.init("reflect", [{ prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$4, tag: "" }]); + nameData.init("reflect", [{ prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: "" }, { prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: "" }, { prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: "" }]); + mapIter.init("reflect", [{ prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: "" }, { prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: "" }, { prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: "" }, { prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "last", name: "last", embedded: false, exported: false, typ: ptrType$2, tag: "" }]); + Type.init([{ prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false) }, { prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false) }, { prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false) }, { prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false) }, { prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false) }, { prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false) }, { prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false) }, { prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false) }, { prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false) }, { prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false) }, { prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false) }, { prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false) }, { prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false) }, { prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false) }, { prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false) }, { prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false) }, { prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false) }, { prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false) }]); + rtype.init("reflect", [{ prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: "" }, { prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: "" }, { prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: "" }, { prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: "" }, { prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: "" }, { prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: "" }, { prop: "alg", name: "alg", embedded: false, exported: false, typ: ptrType$3, tag: "" }, { prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$4, tag: "" }, { prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: "" }, { prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: "" }]); + typeAlg.init("reflect", [{ prop: "hash", name: "hash", embedded: false, exported: false, typ: funcType$4, tag: "" }, { prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$5, tag: "" }]); + method.init("reflect", [{ prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: "" }, { prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: "" }, { prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: "" }, { prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: "" }]); + arrayType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "" }, { prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: "" }]); + chanType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "" }, { prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: "" }]); + imethod.init("reflect", [{ prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: "" }, { prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: "" }]); + interfaceType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "" }, { prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: "" }, { prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$6, tag: "" }]); + mapType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "" }, { prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: "" }, { prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: "" }, { prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: "" }, { prop: "flags", name: "flags", embedded: false, exported: false, typ: $Uint32, tag: "" }]); + ptrType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "" }, { prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: "" }]); + sliceType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "" }, { prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: "" }]); + structField.init("reflect", [{ prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: "" }, { prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "offsetEmbed", name: "offsetEmbed", embedded: false, exported: false, typ: $Uintptr, tag: "" }]); + structType.init("reflect", [{ prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "" }, { prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: "" }, { prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$7, tag: "" }]); + Method.init("", [{ prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: "" }, { prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: "" }, { prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: "" }]); + StructField.init("", [{ prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: "" }, { prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: "" }, { prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: "" }, { prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$13, tag: "" }, { prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: "" }]); + fieldScan.init("reflect", [{ prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$11, tag: "" }, { prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: "" }]); + Value.init("reflect", [{ prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: "" }, { prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: "" }]); + ValueError.init("", [{ prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: "" }]); + MapIter.init("reflect", [{ prop: "m", name: "m", embedded: false, exported: false, typ: Value, tag: "" }, { prop: "it", name: "it", embedded: false, exported: false, typ: $UnsafePointer, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = js.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = math.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = runtime.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = strconv.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sync.$init(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = unicode.$init(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = utf8.$init(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + nameOffList = sliceType$1.nil; + typeOffList = sliceType$2.nil; + initialized = false; + uncommonTypeMap = {}; + nameMap = {}; + callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); + selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); + jsObjectPtr = reflectType($jsObjectPtr); + kindNames = new sliceType$4(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $r = init(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["sort"] = (function () { + var $pkg = {}, $init, reflect, StringSlice, sliceType$2, Search, SearchStrings, insertionSort, siftDown, heapSort, medianOfThree, swapRange, doPivot, quickSort, Sort, maxDepth, Stable, stable, symMerge, rotate; + reflect = $packages["reflect"]; + StringSlice = $pkg.StringSlice = $newType(12, $kindSlice, "sort.StringSlice", true, "sort", true, null); + sliceType$2 = $sliceType($String); + Search = function (n, f) { + var _r, _tmp, _tmp$1, f, h, i, j, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + f = $f.f; + h = $f.h; + i = $f.i; + j = $f.j; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _tmp = 0; + _tmp$1 = n; + i = _tmp; + j = _tmp$1; + /* while (true) { */ case 1: + /* if (!(i < j)) { break; } */ if (!(i < j)) { + $s = 2; + continue; + } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r = f(h); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!_r) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (!_r) { */ case 3: + i = h + 1 >> 0; + $s = 5; + continue; + /* } else { */ case 4: + j = h; + /* } */ case 5: + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return i; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Search }; + } + $f._r = _r; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f.f = f; + $f.h = h; + $f.i = i; + $f.j = j; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Search = Search; + SearchStrings = function (a, x) { + var _r, a, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + a = $f.a; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + a = [a]; + x = [x]; + _r = Search(a[0].$length, (function (a, x) { + return function (i) { + var i; + return ((i < 0 || i >= a[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : a[0].$array[a[0].$offset + i]) >= x[0]; + }; + })(a, x)); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SearchStrings }; + } + $f._r = _r; + $f.a = a; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SearchStrings = SearchStrings; + StringSlice.prototype.Search = function (x) { + var _r, p, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + p = $f.p; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _r = SearchStrings($subslice(new sliceType$2(p.$array), p.$offset, p.$offset + p.$length), x); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: StringSlice.prototype.Search }; + } + $f._r = _r; + $f.p = p; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $ptrType(StringSlice).prototype.Search = function (x) { return this.$get().Search(x); }; + insertionSort = function (data, a, b) { + var _r, _v, a, b, data, i, j, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _v = $f._v; + a = $f.a; + b = $f.b; + data = $f.data; + i = $f.i; + j = $f.j; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + i = a + 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < b)) { break; } */ if (!(i < b)) { + $s = 2; + continue; + } + j = i; + /* while (true) { */ case 3: + if (!(j > a)) { + _v = false; + $s = 5; + continue s; + } + _r = data.Less(j, j - 1 >> 0); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _v = _r; + case 5: + /* if (!(_v)) { break; } */ if (!(_v)) { + $s = 4; + continue; + } + $r = data.Swap(j, j - 1 >> 0); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + j = j - (1) >> 0; + /* } */ $s = 3; + continue; + case 4: + i = i + (1) >> 0; + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: insertionSort }; + } + $f._r = _r; + $f._v = _v; + $f.a = a; + $f.b = b; + $f.data = data; + $f.i = i; + $f.j = j; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + siftDown = function (data, lo, hi, first) { + var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _v = $f._v; + child = $f.child; + data = $f.data; + first = $f.first; + hi = $f.hi; + lo = $f.lo; + root = $f.root; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + root = lo; + /* while (true) { */ case 1: + child = ($imul(2, root)) + 1 >> 0; + if (child >= hi) { + /* break; */ $s = 2; + continue; + } + if (!((child + 1 >> 0) < hi)) { + _v = false; + $s = 5; + continue s; + } + _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _v = _r; + case 5: + /* */ if (_v) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (_v) { */ case 3: + child = child + (1) >> 0; + /* } */ case 4: + _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (!_r$1) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if (!_r$1) { */ case 7: + $s = -1; + return; + /* } */ case 8: + $r = data.Swap(first + root >> 0, first + child >> 0); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + root = child; + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: siftDown }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._v = _v; + $f.child = child; + $f.data = data; + $f.first = first; + $f.hi = hi; + $f.lo = lo; + $f.root = root; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + heapSort = function (data, a, b) { + var _q, a, b, data, first, hi, i, i$1, lo, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _q = $f._q; + a = $f.a; + b = $f.b; + data = $f.data; + first = $f.first; + hi = $f.hi; + i = $f.i; + i$1 = $f.i$1; + lo = $f.lo; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + first = a; + lo = 0; + hi = b - a >> 0; + i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if (!(i >= 0)) { + $s = 2; + continue; + } + $r = siftDown(data, i, hi, first); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i = i - (1) >> 0; + /* } */ $s = 1; + continue; + case 2: + i$1 = hi - 1 >> 0; + /* while (true) { */ case 4: + /* if (!(i$1 >= 0)) { break; } */ if (!(i$1 >= 0)) { + $s = 5; + continue; + } + $r = data.Swap(first, first + i$1 >> 0); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = siftDown(data, lo, i$1, first); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i$1 = i$1 - (1) >> 0; + /* } */ $s = 4; + continue; + case 5: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: heapSort }; + } + $f._q = _q; + $f.a = a; + $f.b = b; + $f.data = data; + $f.first = first; + $f.hi = hi; + $f.i = i; + $f.i$1 = i$1; + $f.lo = lo; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + medianOfThree = function (data, m1, m0, m2) { + var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + data = $f.data; + m0 = $f.m0; + m1 = $f.m1; + m2 = $f.m2; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = data.Less(m1, m0); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_r) { */ case 1: + $r = data.Swap(m1, m0); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 2: + _r$1 = data.Less(m2, m1); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (_r$1) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (_r$1) { */ case 5: + $r = data.Swap(m2, m1); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _r$2 = data.Less(m1, m0); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + /* */ if (_r$2) { + $s = 9; + continue; + } + /* */ $s = 10; + continue; + /* if (_r$2) { */ case 9: + $r = data.Swap(m1, m0); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 10: + /* } */ case 6: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: medianOfThree }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.data = data; + $f.m0 = m0; + $f.m1 = m1; + $f.m2 = m2; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + swapRange = function (data, a, b, n) { + var a, b, data, i, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + a = $f.a; + b = $f.b; + data = $f.data; + i = $f.i; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if (!(i < n)) { + $s = 2; + continue; + } + $r = data.Swap(a + i >> 0, b + i >> 0); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i = i + (1) >> 0; + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: swapRange }; + } + $f.a = a; + $f.b = b; + $f.data = data; + $f.i = i; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + doPivot = function (data, lo, hi) { + var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _q = $f._q; + _q$1 = $f._q$1; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _v = $f._v; + _v$1 = $f._v$1; + _v$2 = $f._v$2; + _v$3 = $f._v$3; + _v$4 = $f._v$4; + a = $f.a; + b = $f.b; + c = $f.c; + data = $f.data; + dups = $f.dups; + hi = $f.hi; + lo = $f.lo; + m = $f.m; + midhi = $f.midhi; + midlo = $f.midlo; + pivot = $f.pivot; + protect = $f.protect; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + midlo = 0; + midhi = 0; + m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + /* */ if ((hi - lo >> 0) > 40) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if ((hi - lo >> 0) > 40) { */ case 1: + s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $r = medianOfThree(data, lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = medianOfThree(data, m, m - s >> 0, m + s >> 0); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = medianOfThree(data, hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 2: + $r = medianOfThree(data, lo, m, hi - 1 >> 0); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + pivot = lo; + _tmp = lo + 1 >> 0; + _tmp$1 = hi - 1 >> 0; + a = _tmp; + c = _tmp$1; + /* while (true) { */ case 7: + if (!(a < c)) { + _v = false; + $s = 9; + continue s; + } + _r = data.Less(a, pivot); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _v = _r; + case 9: + /* if (!(_v)) { break; } */ if (!(_v)) { + $s = 8; + continue; + } + a = a + (1) >> 0; + /* } */ $s = 7; + continue; + case 8: + b = a; + /* while (true) { */ case 11: + /* while (true) { */ case 13: + if (!(b < c)) { + _v$1 = false; + $s = 15; + continue s; + } + _r$1 = data.Less(pivot, b); /* */ + $s = 16; + case 16: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _v$1 = !_r$1; + case 15: + /* if (!(_v$1)) { break; } */ if (!(_v$1)) { + $s = 14; + continue; + } + b = b + (1) >> 0; + /* } */ $s = 13; + continue; + case 14: + /* while (true) { */ case 17: + if (!(b < c)) { + _v$2 = false; + $s = 19; + continue s; + } + _r$2 = data.Less(pivot, c - 1 >> 0); /* */ + $s = 20; + case 20: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _v$2 = _r$2; + case 19: + /* if (!(_v$2)) { break; } */ if (!(_v$2)) { + $s = 18; + continue; + } + c = c - (1) >> 0; + /* } */ $s = 17; + continue; + case 18: + if (b >= c) { + /* break; */ $s = 12; + continue; + } + $r = data.Swap(b, c - 1 >> 0); /* */ + $s = 21; + case 21: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + b = b + (1) >> 0; + c = c - (1) >> 0; + /* } */ $s = 11; + continue; + case 12: + protect = (hi - c >> 0) < 5; + /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { + $s = 22; + continue; + } + /* */ $s = 23; + continue; + /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22: + dups = 0; + _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ + $s = 26; + case 26: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + /* */ if (!_r$3) { + $s = 24; + continue; + } + /* */ $s = 25; + continue; + /* if (!_r$3) { */ case 24: + $r = data.Swap(c, hi - 1 >> 0); /* */ + $s = 27; + case 27: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + c = c + (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 25: + _r$4 = data.Less(b - 1 >> 0, pivot); /* */ + $s = 30; + case 30: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + /* */ if (!_r$4) { + $s = 28; + continue; + } + /* */ $s = 29; + continue; + /* if (!_r$4) { */ case 28: + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 29: + _r$5 = data.Less(m, pivot); /* */ + $s = 33; + case 33: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + /* */ if (!_r$5) { + $s = 31; + continue; + } + /* */ $s = 32; + continue; + /* if (!_r$5) { */ case 31: + $r = data.Swap(m, b - 1 >> 0); /* */ + $s = 34; + case 34: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 32: + protect = dups > 1; + /* } */ case 23: + /* */ if (protect) { + $s = 35; + continue; + } + /* */ $s = 36; + continue; + /* if (protect) { */ case 35: + /* while (true) { */ case 37: + /* while (true) { */ case 39: + if (!(a < b)) { + _v$3 = false; + $s = 41; + continue s; + } + _r$6 = data.Less(b - 1 >> 0, pivot); /* */ + $s = 42; + case 42: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + _v$3 = !_r$6; + case 41: + /* if (!(_v$3)) { break; } */ if (!(_v$3)) { + $s = 40; + continue; + } + b = b - (1) >> 0; + /* } */ $s = 39; + continue; + case 40: + /* while (true) { */ case 43: + if (!(a < b)) { + _v$4 = false; + $s = 45; + continue s; + } + _r$7 = data.Less(a, pivot); /* */ + $s = 46; + case 46: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + _v$4 = _r$7; + case 45: + /* if (!(_v$4)) { break; } */ if (!(_v$4)) { + $s = 44; + continue; + } + a = a + (1) >> 0; + /* } */ $s = 43; + continue; + case 44: + if (a >= b) { + /* break; */ $s = 38; + continue; + } + $r = data.Swap(a, b - 1 >> 0); /* */ + $s = 47; + case 47: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + a = a + (1) >> 0; + b = b - (1) >> 0; + /* } */ $s = 37; + continue; + case 38: + /* } */ case 36: + $r = data.Swap(pivot, b - 1 >> 0); /* */ + $s = 48; + case 48: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _tmp$2 = b - 1 >> 0; + _tmp$3 = c; + midlo = _tmp$2; + midhi = _tmp$3; + $s = -1; + return [midlo, midhi]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: doPivot }; + } + $f._q = _q; + $f._q$1 = _q$1; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._v = _v; + $f._v$1 = _v$1; + $f._v$2 = _v$2; + $f._v$3 = _v$3; + $f._v$4 = _v$4; + $f.a = a; + $f.b = b; + $f.c = c; + $f.data = data; + $f.dups = dups; + $f.hi = hi; + $f.lo = lo; + $f.m = m; + $f.midhi = midhi; + $f.midlo = midlo; + $f.pivot = pivot; + $f.protect = protect; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + quickSort = function (data, a, b, maxDepth$1) { + var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + a = $f.a; + b = $f.b; + data = $f.data; + i = $f.i; + maxDepth$1 = $f.maxDepth$1; + mhi = $f.mhi; + mlo = $f.mlo; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* while (true) { */ case 1: + /* if (!((b - a >> 0) > 12)) { break; } */ if (!((b - a >> 0) > 12)) { + $s = 2; + continue; + } + /* */ if (maxDepth$1 === 0) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (maxDepth$1 === 0) { */ case 3: + $r = heapSort(data, a, b); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* } */ case 4: + maxDepth$1 = maxDepth$1 - (1) >> 0; + _r = doPivot(data, a, b); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + mlo = _tuple[0]; + mhi = _tuple[1]; + /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7: + $r = quickSort(data, a, mlo, maxDepth$1); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + a = mhi; + $s = 9; + continue; + /* } else { */ case 8: + $r = quickSort(data, mhi, b, maxDepth$1); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + b = mlo; + /* } */ case 9: + /* } */ $s = 1; + continue; + case 2: + /* */ if ((b - a >> 0) > 1) { + $s = 12; + continue; + } + /* */ $s = 13; + continue; + /* if ((b - a >> 0) > 1) { */ case 12: + i = a + 6 >> 0; + /* while (true) { */ case 14: + /* if (!(i < b)) { break; } */ if (!(i < b)) { + $s = 15; + continue; + } + _r$1 = data.Less(i, i - 6 >> 0); /* */ + $s = 18; + case 18: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (_r$1) { + $s = 16; + continue; + } + /* */ $s = 17; + continue; + /* if (_r$1) { */ case 16: + $r = data.Swap(i, i - 6 >> 0); /* */ + $s = 19; + case 19: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 17: + i = i + (1) >> 0; + /* } */ $s = 14; + continue; + case 15: + $r = insertionSort(data, a, b); /* */ + $s = 20; + case 20: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 13: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: quickSort }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.a = a; + $f.b = b; + $f.data = data; + $f.i = i; + $f.maxDepth$1 = maxDepth$1; + $f.mhi = mhi; + $f.mlo = mlo; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Sort = function (data) { + var _r, data, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + data = $f.data; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = data.Len(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + n = _r; + $r = quickSort(data, 0, n, maxDepth(n)); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Sort }; + } + $f._r = _r; + $f.data = data; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Sort = Sort; + maxDepth = function (n) { + var depth, i, n; + depth = 0; + i = n; + while (true) { + if (!(i > 0)) { + break; + } + depth = depth + (1) >> 0; + i = (i >> $min((1), 31)) >> 0; + } + return $imul(depth, 2); + }; + StringSlice.prototype.Len = function () { + var p; + p = this; + return p.$length; + }; + $ptrType(StringSlice).prototype.Len = function () { return this.$get().Len(); }; + StringSlice.prototype.Less = function (i, j) { + var i, j, p; + p = this; + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + }; + $ptrType(StringSlice).prototype.Less = function (i, j) { return this.$get().Less(i, j); }; + StringSlice.prototype.Swap = function (i, j) { + var _tmp, _tmp$1, i, j, p; + p = this; + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + }; + $ptrType(StringSlice).prototype.Swap = function (i, j) { return this.$get().Swap(i, j); }; + StringSlice.prototype.Sort = function () { + var p, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + p = $f.p; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + $r = Sort(p); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: StringSlice.prototype.Sort }; + } + $f.p = p; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $ptrType(StringSlice).prototype.Sort = function () { return this.$get().Sort(); }; + Stable = function (data) { + var _arg, _arg$1, _r, data, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _r = $f._r; + data = $f.data; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _arg = data; + _r = data.Len(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _arg$1 = _r; + $r = stable(_arg, _arg$1); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Stable }; + } + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._r = _r; + $f.data = data; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Stable = Stable; + stable = function (data, n) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, a, b, blockSize, data, m, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + a = $f.a; + b = $f.b; + blockSize = $f.blockSize; + data = $f.data; + m = $f.m; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + blockSize = 20; + _tmp = 0; + _tmp$1 = blockSize; + a = _tmp; + b = _tmp$1; + /* while (true) { */ case 1: + /* if (!(b <= n)) { break; } */ if (!(b <= n)) { + $s = 2; + continue; + } + $r = insertionSort(data, a, b); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + a = b; + b = b + (blockSize) >> 0; + /* } */ $s = 1; + continue; + case 2: + $r = insertionSort(data, a, n); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* while (true) { */ case 5: + /* if (!(blockSize < n)) { break; } */ if (!(blockSize < n)) { + $s = 6; + continue; + } + _tmp$2 = 0; + _tmp$3 = $imul(2, blockSize); + a = _tmp$2; + b = _tmp$3; + /* while (true) { */ case 7: + /* if (!(b <= n)) { break; } */ if (!(b <= n)) { + $s = 8; + continue; + } + $r = symMerge(data, a, a + blockSize >> 0, b); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + a = b; + b = b + (($imul(2, blockSize))) >> 0; + /* } */ $s = 7; + continue; + case 8: + m = a + blockSize >> 0; + /* */ if (m < n) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (m < n) { */ case 10: + $r = symMerge(data, a, m, n); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 11: + blockSize = $imul(blockSize, (2)); + /* } */ $s = 5; + continue; + case 6: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: stable }; + } + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f.a = a; + $f.b = b; + $f.blockSize = blockSize; + $f.data = data; + $f.m = m; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + symMerge = function (data, a, m, b) { + var _r, _r$1, _r$2, _tmp, _tmp$1, a, b, c, data, end, h, h$1, i, i$1, j, j$1, k, k$1, m, mid, n, p, r, start, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + a = $f.a; + b = $f.b; + c = $f.c; + data = $f.data; + end = $f.end; + h = $f.h; + h$1 = $f.h$1; + i = $f.i; + i$1 = $f.i$1; + j = $f.j; + j$1 = $f.j$1; + k = $f.k; + k$1 = $f.k$1; + m = $f.m; + mid = $f.mid; + n = $f.n; + p = $f.p; + r = $f.r; + start = $f.start; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ if ((m - a >> 0) === 1) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if ((m - a >> 0) === 1) { */ case 1: + i = m; + j = b; + /* while (true) { */ case 3: + /* if (!(i < j)) { break; } */ if (!(i < j)) { + $s = 4; + continue; + } + h = ((((((i + j >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r = data.Less(h, a); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (_r) { */ case 5: + i = h + 1 >> 0; + $s = 7; + continue; + /* } else { */ case 6: + j = h; + /* } */ case 7: + /* } */ $s = 3; + continue; + case 4: + k = a; + /* while (true) { */ case 9: + /* if (!(k < (i - 1 >> 0))) { break; } */ if (!(k < (i - 1 >> 0))) { + $s = 10; + continue; + } + $r = data.Swap(k, k + 1 >> 0); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + k = k + (1) >> 0; + /* } */ $s = 9; + continue; + case 10: + $s = -1; + return; + /* } */ case 2: + /* */ if ((b - m >> 0) === 1) { + $s = 12; + continue; + } + /* */ $s = 13; + continue; + /* if ((b - m >> 0) === 1) { */ case 12: + i$1 = a; + j$1 = m; + /* while (true) { */ case 14: + /* if (!(i$1 < j$1)) { break; } */ if (!(i$1 < j$1)) { + $s = 15; + continue; + } + h$1 = ((((((i$1 + j$1 >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r$1 = data.Less(m, h$1); /* */ + $s = 19; + case 19: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (!_r$1) { + $s = 16; + continue; + } + /* */ $s = 17; + continue; + /* if (!_r$1) { */ case 16: + i$1 = h$1 + 1 >> 0; + $s = 18; + continue; + /* } else { */ case 17: + j$1 = h$1; + /* } */ case 18: + /* } */ $s = 14; + continue; + case 15: + k$1 = m; + /* while (true) { */ case 20: + /* if (!(k$1 > i$1)) { break; } */ if (!(k$1 > i$1)) { + $s = 21; + continue; + } + $r = data.Swap(k$1, k$1 - 1 >> 0); /* */ + $s = 22; + case 22: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + k$1 = k$1 - (1) >> 0; + /* } */ $s = 20; + continue; + case 21: + $s = -1; + return; + /* } */ case 13: + mid = ((((((a + b >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + n = mid + m >> 0; + _tmp = 0; + _tmp$1 = 0; + start = _tmp; + r = _tmp$1; + if (m > mid) { + start = n - b >> 0; + r = mid; + } + else { + start = a; + r = m; + } + p = n - 1 >> 0; + /* while (true) { */ case 23: + /* if (!(start < r)) { break; } */ if (!(start < r)) { + $s = 24; + continue; + } + c = ((((((start + r >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + _r$2 = data.Less(p - c >> 0, c); /* */ + $s = 28; + case 28: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + /* */ if (!_r$2) { + $s = 25; + continue; + } + /* */ $s = 26; + continue; + /* if (!_r$2) { */ case 25: + start = c + 1 >> 0; + $s = 27; + continue; + /* } else { */ case 26: + r = c; + /* } */ case 27: + /* } */ $s = 23; + continue; + case 24: + end = n - start >> 0; + /* */ if (start < m && m < end) { + $s = 29; + continue; + } + /* */ $s = 30; + continue; + /* if (start < m && m < end) { */ case 29: + $r = rotate(data, start, m, end); /* */ + $s = 31; + case 31: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 30: + /* */ if (a < start && start < mid) { + $s = 32; + continue; + } + /* */ $s = 33; + continue; + /* if (a < start && start < mid) { */ case 32: + $r = symMerge(data, a, start, mid); /* */ + $s = 34; + case 34: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 33: + /* */ if (mid < end && end < b) { + $s = 35; + continue; + } + /* */ $s = 36; + continue; + /* if (mid < end && end < b) { */ case 35: + $r = symMerge(data, mid, end, b); /* */ + $s = 37; + case 37: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 36: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: symMerge }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f.a = a; + $f.b = b; + $f.c = c; + $f.data = data; + $f.end = end; + $f.h = h; + $f.h$1 = h$1; + $f.i = i; + $f.i$1 = i$1; + $f.j = j; + $f.j$1 = j$1; + $f.k = k; + $f.k$1 = k$1; + $f.m = m; + $f.mid = mid; + $f.n = n; + $f.p = p; + $f.r = r; + $f.start = start; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rotate = function (data, a, m, b) { + var a, b, data, i, j, m, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + a = $f.a; + b = $f.b; + data = $f.data; + i = $f.i; + j = $f.j; + m = $f.m; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + i = m - a >> 0; + j = b - m >> 0; + /* while (true) { */ case 1: + /* if (!(!((i === j)))) { break; } */ if (!(!((i === j)))) { + $s = 2; + continue; + } + /* */ if (i > j) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (i > j) { */ case 3: + $r = swapRange(data, m - i >> 0, m, j); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i = i - (j) >> 0; + $s = 5; + continue; + /* } else { */ case 4: + $r = swapRange(data, m - i >> 0, (m + j >> 0) - i >> 0, i); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + j = j - (i) >> 0; + /* } */ case 5: + /* } */ $s = 1; + continue; + case 2: + $r = swapRange(data, m - i >> 0, m, i); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rotate }; + } + $f.a = a; + $f.b = b; + $f.data = data; + $f.i = i; + $f.j = j; + $f.m = m; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + StringSlice.methods = [{ prop: "Search", name: "Search", pkg: "", typ: $funcType([$String], [$Int], false) }, { prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false) }, { prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false) }, { prop: "Sort", name: "Sort", pkg: "", typ: $funcType([], [], false) }]; + StringSlice.init($String); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = reflect.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["internal/fmtsort"] = (function () { + var $pkg = {}, $init, reflect, sort, SortedMap, ptrType, sliceType, Sort, compare, nilCompare, floatCompare, isNaN; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + SortedMap = $pkg.SortedMap = $newType(0, $kindStruct, "fmtsort.SortedMap", true, "internal/fmtsort", true, function (Key_, Value_) { + this.$val = this; + if (arguments.length === 0) { + this.Key = sliceType.nil; + this.Value = sliceType.nil; + return; + } + this.Key = Key_; + this.Value = Value_; + }); + ptrType = $ptrType(SortedMap); + sliceType = $sliceType(reflect.Value); + SortedMap.ptr.prototype.Len = function () { + var o; + o = this; + return o.Key.$length; + }; + SortedMap.prototype.Len = function () { return this.$val.Len(); }; + SortedMap.ptr.prototype.Less = function (i, j) { + var _r, i, j, o, x, x$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + i = $f.i; + j = $f.j; + o = $f.o; + x = $f.x; + x$1 = $f.x$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + o = this; + _r = compare($clone((x = o.Key, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), reflect.Value), $clone((x$1 = o.Key, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])), reflect.Value)); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r < 0; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SortedMap.ptr.prototype.Less }; + } + $f._r = _r; + $f.i = i; + $f.j = j; + $f.o = o; + $f.x = x; + $f.x$1 = x$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + SortedMap.prototype.Less = function (i, j) { return this.$val.Less(i, j); }; + SortedMap.ptr.prototype.Swap = function (i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, o, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + o = this; + _tmp = (x = o.Key, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + _tmp$1 = (x$1 = o.Key, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + (x$2 = o.Key, ((i < 0 || i >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i] = _tmp)); + (x$3 = o.Key, ((j < 0 || j >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + j] = _tmp$1)); + _tmp$2 = (x$4 = o.Value, ((j < 0 || j >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + j])); + _tmp$3 = (x$5 = o.Value, ((i < 0 || i >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + i])); + (x$6 = o.Value, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = _tmp$2)); + (x$7 = o.Value, ((j < 0 || j >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + j] = _tmp$3)); + }; + SortedMap.prototype.Swap = function (i, j) { return this.$val.Swap(i, j); }; + Sort = function (mapValue) { + var _r, _r$1, _r$2, _r$3, i, iter, key, mapValue, sorted, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + i = $f.i; + iter = $f.iter; + key = $f.key; + mapValue = $f.mapValue; + sorted = $f.sorted; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = $clone(mapValue, reflect.Value).Type().Kind(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!((_r === 21))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!((_r === 21))) { */ case 1: + $s = -1; + return ptrType.nil; + /* } */ case 2: + key = $makeSlice(sliceType, $clone(mapValue, reflect.Value).Len()); + value = $makeSlice(sliceType, key.$length); + iter = $clone(mapValue, reflect.Value).MapRange(); + i = 0; + /* while (true) { */ case 4: + _r$1 = iter.Next(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* if (!(_r$1)) { break; } */ if (!(_r$1)) { + $s = 5; + continue; + } + _r$2 = iter.Key(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + ((i < 0 || i >= key.$length) ? ($throwRuntimeError("index out of range"), undefined) : key.$array[key.$offset + i] = _r$2); + _r$3 = iter.Value(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + ((i < 0 || i >= value.$length) ? ($throwRuntimeError("index out of range"), undefined) : value.$array[value.$offset + i] = _r$3); + i = i + (1) >> 0; + /* } */ $s = 4; + continue; + case 5: + sorted = new SortedMap.ptr(key, value); + $r = sort.Stable(sorted); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return sorted; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Sort }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f.i = i; + $f.iter = iter; + $f.key = key; + $f.mapValue = mapValue; + $f.sorted = sorted; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Sort = Sort; + compare = function (aVal, bVal) { + var _1, _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, a, a$1, a$2, a$3, a$4, a$5, aType, aVal, ap, b, b$1, b$2, b$3, b$4, b$5, bType, bVal, bp, c, c$1, c$2, c$3, c$4, c$5, i, i$1, ok, ok$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _arg$3 = $f._arg$3; + _arg$4 = $f._arg$4; + _arg$5 = $f._arg$5; + _arg$6 = $f._arg$6; + _arg$7 = $f._arg$7; + _r = $f._r; + _r$1 = $f._r$1; + _r$10 = $f._r$10; + _r$11 = $f._r$11; + _r$12 = $f._r$12; + _r$13 = $f._r$13; + _r$14 = $f._r$14; + _r$15 = $f._r$15; + _r$16 = $f._r$16; + _r$17 = $f._r$17; + _r$18 = $f._r$18; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + _r$8 = $f._r$8; + _r$9 = $f._r$9; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$10 = $f._tmp$10; + _tmp$11 = $f._tmp$11; + _tmp$12 = $f._tmp$12; + _tmp$13 = $f._tmp$13; + _tmp$14 = $f._tmp$14; + _tmp$15 = $f._tmp$15; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tmp$4 = $f._tmp$4; + _tmp$5 = $f._tmp$5; + _tmp$6 = $f._tmp$6; + _tmp$7 = $f._tmp$7; + _tmp$8 = $f._tmp$8; + _tmp$9 = $f._tmp$9; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + a = $f.a; + a$1 = $f.a$1; + a$2 = $f.a$2; + a$3 = $f.a$3; + a$4 = $f.a$4; + a$5 = $f.a$5; + aType = $f.aType; + aVal = $f.aVal; + ap = $f.ap; + b = $f.b; + b$1 = $f.b$1; + b$2 = $f.b$2; + b$3 = $f.b$3; + b$4 = $f.b$4; + b$5 = $f.b$5; + bType = $f.bType; + bVal = $f.bVal; + bp = $f.bp; + c = $f.c; + c$1 = $f.c$1; + c$2 = $f.c$2; + c$3 = $f.c$3; + c$4 = $f.c$4; + c$5 = $f.c$5; + i = $f.i; + i$1 = $f.i$1; + ok = $f.ok; + ok$1 = $f.ok$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _tmp = $clone(aVal, reflect.Value).Type(); + _tmp$1 = $clone(bVal, reflect.Value).Type(); + aType = _tmp; + bType = _tmp$1; + if (!($interfaceIsEqual(aType, bType))) { + $s = -1; + return -1; + } + _1 = $clone(aVal, reflect.Value).Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + $s = 2; + continue; + } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + $s = 3; + continue; + } + /* */ if (_1 === (24)) { + $s = 4; + continue; + } + /* */ if ((_1 === (13)) || (_1 === (14))) { + $s = 5; + continue; + } + /* */ if ((_1 === (15)) || (_1 === (16))) { + $s = 6; + continue; + } + /* */ if (_1 === (1)) { + $s = 7; + continue; + } + /* */ if (_1 === (22)) { + $s = 8; + continue; + } + /* */ if (_1 === (18)) { + $s = 9; + continue; + } + /* */ if (_1 === (25)) { + $s = 10; + continue; + } + /* */ if (_1 === (17)) { + $s = 11; + continue; + } + /* */ if (_1 === (20)) { + $s = 12; + continue; + } + /* */ $s = 13; + continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _tmp$2 = $clone(aVal, reflect.Value).Int(); + _tmp$3 = $clone(bVal, reflect.Value).Int(); + a = _tmp$2; + b = _tmp$3; + if ((a.$high < b.$high || (a.$high === b.$high && a.$low < b.$low))) { + $s = -1; + return -1; + } + else if ((a.$high > b.$high || (a.$high === b.$high && a.$low > b.$low))) { + $s = -1; + return 1; + } + else { + $s = -1; + return 0; + } + $s = 14; + continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _tmp$4 = $clone(aVal, reflect.Value).Uint(); + _tmp$5 = $clone(bVal, reflect.Value).Uint(); + a$1 = _tmp$4; + b$1 = _tmp$5; + if ((a$1.$high < b$1.$high || (a$1.$high === b$1.$high && a$1.$low < b$1.$low))) { + $s = -1; + return -1; + } + else if ((a$1.$high > b$1.$high || (a$1.$high === b$1.$high && a$1.$low > b$1.$low))) { + $s = -1; + return 1; + } + else { + $s = -1; + return 0; + } + $s = 14; + continue; + /* } else if (_1 === (24)) { */ case 4: + _r = $clone(aVal, reflect.Value).String(); /* */ + $s = 15; + case 15: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tmp$6 = _r; + _r$1 = $clone(bVal, reflect.Value).String(); /* */ + $s = 16; + case 16: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tmp$7 = _r$1; + a$2 = _tmp$6; + b$2 = _tmp$7; + if (a$2 < b$2) { + $s = -1; + return -1; + } + else if (a$2 > b$2) { + $s = -1; + return 1; + } + else { + $s = -1; + return 0; + } + $s = 14; + continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 5: + $s = -1; + return floatCompare($clone(aVal, reflect.Value).Float(), $clone(bVal, reflect.Value).Float()); + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 6: + _tmp$8 = $clone(aVal, reflect.Value).Complex(); + _tmp$9 = $clone(bVal, reflect.Value).Complex(); + a$3 = _tmp$8; + b$3 = _tmp$9; + c = floatCompare(a$3.$real, b$3.$real); + if (!((c === 0))) { + $s = -1; + return c; + } + $s = -1; + return floatCompare(a$3.$imag, b$3.$imag); + /* } else if (_1 === (1)) { */ case 7: + _tmp$10 = $clone(aVal, reflect.Value).Bool(); + _tmp$11 = $clone(bVal, reflect.Value).Bool(); + a$4 = _tmp$10; + b$4 = _tmp$11; + if (a$4 === b$4) { + $s = -1; + return 0; + } + else if (a$4) { + $s = -1; + return 1; + } + else { + $s = -1; + return -1; + } + $s = 14; + continue; + /* } else if (_1 === (22)) { */ case 8: + _tmp$12 = $clone(aVal, reflect.Value).Pointer(); + _tmp$13 = $clone(bVal, reflect.Value).Pointer(); + a$5 = _tmp$12; + b$5 = _tmp$13; + if (a$5 < b$5) { + $s = -1; + return -1; + } + else if (a$5 > b$5) { + $s = -1; + return 1; + } + else { + $s = -1; + return 0; + } + $s = 14; + continue; + /* } else if (_1 === (18)) { */ case 9: + _tuple = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); + c$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; + return c$1; + } + _tmp$14 = $clone(aVal, reflect.Value).Pointer(); + _tmp$15 = $clone(bVal, reflect.Value).Pointer(); + ap = _tmp$14; + bp = _tmp$15; + if (ap < bp) { + $s = -1; + return -1; + } + else if (ap > bp) { + $s = -1; + return 1; + } + else { + $s = -1; + return 0; + } + $s = 14; + continue; + /* } else if (_1 === (25)) { */ case 10: + i = 0; + /* while (true) { */ case 17: + /* if (!(i < $clone(aVal, reflect.Value).NumField())) { break; } */ if (!(i < $clone(aVal, reflect.Value).NumField())) { + $s = 18; + continue; + } + _r$2 = $clone(aVal, reflect.Value).Field(i); /* */ + $s = 19; + case 19: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _arg = $clone(_r$2, reflect.Value); + _r$3 = $clone(bVal, reflect.Value).Field(i); /* */ + $s = 20; + case 20: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _arg$1 = $clone(_r$3, reflect.Value); + _r$4 = compare(_arg, _arg$1); /* */ + $s = 21; + case 21: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + c$2 = _r$4; + if (!((c$2 === 0))) { + $s = -1; + return c$2; + } + i = i + (1) >> 0; + /* } */ $s = 17; + continue; + case 18: + $s = -1; + return 0; + /* } else if (_1 === (17)) { */ case 11: + i$1 = 0; + /* while (true) { */ case 22: + /* if (!(i$1 < $clone(aVal, reflect.Value).Len())) { break; } */ if (!(i$1 < $clone(aVal, reflect.Value).Len())) { + $s = 23; + continue; + } + _r$5 = $clone(aVal, reflect.Value).Index(i$1); /* */ + $s = 24; + case 24: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + _arg$2 = $clone(_r$5, reflect.Value); + _r$6 = $clone(bVal, reflect.Value).Index(i$1); /* */ + $s = 25; + case 25: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + _arg$3 = $clone(_r$6, reflect.Value); + _r$7 = compare(_arg$2, _arg$3); /* */ + $s = 26; + case 26: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + c$3 = _r$7; + if (!((c$3 === 0))) { + $s = -1; + return c$3; + } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 22; + continue; + case 23: + $s = -1; + return 0; + /* } else if (_1 === (20)) { */ case 12: + _tuple$1 = nilCompare($clone(aVal, reflect.Value), $clone(bVal, reflect.Value)); + c$4 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + $s = -1; + return c$4; + } + _r$8 = $clone(aVal, reflect.Value).Elem(); /* */ + $s = 27; + case 27: + if ($c) { + $c = false; + _r$8 = _r$8.$blk(); + } + if (_r$8 && _r$8.$blk !== undefined) { + break s; + } + _r$9 = $clone(_r$8, reflect.Value).Type(); /* */ + $s = 28; + case 28: + if ($c) { + $c = false; + _r$9 = _r$9.$blk(); + } + if (_r$9 && _r$9.$blk !== undefined) { + break s; + } + _r$10 = reflect.ValueOf(_r$9); /* */ + $s = 29; + case 29: + if ($c) { + $c = false; + _r$10 = _r$10.$blk(); + } + if (_r$10 && _r$10.$blk !== undefined) { + break s; + } + _arg$4 = $clone(_r$10, reflect.Value); + _r$11 = $clone(bVal, reflect.Value).Elem(); /* */ + $s = 30; + case 30: + if ($c) { + $c = false; + _r$11 = _r$11.$blk(); + } + if (_r$11 && _r$11.$blk !== undefined) { + break s; + } + _r$12 = $clone(_r$11, reflect.Value).Type(); /* */ + $s = 31; + case 31: + if ($c) { + $c = false; + _r$12 = _r$12.$blk(); + } + if (_r$12 && _r$12.$blk !== undefined) { + break s; + } + _r$13 = reflect.ValueOf(_r$12); /* */ + $s = 32; + case 32: + if ($c) { + $c = false; + _r$13 = _r$13.$blk(); + } + if (_r$13 && _r$13.$blk !== undefined) { + break s; + } + _arg$5 = $clone(_r$13, reflect.Value); + _r$14 = compare(_arg$4, _arg$5); /* */ + $s = 33; + case 33: + if ($c) { + $c = false; + _r$14 = _r$14.$blk(); + } + if (_r$14 && _r$14.$blk !== undefined) { + break s; + } + c$5 = _r$14; + if (!((c$5 === 0))) { + $s = -1; + return c$5; + } + _r$15 = $clone(aVal, reflect.Value).Elem(); /* */ + $s = 34; + case 34: + if ($c) { + $c = false; + _r$15 = _r$15.$blk(); + } + if (_r$15 && _r$15.$blk !== undefined) { + break s; + } + _arg$6 = $clone(_r$15, reflect.Value); + _r$16 = $clone(bVal, reflect.Value).Elem(); /* */ + $s = 35; + case 35: + if ($c) { + $c = false; + _r$16 = _r$16.$blk(); + } + if (_r$16 && _r$16.$blk !== undefined) { + break s; + } + _arg$7 = $clone(_r$16, reflect.Value); + _r$17 = compare(_arg$6, _arg$7); /* */ + $s = 36; + case 36: + if ($c) { + $c = false; + _r$17 = _r$17.$blk(); + } + if (_r$17 && _r$17.$blk !== undefined) { + break s; + } + $s = -1; + return _r$17; + /* } else { */ case 13: + _r$18 = aType.String(); /* */ + $s = 37; + case 37: + if ($c) { + $c = false; + _r$18 = _r$18.$blk(); + } + if (_r$18 && _r$18.$blk !== undefined) { + break s; + } + $panic(new $String("bad type in compare: " + _r$18)); + /* } */ case 14: + case 1: + $s = -1; + return 0; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: compare }; + } + $f._1 = _1; + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._arg$3 = _arg$3; + $f._arg$4 = _arg$4; + $f._arg$5 = _arg$5; + $f._arg$6 = _arg$6; + $f._arg$7 = _arg$7; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$10 = _r$10; + $f._r$11 = _r$11; + $f._r$12 = _r$12; + $f._r$13 = _r$13; + $f._r$14 = _r$14; + $f._r$15 = _r$15; + $f._r$16 = _r$16; + $f._r$17 = _r$17; + $f._r$18 = _r$18; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f._r$8 = _r$8; + $f._r$9 = _r$9; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$10 = _tmp$10; + $f._tmp$11 = _tmp$11; + $f._tmp$12 = _tmp$12; + $f._tmp$13 = _tmp$13; + $f._tmp$14 = _tmp$14; + $f._tmp$15 = _tmp$15; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tmp$4 = _tmp$4; + $f._tmp$5 = _tmp$5; + $f._tmp$6 = _tmp$6; + $f._tmp$7 = _tmp$7; + $f._tmp$8 = _tmp$8; + $f._tmp$9 = _tmp$9; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.a = a; + $f.a$1 = a$1; + $f.a$2 = a$2; + $f.a$3 = a$3; + $f.a$4 = a$4; + $f.a$5 = a$5; + $f.aType = aType; + $f.aVal = aVal; + $f.ap = ap; + $f.b = b; + $f.b$1 = b$1; + $f.b$2 = b$2; + $f.b$3 = b$3; + $f.b$4 = b$4; + $f.b$5 = b$5; + $f.bType = bType; + $f.bVal = bVal; + $f.bp = bp; + $f.c = c; + $f.c$1 = c$1; + $f.c$2 = c$2; + $f.c$3 = c$3; + $f.c$4 = c$4; + $f.c$5 = c$5; + $f.i = i; + $f.i$1 = i$1; + $f.ok = ok; + $f.ok$1 = ok$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + nilCompare = function (aVal, bVal) { + var aVal, bVal; + if ($clone(aVal, reflect.Value).IsNil()) { + if ($clone(bVal, reflect.Value).IsNil()) { + return [0, true]; + } + return [-1, true]; + } + if ($clone(bVal, reflect.Value).IsNil()) { + return [1, true]; + } + return [0, false]; + }; + floatCompare = function (a, b) { + var a, b; + if (isNaN(a)) { + return -1; + } + else if (isNaN(b)) { + return 1; + } + else if (a < b) { + return -1; + } + else if (a > b) { + return 1; + } + return 0; + }; + isNaN = function (a) { + var a; + return !((a === a)); + }; + ptrType.methods = [{ prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false) }, { prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false) }]; + SortedMap.init("", [{ prop: "Key", name: "Key", embedded: false, exported: true, typ: sliceType, tag: "" }, { prop: "Value", name: "Value", embedded: false, exported: true, typ: sliceType, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = reflect.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sort.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["io"] = (function () { + var $pkg = {}, $init, errors, sync, atomic, Writer, RuneScanner, sliceType, errWhence, errOffset; + errors = $packages["errors"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + Writer = $pkg.Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null); + RuneScanner = $pkg.RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null); + sliceType = $sliceType($Uint8); + Writer.init([{ prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false) }]); + RuneScanner.init([{ prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false) }, { prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false) }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sync.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = atomic.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $pkg.ErrShortWrite = errors.New("short write"); + $pkg.ErrShortBuffer = errors.New("short buffer"); + $pkg.EOF = errors.New("EOF"); + $pkg.ErrUnexpectedEOF = errors.New("unexpected EOF"); + $pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error"); + errWhence = errors.New("Seek: invalid whence"); + errOffset = errors.New("Seek: invalid offset"); + $pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe"); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["syscall"] = (function () { + var $pkg = {}, $init, errors, js, race, runtime, sync, RawConn, SockaddrDatalink, mmapper, Errno, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, Timespec, Stat_t, RawSockaddrInet4, RawSockaddrInet6, RawSockaddrUnix, RawSockaddrDatalink, RawSockaddr, RawSockaddrAny, _Socklen, Linger, Iovec, IPMreq, IPv6Mreq, Msghdr, sliceType, sliceType$1, ptrType$2, arrayType, arrayType$1, ptrType$12, arrayType$3, arrayType$4, arrayType$5, arrayType$6, arrayType$10, ptrType$17, arrayType$11, ptrType$18, ptrType$19, structType, ptrType$21, ptrType$22, funcType, funcType$1, ptrType$28, mapType, funcType$2, funcType$3, ptrType$29, ptrType$30, ptrType$31, ptrType$32, arrayType$15, ptrType$33, warningPrinted, lineBuffer, syscallModule, alreadyTriedToLoad, minusOne, envs, execveDarwin, freebsdConfArch, minRoutingSockaddrLen, mapper, errEAGAIN, errEINVAL, errENOENT, ioSync, ioSync$24ptr, errors$1, init, printWarning, printToConsole, Exit, indexByte, funcPC, syscall, syscallX, syscall6, syscall6X, rawSyscall, runtime_envs, syscallByName, Syscall, Syscall6, RawSyscall, BytePtrFromString, readInt, readIntBE, readIntLE, ParseDirent, CloseOnExec, SetNonblock, msanRead, msanWrite, rsaAlignOf, itoa, uitoa, ReadDirent, anyToSockaddr, Accept, Recvmsg, SendmsgN, direntIno, direntReclen, direntNamlen, libc_getattrlist_trampoline, init$1, errnoErr, Read, Write, Recvfrom, Sendto, SetsockoptByte, SetsockoptInt, SetsockoptInet4Addr, SetsockoptIPMreq, SetsockoptIPv6Mreq, SetsockoptLinger, accept, libc_accept_trampoline, setsockopt, libc_setsockopt_trampoline, Shutdown, libc_shutdown_trampoline, recvfrom, libc_recvfrom_trampoline, sendto, libc_sendto_trampoline, recvmsg, libc_recvmsg_trampoline, sendmsg, libc_sendmsg_trampoline, fcntl, libc_fcntl_trampoline, libc_chdir_trampoline, Close, libc_close_trampoline, Dup, libc_dup_trampoline, Fchdir, libc_fchdir_trampoline, Fchmod, libc_fchmod_trampoline, Fchown, libc_fchown_trampoline, Ftruncate, libc_ftruncate_trampoline, libc_getgid_trampoline, libc_getpid_trampoline, libc_getuid_trampoline, libc_mkdir_trampoline, libc_open_trampoline, Pread, libc_pread_trampoline, Pwrite, libc_pwrite_trampoline, read, libc_read_trampoline, libc_readlink_trampoline, libc_rmdir_trampoline, Seek, libc_lseek_trampoline, libc_symlink_trampoline, libc_unlink_trampoline, write, libc_write_trampoline, mmap, libc_mmap_trampoline, munmap, libc_munmap_trampoline, execve, libc_execve_trampoline, Fstat, libc_fstat64_trampoline, Getdirentries, libc___getdirentries64_trampoline, Lstat, libc_lstat64_trampoline, libc_stat64_trampoline; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + RawConn = $pkg.RawConn = $newType(8, $kindInterface, "syscall.RawConn", true, "syscall", true, null); + SockaddrDatalink = $pkg.SockaddrDatalink = $newType(0, $kindStruct, "syscall.SockaddrDatalink", true, "syscall", true, function (Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Index = 0; + this.Type = 0; + this.Nlen = 0; + this.Alen = 0; + this.Slen = 0; + this.Data = arrayType$3.zero(); + this.raw = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Index = Index_; + this.Type = Type_; + this.Nlen = Nlen_; + this.Alen = Alen_; + this.Slen = Slen_; + this.Data = Data_; + this.raw = raw_; + }); + mmapper = $pkg.mmapper = $newType(0, $kindStruct, "syscall.mmapper", true, "syscall", false, function (Mutex_, active_, mmap_, munmap_) { + this.$val = this; + if (arguments.length === 0) { + this.Mutex = new sync.Mutex.ptr(0, 0); + this.active = false; + this.mmap = $throwNilPointerError; + this.munmap = $throwNilPointerError; + return; + } + this.Mutex = Mutex_; + this.active = active_; + this.mmap = mmap_; + this.munmap = munmap_; + }); + Errno = $pkg.Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null); + Sockaddr = $pkg.Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null); + SockaddrInet4 = $pkg.SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function (Port_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.Addr = arrayType$1.zero(); + this.raw = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()); + return; + } + this.Port = Port_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrInet6 = $pkg.SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function (Port_, ZoneId_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.ZoneId = 0; + this.Addr = arrayType.zero(); + this.raw = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0); + return; + } + this.Port = Port_; + this.ZoneId = ZoneId_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrUnix = $pkg.SockaddrUnix = $newType(0, $kindStruct, "syscall.SockaddrUnix", true, "syscall", true, function (Name_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.raw = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()); + return; + } + this.Name = Name_; + this.raw = raw_; + }); + Timespec = $pkg.Timespec = $newType(0, $kindStruct, "syscall.Timespec", true, "syscall", true, function (Sec_, Nsec_) { + this.$val = this; + if (arguments.length === 0) { + this.Sec = new $Int64(0, 0); + this.Nsec = new $Int64(0, 0); + return; + } + this.Sec = Sec_; + this.Nsec = Nsec_; + }); + Stat_t = $pkg.Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function (Dev_, Mode_, Nlink_, Ino_, Uid_, Gid_, Rdev_, Pad_cgo_0_, Atimespec_, Mtimespec_, Ctimespec_, Birthtimespec_, Size_, Blocks_, Blksize_, Flags_, Gen_, Lspare_, Qspare_) { + this.$val = this; + if (arguments.length === 0) { + this.Dev = 0; + this.Mode = 0; + this.Nlink = 0; + this.Ino = new $Uint64(0, 0); + this.Uid = 0; + this.Gid = 0; + this.Rdev = 0; + this.Pad_cgo_0 = arrayType$1.zero(); + this.Atimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Mtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Ctimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Birthtimespec = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Size = new $Int64(0, 0); + this.Blocks = new $Int64(0, 0); + this.Blksize = 0; + this.Flags = 0; + this.Gen = 0; + this.Lspare = 0; + this.Qspare = arrayType$15.zero(); + return; + } + this.Dev = Dev_; + this.Mode = Mode_; + this.Nlink = Nlink_; + this.Ino = Ino_; + this.Uid = Uid_; + this.Gid = Gid_; + this.Rdev = Rdev_; + this.Pad_cgo_0 = Pad_cgo_0_; + this.Atimespec = Atimespec_; + this.Mtimespec = Mtimespec_; + this.Ctimespec = Ctimespec_; + this.Birthtimespec = Birthtimespec_; + this.Size = Size_; + this.Blocks = Blocks_; + this.Blksize = Blksize_; + this.Flags = Flags_; + this.Gen = Gen_; + this.Lspare = Lspare_; + this.Qspare = Qspare_; + }); + RawSockaddrInet4 = $pkg.RawSockaddrInet4 = $newType(0, $kindStruct, "syscall.RawSockaddrInet4", true, "syscall", true, function (Len_, Family_, Port_, Addr_, Zero_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Port = 0; + this.Addr = arrayType$1.zero(); + this.Zero = arrayType$6.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Port = Port_; + this.Addr = Addr_; + this.Zero = Zero_; + }); + RawSockaddrInet6 = $pkg.RawSockaddrInet6 = $newType(0, $kindStruct, "syscall.RawSockaddrInet6", true, "syscall", true, function (Len_, Family_, Port_, Flowinfo_, Addr_, Scope_id_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Port = 0; + this.Flowinfo = 0; + this.Addr = arrayType.zero(); + this.Scope_id = 0; + return; + } + this.Len = Len_; + this.Family = Family_; + this.Port = Port_; + this.Flowinfo = Flowinfo_; + this.Addr = Addr_; + this.Scope_id = Scope_id_; + }); + RawSockaddrUnix = $pkg.RawSockaddrUnix = $newType(0, $kindStruct, "syscall.RawSockaddrUnix", true, "syscall", true, function (Len_, Family_, Path_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Path = arrayType$11.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Path = Path_; + }); + RawSockaddrDatalink = $pkg.RawSockaddrDatalink = $newType(0, $kindStruct, "syscall.RawSockaddrDatalink", true, "syscall", true, function (Len_, Family_, Index_, Type_, Nlen_, Alen_, Slen_, Data_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Index = 0; + this.Type = 0; + this.Nlen = 0; + this.Alen = 0; + this.Slen = 0; + this.Data = arrayType$3.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Index = Index_; + this.Type = Type_; + this.Nlen = Nlen_; + this.Alen = Alen_; + this.Slen = Slen_; + this.Data = Data_; + }); + RawSockaddr = $pkg.RawSockaddr = $newType(0, $kindStruct, "syscall.RawSockaddr", true, "syscall", true, function (Len_, Family_, Data_) { + this.$val = this; + if (arguments.length === 0) { + this.Len = 0; + this.Family = 0; + this.Data = arrayType$4.zero(); + return; + } + this.Len = Len_; + this.Family = Family_; + this.Data = Data_; + }); + RawSockaddrAny = $pkg.RawSockaddrAny = $newType(0, $kindStruct, "syscall.RawSockaddrAny", true, "syscall", true, function (Addr_, Pad_) { + this.$val = this; + if (arguments.length === 0) { + this.Addr = new RawSockaddr.ptr(0, 0, arrayType$4.zero()); + this.Pad = arrayType$5.zero(); + return; + } + this.Addr = Addr_; + this.Pad = Pad_; + }); + _Socklen = $pkg._Socklen = $newType(4, $kindUint32, "syscall._Socklen", true, "syscall", false, null); + Linger = $pkg.Linger = $newType(0, $kindStruct, "syscall.Linger", true, "syscall", true, function (Onoff_, Linger_) { + this.$val = this; + if (arguments.length === 0) { + this.Onoff = 0; + this.Linger = 0; + return; + } + this.Onoff = Onoff_; + this.Linger = Linger_; + }); + Iovec = $pkg.Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function (Base_, Len_) { + this.$val = this; + if (arguments.length === 0) { + this.Base = ptrType$2.nil; + this.Len = new $Uint64(0, 0); + return; + } + this.Base = Base_; + this.Len = Len_; + }); + IPMreq = $pkg.IPMreq = $newType(0, $kindStruct, "syscall.IPMreq", true, "syscall", true, function (Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType$1.zero(); + this.Interface = arrayType$1.zero(); + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + IPv6Mreq = $pkg.IPv6Mreq = $newType(0, $kindStruct, "syscall.IPv6Mreq", true, "syscall", true, function (Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType.zero(); + this.Interface = 0; + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + Msghdr = $pkg.Msghdr = $newType(0, $kindStruct, "syscall.Msghdr", true, "syscall", true, function (Name_, Namelen_, Pad_cgo_0_, Iov_, Iovlen_, Pad_cgo_1_, Control_, Controllen_, Flags_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ptrType$2.nil; + this.Namelen = 0; + this.Pad_cgo_0 = arrayType$1.zero(); + this.Iov = ptrType$19.nil; + this.Iovlen = 0; + this.Pad_cgo_1 = arrayType$1.zero(); + this.Control = ptrType$2.nil; + this.Controllen = 0; + this.Flags = 0; + return; + } + this.Name = Name_; + this.Namelen = Namelen_; + this.Pad_cgo_0 = Pad_cgo_0_; + this.Iov = Iov_; + this.Iovlen = Iovlen_; + this.Pad_cgo_1 = Pad_cgo_1_; + this.Control = Control_; + this.Controllen = Controllen_; + this.Flags = Flags_; + }); + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($String); + ptrType$2 = $ptrType($Uint8); + arrayType = $arrayType($Uint8, 16); + arrayType$1 = $arrayType($Uint8, 4); + ptrType$12 = $ptrType(SockaddrDatalink); + arrayType$3 = $arrayType($Int8, 12); + arrayType$4 = $arrayType($Int8, 14); + arrayType$5 = $arrayType($Int8, 92); + arrayType$6 = $arrayType($Int8, 8); + arrayType$10 = $arrayType($Uint8, 32); + ptrType$17 = $ptrType($Uint16); + arrayType$11 = $arrayType($Int8, 104); + ptrType$18 = $ptrType(_Socklen); + ptrType$19 = $ptrType(Iovec); + structType = $structType("syscall", [{ prop: "addr", name: "addr", embedded: false, exported: false, typ: $Uintptr, tag: "" }, { prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "cap", name: "cap", embedded: false, exported: false, typ: $Int, tag: "" }]); + ptrType$21 = $ptrType($Int64); + ptrType$22 = $ptrType($Int32); + funcType = $funcType([$Uintptr], [], false); + funcType$1 = $funcType([$Uintptr], [$Bool], false); + ptrType$28 = $ptrType(mmapper); + mapType = $mapType(ptrType$2, sliceType); + funcType$2 = $funcType([$Uintptr, $Uintptr, $Int, $Int, $Int, $Int64], [$Uintptr, $error], false); + funcType$3 = $funcType([$Uintptr, $Uintptr], [$error], false); + ptrType$29 = $ptrType(SockaddrInet4); + ptrType$30 = $ptrType(SockaddrInet6); + ptrType$31 = $ptrType(SockaddrUnix); + ptrType$32 = $ptrType(Timespec); + arrayType$15 = $arrayType($Int64, 2); + ptrType$33 = $ptrType(Msghdr); + init = function () { + $flushConsole = (function () { + if (!((lineBuffer.$length === 0))) { + $global.console.log($externalize(($bytesToString(lineBuffer)), $String)); + lineBuffer = sliceType.nil; + } + }); + }; + printWarning = function () { + if (!warningPrinted) { + $global.console.error($externalize("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md", $String)); + } + warningPrinted = true; + }; + printToConsole = function (b) { + var b, goPrintToConsole, i; + goPrintToConsole = $global.goPrintToConsole; + if (!(goPrintToConsole === undefined)) { + goPrintToConsole(b); + return; + } + lineBuffer = $appendSlice(lineBuffer, b); + while (true) { + i = indexByte(lineBuffer, 10); + if (i === -1) { + break; + } + $global.console.log($externalize(($bytesToString($subslice(lineBuffer, 0, i))), $String)); + lineBuffer = $subslice(lineBuffer, (i + 1 >> 0)); + } + }; + Exit = function (code) { + var code; + Syscall(1, ((code >>> 0)), 0, 0); + }; + $pkg.Exit = Exit; + indexByte = function (s, c) { + var _i, _ref, b, c, i, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === c) { + return i; + } + _i++; + } + return -1; + }; + funcPC = function (f) { + var _1, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _1 = f; + /* */ if (_1 === (libc_open_trampoline)) { + $s = 2; + continue; + } + /* */ if (_1 === (libc_stat64_trampoline)) { + $s = 3; + continue; + } + /* */ if (_1 === (libc_fstat64_trampoline)) { + $s = 4; + continue; + } + /* */ if (_1 === (libc_lstat64_trampoline)) { + $s = 5; + continue; + } + /* */ if (_1 === (libc_mkdir_trampoline)) { + $s = 6; + continue; + } + /* */ if (_1 === (libc_chdir_trampoline)) { + $s = 7; + continue; + } + /* */ if (_1 === (libc_rmdir_trampoline)) { + $s = 8; + continue; + } + /* */ if (_1 === (libc___getdirentries64_trampoline)) { + $s = 9; + continue; + } + /* */ if (_1 === (libc_getattrlist_trampoline)) { + $s = 10; + continue; + } + /* */ if (_1 === (libc_symlink_trampoline)) { + $s = 11; + continue; + } + /* */ if (_1 === (libc_readlink_trampoline)) { + $s = 12; + continue; + } + /* */ if (_1 === (libc_fcntl_trampoline)) { + $s = 13; + continue; + } + /* */ if (_1 === (libc_read_trampoline)) { + $s = 14; + continue; + } + /* */ if (_1 === (libc_pread_trampoline)) { + $s = 15; + continue; + } + /* */ if (_1 === (libc_write_trampoline)) { + $s = 16; + continue; + } + /* */ if (_1 === (libc_lseek_trampoline)) { + $s = 17; + continue; + } + /* */ if (_1 === (libc_close_trampoline)) { + $s = 18; + continue; + } + /* */ if (_1 === (libc_unlink_trampoline)) { + $s = 19; + continue; + } + /* */ if (_1 === (libc_getpid_trampoline)) { + $s = 20; + continue; + } + /* */ if (_1 === (libc_getuid_trampoline)) { + $s = 21; + continue; + } + /* */ if (_1 === (libc_getgid_trampoline)) { + $s = 22; + continue; + } + /* */ $s = 23; + continue; + /* if (_1 === (libc_open_trampoline)) { */ case 2: + $s = -1; + return 5; + /* } else if (_1 === (libc_stat64_trampoline)) { */ case 3: + $s = -1; + return 338; + /* } else if (_1 === (libc_fstat64_trampoline)) { */ case 4: + $s = -1; + return 339; + /* } else if (_1 === (libc_lstat64_trampoline)) { */ case 5: + $s = -1; + return 340; + /* } else if (_1 === (libc_mkdir_trampoline)) { */ case 6: + $s = -1; + return 136; + /* } else if (_1 === (libc_chdir_trampoline)) { */ case 7: + $s = -1; + return 12; + /* } else if (_1 === (libc_rmdir_trampoline)) { */ case 8: + $s = -1; + return 137; + /* } else if (_1 === (libc___getdirentries64_trampoline)) { */ case 9: + $s = -1; + return 344; + /* } else if (_1 === (libc_getattrlist_trampoline)) { */ case 10: + $s = -1; + return 220; + /* } else if (_1 === (libc_symlink_trampoline)) { */ case 11: + $s = -1; + return 57; + /* } else if (_1 === (libc_readlink_trampoline)) { */ case 12: + $s = -1; + return 58; + /* } else if (_1 === (libc_fcntl_trampoline)) { */ case 13: + $s = -1; + return 92; + /* } else if (_1 === (libc_read_trampoline)) { */ case 14: + $s = -1; + return 3; + /* } else if (_1 === (libc_pread_trampoline)) { */ case 15: + $s = -1; + return 153; + /* } else if (_1 === (libc_write_trampoline)) { */ case 16: + $s = -1; + return 4; + /* } else if (_1 === (libc_lseek_trampoline)) { */ case 17: + $s = -1; + return 199; + /* } else if (_1 === (libc_close_trampoline)) { */ case 18: + $s = -1; + return 6; + /* } else if (_1 === (libc_unlink_trampoline)) { */ case 19: + $s = -1; + return 10; + /* } else if (_1 === (libc_getpid_trampoline)) { */ case 20: + $s = -1; + return 20; + /* } else if (_1 === (libc_getuid_trampoline)) { */ case 21: + $s = -1; + return 24; + /* } else if (_1 === (libc_getgid_trampoline)) { */ case 22: + $s = -1; + return 47; + /* } else { */ case 23: + $r = f(); /* */ + $s = 25; + case 25: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return ((minusOne >>> 0)); + /* } */ case 24: + case 1: + $s = -1; + return 0; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: funcPC }; + } + $f._1 = _1; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + syscall = function (trap, a1, a2, a3) { + var _tuple, a1, a2, a3, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = Syscall(trap, a1, a2, a3); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + syscallX = function (trap, a1, a2, a3) { + var _tuple, a1, a2, a3, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = Syscall(trap, a1, a2, a3); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + syscall6 = function (trap, a1, a2, a3, a4, a5, a6) { + var _tuple, a1, a2, a3, a4, a5, a6, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = Syscall6(trap, a1, a2, a3, a4, a5, a6); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + syscall6X = function (trap, a1, a2, a3, a4, a5, a6) { + var a1, a2, a3, a4, a5, a6, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + $panic(new $String("syscall6X is not implemented")); + }; + rawSyscall = function (trap, a1, a2, a3) { + var _tuple, a1, a2, a3, err, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + _tuple = RawSyscall(trap, a1, a2, a3); + r1 = _tuple[0]; + r2 = _tuple[1]; + err = _tuple[2]; + return [r1, r2, err]; + }; + runtime_envs = function () { + var envkeys, envs$1, i, jsEnv, key, process; + process = $global.process; + if (process === undefined) { + return sliceType$1.nil; + } + jsEnv = process.env; + envkeys = $global.Object.keys(jsEnv); + envs$1 = $makeSlice(sliceType$1, $parseInt(envkeys.length)); + i = 0; + while (true) { + if (!(i < $parseInt(envkeys.length))) { + break; + } + key = $internalize(envkeys[i], $String); + ((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $internalize(jsEnv[$externalize(key, $String)], $String)); + i = i + (1) >> 0; + } + return envs$1; + }; + syscallByName = function (name) { + var name, require, $deferred; + /* */ var $err = null; + try { + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + $deferred.push([(function () { + $recover(); + }), []]); + if (syscallModule === null) { + if (alreadyTriedToLoad) { + return null; + } + alreadyTriedToLoad = true; + require = $global.require; + if (require === undefined) { + $panic(new $String("")); + } + syscallModule = require($externalize("syscall", $String)); + } + return syscallModule[$externalize(name, $String)]; + /* */ } + catch (err) { + $err = err; + return null; + } + finally { + $callDeferred($deferred, $err); + } + }; + Syscall = function (trap, a1, a2, a3) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, a1, a2, a3, array, err, f, r, r1, r2, slice, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscallByName("Syscall"); + if (!(f === null)) { + r = f(trap, a1, a2, a3); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if ((trap === 4) && ((a1 === 1) || (a1 === 2))) { + array = a2; + slice = $makeSlice(sliceType, $parseInt(array.length)); + slice.$array = array; + printToConsole(slice); + _tmp$3 = (($parseInt(array.length) >>> 0)); + _tmp$4 = 0; + _tmp$5 = 0; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + } + if (trap === 1) { + runtime.Goexit(); + } + printWarning(); + _tmp$6 = ((minusOne >>> 0)); + _tmp$7 = 0; + _tmp$8 = 13; + r1 = _tmp$6; + r2 = _tmp$7; + err = _tmp$8; + return [r1, r2, err]; + }; + $pkg.Syscall = Syscall; + Syscall6 = function (trap, a1, a2, a3, a4, a5, a6) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, a4, a5, a6, err, f, r, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscallByName("Syscall6"); + if (!(f === null)) { + r = f(trap, a1, a2, a3, a4, a5, a6); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if (!((trap === 202))) { + printWarning(); + } + _tmp$3 = ((minusOne >>> 0)); + _tmp$4 = 0; + _tmp$5 = 13; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + }; + $pkg.Syscall6 = Syscall6; + RawSyscall = function (trap, a1, a2, a3) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, err, f, r, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscallByName("Syscall"); + if (!(f === null)) { + r = f(trap, a1, a2, a3); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + printWarning(); + _tmp$3 = ((minusOne >>> 0)); + _tmp$4 = 0; + _tmp$5 = 13; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + }; + $pkg.RawSyscall = RawSyscall; + BytePtrFromString = function (s) { + var _i, _ref, array, b, i, s; + array = new ($global.Uint8Array)(s.length + 1 >> 0); + _ref = (new sliceType($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === 0) { + return [ptrType$2.nil, new Errno(22)]; + } + array[i] = b; + _i++; + } + array[s.length] = 0; + return [((array)), $ifaceNil]; + }; + $pkg.BytePtrFromString = BytePtrFromString; + readInt = function (b, off, size) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u; + u = new $Uint64(0, 0); + ok = false; + if (b.$length < (((off + size >>> 0) >> 0))) { + _tmp = new $Uint64(0, 0); + _tmp$1 = false; + u = _tmp; + ok = _tmp$1; + return [u, ok]; + } + if (false) { + _tmp$2 = readIntBE($subslice(b, off), size); + _tmp$3 = true; + u = _tmp$2; + ok = _tmp$3; + return [u, ok]; + } + _tmp$4 = readIntLE($subslice(b, off), size); + _tmp$5 = true; + u = _tmp$4; + ok = _tmp$5; + return [u, ok]; + }; + readIntBE = function (b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } + else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } + else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } + else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } + else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + readIntLE = function (b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } + else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } + else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } + else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } + else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + ParseDirent = function (buf, max, names) { + var _i, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, buf, c, consumed, count, i, ino, max, name, names, namlen, newnames, ok, origlen, rec, reclen, x, x$1, x$2; + consumed = 0; + count = 0; + newnames = sliceType$1.nil; + origlen = buf.$length; + count = 0; + while (true) { + if (!(!((max === 0)) && buf.$length > 0)) { + break; + } + _tuple = direntReclen(buf); + reclen = _tuple[0]; + ok = _tuple[1]; + if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) { + _tmp = origlen; + _tmp$1 = count; + _tmp$2 = names; + consumed = _tmp; + count = _tmp$1; + newnames = _tmp$2; + return [consumed, count, newnames]; + } + rec = $subslice(buf, 0, $flatten64(reclen)); + buf = $subslice(buf, $flatten64(reclen)); + _tuple$1 = direntIno(rec); + ino = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + break; + } + if ((ino.$high === 0 && ino.$low === 0)) { + continue; + } + _tuple$2 = direntNamlen(rec); + namlen = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 21 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + break; + } + name = $subslice(rec, 21, $flatten64(new $Uint64(0 + namlen.$high, 21 + namlen.$low))); + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (c === 0) { + name = $subslice(name, 0, i); + break; + } + _i++; + } + if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") { + continue; + } + max = max - (1) >> 0; + count = count + (1) >> 0; + names = $append(names, ($bytesToString(name))); + } + _tmp$3 = origlen - buf.$length >> 0; + _tmp$4 = count; + _tmp$5 = names; + consumed = _tmp$3; + count = _tmp$4; + newnames = _tmp$5; + return [consumed, count, newnames]; + }; + $pkg.ParseDirent = ParseDirent; + CloseOnExec = function (fd) { + var _r, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = fcntl(fd, 2, 1); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r; + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: CloseOnExec }; + } + $f._r = _r; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.CloseOnExec = CloseOnExec; + SetNonblock = function (fd, nonblocking) { + var _r, _r$1, _tuple, _tuple$1, err, fd, flag, nonblocking, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + err = $f.err; + fd = $f.fd; + flag = $f.flag; + nonblocking = $f.nonblocking; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = fcntl(fd, 3, 0); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + flag = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; + return err; + } + if (nonblocking) { + flag = flag | (4); + } + else { + flag = (flag & ~(4)) >> 0; + } + _r$1 = fcntl(fd, 4, flag); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple$1 = _r$1; + err = _tuple$1[1]; + err = err; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SetNonblock }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.err = err; + $f.fd = fd; + $f.flag = flag; + $f.nonblocking = nonblocking; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SetNonblock = SetNonblock; + msanRead = function (addr, len) { + var addr, len; + }; + msanWrite = function (addr, len) { + var addr, len; + }; + rsaAlignOf = function (salen) { + var salen, salign; + salign = 8; + if (true) { + salign = 4; + } + else if (false) { + salign = 8; + } + else if (false) { + if (freebsdConfArch === "amd64") { + salign = 8; + } + } + if (salen === 0) { + return salign; + } + return (((salen + salign >> 0) - 1 >> 0)) & (~((salign - 1 >> 0)) >> 0); + }; + itoa = function (val) { + var val; + if (val < 0) { + return "-" + uitoa(((-val >>> 0))); + } + return uitoa(((val >>> 0))); + }; + uitoa = function (val) { + var _q, _r, buf, i, val; + buf = arrayType$10.zero(); + i = 31; + while (true) { + if (!(val >= 10)) { + break; + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((_r = val % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + i = i - (1) >> 0; + val = (_q = val / (10), (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((val + 48 >>> 0) << 24 >>> 24))); + return ($bytesToString($subslice(new sliceType(buf), i))); + }; + Timespec.ptr.prototype.Unix = function () { + var _tmp, _tmp$1, nsec, sec, ts; + sec = new $Int64(0, 0); + nsec = new $Int64(0, 0); + ts = this; + _tmp = (ts.Sec); + _tmp$1 = (ts.Nsec); + sec = _tmp; + nsec = _tmp$1; + return [sec, nsec]; + }; + Timespec.prototype.Unix = function () { return this.$val.Unix(); }; + Timespec.ptr.prototype.Nano = function () { + var ts, x, x$1; + ts = this; + return (x = $mul64((ts.Sec), new $Int64(0, 1000000000)), x$1 = (ts.Nsec), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + Timespec.prototype.Nano = function () { return this.$val.Nano(); }; + ReadDirent = function (fd, buf) { + var _r, _tuple, base, buf, err, fd, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + base = $f.base; + buf = $f.buf; + err = $f.err; + fd = $f.fd; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + base = ((new Uint8Array(8))); + _r = Getdirentries(fd, buf, base); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ReadDirent }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.base = base; + $f.buf = buf; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.ReadDirent = ReadDirent; + SockaddrInet4.ptr.prototype.sockaddr = function () { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = 16; + sa.raw.Family = 2; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$17(function () { return this.$target.Port; }, function ($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + i = 0; + while (true) { + if (!(i < 4)) { + break; + } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(16); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrInet4.prototype.sockaddr = function () { return this.$val.sockaddr(); }; + SockaddrInet6.ptr.prototype.sockaddr = function () { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = 28; + sa.raw.Family = 30; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$17(function () { return this.$target.Port; }, function ($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + sa.raw.Scope_id = sa.ZoneId; + i = 0; + while (true) { + if (!(i < 16)) { + break; + } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(28); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrInet6.prototype.sockaddr = function () { return this.$val.sockaddr(); }; + SockaddrUnix.ptr.prototype.sockaddr = function () { + var _array, _struct, _view, i, n, name, sa, x; + sa = this; + name = sa.Name; + n = name.length; + if (n >= 104 || (n === 0)) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = (((3 + n >> 0) << 24 >>> 24)); + sa.raw.Family = 1; + i = 0; + while (true) { + if (!(i < n)) { + break; + } + (x = sa.raw.Path, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = ((name.charCodeAt(i) << 24 >> 24)))); + i = i + (1) >> 0; + } + _array = new Uint8Array(106); + return [(_array), ((sa.raw.Len >>> 0)), $ifaceNil]; + }; + SockaddrUnix.prototype.sockaddr = function () { return this.$val.sockaddr(); }; + SockaddrDatalink.ptr.prototype.sockaddr = function () { + var _array, _struct, _view, i, sa, x, x$1; + sa = this; + if (sa.Index === 0) { + return [0, 0, new Errno(22)]; + } + sa.raw.Len = sa.Len; + sa.raw.Family = 18; + sa.raw.Index = sa.Index; + sa.raw.Type = sa.Type; + sa.raw.Nlen = sa.Nlen; + sa.raw.Alen = sa.Alen; + sa.raw.Slen = sa.Slen; + i = 0; + while (true) { + if (!(i < 12)) { + break; + } + (x$1 = sa.raw.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = sa.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(20); + return [(_array), 20, $ifaceNil]; + }; + SockaddrDatalink.prototype.sockaddr = function () { return this.$val.sockaddr(); }; + anyToSockaddr = function (rsa) { + var _1, _array, _array$1, _array$2, _array$3, _array$4, _array$5, _array$6, _array$7, _struct, _struct$1, _struct$2, _struct$3, _struct$4, _struct$5, _struct$6, _struct$7, _view, _view$1, _view$2, _view$3, _view$4, _view$5, _view$6, _view$7, bytes, i, i$1, i$2, i$3, n, p, p$1, pp, pp$1, pp$2, pp$3, rsa, sa, sa$1, sa$2, sa$3, x, x$1, x$2, x$3, x$4, x$5, x$6; + _1 = rsa.Addr.Family; + if (_1 === (18)) { + _array$1 = new Uint8Array(108); + pp = ((_array = (_array$1), _struct = new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero()), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Len = _view.getUint8(0, true), _struct.Family = _view.getUint8(1, true), _struct.Index = _view.getUint16(2, true), _struct.Type = _view.getUint8(4, true), _struct.Nlen = _view.getUint8(5, true), _struct.Alen = _view.getUint8(6, true), _struct.Slen = _view.getUint8(7, true), _struct.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct)); + _struct$1 = rsa, _view$1 = new DataView(_array$1.buffer, _array$1.byteOffset), _struct$1.Addr.Len = _view$1.getUint8(0, true), _struct$1.Addr.Family = _view$1.getUint8(1, true), _struct$1.Addr.Data = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 2, _array$1.buffer.byteLength)), _struct$1.Pad = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 16, _array$1.buffer.byteLength)); + sa = new SockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero(), new RawSockaddrDatalink.ptr(0, 0, 0, 0, 0, 0, 0, arrayType$3.zero())); + sa.Len = pp.Len; + sa.Family = pp.Family; + sa.Index = pp.Index; + sa.Type = pp.Type; + sa.Nlen = pp.Nlen; + sa.Alen = pp.Alen; + sa.Slen = pp.Slen; + i = 0; + while (true) { + if (!(i < 12)) { + break; + } + (x$1 = sa.Data, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = pp.Data, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + return [sa, $ifaceNil]; + } + else if (_1 === (1)) { + _array$3 = new Uint8Array(108); + pp$1 = ((_array$2 = (_array$3), _struct$2 = new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero()), _view$2 = new DataView(_array$2.buffer, _array$2.byteOffset), _struct$2.Len = _view$2.getUint8(0, true), _struct$2.Family = _view$2.getUint8(1, true), _struct$2.Path = new ($nativeArray($kindInt8))(_array$2.buffer, $min(_array$2.byteOffset + 2, _array$2.buffer.byteLength)), _struct$2)); + _struct$3 = rsa, _view$3 = new DataView(_array$3.buffer, _array$3.byteOffset), _struct$3.Addr.Len = _view$3.getUint8(0, true), _struct$3.Addr.Family = _view$3.getUint8(1, true), _struct$3.Addr.Data = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 2, _array$3.buffer.byteLength)), _struct$3.Pad = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 16, _array$3.buffer.byteLength)); + if (pp$1.Len < 2 || pp$1.Len > 106) { + return [$ifaceNil, new Errno(22)]; + } + sa$1 = new SockaddrUnix.ptr("", new RawSockaddrUnix.ptr(0, 0, arrayType$11.zero())); + n = ((pp$1.Len >> 0)) - 2 >> 0; + i$1 = 0; + while (true) { + if (!(i$1 < n)) { + break; + } + if ((x$2 = pp$1.Path, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1])) === 0) { + n = i$1; + break; + } + i$1 = i$1 + (1) >> 0; + } + bytes = $subslice(new sliceType((($sliceToArray(new sliceType(pp$1.Path))))), 0, n); + sa$1.Name = ($bytesToString(bytes)); + return [sa$1, $ifaceNil]; + } + else if (_1 === (2)) { + _array$5 = new Uint8Array(108); + pp$2 = ((_array$4 = (_array$5), _struct$4 = new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero()), _view$4 = new DataView(_array$4.buffer, _array$4.byteOffset), _struct$4.Len = _view$4.getUint8(0, true), _struct$4.Family = _view$4.getUint8(1, true), _struct$4.Port = _view$4.getUint16(2, true), _struct$4.Addr = new ($nativeArray($kindUint8))(_array$4.buffer, $min(_array$4.byteOffset + 4, _array$4.buffer.byteLength)), _struct$4.Zero = new ($nativeArray($kindInt8))(_array$4.buffer, $min(_array$4.byteOffset + 8, _array$4.buffer.byteLength)), _struct$4)); + _struct$5 = rsa, _view$5 = new DataView(_array$5.buffer, _array$5.byteOffset), _struct$5.Addr.Len = _view$5.getUint8(0, true), _struct$5.Addr.Family = _view$5.getUint8(1, true), _struct$5.Addr.Data = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 2, _array$5.buffer.byteLength)), _struct$5.Pad = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 16, _array$5.buffer.byteLength)); + sa$2 = new SockaddrInet4.ptr(0, arrayType$1.zero(), new RawSockaddrInet4.ptr(0, 0, 0, arrayType$1.zero(), arrayType$6.zero())); + p = (((pp$2.$ptr_Port || (pp$2.$ptr_Port = new ptrType$17(function () { return this.$target.Port; }, function ($v) { this.$target.Port = $v; }, pp$2))))); + sa$2.Port = ((((p.nilCheck, p[0]) >> 0)) << 8 >> 0) + (((p.nilCheck, p[1]) >> 0)) >> 0; + i$2 = 0; + while (true) { + if (!(i$2 < 4)) { + break; + } + (x$4 = sa$2.Addr, ((i$2 < 0 || i$2 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[i$2] = (x$3 = pp$2.Addr, ((i$2 < 0 || i$2 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$2])))); + i$2 = i$2 + (1) >> 0; + } + return [sa$2, $ifaceNil]; + } + else if (_1 === (30)) { + _array$7 = new Uint8Array(108); + pp$3 = ((_array$6 = (_array$7), _struct$6 = new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0), _view$6 = new DataView(_array$6.buffer, _array$6.byteOffset), _struct$6.Len = _view$6.getUint8(0, true), _struct$6.Family = _view$6.getUint8(1, true), _struct$6.Port = _view$6.getUint16(2, true), _struct$6.Flowinfo = _view$6.getUint32(4, true), _struct$6.Addr = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 8, _array$6.buffer.byteLength)), _struct$6.Scope_id = _view$6.getUint32(24, true), _struct$6)); + _struct$7 = rsa, _view$7 = new DataView(_array$7.buffer, _array$7.byteOffset), _struct$7.Addr.Len = _view$7.getUint8(0, true), _struct$7.Addr.Family = _view$7.getUint8(1, true), _struct$7.Addr.Data = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 2, _array$7.buffer.byteLength)), _struct$7.Pad = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 16, _array$7.buffer.byteLength)); + sa$3 = new SockaddrInet6.ptr(0, 0, arrayType.zero(), new RawSockaddrInet6.ptr(0, 0, 0, 0, arrayType.zero(), 0)); + p$1 = (((pp$3.$ptr_Port || (pp$3.$ptr_Port = new ptrType$17(function () { return this.$target.Port; }, function ($v) { this.$target.Port = $v; }, pp$3))))); + sa$3.Port = ((((p$1.nilCheck, p$1[0]) >> 0)) << 8 >> 0) + (((p$1.nilCheck, p$1[1]) >> 0)) >> 0; + sa$3.ZoneId = pp$3.Scope_id; + i$3 = 0; + while (true) { + if (!(i$3 < 16)) { + break; + } + (x$6 = sa$3.Addr, ((i$3 < 0 || i$3 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i$3] = (x$5 = pp$3.Addr, ((i$3 < 0 || i$3 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i$3])))); + i$3 = i$3 + (1) >> 0; + } + return [sa$3, $ifaceNil]; + } + return [$ifaceNil, new Errno(47)]; + }; + Accept = function (fd) { + var _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, fd, len, nfd, rsa, sa, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + err = $f.err; + fd = $f.fd; + len = $f.len; + nfd = $f.nfd; + rsa = $f.rsa; + sa = $f.sa; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + len = [len]; + rsa = [rsa]; + nfd = 0; + sa = $ifaceNil; + err = $ifaceNil; + rsa[0] = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + len[0] = 108; + _r = accept(fd, rsa[0], (len.$ptr || (len.$ptr = new ptrType$18(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, len)))); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + nfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [nfd, sa, err]; + } + /* */ if (true && (len[0] === 0)) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (true && (len[0] === 0)) { */ case 2: + _r$1 = Close(nfd); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$1; + _tmp = 0; + _tmp$1 = $ifaceNil; + _tmp$2 = new Errno(53); + nfd = _tmp; + sa = _tmp$1; + err = _tmp$2; + $s = -1; + return [nfd, sa, err]; + /* } */ case 3: + _tuple$1 = anyToSockaddr(rsa[0]); + sa = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 5: + _r$2 = Close(nfd); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _r$2; + nfd = 0; + /* } */ case 6: + $s = -1; + return [nfd, sa, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Accept }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.err = err; + $f.fd = fd; + $f.len = len; + $f.nfd = nfd; + $f.rsa = rsa; + $f.sa = sa; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Accept = Accept; + Recvmsg = function (fd, p, oob, flags) { + var _array, _r, _struct, _tuple, _tuple$1, _view, dummy, err, fd, flags, from, iov, msg, n, oob, oobn, p, recvflags, rsa, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _struct = $f._struct; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + _view = $f._view; + dummy = $f.dummy; + err = $f.err; + fd = $f.fd; + flags = $f.flags; + from = $f.from; + iov = $f.iov; + msg = $f.msg; + n = $f.n; + oob = $f.oob; + oobn = $f.oobn; + p = $f.p; + recvflags = $f.recvflags; + rsa = $f.rsa; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + dummy = [dummy]; + iov = [iov]; + msg = [msg]; + rsa = [rsa]; + n = 0; + oobn = 0; + recvflags = 0; + from = $ifaceNil; + err = $ifaceNil; + msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$19.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); + rsa[0] = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + _array = new Uint8Array(108); + msg[0].Name = ((_array)); + _struct = rsa[0], _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + msg[0].Namelen = 108; + iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov[0].Base = (($sliceToArray(p))); + iov[0].SetLen(p.$length); + } + dummy[0] = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, dummy))); + iov[0].SetLen(1); + } + msg[0].Control = (($sliceToArray(oob))); + msg[0].SetControllen(oob.$length); + } + msg[0].Iov = iov[0]; + msg[0].Iovlen = 1; + _r = recvmsg(fd, msg[0], flags); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [n, oobn, recvflags, from, err]; + } + oobn = ((msg[0].Controllen >> 0)); + recvflags = ((msg[0].Flags >> 0)); + if (!((rsa[0].Addr.Family === 0))) { + _tuple$1 = anyToSockaddr(rsa[0]); + from = _tuple$1[0]; + err = _tuple$1[1]; + } + $s = -1; + return [n, oobn, recvflags, from, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Recvmsg }; + } + $f._array = _array; + $f._r = _r; + $f._struct = _struct; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f._view = _view; + $f.dummy = dummy; + $f.err = err; + $f.fd = fd; + $f.flags = flags; + $f.from = from; + $f.iov = iov; + $f.msg = msg; + $f.n = n; + $f.oob = oob; + $f.oobn = oobn; + $f.p = p; + $f.recvflags = recvflags; + $f.rsa = rsa; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Recvmsg = Recvmsg; + SendmsgN = function (fd, p, oob, to, flags) { + var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, dummy, err, fd, flags, iov, msg, n, oob, p, ptr, salen, to, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tmp$4 = $f._tmp$4; + _tmp$5 = $f._tmp$5; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + dummy = $f.dummy; + err = $f.err; + fd = $f.fd; + flags = $f.flags; + iov = $f.iov; + msg = $f.msg; + n = $f.n; + oob = $f.oob; + p = $f.p; + ptr = $f.ptr; + salen = $f.salen; + to = $f.to; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + dummy = [dummy]; + iov = [iov]; + msg = [msg]; + n = 0; + err = $ifaceNil; + ptr = 0; + salen = 0; + /* */ if (!($interfaceIsEqual(to, $ifaceNil))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!($interfaceIsEqual(to, $ifaceNil))) { */ case 1: + _r = to.sockaddr(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + ptr = _tuple[0]; + salen = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + } + /* } */ case 2: + msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$1.zero(), ptrType$19.nil, 0, arrayType$1.zero(), ptrType$2.nil, 0, 0); + msg[0].Name = ((ptr)); + msg[0].Namelen = ((salen >>> 0)); + iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov[0].Base = (($sliceToArray(p))); + iov[0].SetLen(p.$length); + } + dummy[0] = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, dummy))); + iov[0].SetLen(1); + } + msg[0].Control = (($sliceToArray(oob))); + msg[0].SetControllen(oob.$length); + } + msg[0].Iov = iov[0]; + msg[0].Iovlen = 1; + _r$1 = sendmsg(fd, msg[0], flags); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple$1 = _r$1; + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = 0; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; + return [n, err]; + } + if (oob.$length > 0 && (p.$length === 0)) { + n = 0; + } + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SendmsgN }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tmp$4 = _tmp$4; + $f._tmp$5 = _tmp$5; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.dummy = dummy; + $f.err = err; + $f.fd = fd; + $f.flags = flags; + $f.iov = iov; + $f.msg = msg; + $f.n = n; + $f.oob = oob; + $f.p = p; + $f.ptr = ptr; + $f.salen = salen; + $f.to = to; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SendmsgN = SendmsgN; + direntIno = function (buf) { + var buf; + return readInt(buf, 0, 8); + }; + direntReclen = function (buf) { + var buf; + return readInt(buf, 16, 2); + }; + direntNamlen = function (buf) { + var buf; + return readInt(buf, 18, 2); + }; + libc_getattrlist_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_getattrlist_trampoline"); + }; + init$1 = function () { + execveDarwin = execve; + }; + Iovec.ptr.prototype.SetLen = function (length) { + var iov, length; + iov = this; + iov.Len = (new $Uint64(0, length)); + }; + Iovec.prototype.SetLen = function (length) { return this.$val.SetLen(length); }; + Msghdr.ptr.prototype.SetControllen = function (length) { + var length, msghdr; + msghdr = this; + msghdr.Controllen = ((length >>> 0)); + }; + Msghdr.prototype.SetControllen = function (length) { return this.$val.SetControllen(length); }; + mmapper.ptr.prototype.Mmap = function (fd, offset, length, prot, flags) { + var _key, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, addr, b, data, err, errno, fd, flags, length, m, offset, p, prot, sl, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _key = $f._key; + _r = $f._r; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tmp$4 = $f._tmp$4; + _tmp$5 = $f._tmp$5; + _tuple = $f._tuple; + addr = $f.addr; + b = $f.b; + data = $f.data; + err = $f.err; + errno = $f.errno; + fd = $f.fd; + flags = $f.flags; + length = $f.length; + m = $f.m; + offset = $f.offset; + p = $f.p; + prot = $f.prot; + sl = $f.sl; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + sl = [sl]; + data = sliceType.nil; + err = $ifaceNil; + m = this; + if (length <= 0) { + _tmp = sliceType.nil; + _tmp$1 = new Errno(22); + data = _tmp; + err = _tmp$1; + $s = -1; + return [data, err]; + } + _r = m.mmap(0, ((length >>> 0)), prot, flags, fd, offset); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + addr = _tuple[0]; + errno = _tuple[1]; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp$2 = sliceType.nil; + _tmp$3 = errno; + data = _tmp$2; + err = _tmp$3; + $s = -1; + return [data, err]; + } + sl[0] = new structType.ptr(addr, length, length); + b = sl[0]; + p = $indexPtr(b.$array, b.$offset + (b.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + _key = p; + (m.active || $throwRuntimeError("assignment to entry in nil map"))[ptrType$2.keyFor(_key)] = { k: _key, v: b }; + _tmp$4 = b; + _tmp$5 = $ifaceNil; + data = _tmp$4; + err = _tmp$5; + $s = -1; + return [data, err]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + } + finally { + $callDeferred($deferred, $err); + if (!$curGoroutine.asleep) { + return [data, err]; + } + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: mmapper.ptr.prototype.Mmap }; + } + $f._key = _key; + $f._r = _r; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tmp$4 = _tmp$4; + $f._tmp$5 = _tmp$5; + $f._tuple = _tuple; + $f.addr = addr; + $f.b = b; + $f.data = data; + $f.err = err; + $f.errno = errno; + $f.fd = fd; + $f.flags = flags; + $f.length = length; + $f.m = m; + $f.offset = offset; + $f.p = p; + $f.prot = prot; + $f.sl = sl; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + mmapper.prototype.Mmap = function (fd, offset, length, prot, flags) { return this.$val.Mmap(fd, offset, length, prot, flags); }; + mmapper.ptr.prototype.Munmap = function (data) { + var _entry, _r, b, data, err, errno, m, p, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _r = $f._r; + b = $f.b; + data = $f.data; + err = $f.err; + errno = $f.errno; + m = $f.m; + p = $f.p; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + err = $ifaceNil; + m = this; + if ((data.$length === 0) || !((data.$length === data.$capacity))) { + err = new Errno(22); + $s = -1; + return err; + } + p = $indexPtr(data.$array, data.$offset + (data.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + b = (_entry = m.active[ptrType$2.keyFor(p)], _entry !== undefined ? _entry.v : sliceType.nil); + if (b === sliceType.nil || !($indexPtr(b.$array, b.$offset + 0, ptrType$2) === $indexPtr(data.$array, data.$offset + 0, ptrType$2))) { + err = new Errno(22); + $s = -1; + return err; + } + _r = m.munmap((($sliceToArray(b))), ((b.$length >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + errno = _r; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + err = errno; + $s = -1; + return err; + } + delete m.active[ptrType$2.keyFor(p)]; + err = $ifaceNil; + $s = -1; + return err; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + } + finally { + $callDeferred($deferred, $err); + if (!$curGoroutine.asleep) { + return err; + } + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: mmapper.ptr.prototype.Munmap }; + } + $f._entry = _entry; + $f._r = _r; + $f.b = b; + $f.data = data; + $f.err = err; + $f.errno = errno; + $f.m = m; + $f.p = p; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + mmapper.prototype.Munmap = function (data) { return this.$val.Munmap(data); }; + Errno.prototype.Error = function () { + var e, s; + e = this.$val; + if (0 <= ((e >> 0)) && ((e >> 0)) < 106) { + s = ((e < 0 || e >= errors$1.length) ? ($throwRuntimeError("index out of range"), undefined) : errors$1[e]); + if (!(s === "")) { + return s; + } + } + return "errno " + itoa(((e >> 0))); + }; + $ptrType(Errno).prototype.Error = function () { return new Errno(this.$get()).Error(); }; + Errno.prototype.Temporary = function () { + var e; + e = this.$val; + return (e === 4) || (e === 24) || new Errno(e).Timeout(); + }; + $ptrType(Errno).prototype.Temporary = function () { return new Errno(this.$get()).Temporary(); }; + Errno.prototype.Timeout = function () { + var e; + e = this.$val; + return (e === 35) || (e === 35) || (e === 60); + }; + $ptrType(Errno).prototype.Timeout = function () { return new Errno(this.$get()).Timeout(); }; + errnoErr = function (e) { + var _1, e; + _1 = e; + if (_1 === (0)) { + return $ifaceNil; + } + else if (_1 === (35)) { + return errEAGAIN; + } + else if (_1 === (22)) { + return errEINVAL; + } + else if (_1 === (2)) { + return errENOENT; + } + return new Errno(e); + }; + Read = function (fd, p) { + var _r, _tuple, err, fd, n, p, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + err = $f.err; + fd = $f.fd; + n = $f.n; + p = $f.p; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _r = read(fd, p); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (false) { + if (n > 0) { + race.WriteRange(($sliceToArray(p)), n); + } + if ($interfaceIsEqual(err, $ifaceNil)) { + race.Acquire(((ioSync$24ptr || (ioSync$24ptr = new ptrType$21(function () { return ioSync; }, function ($v) { ioSync = $v; }))))); + } + } + if (false && n > 0) { + msanWrite(($sliceToArray(p)), n); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Read }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.p = p; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Read = Read; + Write = function (fd, p) { + var _r, _tuple, err, fd, n, p, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + err = $f.err; + fd = $f.fd; + n = $f.n; + p = $f.p; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + if (false) { + race.ReleaseMerge(((ioSync$24ptr || (ioSync$24ptr = new ptrType$21(function () { return ioSync; }, function ($v) { ioSync = $v; }))))); + } + _r = write(fd, p); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (false && n > 0) { + race.ReadRange(($sliceToArray(p)), n); + } + if (false && n > 0) { + msanRead(($sliceToArray(p)), n); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Write }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.p = p; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Write = Write; + Recvfrom = function (fd, p, flags) { + var _r, _tuple, _tuple$1, err, fd, flags, from, len, n, p, rsa, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + err = $f.err; + fd = $f.fd; + flags = $f.flags; + from = $f.from; + len = $f.len; + n = $f.n; + p = $f.p; + rsa = $f.rsa; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + len = [len]; + rsa = [rsa]; + n = 0; + from = $ifaceNil; + err = $ifaceNil; + rsa[0] = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, 0, arrayType$4.zero()), arrayType$5.zero()); + len[0] = 108; + _r = recvfrom(fd, p, flags, rsa[0], (len.$ptr || (len.$ptr = new ptrType$18(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, len)))); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [n, from, err]; + } + if (!((rsa[0].Addr.Family === 0))) { + _tuple$1 = anyToSockaddr(rsa[0]); + from = _tuple$1[0]; + err = _tuple$1[1]; + } + $s = -1; + return [n, from, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Recvfrom }; + } + $f._r = _r; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.err = err; + $f.fd = fd; + $f.flags = flags; + $f.from = from; + $f.len = len; + $f.n = n; + $f.p = p; + $f.rsa = rsa; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Recvfrom = Recvfrom; + Sendto = function (fd, p, flags, to) { + var _r, _r$1, _tuple, err, fd, flags, n, p, ptr, to, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + fd = $f.fd; + flags = $f.flags; + n = $f.n; + p = $f.p; + ptr = $f.ptr; + to = $f.to; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = to.sockaddr(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + ptr = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; + return err; + } + _r$1 = sendto(fd, p, flags, ptr, n); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + err = _r$1; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Sendto }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.fd = fd; + $f.flags = flags; + $f.n = n; + $f.p = p; + $f.ptr = ptr; + $f.to = to; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Sendto = Sendto; + SetsockoptByte = function (fd, level, opt, value) { + var _r, err, fd, level, opt, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + level = $f.level; + opt = $f.opt; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + value = [value]; + err = $ifaceNil; + _r = setsockopt(fd, level, opt, ((value.$ptr || (value.$ptr = new ptrType$2(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, value)))), 1); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SetsockoptByte }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.opt = opt; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SetsockoptByte = SetsockoptByte; + SetsockoptInt = function (fd, level, opt, value) { + var _r, err, fd, level, n, opt, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + level = $f.level; + n = $f.n; + opt = $f.opt; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = [n]; + err = $ifaceNil; + n[0] = ((value >> 0)); + _r = setsockopt(fd, level, opt, ((n.$ptr || (n.$ptr = new ptrType$22(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, n)))), 4); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SetsockoptInt }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.n = n; + $f.opt = opt; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SetsockoptInt = SetsockoptInt; + SetsockoptInet4Addr = function (fd, level, opt, value) { + var _r, err, fd, level, opt, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + level = $f.level; + opt = $f.opt; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = setsockopt(fd, level, opt, ($sliceToArray(new sliceType(value))), 4); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SetsockoptInet4Addr }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.opt = opt; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SetsockoptInet4Addr = SetsockoptInet4Addr; + SetsockoptIPMreq = function (fd, level, opt, mreq) { + var _array, _r, _struct, _view, err, fd, level, mreq, opt, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _struct = $f._struct; + _view = $f._view; + err = $f.err; + fd = $f.fd; + level = $f.level; + mreq = $f.mreq; + opt = $f.opt; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _array = new Uint8Array(8); + _r = setsockopt(fd, level, opt, (_array), 8); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength)); + err = _r; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SetsockoptIPMreq }; + } + $f._array = _array; + $f._r = _r; + $f._struct = _struct; + $f._view = _view; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.mreq = mreq; + $f.opt = opt; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SetsockoptIPMreq = SetsockoptIPMreq; + SetsockoptIPv6Mreq = function (fd, level, opt, mreq) { + var _array, _r, _struct, _view, err, fd, level, mreq, opt, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _struct = $f._struct; + _view = $f._view; + err = $f.err; + fd = $f.fd; + level = $f.level; + mreq = $f.mreq; + opt = $f.opt; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _array = new Uint8Array(20); + _r = setsockopt(fd, level, opt, (_array), 20); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = _view.getUint32(16, true); + err = _r; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SetsockoptIPv6Mreq }; + } + $f._array = _array; + $f._r = _r; + $f._struct = _struct; + $f._view = _view; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.mreq = mreq; + $f.opt = opt; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SetsockoptIPv6Mreq = SetsockoptIPv6Mreq; + SetsockoptLinger = function (fd, level, opt, l) { + var _array, _r, _struct, _view, err, fd, l, level, opt, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _struct = $f._struct; + _view = $f._view; + err = $f.err; + fd = $f.fd; + l = $f.l; + level = $f.level; + opt = $f.opt; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _array = new Uint8Array(8); + _r = setsockopt(fd, level, opt, (_array), 8); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _struct = l, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Onoff = _view.getInt32(0, true), _struct.Linger = _view.getInt32(4, true); + err = _r; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SetsockoptLinger }; + } + $f._array = _array; + $f._r = _r; + $f._struct = _struct; + $f._view = _view; + $f.err = err; + $f.fd = fd; + $f.l = l; + $f.level = level; + $f.opt = opt; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.SetsockoptLinger = SetsockoptLinger; + accept = function (s, rsa, addrlen) { + var _array, _r, _r$1, _struct, _tuple, _view, addrlen, e1, err, fd, r0, rsa, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _r$1 = $f._r$1; + _struct = $f._struct; + _tuple = $f._tuple; + _view = $f._view; + addrlen = $f.addrlen; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + r0 = $f.r0; + rsa = $f.rsa; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = 0; + err = $ifaceNil; + _r = funcPC(libc_accept_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _array = new Uint8Array(108); + _r$1 = syscall(_r, ((s >>> 0)), ((_array)), ((addrlen))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + fd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [fd, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: accept }; + } + $f._array = _array; + $f._r = _r; + $f._r$1 = _r$1; + $f._struct = _struct; + $f._tuple = _tuple; + $f._view = _view; + $f.addrlen = addrlen; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.r0 = r0; + $f.rsa = rsa; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_accept_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_accept_trampoline"); + }; + setsockopt = function (s, level, name, val, vallen) { + var _r, _r$1, _tuple, e1, err, level, name, s, val, vallen, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + level = $f.level; + name = $f.name; + s = $f.s; + val = $f.val; + vallen = $f.vallen; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_setsockopt_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall6(_r, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), (vallen), 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: setsockopt }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.level = level; + $f.name = name; + $f.s = s; + $f.val = val; + $f.vallen = vallen; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_setsockopt_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_setsockopt_trampoline"); + }; + Shutdown = function (s, how) { + var _r, _r$1, _tuple, e1, err, how, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + how = $f.how; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_shutdown_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((s >>> 0)), ((how >>> 0)), 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Shutdown }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.how = how; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Shutdown = Shutdown; + libc_shutdown_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_shutdown_trampoline"); + }; + recvfrom = function (fd, p, flags, from, fromlen) { + var _array, _p0, _r, _r$1, _struct, _tuple, _view, e1, err, fd, flags, from, fromlen, n, p, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _struct = $f._struct; + _tuple = $f._tuple; + _view = $f._view; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + flags = $f.flags; + from = $f.from; + fromlen = $f.fromlen; + n = $f.n; + p = $f.p; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } + else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_recvfrom_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _array = new Uint8Array(108); + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((flags >>> 0)), ((_array)), ((fromlen))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _struct = from, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Len = _view.getUint8(0, true), _struct.Addr.Family = _view.getUint8(1, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: recvfrom }; + } + $f._array = _array; + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._struct = _struct; + $f._tuple = _tuple; + $f._view = _view; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.flags = flags; + $f.from = from; + $f.fromlen = fromlen; + $f.n = n; + $f.p = p; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_recvfrom_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_recvfrom_trampoline"); + }; + sendto = function (s, buf, flags, to, addrlen) { + var _p0, _r, _r$1, _tuple, addrlen, buf, e1, err, flags, s, to, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + addrlen = $f.addrlen; + buf = $f.buf; + e1 = $f.e1; + err = $f.err; + flags = $f.flags; + s = $f.s; + to = $f.to; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } + else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_sendto_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall6(_r, ((s >>> 0)), (_p0), ((buf.$length >>> 0)), ((flags >>> 0)), (to), ((addrlen >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: sendto }; + } + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.addrlen = addrlen; + $f.buf = buf; + $f.e1 = e1; + $f.err = err; + $f.flags = flags; + $f.s = s; + $f.to = to; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_sendto_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_sendto_trampoline"); + }; + recvmsg = function (s, msg, flags) { + var _array, _r, _r$1, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _r$1 = $f._r$1; + _struct = $f._struct; + _tuple = $f._tuple; + _view = $f._view; + e1 = $f.e1; + err = $f.err; + flags = $f.flags; + msg = $f.msg; + n = $f.n; + r0 = $f.r0; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _r = funcPC(libc_recvmsg_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _array = new Uint8Array(36); + _r$1 = syscall(_r, ((s >>> 0)), ((_array)), ((flags >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: recvmsg }; + } + $f._array = _array; + $f._r = _r; + $f._r$1 = _r$1; + $f._struct = _struct; + $f._tuple = _tuple; + $f._view = _view; + $f.e1 = e1; + $f.err = err; + $f.flags = flags; + $f.msg = msg; + $f.n = n; + $f.r0 = r0; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_recvmsg_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_recvmsg_trampoline"); + }; + sendmsg = function (s, msg, flags) { + var _array, _r, _r$1, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _r$1 = $f._r$1; + _struct = $f._struct; + _tuple = $f._tuple; + _view = $f._view; + e1 = $f.e1; + err = $f.err; + flags = $f.flags; + msg = $f.msg; + n = $f.n; + r0 = $f.r0; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _r = funcPC(libc_sendmsg_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _array = new Uint8Array(36); + _r$1 = syscall(_r, ((s >>> 0)), ((_array)), ((flags >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = _view.getInt32(16, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 20, _array.buffer.byteLength)), _struct.Controllen = _view.getUint32(28, true), _struct.Flags = _view.getInt32(32, true); + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: sendmsg }; + } + $f._array = _array; + $f._r = _r; + $f._r$1 = _r$1; + $f._struct = _struct; + $f._tuple = _tuple; + $f._view = _view; + $f.e1 = e1; + $f.err = err; + $f.flags = flags; + $f.msg = msg; + $f.n = n; + $f.r0 = r0; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_sendmsg_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_sendmsg_trampoline"); + }; + fcntl = function (fd, cmd, arg) { + var _r, _r$1, _tuple, arg, cmd, e1, err, fd, r0, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + arg = $f.arg; + cmd = $f.cmd; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + r0 = $f.r0; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + val = 0; + err = $ifaceNil; + _r = funcPC(libc_fcntl_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), ((cmd >>> 0)), ((arg >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + val = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [val, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: fcntl }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.arg = arg; + $f.cmd = cmd; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.r0 = r0; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_fcntl_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_fcntl_trampoline"); + }; + libc_chdir_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_chdir_trampoline"); + }; + Close = function (fd) { + var _r, _r$1, _tuple, e1, err, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_close_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), 0, 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Close }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Close = Close; + libc_close_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_close_trampoline"); + }; + Dup = function (fd) { + var _r, _r$1, _tuple, e1, err, fd, nfd, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + nfd = $f.nfd; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + nfd = 0; + err = $ifaceNil; + _r = funcPC(libc_dup_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), 0, 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + nfd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [nfd, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Dup }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.nfd = nfd; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Dup = Dup; + libc_dup_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_dup_trampoline"); + }; + Fchdir = function (fd) { + var _r, _r$1, _tuple, e1, err, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_fchdir_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), 0, 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Fchdir }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Fchdir = Fchdir; + libc_fchdir_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_fchdir_trampoline"); + }; + Fchmod = function (fd, mode) { + var _r, _r$1, _tuple, e1, err, fd, mode, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + mode = $f.mode; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_fchmod_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), ((mode >>> 0)), 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Fchmod }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.mode = mode; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Fchmod = Fchmod; + libc_fchmod_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_fchmod_trampoline"); + }; + Fchown = function (fd, uid, gid) { + var _r, _r$1, _tuple, e1, err, fd, gid, uid, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + gid = $f.gid; + uid = $f.uid; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_fchown_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), ((uid >>> 0)), ((gid >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Fchown }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.gid = gid; + $f.uid = uid; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Fchown = Fchown; + libc_fchown_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_fchown_trampoline"); + }; + Ftruncate = function (fd, length) { + var _r, _r$1, _tuple, e1, err, fd, length, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + length = $f.length; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_ftruncate_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), ((length.$low >>> 0)), 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Ftruncate }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.length = length; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Ftruncate = Ftruncate; + libc_ftruncate_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_ftruncate_trampoline"); + }; + libc_getgid_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_getgid_trampoline"); + }; + libc_getpid_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_getpid_trampoline"); + }; + libc_getuid_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_getuid_trampoline"); + }; + libc_mkdir_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_mkdir_trampoline"); + }; + libc_open_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_open_trampoline"); + }; + Pread = function (fd, p, offset) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, offset, p, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + n = $f.n; + offset = $f.offset; + p = $f.p; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } + else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_pread_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Pread }; + } + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.offset = offset; + $f.p = p; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Pread = Pread; + libc_pread_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_pread_trampoline"); + }; + Pwrite = function (fd, p, offset) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, offset, p, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + n = $f.n; + offset = $f.offset; + p = $f.p; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } + else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_pwrite_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Pwrite }; + } + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.offset = offset; + $f.p = p; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Pwrite = Pwrite; + libc_pwrite_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_pwrite_trampoline"); + }; + read = function (fd, p) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, p, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + n = $f.n; + p = $f.p; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } + else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_read_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: read }; + } + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.p = p; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_read_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_read_trampoline"); + }; + libc_readlink_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_readlink_trampoline"); + }; + libc_rmdir_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_rmdir_trampoline"); + }; + Seek = function (fd, offset, whence) { + var _r, _r$1, _tuple, e1, err, fd, newoffset, offset, r0, whence, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + newoffset = $f.newoffset; + offset = $f.offset; + r0 = $f.r0; + whence = $f.whence; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + newoffset = new $Int64(0, 0); + err = $ifaceNil; + _r = funcPC(libc_lseek_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscallX(_r, ((fd >>> 0)), ((offset.$low >>> 0)), ((whence >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + newoffset = (new $Int64(0, r0.constructor === Number ? r0 : 1)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [newoffset, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Seek }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.newoffset = newoffset; + $f.offset = offset; + $f.r0 = r0; + $f.whence = whence; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Seek = Seek; + libc_lseek_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_lseek_trampoline"); + }; + libc_symlink_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_symlink_trampoline"); + }; + libc_unlink_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_unlink_trampoline"); + }; + write = function (fd, p) { + var _p0, _r, _r$1, _tuple, e1, err, fd, n, p, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + n = $f.n; + p = $f.p; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } + else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc_write_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: write }; + } + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.p = p; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_write_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_write_trampoline"); + }; + mmap = function (addr, length, prot, flag, fd, pos) { + var _r, _r$1, _tuple, addr, e1, err, fd, flag, length, pos, prot, r0, ret, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + addr = $f.addr; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + flag = $f.flag; + length = $f.length; + pos = $f.pos; + prot = $f.prot; + r0 = $f.r0; + ret = $f.ret; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + ret = 0; + err = $ifaceNil; + _r = funcPC(libc_mmap_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall6X(_r, (addr), (length), ((prot >>> 0)), ((flag >>> 0)), ((fd >>> 0)), ((pos.$low >>> 0))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + ret = (r0); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [ret, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: mmap }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.addr = addr; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.flag = flag; + $f.length = length; + $f.pos = pos; + $f.prot = prot; + $f.r0 = r0; + $f.ret = ret; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_mmap_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_mmap_trampoline"); + }; + munmap = function (addr, length) { + var _r, _r$1, _tuple, addr, e1, err, length, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + addr = $f.addr; + e1 = $f.e1; + err = $f.err; + length = $f.length; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_munmap_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall(_r, (addr), (length), 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: munmap }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.addr = addr; + $f.e1 = e1; + $f.err = err; + $f.length = length; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_munmap_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_munmap_trampoline"); + }; + execve = function (path, argv, envp) { + var _r, _r$1, _tuple, argv, e1, envp, err, path, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + argv = $f.argv; + e1 = $f.e1; + envp = $f.envp; + err = $f.err; + path = $f.path; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_execve_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = rawSyscall(_r, ((path)), ((argv)), ((envp))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: execve }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.argv = argv; + $f.e1 = e1; + $f.envp = envp; + $f.err = err; + $f.path = path; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + libc_execve_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_execve_trampoline"); + }; + Fstat = function (fd, stat) { + var _array, _r, _r$1, _struct, _tuple, _view, e1, err, fd, stat, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _r = $f._r; + _r$1 = $f._r$1; + _struct = $f._struct; + _tuple = $f._tuple; + _view = $f._view; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + stat = $f.stat; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _r = funcPC(libc_fstat64_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _array = new Uint8Array(144); + _r$1 = syscall(_r, ((fd >>> 0)), ((_array)), 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); + _tuple = _r$1; + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Fstat }; + } + $f._array = _array; + $f._r = _r; + $f._r$1 = _r$1; + $f._struct = _struct; + $f._tuple = _tuple; + $f._view = _view; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.stat = stat; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Fstat = Fstat; + libc_fstat64_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_fstat64_trampoline"); + }; + Getdirentries = function (fd, buf, basep) { + var _p0, _r, _r$1, _tuple, basep, buf, e1, err, fd, n, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + basep = $f.basep; + buf = $f.buf; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + n = $f.n; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } + else { + _p0 = (new Uint8Array(0)); + } + _r = funcPC(libc___getdirentries64_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = syscall6(_r, ((fd >>> 0)), (_p0), ((buf.$length >>> 0)), ((basep)), 0, 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Getdirentries }; + } + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.basep = basep; + $f.buf = buf; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.n = n; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Getdirentries = Getdirentries; + libc___getdirentries64_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc___getdirentries64_trampoline"); + }; + Lstat = function (path, stat) { + var _array, _p0, _r, _r$1, _struct, _tuple, _tuple$1, _view, e1, err, path, stat, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _array = $f._array; + _p0 = $f._p0; + _r = $f._r; + _r$1 = $f._r$1; + _struct = $f._struct; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + _view = $f._view; + e1 = $f.e1; + err = $f.err; + path = $f.path; + stat = $f.stat; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + err = $ifaceNil; + _p0 = ptrType$2.nil; + _tuple = BytePtrFromString(path); + _p0 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r = funcPC(libc_lstat64_trampoline); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _array = new Uint8Array(144); + _r$1 = syscall(_r, ((_p0)), ((_array)), 0); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = _view.getInt32(0, true), _struct.Mode = _view.getUint16(4, true), _struct.Nlink = _view.getUint16(6, true), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Uid = _view.getUint32(16, true), _struct.Gid = _view.getUint32(20, true), _struct.Rdev = _view.getInt32(24, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 28, _array.buffer.byteLength)), _struct.Atimespec.Sec = new $Int64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Atimespec.Nsec = new $Int64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Mtimespec.Sec = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Mtimespec.Nsec = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Ctimespec.Sec = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Ctimespec.Nsec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Birthtimespec.Sec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Birthtimespec.Nsec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Size = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Blocks = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Blksize = _view.getInt32(112, true), _struct.Flags = _view.getUint32(116, true), _struct.Gen = _view.getUint32(120, true), _struct.Lspare = _view.getInt32(124, true), _struct.Qspare = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 128, _array.buffer.byteLength)); + _tuple$1 = _r$1; + e1 = _tuple$1[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Lstat }; + } + $f._array = _array; + $f._p0 = _p0; + $f._r = _r; + $f._r$1 = _r$1; + $f._struct = _struct; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f._view = _view; + $f.e1 = e1; + $f.err = err; + $f.path = path; + $f.stat = stat; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Lstat = Lstat; + libc_lstat64_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_lstat64_trampoline"); + }; + libc_stat64_trampoline = function () { + $throwRuntimeError("native function not implemented: syscall.libc_stat64_trampoline"); + }; + ptrType$12.methods = [{ prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false) }]; + ptrType$28.methods = [{ prop: "Mmap", name: "Mmap", pkg: "", typ: $funcType([$Int, $Int64, $Int, $Int, $Int], [sliceType, $error], false) }, { prop: "Munmap", name: "Munmap", pkg: "", typ: $funcType([sliceType], [$error], false) }]; + Errno.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false) }]; + ptrType$29.methods = [{ prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false) }]; + ptrType$30.methods = [{ prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false) }]; + ptrType$31.methods = [{ prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false) }]; + ptrType$32.methods = [{ prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64, $Int64], false) }, { prop: "Nano", name: "Nano", pkg: "", typ: $funcType([], [$Int64], false) }]; + ptrType$19.methods = [{ prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false) }]; + ptrType$33.methods = [{ prop: "SetControllen", name: "SetControllen", pkg: "", typ: $funcType([$Int], [], false) }]; + RawConn.init([{ prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType], [$error], false) }, { prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$1], [$error], false) }, { prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$1], [$error], false) }]); + SockaddrDatalink.init("syscall", [{ prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Index", name: "Index", embedded: false, exported: true, typ: $Uint16, tag: "" }, { prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Nlen", name: "Nlen", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Alen", name: "Alen", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Slen", name: "Slen", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$3, tag: "" }, { prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrDatalink, tag: "" }]); + mmapper.init("syscall", [{ prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: "" }, { prop: "active", name: "active", embedded: false, exported: false, typ: mapType, tag: "" }, { prop: "mmap", name: "mmap", embedded: false, exported: false, typ: funcType$2, tag: "" }, { prop: "munmap", name: "munmap", embedded: false, exported: false, typ: funcType$3, tag: "" }]); + Sockaddr.init([{ prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false) }]); + SockaddrInet4.init("syscall", [{ prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: "" }, { prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: "" }, { prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet4, tag: "" }]); + SockaddrInet6.init("syscall", [{ prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: "" }, { prop: "ZoneId", name: "ZoneId", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType, tag: "" }, { prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet6, tag: "" }]); + SockaddrUnix.init("syscall", [{ prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrUnix, tag: "" }]); + Timespec.init("", [{ prop: "Sec", name: "Sec", embedded: false, exported: true, typ: $Int64, tag: "" }, { prop: "Nsec", name: "Nsec", embedded: false, exported: true, typ: $Int64, tag: "" }]); + Stat_t.init("", [{ prop: "Dev", name: "Dev", embedded: false, exported: true, typ: $Int32, tag: "" }, { prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint16, tag: "" }, { prop: "Nlink", name: "Nlink", embedded: false, exported: true, typ: $Uint16, tag: "" }, { prop: "Ino", name: "Ino", embedded: false, exported: true, typ: $Uint64, tag: "" }, { prop: "Uid", name: "Uid", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Gid", name: "Gid", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Rdev", name: "Rdev", embedded: false, exported: true, typ: $Int32, tag: "" }, { prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$1, tag: "" }, { prop: "Atimespec", name: "Atimespec", embedded: false, exported: true, typ: Timespec, tag: "" }, { prop: "Mtimespec", name: "Mtimespec", embedded: false, exported: true, typ: Timespec, tag: "" }, { prop: "Ctimespec", name: "Ctimespec", embedded: false, exported: true, typ: Timespec, tag: "" }, { prop: "Birthtimespec", name: "Birthtimespec", embedded: false, exported: true, typ: Timespec, tag: "" }, { prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: "" }, { prop: "Blocks", name: "Blocks", embedded: false, exported: true, typ: $Int64, tag: "" }, { prop: "Blksize", name: "Blksize", embedded: false, exported: true, typ: $Int32, tag: "" }, { prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Gen", name: "Gen", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Lspare", name: "Lspare", embedded: false, exported: true, typ: $Int32, tag: "" }, { prop: "Qspare", name: "Qspare", embedded: false, exported: true, typ: arrayType$15, tag: "" }]); + RawSockaddrInet4.init("", [{ prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: "" }, { prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: "" }, { prop: "Zero", name: "Zero", embedded: false, exported: true, typ: arrayType$6, tag: "" }]); + RawSockaddrInet6.init("", [{ prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: "" }, { prop: "Flowinfo", name: "Flowinfo", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType, tag: "" }, { prop: "Scope_id", name: "Scope_id", embedded: false, exported: true, typ: $Uint32, tag: "" }]); + RawSockaddrUnix.init("", [{ prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Path", name: "Path", embedded: false, exported: true, typ: arrayType$11, tag: "" }]); + RawSockaddrDatalink.init("", [{ prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Index", name: "Index", embedded: false, exported: true, typ: $Uint16, tag: "" }, { prop: "Type", name: "Type", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Nlen", name: "Nlen", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Alen", name: "Alen", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Slen", name: "Slen", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$3, tag: "" }]); + RawSockaddr.init("", [{ prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint8, tag: "" }, { prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$4, tag: "" }]); + RawSockaddrAny.init("", [{ prop: "Addr", name: "Addr", embedded: false, exported: true, typ: RawSockaddr, tag: "" }, { prop: "Pad", name: "Pad", embedded: false, exported: true, typ: arrayType$5, tag: "" }]); + Linger.init("", [{ prop: "Onoff", name: "Onoff", embedded: false, exported: true, typ: $Int32, tag: "" }, { prop: "Linger", name: "Linger", embedded: false, exported: true, typ: $Int32, tag: "" }]); + Iovec.init("", [{ prop: "Base", name: "Base", embedded: false, exported: true, typ: ptrType$2, tag: "" }, { prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint64, tag: "" }]); + IPMreq.init("", [{ prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$1, tag: "" }, { prop: "Interface", name: "Interface", embedded: false, exported: true, typ: arrayType$1, tag: "" }]); + IPv6Mreq.init("", [{ prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType, tag: "" }, { prop: "Interface", name: "Interface", embedded: false, exported: true, typ: $Uint32, tag: "" }]); + Msghdr.init("", [{ prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$2, tag: "" }, { prop: "Namelen", name: "Namelen", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$1, tag: "" }, { prop: "Iov", name: "Iov", embedded: false, exported: true, typ: ptrType$19, tag: "" }, { prop: "Iovlen", name: "Iovlen", embedded: false, exported: true, typ: $Int32, tag: "" }, { prop: "Pad_cgo_1", name: "Pad_cgo_1", embedded: false, exported: true, typ: arrayType$1, tag: "" }, { prop: "Control", name: "Control", embedded: false, exported: true, typ: ptrType$2, tag: "" }, { prop: "Controllen", name: "Controllen", embedded: false, exported: true, typ: $Uint32, tag: "" }, { prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Int32, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = js.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = race.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = runtime.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sync.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + lineBuffer = sliceType.nil; + syscallModule = null; + $pkg.ForkLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0); + execveDarwin = $throwNilPointerError; + freebsdConfArch = ""; + ioSync = new $Int64(0, 0); + warningPrinted = false; + alreadyTriedToLoad = false; + minusOne = -1; + envs = runtime_envs(); + $pkg.Stdin = 0; + $pkg.Stdout = 1; + $pkg.Stderr = 2; + errEAGAIN = new Errno(35); + errEINVAL = new Errno(22); + errENOENT = new Errno(2); + errors$1 = $toNativeArray($kindString, ["", "operation not permitted", "no such file or directory", "no such process", "interrupted system call", "input/output error", "device not configured", "argument list too long", "exec format error", "bad file descriptor", "no child processes", "resource deadlock avoided", "cannot allocate memory", "permission denied", "bad address", "block device required", "resource busy", "file exists", "cross-device link", "operation not supported by device", "not a directory", "is a directory", "invalid argument", "too many open files in system", "too many open files", "inappropriate ioctl for device", "text file busy", "file too large", "no space left on device", "illegal seek", "read-only file system", "too many links", "broken pipe", "numerical argument out of domain", "result too large", "resource temporarily unavailable", "operation now in progress", "operation already in progress", "socket operation on non-socket", "destination address required", "message too long", "protocol wrong type for socket", "protocol not available", "protocol not supported", "socket type not supported", "operation not supported", "protocol family not supported", "address family not supported by protocol family", "address already in use", "can't assign requested address", "network is down", "network is unreachable", "network dropped connection on reset", "software caused connection abort", "connection reset by peer", "no buffer space available", "socket is already connected", "socket is not connected", "can't send after socket shutdown", "too many references: can't splice", "operation timed out", "connection refused", "too many levels of symbolic links", "file name too long", "host is down", "no route to host", "directory not empty", "too many processes", "too many users", "disc quota exceeded", "stale NFS file handle", "too many levels of remote in path", "RPC struct is bad", "RPC version wrong", "RPC prog. not avail", "program version wrong", "bad procedure for program", "no locks available", "function not implemented", "inappropriate file type or format", "authentication error", "need authenticator", "device power is off", "device error", "value too large to be stored in data type", "bad executable (or shared library)", "bad CPU type in executable", "shared library version mismatch", "malformed Mach-o file", "operation canceled", "identifier removed", "no message of desired type", "illegal byte sequence", "attribute not found", "bad message", "EMULTIHOP (Reserved)", "no message available on STREAM", "ENOLINK (Reserved)", "no STREAM resources", "not a STREAM", "protocol error", "STREAM ioctl timeout", "operation not supported on socket", "policy not found", "state not recoverable", "previous owner died"]); + mapper = new mmapper.ptr(new sync.Mutex.ptr(0, 0), {}, mmap, munmap); + minRoutingSockaddrLen = rsaAlignOf(0); + init(); + init$1(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["github.com/gopherjs/gopherjs/nosync"] = (function () { + var $pkg = {}, $init, Once, funcType$1, ptrType$4; + Once = $pkg.Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function (doing_, done_) { + this.$val = this; + if (arguments.length === 0) { + this.doing = false; + this.done = false; + return; + } + this.doing = doing_; + this.done = done_; + }); + funcType$1 = $funcType([], [], false); + ptrType$4 = $ptrType(Once); + Once.ptr.prototype.Do = function (f) { + var f, o, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + o = $f.o; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + o = [o]; + o[0] = this; + if (o[0].done) { + $s = -1; + return; + } + if (o[0].doing) { + $panic(new $String("nosync: Do called within f")); + } + o[0].doing = true; + $deferred.push([(function (o) { + return function () { + o[0].doing = false; + o[0].done = true; + }; + })(o), []]); + $r = f(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: Once.ptr.prototype.Do }; + } + $f.f = f; + $f.o = o; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + Once.prototype.Do = function (f) { return this.$val.Do(f); }; + ptrType$4.methods = [{ prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false) }]; + Once.init("github.com/gopherjs/gopherjs/nosync", [{ prop: "doing", name: "doing", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["time"] = (function () { + var $pkg = {}, $init, errors, js, nosync, runtime, syscall, ParseError, Time, Month, Weekday, Duration, Location, zone, zoneTrans, sliceType, sliceType$1, ptrType, sliceType$2, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, arrayType$3, ptrType$4, ptrType$7, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, unitMap, months, days, daysBefore, startNano, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, x, init, initLocal, runtimeNano, indexByte, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, parseNanoseconds, leadingInt, leadingFraction, ParseDuration, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, unixTime, Unix, isLeap, norm, Date, div, FixedZone; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + runtime = $packages["runtime"]; + syscall = $packages["syscall"]; + ParseError = $pkg.ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function (Layout_, Value_, LayoutElem_, ValueElem_, Message_) { + this.$val = this; + if (arguments.length === 0) { + this.Layout = ""; + this.Value = ""; + this.LayoutElem = ""; + this.ValueElem = ""; + this.Message = ""; + return; + } + this.Layout = Layout_; + this.Value = Value_; + this.LayoutElem = LayoutElem_; + this.ValueElem = ValueElem_; + this.Message = Message_; + }); + Time = $pkg.Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function (wall_, ext_, loc_) { + this.$val = this; + if (arguments.length === 0) { + this.wall = new $Uint64(0, 0); + this.ext = new $Int64(0, 0); + this.loc = ptrType$2.nil; + return; + } + this.wall = wall_; + this.ext = ext_; + this.loc = loc_; + }); + Month = $pkg.Month = $newType(4, $kindInt, "time.Month", true, "time", true, null); + Weekday = $pkg.Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null); + Duration = $pkg.Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null); + Location = $pkg.Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function (name_, zone_, tx_, cacheStart_, cacheEnd_, cacheZone_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.zone = sliceType.nil; + this.tx = sliceType$1.nil; + this.cacheStart = new $Int64(0, 0); + this.cacheEnd = new $Int64(0, 0); + this.cacheZone = ptrType.nil; + return; + } + this.name = name_; + this.zone = zone_; + this.tx = tx_; + this.cacheStart = cacheStart_; + this.cacheEnd = cacheEnd_; + this.cacheZone = cacheZone_; + }); + zone = $pkg.zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function (name_, offset_, isDST_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.offset = 0; + this.isDST = false; + return; + } + this.name = name_; + this.offset = offset_; + this.isDST = isDST_; + }); + zoneTrans = $pkg.zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function (when_, index_, isstd_, isutc_) { + this.$val = this; + if (arguments.length === 0) { + this.when = new $Int64(0, 0); + this.index = 0; + this.isstd = false; + this.isutc = false; + return; + } + this.when = when_; + this.index = index_; + this.isstd = isstd_; + this.isutc = isutc_; + }); + sliceType = $sliceType(zone); + sliceType$1 = $sliceType(zoneTrans); + ptrType = $ptrType(zone); + sliceType$2 = $sliceType($String); + arrayType = $arrayType($Uint8, 20); + sliceType$3 = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 9); + arrayType$2 = $arrayType($Uint8, 64); + ptrType$2 = $ptrType(Location); + arrayType$3 = $arrayType($Uint8, 32); + ptrType$4 = $ptrType(ParseError); + ptrType$7 = $ptrType(Time); + init = function () { + $unused(Unix(new $Int64(0, 0), new $Int64(0, 0))); + }; + initLocal = function () { + var d, i, j, s; + d = new ($global.Date)(); + s = $internalize(d, $String); + i = indexByte(s, 40); + j = indexByte(s, 41); + if ((i === -1) || (j === -1)) { + localLoc.name = "UTC"; + return; + } + localLoc.name = $substring(s, (i + 1 >> 0), j); + localLoc.zone = new sliceType([new zone.ptr(localLoc.name, $imul(($parseInt(d.getTimezoneOffset()) >> 0), -60), false)]); + }; + runtimeNano = function () { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + indexByte = function (s, c) { + var c, s; + return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; + }; + startsWithLowerCase = function (str) { + var c, str; + if (str.length === 0) { + return false; + } + c = str.charCodeAt(0); + return 97 <= c && c <= 122; + }; + nextStdChunk = function (layout) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$9, c, ch, i, j, layout, prefix, std, std$1, suffix, x$1; + prefix = ""; + std = 0; + suffix = ""; + i = 0; + while (true) { + if (!(i < layout.length)) { + break; + } + c = ((layout.charCodeAt(i) >> 0)); + _1 = c; + if (_1 === (74)) { + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") { + _tmp = $substring(layout, 0, i); + _tmp$1 = 257; + _tmp$2 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp; + std = _tmp$1; + suffix = _tmp$2; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$3 = $substring(layout, 0, i); + _tmp$4 = 258; + _tmp$5 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$3; + std = _tmp$4; + suffix = _tmp$5; + return [prefix, std, suffix]; + } + } + } + else if (_1 === (77)) { + if (layout.length >= (i + 3 >> 0)) { + if ($substring(layout, i, (i + 3 >> 0)) === "Mon") { + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") { + _tmp$6 = $substring(layout, 0, i); + _tmp$7 = 261; + _tmp$8 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$6; + std = _tmp$7; + suffix = _tmp$8; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$9 = $substring(layout, 0, i); + _tmp$10 = 262; + _tmp$11 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$9; + std = _tmp$10; + suffix = _tmp$11; + return [prefix, std, suffix]; + } + } + if ($substring(layout, i, (i + 3 >> 0)) === "MST") { + _tmp$12 = $substring(layout, 0, i); + _tmp$13 = 21; + _tmp$14 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$12; + std = _tmp$13; + suffix = _tmp$14; + return [prefix, std, suffix]; + } + } + } + else if (_1 === (48)) { + if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) { + _tmp$15 = $substring(layout, 0, i); + _tmp$16 = (x$1 = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x$1 < 0 || x$1 >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x$1])); + _tmp$17 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$15; + std = _tmp$16; + suffix = _tmp$17; + return [prefix, std, suffix]; + } + } + else if (_1 === (49)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) { + _tmp$18 = $substring(layout, 0, i); + _tmp$19 = 522; + _tmp$20 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$18; + std = _tmp$19; + suffix = _tmp$20; + return [prefix, std, suffix]; + } + _tmp$21 = $substring(layout, 0, i); + _tmp$22 = 259; + _tmp$23 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$21; + std = _tmp$22; + suffix = _tmp$23; + return [prefix, std, suffix]; + } + else if (_1 === (50)) { + if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") { + _tmp$24 = $substring(layout, 0, i); + _tmp$25 = 273; + _tmp$26 = $substring(layout, (i + 4 >> 0)); + prefix = _tmp$24; + std = _tmp$25; + suffix = _tmp$26; + return [prefix, std, suffix]; + } + _tmp$27 = $substring(layout, 0, i); + _tmp$28 = 263; + _tmp$29 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$27; + std = _tmp$28; + suffix = _tmp$29; + return [prefix, std, suffix]; + } + else if (_1 === (95)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) { + if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") { + _tmp$30 = $substring(layout, 0, (i + 1 >> 0)); + _tmp$31 = 273; + _tmp$32 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$30; + std = _tmp$31; + suffix = _tmp$32; + return [prefix, std, suffix]; + } + _tmp$33 = $substring(layout, 0, i); + _tmp$34 = 264; + _tmp$35 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$33; + std = _tmp$34; + suffix = _tmp$35; + return [prefix, std, suffix]; + } + } + else if (_1 === (51)) { + _tmp$36 = $substring(layout, 0, i); + _tmp$37 = 523; + _tmp$38 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$36; + std = _tmp$37; + suffix = _tmp$38; + return [prefix, std, suffix]; + } + else if (_1 === (52)) { + _tmp$39 = $substring(layout, 0, i); + _tmp$40 = 525; + _tmp$41 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$39; + std = _tmp$40; + suffix = _tmp$41; + return [prefix, std, suffix]; + } + else if (_1 === (53)) { + _tmp$42 = $substring(layout, 0, i); + _tmp$43 = 527; + _tmp$44 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$42; + std = _tmp$43; + suffix = _tmp$44; + return [prefix, std, suffix]; + } + else if (_1 === (80)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) { + _tmp$45 = $substring(layout, 0, i); + _tmp$46 = 531; + _tmp$47 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$45; + std = _tmp$46; + suffix = _tmp$47; + return [prefix, std, suffix]; + } + } + else if (_1 === (112)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) { + _tmp$48 = $substring(layout, 0, i); + _tmp$49 = 532; + _tmp$50 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$48; + std = _tmp$49; + suffix = _tmp$50; + return [prefix, std, suffix]; + } + } + else if (_1 === (45)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") { + _tmp$51 = $substring(layout, 0, i); + _tmp$52 = 28; + _tmp$53 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$51; + std = _tmp$52; + suffix = _tmp$53; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") { + _tmp$54 = $substring(layout, 0, i); + _tmp$55 = 31; + _tmp$56 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$54; + std = _tmp$55; + suffix = _tmp$56; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") { + _tmp$57 = $substring(layout, 0, i); + _tmp$58 = 27; + _tmp$59 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$57; + std = _tmp$58; + suffix = _tmp$59; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") { + _tmp$60 = $substring(layout, 0, i); + _tmp$61 = 30; + _tmp$62 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$60; + std = _tmp$61; + suffix = _tmp$62; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") { + _tmp$63 = $substring(layout, 0, i); + _tmp$64 = 29; + _tmp$65 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$63; + std = _tmp$64; + suffix = _tmp$65; + return [prefix, std, suffix]; + } + } + else if (_1 === (90)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") { + _tmp$66 = $substring(layout, 0, i); + _tmp$67 = 23; + _tmp$68 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$66; + std = _tmp$67; + suffix = _tmp$68; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") { + _tmp$69 = $substring(layout, 0, i); + _tmp$70 = 26; + _tmp$71 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$69; + std = _tmp$70; + suffix = _tmp$71; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") { + _tmp$72 = $substring(layout, 0, i); + _tmp$73 = 22; + _tmp$74 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$72; + std = _tmp$73; + suffix = _tmp$74; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") { + _tmp$75 = $substring(layout, 0, i); + _tmp$76 = 25; + _tmp$77 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$75; + std = _tmp$76; + suffix = _tmp$77; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") { + _tmp$78 = $substring(layout, 0, i); + _tmp$79 = 24; + _tmp$80 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$78; + std = _tmp$79; + suffix = _tmp$80; + return [prefix, std, suffix]; + } + } + else if (_1 === (46)) { + if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) { + ch = layout.charCodeAt((i + 1 >> 0)); + j = i + 1 >> 0; + while (true) { + if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { + break; + } + j = j + (1) >> 0; + } + if (!isDigit(layout, j)) { + std$1 = 32; + if (layout.charCodeAt((i + 1 >> 0)) === 57) { + std$1 = 33; + } + std$1 = std$1 | ((((j - ((i + 1 >> 0)) >> 0)) << 16 >> 0)); + _tmp$81 = $substring(layout, 0, i); + _tmp$82 = std$1; + _tmp$83 = $substring(layout, j); + prefix = _tmp$81; + std = _tmp$82; + suffix = _tmp$83; + return [prefix, std, suffix]; + } + } + } + i = i + (1) >> 0; + } + _tmp$84 = layout; + _tmp$85 = 0; + _tmp$86 = ""; + prefix = _tmp$84; + std = _tmp$85; + suffix = _tmp$86; + return [prefix, std, suffix]; + }; + match = function (s1, s2) { + var c1, c2, i, s1, s2; + i = 0; + while (true) { + if (!(i < s1.length)) { + break; + } + c1 = s1.charCodeAt(i); + c2 = s2.charCodeAt(i); + if (!((c1 === c2))) { + c1 = (c1 | (32)) >>> 0; + c2 = (c2 | (32)) >>> 0; + if (!((c1 === c2)) || c1 < 97 || c1 > 122) { + return false; + } + } + i = i + (1) >> 0; + } + return true; + }; + lookup = function (tab, val) { + var _i, _ref, i, tab, v, val; + _ref = tab; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (val.length >= v.length && match($substring(val, 0, v.length), v)) { + return [i, $substring(val, v.length), $ifaceNil]; + } + _i++; + } + return [-1, val, errBad]; + }; + appendInt = function (b, x$1, width) { + var _q, b, buf, i, q, u, w, width, x$1; + u = ((x$1 >>> 0)); + if (x$1 < 0) { + b = $append(b, 45); + u = ((-x$1 >>> 0)); + } + buf = arrayType.zero(); + i = 20; + while (true) { + if (!(u >= 10)) { + break; + } + i = i - (1) >> 0; + q = (_q = u / 10, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24))); + u = q; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24))); + w = 20 - i >> 0; + while (true) { + if (!(w < width)) { + break; + } + b = $append(b, 48); + w = w + (1) >> 0; + } + return $appendSlice(b, $subslice(new sliceType$3(buf), i)); + }; + atoi = function (s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x$1; + x$1 = 0; + err = $ifaceNil; + neg = false; + if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) { + neg = s.charCodeAt(0) === 45; + s = $substring(s, 1); + } + _tuple = leadingInt(s); + q = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + x$1 = (((q.$low + ((q.$high >> 31) * 4294967296)) >> 0)); + if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) { + _tmp = 0; + _tmp$1 = atoiError; + x$1 = _tmp; + err = _tmp$1; + return [x$1, err]; + } + if (neg) { + x$1 = -x$1; + } + _tmp$2 = x$1; + _tmp$3 = $ifaceNil; + x$1 = _tmp$2; + err = _tmp$3; + return [x$1, err]; + }; + formatNano = function (b, nanosec, n, trim) { + var _q, _r, b, buf, n, nanosec, start, trim, u, x$1; + u = nanosec; + buf = arrayType$1.zero(); + start = 9; + while (true) { + if (!(start > 0)) { + break; + } + start = start - (1) >> 0; + ((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r = u % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + u = (_q = u / (10), (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + if (n > 9) { + n = 9; + } + if (trim) { + while (true) { + if (!(n > 0 && ((x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$1])) === 48))) { + break; + } + n = n - (1) >> 0; + } + if (n === 0) { + return b; + } + } + b = $append(b, 46); + return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n)); + }; + Time.ptr.prototype.String = function () { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + buf = $f.buf; + m0 = $f.m0; + m1 = $f.m1; + m2 = $f.m2; + s = $f.s; + sign = $f.sign; + t = $f.t; + wid = $f.wid; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + s = _r; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + m2 = ((x$3 = t.ext, new $Uint64(x$3.$high, x$3.$low))); + sign = 43; + if ((x$4 = t.ext, (x$4.$high < 0 || (x$4.$high === 0 && x$4.$low < 0)))) { + sign = 45; + m2 = new $Uint64(-m2.$high, -m2.$low); + } + _tmp = $div64(m2, new $Uint64(0, 1000000000), false); + _tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true); + m1 = _tmp; + m2 = _tmp$1; + _tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false); + _tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true); + m0 = _tmp$2; + m1 = _tmp$3; + buf = sliceType$3.nil; + buf = $appendSlice(buf, " m="); + buf = $append(buf, sign); + wid = 0; + if (!((m0.$high === 0 && m0.$low === 0))) { + buf = appendInt(buf, ((m0.$low >> 0)), 0); + wid = 9; + } + buf = appendInt(buf, ((m1.$low >> 0)), wid); + buf = $append(buf, 46); + buf = appendInt(buf, ((m2.$low >> 0)), 9); + s = s + (($bytesToString(buf))); + } + $s = -1; + return s; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.String }; + } + $f._r = _r; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f.buf = buf; + $f.m0 = m0; + $f.m1 = m1; + $f.m2 = m2; + $f.s = s; + $f.sign = sign; + $f.t = t; + $f.wid = wid; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.String = function () { return this.$val.String(); }; + Time.ptr.prototype.Format = function (layout) { + var _r, b, buf, layout, max, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + b = $f.b; + buf = $f.buf; + layout = $f.layout; + max = $f.max; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + b = sliceType$3.nil; + max = layout.length + 10 >> 0; + if (max < 64) { + buf = arrayType$2.zero(); + b = $subslice(new sliceType$3(buf), 0, 0); + } + else { + b = $makeSlice(sliceType$3, 0, max); + } + _r = $clone(t, Time).AppendFormat(b, layout); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + b = _r; + $s = -1; + return ($bytesToString(b)); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Format }; + } + $f._r = _r; + $f.b = b; + $f.buf = buf; + $f.layout = layout; + $f.max = max; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Format = function (layout) { return this.$val.Format(layout); }; + Time.ptr.prototype.AppendFormat = function (b, layout) { + var _1, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, year, zone$1, zone$2, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _q = $f._q; + _q$1 = $f._q$1; + _q$2 = $f._q$2; + _q$3 = $f._q$3; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + _tuple$2 = $f._tuple$2; + _tuple$3 = $f._tuple$3; + abs = $f.abs; + absoffset = $f.absoffset; + b = $f.b; + day = $f.day; + hour = $f.hour; + hr = $f.hr; + hr$1 = $f.hr$1; + layout = $f.layout; + m = $f.m; + min = $f.min; + month = $f.month; + name = $f.name; + offset = $f.offset; + prefix = $f.prefix; + s = $f.s; + sec = $f.sec; + std = $f.std; + suffix = $f.suffix; + t = $f.t; + y = $f.y; + year = $f.year; + zone$1 = $f.zone$1; + zone$2 = $f.zone$2; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).locabs(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + abs = _tuple[2]; + year = -1; + month = 0; + day = 0; + hour = -1; + min = 0; + sec = 0; + while (true) { + if (!(!(layout === ""))) { + break; + } + _tuple$1 = nextStdChunk(layout); + prefix = _tuple$1[0]; + std = _tuple$1[1]; + suffix = _tuple$1[2]; + if (!(prefix === "")) { + b = $appendSlice(b, prefix); + } + if (std === 0) { + break; + } + layout = suffix; + if (year < 0 && !(((std & 256) === 0))) { + _tuple$2 = absDate(abs, true); + year = _tuple$2[0]; + month = _tuple$2[1]; + day = _tuple$2[2]; + } + if (hour < 0 && !(((std & 512) === 0))) { + _tuple$3 = absClock(abs); + hour = _tuple$3[0]; + min = _tuple$3[1]; + sec = _tuple$3[2]; + } + switch (0) { + default: + _1 = std & 65535; + if (_1 === (274)) { + y = year; + if (y < 0) { + y = -y; + } + b = appendInt(b, (_r$1 = y % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), 2); + } + else if (_1 === (273)) { + b = appendInt(b, year, 4); + } + else if (_1 === (258)) { + b = $appendSlice(b, $substring(new Month(month).String(), 0, 3)); + } + else if (_1 === (257)) { + m = new Month(month).String(); + b = $appendSlice(b, m); + } + else if (_1 === (259)) { + b = appendInt(b, ((month >> 0)), 0); + } + else if (_1 === (260)) { + b = appendInt(b, ((month >> 0)), 2); + } + else if (_1 === (262)) { + b = $appendSlice(b, $substring(new Weekday(absWeekday(abs)).String(), 0, 3)); + } + else if (_1 === (261)) { + s = new Weekday(absWeekday(abs)).String(); + b = $appendSlice(b, s); + } + else if (_1 === (263)) { + b = appendInt(b, day, 0); + } + else if (_1 === (264)) { + if (day < 10) { + b = $append(b, 32); + } + b = appendInt(b, day, 0); + } + else if (_1 === (265)) { + b = appendInt(b, day, 2); + } + else if (_1 === (522)) { + b = appendInt(b, hour, 2); + } + else if (_1 === (523)) { + hr = (_r$2 = hour % 12, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); + if (hr === 0) { + hr = 12; + } + b = appendInt(b, hr, 0); + } + else if (_1 === (524)) { + hr$1 = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (hr$1 === 0) { + hr$1 = 12; + } + b = appendInt(b, hr$1, 2); + } + else if (_1 === (525)) { + b = appendInt(b, min, 0); + } + else if (_1 === (526)) { + b = appendInt(b, min, 2); + } + else if (_1 === (527)) { + b = appendInt(b, sec, 0); + } + else if (_1 === (528)) { + b = appendInt(b, sec, 2); + } + else if (_1 === (531)) { + if (hour >= 12) { + b = $appendSlice(b, "PM"); + } + else { + b = $appendSlice(b, "AM"); + } + } + else if (_1 === (532)) { + if (hour >= 12) { + b = $appendSlice(b, "pm"); + } + else { + b = $appendSlice(b, "am"); + } + } + else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (30)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31))) { + if ((offset === 0) && ((std === 22) || (std === 25) || (std === 23) || (std === 24) || (std === 26))) { + b = $append(b, 90); + break; + } + zone$1 = (_q = offset / 60, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + absoffset = offset; + if (zone$1 < 0) { + b = $append(b, 45); + zone$1 = -zone$1; + absoffset = -absoffset; + } + else { + b = $append(b, 43); + } + b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + if ((std === 25) || (std === 30) || (std === 26) || (std === 31)) { + b = $append(b, 58); + } + if (!((std === 29)) && !((std === 24))) { + b = appendInt(b, (_r$4 = zone$1 % 60, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")), 2); + } + if ((std === 23) || (std === 28) || (std === 31) || (std === 26)) { + if ((std === 31) || (std === 26)) { + b = $append(b, 58); + } + b = appendInt(b, (_r$5 = absoffset % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2); + } + } + else if (_1 === (21)) { + if (!(name === "")) { + b = $appendSlice(b, name); + break; + } + zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1 / 0 && _q$2 !== -1 / 0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); + if (zone$2 < 0) { + b = $append(b, 45); + zone$2 = -zone$2; + } + else { + b = $append(b, 43); + } + b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1 / 0 && _q$3 !== -1 / 0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + b = appendInt(b, (_r$6 = zone$2 % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2); + } + else if ((_1 === (32)) || (_1 === (33))) { + b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std >> 16 >> 0, (std & 65535) === 33); + } + } + } + $s = -1; + return b; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.AppendFormat }; + } + $f._1 = _1; + $f._q = _q; + $f._q$1 = _q$1; + $f._q$2 = _q$2; + $f._q$3 = _q$3; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f._tuple$2 = _tuple$2; + $f._tuple$3 = _tuple$3; + $f.abs = abs; + $f.absoffset = absoffset; + $f.b = b; + $f.day = day; + $f.hour = hour; + $f.hr = hr; + $f.hr$1 = hr$1; + $f.layout = layout; + $f.m = m; + $f.min = min; + $f.month = month; + $f.name = name; + $f.offset = offset; + $f.prefix = prefix; + $f.s = s; + $f.sec = sec; + $f.std = std; + $f.suffix = suffix; + $f.t = t; + $f.y = y; + $f.year = year; + $f.zone$1 = zone$1; + $f.zone$2 = zone$2; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.AppendFormat = function (b, layout) { return this.$val.AppendFormat(b, layout); }; + quote = function (s) { + var s; + return "\"" + s + "\""; + }; + ParseError.ptr.prototype.Error = function () { + var e; + e = this; + if (e.Message === "") { + return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem); + } + return "parsing time " + quote(e.Value) + e.Message; + }; + ParseError.prototype.Error = function () { return this.$val.Error(); }; + isDigit = function (s, i) { + var c, i, s; + if (s.length <= i) { + return false; + } + c = s.charCodeAt(i); + return 48 <= c && c <= 57; + }; + getnum = function (s, fixed) { + var fixed, s; + if (!isDigit(s, 0)) { + return [0, s, errBad]; + } + if (!isDigit(s, 1)) { + if (fixed) { + return [0, s, errBad]; + } + return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil]; + } + return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil]; + }; + cutspace = function (s) { + var s; + while (true) { + if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { + break; + } + s = $substring(s, 1); + } + return s; + }; + skip = function (value, prefix) { + var prefix, value; + while (true) { + if (!(prefix.length > 0)) { + break; + } + if (prefix.charCodeAt(0) === 32) { + if (value.length > 0 && !((value.charCodeAt(0) === 32))) { + return [value, errBad]; + } + prefix = cutspace(prefix); + value = cutspace(value); + continue; + } + if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) { + return [value, errBad]; + } + prefix = $substring(prefix, 1); + value = $substring(value, 1); + } + return [value, $ifaceNil]; + }; + Parse = function (layout, value) { + var _r, layout, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + layout = $f.layout; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Parse }; + } + $f._r = _r; + $f.layout = layout; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Parse = Parse; + parse = function (layout, value, defaultLocation, local) { + var _1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, day, defaultLocation, err, hour, hour$1, hr, i, layout, local, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x$1, x$2, year, z, zoneName, zoneOffset, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _2 = $f._2; + _3 = $f._3; + _4 = $f._4; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$10 = $f._tmp$10; + _tmp$11 = $f._tmp$11; + _tmp$12 = $f._tmp$12; + _tmp$13 = $f._tmp$13; + _tmp$14 = $f._tmp$14; + _tmp$15 = $f._tmp$15; + _tmp$16 = $f._tmp$16; + _tmp$17 = $f._tmp$17; + _tmp$18 = $f._tmp$18; + _tmp$19 = $f._tmp$19; + _tmp$2 = $f._tmp$2; + _tmp$20 = $f._tmp$20; + _tmp$21 = $f._tmp$21; + _tmp$22 = $f._tmp$22; + _tmp$23 = $f._tmp$23; + _tmp$24 = $f._tmp$24; + _tmp$25 = $f._tmp$25; + _tmp$26 = $f._tmp$26; + _tmp$27 = $f._tmp$27; + _tmp$28 = $f._tmp$28; + _tmp$29 = $f._tmp$29; + _tmp$3 = $f._tmp$3; + _tmp$30 = $f._tmp$30; + _tmp$31 = $f._tmp$31; + _tmp$32 = $f._tmp$32; + _tmp$33 = $f._tmp$33; + _tmp$34 = $f._tmp$34; + _tmp$35 = $f._tmp$35; + _tmp$36 = $f._tmp$36; + _tmp$37 = $f._tmp$37; + _tmp$38 = $f._tmp$38; + _tmp$39 = $f._tmp$39; + _tmp$4 = $f._tmp$4; + _tmp$40 = $f._tmp$40; + _tmp$41 = $f._tmp$41; + _tmp$42 = $f._tmp$42; + _tmp$43 = $f._tmp$43; + _tmp$5 = $f._tmp$5; + _tmp$6 = $f._tmp$6; + _tmp$7 = $f._tmp$7; + _tmp$8 = $f._tmp$8; + _tmp$9 = $f._tmp$9; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + _tuple$10 = $f._tuple$10; + _tuple$11 = $f._tuple$11; + _tuple$12 = $f._tuple$12; + _tuple$13 = $f._tuple$13; + _tuple$14 = $f._tuple$14; + _tuple$15 = $f._tuple$15; + _tuple$16 = $f._tuple$16; + _tuple$17 = $f._tuple$17; + _tuple$18 = $f._tuple$18; + _tuple$19 = $f._tuple$19; + _tuple$2 = $f._tuple$2; + _tuple$20 = $f._tuple$20; + _tuple$21 = $f._tuple$21; + _tuple$22 = $f._tuple$22; + _tuple$23 = $f._tuple$23; + _tuple$24 = $f._tuple$24; + _tuple$3 = $f._tuple$3; + _tuple$4 = $f._tuple$4; + _tuple$5 = $f._tuple$5; + _tuple$6 = $f._tuple$6; + _tuple$7 = $f._tuple$7; + _tuple$8 = $f._tuple$8; + _tuple$9 = $f._tuple$9; + alayout = $f.alayout; + amSet = $f.amSet; + avalue = $f.avalue; + day = $f.day; + defaultLocation = $f.defaultLocation; + err = $f.err; + hour = $f.hour; + hour$1 = $f.hour$1; + hr = $f.hr; + i = $f.i; + layout = $f.layout; + local = $f.local; + min = $f.min; + min$1 = $f.min$1; + mm = $f.mm; + month = $f.month; + n = $f.n; + n$1 = $f.n$1; + name = $f.name; + ndigit = $f.ndigit; + nsec = $f.nsec; + offset = $f.offset; + offset$1 = $f.offset$1; + ok = $f.ok; + ok$1 = $f.ok$1; + p = $f.p; + pmSet = $f.pmSet; + prefix = $f.prefix; + rangeErrString = $f.rangeErrString; + sec = $f.sec; + seconds = $f.seconds; + sign = $f.sign; + ss = $f.ss; + std = $f.std; + stdstr = $f.stdstr; + suffix = $f.suffix; + t = $f.t; + t$1 = $f.t$1; + value = $f.value; + x$1 = $f.x$1; + x$2 = $f.x$2; + year = $f.year; + z = $f.z; + zoneName = $f.zoneName; + zoneOffset = $f.zoneOffset; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _tmp = layout; + _tmp$1 = value; + alayout = _tmp; + avalue = _tmp$1; + rangeErrString = ""; + amSet = false; + pmSet = false; + year = 0; + month = 1; + day = 1; + hour = 0; + min = 0; + sec = 0; + nsec = 0; + z = ptrType$2.nil; + zoneOffset = -1; + zoneName = ""; + while (true) { + err = $ifaceNil; + _tuple = nextStdChunk(layout); + prefix = _tuple[0]; + std = _tuple[1]; + suffix = _tuple[2]; + stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0)); + _tuple$1 = skip(value, prefix); + value = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")]; + } + if (std === 0) { + if (!((value.length === 0))) { + $s = -1; + return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + value)]; + } + break; + } + layout = suffix; + p = ""; + switch (0) { + default: + _1 = std & 65535; + if (_1 === (274)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$2 = $substring(value, 0, 2); + _tmp$3 = $substring(value, 2); + p = _tmp$2; + value = _tmp$3; + _tuple$2 = atoi(p); + year = _tuple$2[0]; + err = _tuple$2[1]; + if (year >= 69) { + year = year + (1900) >> 0; + } + else { + year = year + (2000) >> 0; + } + } + else if (_1 === (273)) { + if (value.length < 4 || !isDigit(value, 0)) { + err = errBad; + break; + } + _tmp$4 = $substring(value, 0, 4); + _tmp$5 = $substring(value, 4); + p = _tmp$4; + value = _tmp$5; + _tuple$3 = atoi(p); + year = _tuple$3[0]; + err = _tuple$3[1]; + } + else if (_1 === (258)) { + _tuple$4 = lookup(shortMonthNames, value); + month = _tuple$4[0]; + value = _tuple$4[1]; + err = _tuple$4[2]; + month = month + (1) >> 0; + } + else if (_1 === (257)) { + _tuple$5 = lookup(longMonthNames, value); + month = _tuple$5[0]; + value = _tuple$5[1]; + err = _tuple$5[2]; + month = month + (1) >> 0; + } + else if ((_1 === (259)) || (_1 === (260))) { + _tuple$6 = getnum(value, std === 260); + month = _tuple$6[0]; + value = _tuple$6[1]; + err = _tuple$6[2]; + if (month <= 0 || 12 < month) { + rangeErrString = "month"; + } + } + else if (_1 === (262)) { + _tuple$7 = lookup(shortDayNames, value); + value = _tuple$7[1]; + err = _tuple$7[2]; + } + else if (_1 === (261)) { + _tuple$8 = lookup(longDayNames, value); + value = _tuple$8[1]; + err = _tuple$8[2]; + } + else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) { + if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) { + value = $substring(value, 1); + } + _tuple$9 = getnum(value, std === 265); + day = _tuple$9[0]; + value = _tuple$9[1]; + err = _tuple$9[2]; + if (day < 0) { + rangeErrString = "day"; + } + } + else if (_1 === (522)) { + _tuple$10 = getnum(value, false); + hour = _tuple$10[0]; + value = _tuple$10[1]; + err = _tuple$10[2]; + if (hour < 0 || 24 <= hour) { + rangeErrString = "hour"; + } + } + else if ((_1 === (523)) || (_1 === (524))) { + _tuple$11 = getnum(value, std === 524); + hour = _tuple$11[0]; + value = _tuple$11[1]; + err = _tuple$11[2]; + if (hour < 0 || 12 < hour) { + rangeErrString = "hour"; + } + } + else if ((_1 === (525)) || (_1 === (526))) { + _tuple$12 = getnum(value, std === 526); + min = _tuple$12[0]; + value = _tuple$12[1]; + err = _tuple$12[2]; + if (min < 0 || 60 <= min) { + rangeErrString = "minute"; + } + } + else if ((_1 === (527)) || (_1 === (528))) { + _tuple$13 = getnum(value, std === 528); + sec = _tuple$13[0]; + value = _tuple$13[1]; + err = _tuple$13[2]; + if (sec < 0 || 60 <= sec) { + rangeErrString = "second"; + break; + } + if (value.length >= 2 && (value.charCodeAt(0) === 46) && isDigit(value, 1)) { + _tuple$14 = nextStdChunk(layout); + std = _tuple$14[1]; + std = std & (65535); + if ((std === 32) || (std === 33)) { + break; + } + n = 2; + while (true) { + if (!(n < value.length && isDigit(value, n))) { + break; + } + n = n + (1) >> 0; + } + _tuple$15 = parseNanoseconds(value, n); + nsec = _tuple$15[0]; + rangeErrString = _tuple$15[1]; + err = _tuple$15[2]; + value = $substring(value, n); + } + } + else if (_1 === (531)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$6 = $substring(value, 0, 2); + _tmp$7 = $substring(value, 2); + p = _tmp$6; + value = _tmp$7; + _2 = p; + if (_2 === ("PM")) { + pmSet = true; + } + else if (_2 === ("AM")) { + amSet = true; + } + else { + err = errBad; + } + } + else if (_1 === (532)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$8 = $substring(value, 0, 2); + _tmp$9 = $substring(value, 2); + p = _tmp$8; + value = _tmp$9; + _3 = p; + if (_3 === ("pm")) { + pmSet = true; + } + else if (_3 === ("am")) { + amSet = true; + } + else { + err = errBad; + } + } + else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (29)) || (_1 === (30)) || (_1 === (28)) || (_1 === (31))) { + if (((std === 22) || (std === 24) || (std === 25)) && value.length >= 1 && (value.charCodeAt(0) === 90)) { + value = $substring(value, 1); + z = $pkg.UTC; + break; + } + _tmp$10 = ""; + _tmp$11 = ""; + _tmp$12 = ""; + _tmp$13 = ""; + sign = _tmp$10; + hour$1 = _tmp$11; + min$1 = _tmp$12; + seconds = _tmp$13; + if ((std === 25) || (std === 30)) { + if (value.length < 6) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58))) { + err = errBad; + break; + } + _tmp$14 = $substring(value, 0, 1); + _tmp$15 = $substring(value, 1, 3); + _tmp$16 = $substring(value, 4, 6); + _tmp$17 = "00"; + _tmp$18 = $substring(value, 6); + sign = _tmp$14; + hour$1 = _tmp$15; + min$1 = _tmp$16; + seconds = _tmp$17; + value = _tmp$18; + } + else if ((std === 29) || (std === 24)) { + if (value.length < 3) { + err = errBad; + break; + } + _tmp$19 = $substring(value, 0, 1); + _tmp$20 = $substring(value, 1, 3); + _tmp$21 = "00"; + _tmp$22 = "00"; + _tmp$23 = $substring(value, 3); + sign = _tmp$19; + hour$1 = _tmp$20; + min$1 = _tmp$21; + seconds = _tmp$22; + value = _tmp$23; + } + else if ((std === 26) || (std === 31)) { + if (value.length < 9) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) { + err = errBad; + break; + } + _tmp$24 = $substring(value, 0, 1); + _tmp$25 = $substring(value, 1, 3); + _tmp$26 = $substring(value, 4, 6); + _tmp$27 = $substring(value, 7, 9); + _tmp$28 = $substring(value, 9); + sign = _tmp$24; + hour$1 = _tmp$25; + min$1 = _tmp$26; + seconds = _tmp$27; + value = _tmp$28; + } + else if ((std === 23) || (std === 28)) { + if (value.length < 7) { + err = errBad; + break; + } + _tmp$29 = $substring(value, 0, 1); + _tmp$30 = $substring(value, 1, 3); + _tmp$31 = $substring(value, 3, 5); + _tmp$32 = $substring(value, 5, 7); + _tmp$33 = $substring(value, 7); + sign = _tmp$29; + hour$1 = _tmp$30; + min$1 = _tmp$31; + seconds = _tmp$32; + value = _tmp$33; + } + else { + if (value.length < 5) { + err = errBad; + break; + } + _tmp$34 = $substring(value, 0, 1); + _tmp$35 = $substring(value, 1, 3); + _tmp$36 = $substring(value, 3, 5); + _tmp$37 = "00"; + _tmp$38 = $substring(value, 5); + sign = _tmp$34; + hour$1 = _tmp$35; + min$1 = _tmp$36; + seconds = _tmp$37; + value = _tmp$38; + } + _tmp$39 = 0; + _tmp$40 = 0; + _tmp$41 = 0; + hr = _tmp$39; + mm = _tmp$40; + ss = _tmp$41; + _tuple$16 = atoi(hour$1); + hr = _tuple$16[0]; + err = _tuple$16[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$17 = atoi(min$1); + mm = _tuple$17[0]; + err = _tuple$17[1]; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$18 = atoi(seconds); + ss = _tuple$18[0]; + err = _tuple$18[1]; + } + zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0; + _4 = sign.charCodeAt(0); + if (_4 === (43)) { + } + else if (_4 === (45)) { + zoneOffset = -zoneOffset; + } + else { + err = errBad; + } + } + else if (_1 === (21)) { + if (value.length >= 3 && $substring(value, 0, 3) === "UTC") { + z = $pkg.UTC; + value = $substring(value, 3); + break; + } + _tuple$19 = parseTimeZone(value); + n$1 = _tuple$19[0]; + ok = _tuple$19[1]; + if (!ok) { + err = errBad; + break; + } + _tmp$42 = $substring(value, 0, n$1); + _tmp$43 = $substring(value, n$1); + zoneName = _tmp$42; + value = _tmp$43; + } + else if (_1 === (32)) { + ndigit = 1 + ((std >> 16 >> 0)) >> 0; + if (value.length < ndigit) { + err = errBad; + break; + } + _tuple$20 = parseNanoseconds(value, ndigit); + nsec = _tuple$20[0]; + rangeErrString = _tuple$20[1]; + err = _tuple$20[2]; + value = $substring(value, ndigit); + } + else if (_1 === (33)) { + if (value.length < 2 || !((value.charCodeAt(0) === 46)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) { + break; + } + i = 0; + while (true) { + if (!(i < 9 && (i + 1 >> 0) < value.length && 48 <= value.charCodeAt((i + 1 >> 0)) && value.charCodeAt((i + 1 >> 0)) <= 57)) { + break; + } + i = i + (1) >> 0; + } + _tuple$21 = parseNanoseconds(value, 1 + i >> 0); + nsec = _tuple$21[0]; + rangeErrString = _tuple$21[1]; + err = _tuple$21[2]; + value = $substring(value, (1 + i >> 0)); + } + } + if (!(rangeErrString === "")) { + $s = -1; + return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")]; + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")]; + } + } + if (pmSet && hour < 12) { + hour = hour + (12) >> 0; + } + else if (amSet && (hour === 12)) { + hour = 0; + } + if (day < 1 || day > daysIn(((month >> 0)), year)) { + $s = -1; + return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")]; + } + /* */ if (!(z === ptrType$2.nil)) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!(z === ptrType$2.nil)) { */ case 1: + _r = Date(year, ((month >> 0)), day, hour, min, sec, nsec, z); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return [_r, $ifaceNil]; + /* } */ case 2: + /* */ if (!((zoneOffset === -1))) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (!((zoneOffset === -1))) { */ case 4: + _r$1 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + t = $clone(_r$1, Time); + t.addSec((x$1 = (new $Int64(0, zoneOffset)), new $Int64(-x$1.$high, -x$1.$low))); + _r$2 = local.lookup(t.unixSec()); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _tuple$22 = _r$2; + name = _tuple$22[0]; + offset = _tuple$22[1]; + if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) { + t.setLoc(local); + $s = -1; + return [t, $ifaceNil]; + } + t.setLoc(FixedZone(zoneName, zoneOffset)); + $s = -1; + return [t, $ifaceNil]; + /* } */ case 5: + /* */ if (!(zoneName === "")) { + $s = 8; + continue; + } + /* */ $s = 9; + continue; + /* if (!(zoneName === "")) { */ case 8: + _r$3 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + t$1 = $clone(_r$3, Time); + _r$4 = local.lookupName(zoneName, t$1.unixSec()); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + _tuple$23 = _r$4; + offset$1 = _tuple$23[0]; + ok$1 = _tuple$23[1]; + if (ok$1) { + t$1.addSec((x$2 = (new $Int64(0, offset$1)), new $Int64(-x$2.$high, -x$2.$low))); + t$1.setLoc(local); + $s = -1; + return [t$1, $ifaceNil]; + } + if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") { + _tuple$24 = atoi($substring(zoneName, 3)); + offset$1 = _tuple$24[0]; + offset$1 = $imul(offset$1, (3600)); + } + t$1.setLoc(FixedZone(zoneName, offset$1)); + $s = -1; + return [t$1, $ifaceNil]; + /* } */ case 9: + _r$5 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, defaultLocation); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + $s = -1; + return [_r$5, $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: parse }; + } + $f._1 = _1; + $f._2 = _2; + $f._3 = _3; + $f._4 = _4; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$10 = _tmp$10; + $f._tmp$11 = _tmp$11; + $f._tmp$12 = _tmp$12; + $f._tmp$13 = _tmp$13; + $f._tmp$14 = _tmp$14; + $f._tmp$15 = _tmp$15; + $f._tmp$16 = _tmp$16; + $f._tmp$17 = _tmp$17; + $f._tmp$18 = _tmp$18; + $f._tmp$19 = _tmp$19; + $f._tmp$2 = _tmp$2; + $f._tmp$20 = _tmp$20; + $f._tmp$21 = _tmp$21; + $f._tmp$22 = _tmp$22; + $f._tmp$23 = _tmp$23; + $f._tmp$24 = _tmp$24; + $f._tmp$25 = _tmp$25; + $f._tmp$26 = _tmp$26; + $f._tmp$27 = _tmp$27; + $f._tmp$28 = _tmp$28; + $f._tmp$29 = _tmp$29; + $f._tmp$3 = _tmp$3; + $f._tmp$30 = _tmp$30; + $f._tmp$31 = _tmp$31; + $f._tmp$32 = _tmp$32; + $f._tmp$33 = _tmp$33; + $f._tmp$34 = _tmp$34; + $f._tmp$35 = _tmp$35; + $f._tmp$36 = _tmp$36; + $f._tmp$37 = _tmp$37; + $f._tmp$38 = _tmp$38; + $f._tmp$39 = _tmp$39; + $f._tmp$4 = _tmp$4; + $f._tmp$40 = _tmp$40; + $f._tmp$41 = _tmp$41; + $f._tmp$42 = _tmp$42; + $f._tmp$43 = _tmp$43; + $f._tmp$5 = _tmp$5; + $f._tmp$6 = _tmp$6; + $f._tmp$7 = _tmp$7; + $f._tmp$8 = _tmp$8; + $f._tmp$9 = _tmp$9; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f._tuple$10 = _tuple$10; + $f._tuple$11 = _tuple$11; + $f._tuple$12 = _tuple$12; + $f._tuple$13 = _tuple$13; + $f._tuple$14 = _tuple$14; + $f._tuple$15 = _tuple$15; + $f._tuple$16 = _tuple$16; + $f._tuple$17 = _tuple$17; + $f._tuple$18 = _tuple$18; + $f._tuple$19 = _tuple$19; + $f._tuple$2 = _tuple$2; + $f._tuple$20 = _tuple$20; + $f._tuple$21 = _tuple$21; + $f._tuple$22 = _tuple$22; + $f._tuple$23 = _tuple$23; + $f._tuple$24 = _tuple$24; + $f._tuple$3 = _tuple$3; + $f._tuple$4 = _tuple$4; + $f._tuple$5 = _tuple$5; + $f._tuple$6 = _tuple$6; + $f._tuple$7 = _tuple$7; + $f._tuple$8 = _tuple$8; + $f._tuple$9 = _tuple$9; + $f.alayout = alayout; + $f.amSet = amSet; + $f.avalue = avalue; + $f.day = day; + $f.defaultLocation = defaultLocation; + $f.err = err; + $f.hour = hour; + $f.hour$1 = hour$1; + $f.hr = hr; + $f.i = i; + $f.layout = layout; + $f.local = local; + $f.min = min; + $f.min$1 = min$1; + $f.mm = mm; + $f.month = month; + $f.n = n; + $f.n$1 = n$1; + $f.name = name; + $f.ndigit = ndigit; + $f.nsec = nsec; + $f.offset = offset; + $f.offset$1 = offset$1; + $f.ok = ok; + $f.ok$1 = ok$1; + $f.p = p; + $f.pmSet = pmSet; + $f.prefix = prefix; + $f.rangeErrString = rangeErrString; + $f.sec = sec; + $f.seconds = seconds; + $f.sign = sign; + $f.ss = ss; + $f.std = std; + $f.stdstr = stdstr; + $f.suffix = suffix; + $f.t = t; + $f.t$1 = t$1; + $f.value = value; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.year = year; + $f.z = z; + $f.zoneName = zoneName; + $f.zoneOffset = zoneOffset; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + parseTimeZone = function (value) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, ok$1, value; + length = 0; + ok = false; + if (value.length < 3) { + _tmp = 0; + _tmp$1 = false; + length = _tmp; + ok = _tmp$1; + return [length, ok]; + } + if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) { + _tmp$2 = 4; + _tmp$3 = true; + length = _tmp$2; + ok = _tmp$3; + return [length, ok]; + } + if ($substring(value, 0, 3) === "GMT") { + length = parseGMT(value); + _tmp$4 = length; + _tmp$5 = true; + length = _tmp$4; + ok = _tmp$5; + return [length, ok]; + } + if ((value.charCodeAt(0) === 43) || (value.charCodeAt(0) === 45)) { + length = parseSignedOffset(value); + ok$1 = length > 0; + _tmp$6 = length; + _tmp$7 = ok$1; + length = _tmp$6; + ok = _tmp$7; + return [length, ok]; + } + nUpper = 0; + nUpper = 0; + while (true) { + if (!(nUpper < 6)) { + break; + } + if (nUpper >= value.length) { + break; + } + c = value.charCodeAt(nUpper); + if (c < 65 || 90 < c) { + break; + } + nUpper = nUpper + (1) >> 0; + } + _1 = nUpper; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) { + _tmp$8 = 0; + _tmp$9 = false; + length = _tmp$8; + ok = _tmp$9; + return [length, ok]; + } + else if (_1 === (5)) { + if (value.charCodeAt(4) === 84) { + _tmp$10 = 5; + _tmp$11 = true; + length = _tmp$10; + ok = _tmp$11; + return [length, ok]; + } + } + else if (_1 === (4)) { + if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") { + _tmp$12 = 4; + _tmp$13 = true; + length = _tmp$12; + ok = _tmp$13; + return [length, ok]; + } + } + else if (_1 === (3)) { + _tmp$14 = 3; + _tmp$15 = true; + length = _tmp$14; + ok = _tmp$15; + return [length, ok]; + } + _tmp$16 = 0; + _tmp$17 = false; + length = _tmp$16; + ok = _tmp$17; + return [length, ok]; + }; + parseGMT = function (value) { + var value; + value = $substring(value, 3); + if (value.length === 0) { + return 3; + } + return 3 + parseSignedOffset(value) >> 0; + }; + parseSignedOffset = function (value) { + var _tuple, err, rem, sign, value, x$1; + sign = value.charCodeAt(0); + if (!((sign === 45)) && !((sign === 43))) { + return 0; + } + _tuple = leadingInt($substring(value, 1)); + x$1 = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil)) || $substring(value, 1) === rem) { + return 0; + } + if (sign === 45) { + x$1 = new $Int64(-x$1.$high, -x$1.$low); + } + if ((x$1.$high < -1 || (x$1.$high === -1 && x$1.$low < 4294967273)) || (0 < x$1.$high || (0 === x$1.$high && 23 < x$1.$low))) { + return 0; + } + return value.length - rem.length >> 0; + }; + parseNanoseconds = function (value, nbytes) { + var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value; + ns = 0; + rangeErrString = ""; + err = $ifaceNil; + if (!((value.charCodeAt(0) === 46))) { + err = errBad; + return [ns, rangeErrString, err]; + } + _tuple = atoi($substring(value, 1, nbytes)); + ns = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [ns, rangeErrString, err]; + } + if (ns < 0 || 1000000000 <= ns) { + rangeErrString = "fractional second"; + return [ns, rangeErrString, err]; + } + scaleDigits = 10 - nbytes >> 0; + i = 0; + while (true) { + if (!(i < scaleDigits)) { + break; + } + ns = $imul(ns, (10)); + i = i + (1) >> 0; + } + return [ns, rangeErrString, err]; + }; + leadingInt = function (s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x$1, x$2, x$3, x$4; + x$1 = new $Int64(0, 0); + rem = ""; + err = $ifaceNil; + i = 0; + while (true) { + if (!(i < s.length)) { + break; + } + c = s.charCodeAt(i); + if (c < 48 || c > 57) { + break; + } + if ((x$1.$high > 214748364 || (x$1.$high === 214748364 && x$1.$low > 3435973836))) { + _tmp = new $Int64(0, 0); + _tmp$1 = ""; + _tmp$2 = errLeadingInt; + x$1 = _tmp; + rem = _tmp$1; + err = _tmp$2; + return [x$1, rem, err]; + } + x$1 = (x$2 = (x$3 = $mul64(x$1, new $Int64(0, 10)), x$4 = (new $Int64(0, c)), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), new $Int64(x$2.$high - 0, x$2.$low - 48)); + if ((x$1.$high < 0 || (x$1.$high === 0 && x$1.$low < 0))) { + _tmp$3 = new $Int64(0, 0); + _tmp$4 = ""; + _tmp$5 = errLeadingInt; + x$1 = _tmp$3; + rem = _tmp$4; + err = _tmp$5; + return [x$1, rem, err]; + } + i = i + (1) >> 0; + } + _tmp$6 = x$1; + _tmp$7 = $substring(s, i); + _tmp$8 = $ifaceNil; + x$1 = _tmp$6; + rem = _tmp$7; + err = _tmp$8; + return [x$1, rem, err]; + }; + leadingFraction = function (s) { + var _tmp, _tmp$1, _tmp$2, c, i, overflow, rem, s, scale, x$1, x$2, x$3, x$4, y; + x$1 = new $Int64(0, 0); + scale = 0; + rem = ""; + i = 0; + scale = 1; + overflow = false; + while (true) { + if (!(i < s.length)) { + break; + } + c = s.charCodeAt(i); + if (c < 48 || c > 57) { + break; + } + if (overflow) { + i = i + (1) >> 0; + continue; + } + if ((x$1.$high > 214748364 || (x$1.$high === 214748364 && x$1.$low > 3435973836))) { + overflow = true; + i = i + (1) >> 0; + continue; + } + y = (x$2 = (x$3 = $mul64(x$1, new $Int64(0, 10)), x$4 = (new $Int64(0, c)), new $Int64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), new $Int64(x$2.$high - 0, x$2.$low - 48)); + if ((y.$high < 0 || (y.$high === 0 && y.$low < 0))) { + overflow = true; + i = i + (1) >> 0; + continue; + } + x$1 = y; + scale = scale * (10); + i = i + (1) >> 0; + } + _tmp = x$1; + _tmp$1 = scale; + _tmp$2 = $substring(s, i); + x$1 = _tmp; + scale = _tmp$1; + rem = _tmp$2; + return [x$1, scale, rem]; + }; + ParseDuration = function (s) { + var _entry, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, c, c$1, d, err, f, i, neg, ok, orig, pl, pl$1, post, pre, s, scale, u, unit, v, x$1, x$2, x$3; + orig = s; + d = new $Int64(0, 0); + neg = false; + if (!(s === "")) { + c = s.charCodeAt(0); + if ((c === 45) || (c === 43)) { + neg = c === 45; + s = $substring(s, 1); + } + } + if (s === "0") { + return [new Duration(0, 0), $ifaceNil]; + } + if (s === "") { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + while (true) { + if (!(!(s === ""))) { + break; + } + _tmp = new $Int64(0, 0); + _tmp$1 = new $Int64(0, 0); + v = _tmp; + f = _tmp$1; + scale = 1; + err = $ifaceNil; + if (!((s.charCodeAt(0) === 46) || 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + pl = s.length; + _tuple = leadingInt(s); + v = _tuple[0]; + s = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + pre = !((pl === s.length)); + post = false; + if (!(s === "") && (s.charCodeAt(0) === 46)) { + s = $substring(s, 1); + pl$1 = s.length; + _tuple$1 = leadingFraction(s); + f = _tuple$1[0]; + scale = _tuple$1[1]; + s = _tuple$1[2]; + post = !((pl$1 === s.length)); + } + if (!pre && !post) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + i = 0; + while (true) { + if (!(i < s.length)) { + break; + } + c$1 = s.charCodeAt(i); + if ((c$1 === 46) || 48 <= c$1 && c$1 <= 57) { + break; + } + i = i + (1) >> 0; + } + if (i === 0) { + return [new Duration(0, 0), errors.New("time: missing unit in duration " + orig)]; + } + u = $substring(s, 0, i); + s = $substring(s, i); + _tuple$2 = (_entry = unitMap[$String.keyFor(u)], _entry !== undefined ? [_entry.v, true] : [new $Int64(0, 0), false]); + unit = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok) { + return [new Duration(0, 0), errors.New("time: unknown unit " + u + " in duration " + orig)]; + } + if ((x$1 = $div64(new $Int64(2147483647, 4294967295), unit, false), (v.$high > x$1.$high || (v.$high === x$1.$high && v.$low > x$1.$low)))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + v = $mul64(v, (unit)); + if ((f.$high > 0 || (f.$high === 0 && f.$low > 0))) { + v = (x$2 = (new $Int64(0, ($flatten64(f)) * (($flatten64(unit)) / scale))), new $Int64(v.$high + x$2.$high, v.$low + x$2.$low)); + if ((v.$high < 0 || (v.$high === 0 && v.$low < 0))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + } + d = (x$3 = v, new $Int64(d.$high + x$3.$high, d.$low + x$3.$low)); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + return [new Duration(0, 0), errors.New("time: invalid duration " + orig)]; + } + } + if (neg) { + d = new $Int64(-d.$high, -d.$low); + } + return [(new Duration(d.$high, d.$low)), $ifaceNil]; + }; + $pkg.ParseDuration = ParseDuration; + Time.ptr.prototype.nsec = function () { + var t, x$1; + t = this; + return (((x$1 = t.wall, new $Uint64(x$1.$high & 0, (x$1.$low & 1073741823) >>> 0)).$low >> 0)); + }; + Time.prototype.nsec = function () { return this.$val.nsec(); }; + Time.ptr.prototype.sec = function () { + var t, x$1, x$2, x$3, x$4; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$3 = ((x$4 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$4.$high, x$4.$low))), new $Int64(13 + x$3.$high, 3618733952 + x$3.$low)); + } + return t.ext; + }; + Time.prototype.sec = function () { return this.$val.sec(); }; + Time.ptr.prototype.unixSec = function () { + var t, x$1; + t = this; + return (x$1 = t.sec(), new $Int64(x$1.$high + -15, x$1.$low + 2288912640)); + }; + Time.prototype.unixSec = function () { return this.$val.unixSec(); }; + Time.ptr.prototype.addSec = function (d) { + var d, dsec, sec, t, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + sec = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low))); + dsec = new $Int64(sec.$high + d.$high, sec.$low + d.$low); + if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) { + t.wall = (x$4 = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & 0, (x$6.$low & 1073741823) >>> 0)), x$7 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)), new $Uint64(x$4.$high | 2147483648, (x$4.$low | 0) >>> 0)); + return; + } + t.stripMono(); + } + t.ext = (x$8 = t.ext, x$9 = d, new $Int64(x$8.$high + x$9.$high, x$8.$low + x$9.$low)); + }; + Time.prototype.addSec = function (d) { return this.$val.addSec(d); }; + Time.ptr.prototype.setLoc = function (loc) { + var loc, t; + t = this; + if (loc === utcLoc) { + loc = ptrType$2.nil; + } + t.stripMono(); + t.loc = loc; + }; + Time.prototype.setLoc = function (loc) { return this.$val.setLoc(loc); }; + Time.ptr.prototype.stripMono = function () { + var t, x$1, x$2, x$3, x$4; + t = this; + if (!((x$1 = (x$2 = t.wall, new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + t.ext = t.sec(); + t.wall = (x$3 = t.wall, x$4 = new $Uint64(0, 1073741823), new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)); + } + }; + Time.prototype.stripMono = function () { return this.$val.stripMono(); }; + Time.ptr.prototype.After = function (u) { + var t, ts, u, us, x$1, x$2, x$3, x$4, x$5, x$6; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high > x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low))); + } + ts = t.sec(); + us = u.sec(); + return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec(); + }; + Time.prototype.After = function (u) { return this.$val.After(u); }; + Time.ptr.prototype.Before = function (u) { + var t, u, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high < x$6.$high || (x$5.$high === x$6.$high && x$5.$low < x$6.$low))); + } + return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low < x$8.$low))) || (x$9 = t.sec(), x$10 = u.sec(), (x$9.$high === x$10.$high && x$9.$low === x$10.$low)) && t.nsec() < u.nsec(); + }; + Time.prototype.Before = function (u) { return this.$val.Before(u); }; + Time.ptr.prototype.Equal = function (u) { + var t, u, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + return (x$5 = t.ext, x$6 = u.ext, (x$5.$high === x$6.$high && x$5.$low === x$6.$low)); + } + return (x$7 = t.sec(), x$8 = u.sec(), (x$7.$high === x$8.$high && x$7.$low === x$8.$low)) && (t.nsec() === u.nsec()); + }; + Time.prototype.Equal = function (u) { return this.$val.Equal(u); }; + Month.prototype.String = function () { + var buf, m, n, x$1; + m = this.$val; + if (1 <= m && m <= 12) { + return (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= months.length) ? ($throwRuntimeError("index out of range"), undefined) : months[x$1])); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, m))); + return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Month).prototype.String = function () { return new Month(this.$get()).String(); }; + Weekday.prototype.String = function () { + var buf, d, n; + d = this.$val; + if (0 <= d && d <= 6) { + return ((d < 0 || d >= days.length) ? ($throwRuntimeError("index out of range"), undefined) : days[d]); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, d))); + return "%!Weekday(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Weekday).prototype.String = function () { return new Weekday(this.$get()).String(); }; + Time.ptr.prototype.IsZero = function () { + var t, x$1; + t = this; + return (x$1 = t.sec(), (x$1.$high === 0 && x$1.$low === 0)) && (t.nsec() === 0); + }; + Time.prototype.IsZero = function () { return this.$val.IsZero(); }; + Time.ptr.prototype.abs = function () { + var _r, _r$1, _tuple, l, offset, sec, t, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + l = $f.l; + offset = $f.offset; + sec = $f.sec; + t = $f.t; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 6: + sec = (x$3 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low)); + $s = 8; + continue; + /* } else { */ case 7: + _r$1 = l.lookup(sec); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + offset = _tuple[1]; + sec = (x$4 = (new $Int64(0, offset)), new $Int64(sec.$high + x$4.$high, sec.$low + x$4.$low)); + /* } */ case 8: + /* } */ case 5: + $s = -1; + return ((x$5 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$5.$high, x$5.$low))); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.abs }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.l = l; + $f.offset = offset; + $f.sec = sec; + $f.t = t; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.abs = function () { return this.$val.abs(); }; + Time.ptr.prototype.locabs = function () { + var _r, _r$1, _tuple, abs, l, name, offset, sec, t, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + abs = $f.abs; + l = $f.l; + name = $f.name; + offset = $f.offset; + sec = $f.sec; + t = $f.t; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + name = ""; + offset = 0; + abs = new $Uint64(0, 0); + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if (!(l.cacheZone === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { */ case 7: + name = l.cacheZone.name; + offset = l.cacheZone.offset; + $s = 9; + continue; + /* } else { */ case 8: + _r$1 = l.lookup(sec); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + name = _tuple[0]; + offset = _tuple[1]; + /* } */ case 9: + sec = (x$3 = (new $Int64(0, offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low)); + $s = 6; + continue; + /* } else { */ case 5: + name = "UTC"; + /* } */ case 6: + abs = ((x$4 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$4.$high, x$4.$low))); + $s = -1; + return [name, offset, abs]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.locabs }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.abs = abs; + $f.l = l; + $f.name = name; + $f.offset = offset; + $f.sec = sec; + $f.t = t; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.locabs = function () { return this.$val.locabs(); }; + Time.ptr.prototype.Date = function () { + var _r, _tuple, day, month, t, year, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + day = $f.day; + month = $f.month; + t = $f.t; + year = $f.year; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + year = 0; + month = 0; + day = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + $s = -1; + return [year, month, day]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Date }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.day = day; + $f.month = month; + $f.t = t; + $f.year = year; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Date = function () { return this.$val.Date(); }; + Time.ptr.prototype.Year = function () { + var _r, _tuple, t, year, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + t = $f.t; + year = $f.year; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + year = _tuple[0]; + $s = -1; + return year; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Year }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.t = t; + $f.year = year; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Year = function () { return this.$val.Year(); }; + Time.ptr.prototype.Month = function () { + var _r, _tuple, month, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + month = $f.month; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + month = _tuple[1]; + $s = -1; + return month; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Month }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.month = month; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Month = function () { return this.$val.Month(); }; + Time.ptr.prototype.Day = function () { + var _r, _tuple, day, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + day = $f.day; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + day = _tuple[2]; + $s = -1; + return day; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Day }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.day = day; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Day = function () { return this.$val.Day(); }; + Time.ptr.prototype.Weekday = function () { + var _r, _r$1, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = absWeekday(_r); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Weekday }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Weekday = function () { return this.$val.Weekday(); }; + absWeekday = function (abs) { + var _q, abs, sec; + sec = $div64((new $Uint64(abs.$high + 0, abs.$low + 86400)), new $Uint64(0, 604800), true); + return (((_q = ((sec.$low >> 0)) / 86400, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + }; + Time.ptr.prototype.ISOWeek = function () { + var _q, _r, _r$1, _r$2, _r$3, _r$4, _tuple, day, dec31wday, jan1wday, month, t, wday, week, yday, year, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _q = $f._q; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _tuple = $f._tuple; + day = $f.day; + dec31wday = $f.dec31wday; + jan1wday = $f.jan1wday; + month = $f.month; + t = $f.t; + wday = $f.wday; + week = $f.week; + yday = $f.yday; + year = $f.year; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + year = 0; + week = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + _r$2 = $clone(t, Time).Weekday(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + wday = (_r$1 = (((_r$2 + 6 >> 0) >> 0)) % 7, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + week = (_q = (((yday - wday >> 0) + 7 >> 0)) / 7, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + jan1wday = (_r$3 = (((wday - yday >> 0) + 371 >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (1 <= jan1wday && jan1wday <= 3) { + week = week + (1) >> 0; + } + if (week === 0) { + year = year - (1) >> 0; + week = 52; + if ((jan1wday === 4) || ((jan1wday === 5) && isLeap(year))) { + week = week + (1) >> 0; + } + } + if ((month === 12) && day >= 29 && wday < 3) { + dec31wday = (_r$4 = (((wday + 31 >> 0) - day >> 0)) % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); + if (0 <= dec31wday && dec31wday <= 2) { + year = year + (1) >> 0; + week = 1; + } + } + $s = -1; + return [year, week]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.ISOWeek }; + } + $f._q = _q; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._tuple = _tuple; + $f.day = day; + $f.dec31wday = dec31wday; + $f.jan1wday = jan1wday; + $f.month = month; + $f.t = t; + $f.wday = wday; + $f.week = week; + $f.yday = yday; + $f.year = year; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.ISOWeek = function () { return this.$val.ISOWeek(); }; + Time.ptr.prototype.Clock = function () { + var _r, _r$1, _tuple, hour, min, sec, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + hour = $f.hour; + min = $f.min; + sec = $f.sec; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + hour = 0; + min = 0; + sec = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = absClock(_r); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + hour = _tuple[0]; + min = _tuple[1]; + sec = _tuple[2]; + $s = -1; + return [hour, min, sec]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Clock }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.hour = hour; + $f.min = min; + $f.sec = sec; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Clock = function () { return this.$val.Clock(); }; + absClock = function (abs) { + var _q, _q$1, abs, hour, min, sec; + hour = 0; + min = 0; + sec = 0; + sec = (($div64(abs, new $Uint64(0, 86400), true).$low >> 0)); + hour = (_q = sec / 3600, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(hour, 3600))) >> 0; + min = (_q$1 = sec / 60, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(min, 60))) >> 0; + return [hour, min, sec]; + }; + Time.ptr.prototype.Hour = function () { + var _q, _r, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _q = $f._q; + _r = $f._r; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return (_q = (($div64(_r, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Hour }; + } + $f._q = _q; + $f._r = _r; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Hour = function () { return this.$val.Hour(); }; + Time.ptr.prototype.Minute = function () { + var _q, _r, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _q = $f._q; + _r = $f._r; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return (_q = (($div64(_r, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Minute }; + } + $f._q = _q; + $f._r = _r; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Minute = function () { return this.$val.Minute(); }; + Time.ptr.prototype.Second = function () { + var _r, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return (($div64(_r, new $Uint64(0, 60), true).$low >> 0)); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Second }; + } + $f._r = _r; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Second = function () { return this.$val.Second(); }; + Time.ptr.prototype.Nanosecond = function () { + var t; + t = this; + return ((t.nsec() >> 0)); + }; + Time.prototype.Nanosecond = function () { return this.$val.Nanosecond(); }; + Time.ptr.prototype.YearDay = function () { + var _r, _tuple, t, yday, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + t = $f.t; + yday = $f.yday; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + yday = _tuple[3]; + $s = -1; + return yday + 1 >> 0; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.YearDay }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.t = t; + $f.yday = yday; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.YearDay = function () { return this.$val.YearDay(); }; + Duration.prototype.String = function () { + var _tuple, _tuple$1, buf, d, neg, prec, u, w; + d = this; + buf = arrayType$3.zero(); + w = 32; + u = (new $Uint64(d.$high, d.$low)); + neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0)); + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) { + prec = 0; + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + w = w - (1) >> 0; + if ((u.$high === 0 && u.$low === 0)) { + return "0s"; + } + else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) { + prec = 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110); + } + else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) { + prec = 3; + w = w - (1) >> 0; + $copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5"); + } + else { + prec = 6; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + } + _tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec); + w = _tuple[0]; + u = _tuple[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } + else { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + _tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9); + w = _tuple$1[0]; + u = _tuple$1[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } + } + } + if (neg) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + return ($bytesToString($subslice(new sliceType$3(buf), w))); + }; + $ptrType(Duration).prototype.String = function () { return this.$get().String(); }; + fmtFrac = function (buf, v, prec) { + var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w; + nw = 0; + nv = new $Uint64(0, 0); + w = buf.$length; + print = false; + i = 0; + while (true) { + if (!(i < prec)) { + break; + } + digit = $div64(v, new $Uint64(0, 10), true); + print = print || !((digit.$high === 0 && digit.$low === 0)); + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24)); + } + v = $div64(v, (new $Uint64(0, 10)), false); + i = i + (1) >> 0; + } + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + } + _tmp = w; + _tmp$1 = v; + nw = _tmp; + nv = _tmp$1; + return [nw, nv]; + }; + fmtInt = function (buf, v) { + var buf, v, w; + w = buf.$length; + if ((v.$high === 0 && v.$low === 0)) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + } + else { + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { + break; + } + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24)); + v = $div64(v, (new $Uint64(0, 10)), false); + } + } + return w; + }; + Duration.prototype.Nanoseconds = function () { + var d; + d = this; + return (new $Int64(d.$high, d.$low)); + }; + $ptrType(Duration).prototype.Nanoseconds = function () { return this.$get().Nanoseconds(); }; + Duration.prototype.Seconds = function () { + var d, nsec, sec; + d = this; + sec = $div64(d, new Duration(0, 1000000000), false); + nsec = $div64(d, new Duration(0, 1000000000), true); + return ($flatten64(sec)) + ($flatten64(nsec)) / 1e+09; + }; + $ptrType(Duration).prototype.Seconds = function () { return this.$get().Seconds(); }; + Duration.prototype.Minutes = function () { + var d, min, nsec; + d = this; + min = $div64(d, new Duration(13, 4165425152), false); + nsec = $div64(d, new Duration(13, 4165425152), true); + return ($flatten64(min)) + ($flatten64(nsec)) / 6e+10; + }; + $ptrType(Duration).prototype.Minutes = function () { return this.$get().Minutes(); }; + Duration.prototype.Hours = function () { + var d, hour, nsec; + d = this; + hour = $div64(d, new Duration(838, 817405952), false); + nsec = $div64(d, new Duration(838, 817405952), true); + return ($flatten64(hour)) + ($flatten64(nsec)) / 3.6e+12; + }; + $ptrType(Duration).prototype.Hours = function () { return this.$get().Hours(); }; + Duration.prototype.Truncate = function (m) { + var d, m, x$1; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + return (x$1 = $div64(d, m, true), new Duration(d.$high - x$1.$high, d.$low - x$1.$low)); + }; + $ptrType(Duration).prototype.Truncate = function (m) { return this.$get().Truncate(m); }; + lessThanHalf = function (x$1, y) { + var x$1, x$2, x$3, x$4, x$5, y; + return (x$2 = (x$3 = (new $Uint64(x$1.$high, x$1.$low)), x$4 = (new $Uint64(x$1.$high, x$1.$low)), new $Uint64(x$3.$high + x$4.$high, x$3.$low + x$4.$low)), x$5 = (new $Uint64(y.$high, y.$low)), (x$2.$high < x$5.$high || (x$2.$high === x$5.$high && x$2.$low < x$5.$low))); + }; + Duration.prototype.Round = function (m) { + var d, d1, d1$1, m, r, x$1, x$2; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + r = $div64(d, m, true); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + r = new Duration(-r.$high, -r.$low); + if (lessThanHalf(r, m)) { + return new Duration(d.$high + r.$high, d.$low + r.$low); + } + d1 = (x$1 = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x$1.$high + r.$high, x$1.$low + r.$low)); + if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) { + return d1; + } + return new Duration(-2147483648, 0); + } + if (lessThanHalf(r, m)) { + return new Duration(d.$high - r.$high, d.$low - r.$low); + } + d1$1 = (x$2 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$2.$high - r.$high, x$2.$low - r.$low)); + if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) { + return d1$1; + } + return new Duration(2147483647, 4294967295); + }; + $ptrType(Duration).prototype.Round = function (m) { return this.$get().Round(m); }; + Time.ptr.prototype.Add = function (d) { + var d, dsec, nsec, t, te, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + dsec = ((x$1 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$1.$high, x$1.$low))); + nsec = t.nsec() + (((x$2 = $div64(d, new Duration(0, 1000000000), true), x$2.$low + ((x$2.$high >> 31) * 4294967296)) >> 0)) >> 0; + if (nsec >= 1000000000) { + dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high + x$3.$high, dsec.$low + x$3.$low)); + nsec = nsec - (1000000000) >> 0; + } + else if (nsec < 0) { + dsec = (x$4 = new $Int64(0, 1), new $Int64(dsec.$high - x$4.$high, dsec.$low - x$4.$low)); + nsec = nsec + (1000000000) >> 0; + } + t.wall = (x$5 = (x$6 = t.wall, new $Uint64(x$6.$high & ~0, (x$6.$low & ~1073741823) >>> 0)), x$7 = (new $Uint64(0, nsec)), new $Uint64(x$5.$high | x$7.$high, (x$5.$low | x$7.$low) >>> 0)); + t.addSec(dsec); + if (!((x$8 = (x$9 = t.wall, new $Uint64(x$9.$high & 2147483648, (x$9.$low & 0) >>> 0)), (x$8.$high === 0 && x$8.$low === 0)))) { + te = (x$10 = t.ext, x$11 = (new $Int64(d.$high, d.$low)), new $Int64(x$10.$high + x$11.$high, x$10.$low + x$11.$low)); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$12 = t.ext, (te.$high > x$12.$high || (te.$high === x$12.$high && te.$low > x$12.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$13 = t.ext, (te.$high < x$13.$high || (te.$high === x$13.$high && te.$low < x$13.$low)))) { + t.stripMono(); + } + else { + t.ext = te; + } + } + return t; + }; + Time.prototype.Add = function (d) { return this.$val.Add(d); }; + Time.ptr.prototype.Sub = function (u) { + var d, d$1, t, te, u, ue, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x$1 = (x$2 = (x$3 = t.wall, x$4 = u.wall, new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0)), new $Uint64(x$2.$high & 2147483648, (x$2.$low & 0) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + te = t.ext; + ue = u.ext; + d = ((x$5 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$5.$high, x$5.$low))); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) { + return new Duration(2147483647, 4294967295); + } + if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) { + return new Duration(-2147483648, 0); + } + return d; + } + d$1 = (x$6 = $mul64(((x$7 = (x$8 = t.sec(), x$9 = u.sec(), new $Int64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$10 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$6.$high + x$10.$high, x$6.$low + x$10.$low)); + if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) { + return d$1; + } + else if ($clone(t, Time).Before($clone(u, Time))) { + return new Duration(-2147483648, 0); + } + else { + return new Duration(2147483647, 4294967295); + } + }; + Time.prototype.Sub = function (u) { return this.$val.Sub(u); }; + Time.ptr.prototype.AddDate = function (years, months$1, days$1) { + var _r, _r$1, _r$2, _tuple, _tuple$1, day, days$1, hour, min, month, months$1, sec, t, year, years, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + day = $f.day; + days$1 = $f.days$1; + hour = $f.hour; + min = $f.min; + month = $f.month; + months$1 = $f.months$1; + sec = $f.sec; + t = $f.t; + year = $f.year; + years = $f.years; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).Date(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + _r$1 = $clone(t, Time).Clock(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple$1 = _r$1; + hour = _tuple$1[0]; + min = _tuple$1[1]; + sec = _tuple$1[2]; + _r$2 = Date(year + years >> 0, month + ((months$1 >> 0)) >> 0, day + days$1 >> 0, hour, min, sec, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $s = -1; + return _r$2; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.AddDate }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.day = day; + $f.days$1 = days$1; + $f.hour = hour; + $f.min = min; + $f.month = month; + $f.months$1 = months$1; + $f.sec = sec; + $f.t = t; + $f.year = year; + $f.years = years; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.AddDate = function (years, months$1, days$1) { return this.$val.AddDate(years, months$1, days$1); }; + Time.ptr.prototype.date = function (full) { + var _r, _r$1, _tuple, day, full, month, t, yday, year, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + day = $f.day; + full = $f.full; + month = $f.month; + t = $f.t; + yday = $f.yday; + year = $f.year; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + year = 0; + month = 0; + day = 0; + yday = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = absDate(_r, full); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + $s = -1; + return [year, month, day, yday]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.date }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.day = day; + $f.full = full; + $f.month = month; + $f.t = t; + $f.yday = yday; + $f.year = year; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.date = function (full) { return this.$val.date(full); }; + absDate = function (abs, full) { + var _q, abs, begin, d, day, end, full, month, n, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year; + year = 0; + month = 0; + day = 0; + yday = 0; + d = $div64(abs, new $Uint64(0, 86400), false); + n = $div64(d, new $Uint64(0, 146097), false); + y = $mul64(new $Uint64(0, 400), n); + d = (x$1 = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x$1.$high, d.$low - x$1.$low)); + n = $div64(d, new $Uint64(0, 36524), false); + n = (x$2 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$2.$high, n.$low - x$2.$low)); + y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$3.$high, y.$low + x$3.$low)); + d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$4.$high, d.$low - x$4.$low)); + n = $div64(d, new $Uint64(0, 1461), false); + y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$5.$high, y.$low + x$5.$low)); + d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$6.$high, d.$low - x$6.$low)); + n = $div64(d, new $Uint64(0, 365), false); + n = (x$7 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$7.$high, n.$low - x$7.$low)); + y = (x$8 = n, new $Uint64(y.$high + x$8.$high, y.$low + x$8.$low)); + d = (x$9 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$9.$high, d.$low - x$9.$low)); + year = (((x$10 = (x$11 = (new $Int64(y.$high, y.$low)), new $Int64(x$11.$high + -69, x$11.$low + 4075721025)), x$10.$low + ((x$10.$high >> 31) * 4294967296)) >> 0)); + yday = ((d.$low >> 0)); + if (!full) { + return [year, month, day, yday]; + } + day = yday; + if (isLeap(year)) { + if (day > 59) { + day = day - (1) >> 0; + } + else if ((day === 59)) { + month = 2; + day = 29; + return [year, month, day, yday]; + } + } + month = (((_q = day / 31, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + end = (((x$12 = month + 1 >> 0, ((x$12 < 0 || x$12 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$12])) >> 0)); + begin = 0; + if (day >= end) { + month = month + (1) >> 0; + begin = end; + } + else { + begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0)); + } + month = month + (1) >> 0; + day = (day - begin >> 0) + 1 >> 0; + return [year, month, day, yday]; + }; + daysIn = function (m, year) { + var m, x$1, year; + if ((m === 2) && isLeap(year)) { + return 29; + } + return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x$1 = m - 1 >> 0, ((x$1 < 0 || x$1 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$1])) >> 0) >> 0)); + }; + unixTime = function (sec, nsec) { + var nsec, sec; + return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 14, sec.$low + 2006054656), $pkg.Local); + }; + Time.ptr.prototype.UTC = function () { + var t; + t = this; + t.setLoc(utcLoc); + return t; + }; + Time.prototype.UTC = function () { return this.$val.UTC(); }; + Time.ptr.prototype.Local = function () { + var t; + t = this; + t.setLoc($pkg.Local); + return t; + }; + Time.prototype.Local = function () { return this.$val.Local(); }; + Time.ptr.prototype.In = function (loc) { + var loc, t; + t = this; + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Time.In")); + } + t.setLoc(loc); + return t; + }; + Time.prototype.In = function (loc) { return this.$val.In(loc); }; + Time.ptr.prototype.Location = function () { + var l, t; + t = this; + l = t.loc; + if (l === ptrType$2.nil) { + l = $pkg.UTC; + } + return l; + }; + Time.prototype.Location = function () { return this.$val.Location(); }; + Time.ptr.prototype.Zone = function () { + var _r, _tuple, name, offset, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + name = $f.name; + offset = $f.offset; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + name = ""; + offset = 0; + t = this; + _r = t.loc.lookup(t.unixSec()); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + $s = -1; + return [name, offset]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.Zone }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.name = name; + $f.offset = offset; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.Zone = function () { return this.$val.Zone(); }; + Time.ptr.prototype.Unix = function () { + var t; + t = this; + return t.unixSec(); + }; + Time.prototype.Unix = function () { return this.$val.Unix(); }; + Time.ptr.prototype.UnixNano = function () { + var t, x$1, x$2; + t = this; + return (x$1 = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$2 = (new $Int64(0, t.nsec())), new $Int64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)); + }; + Time.prototype.UnixNano = function () { return this.$val.UnixNano(); }; + Time.ptr.prototype.MarshalBinary = function () { + var _q, _r, _r$1, _tuple, enc, nsec, offset, offsetMin, sec, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _q = $f._q; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + enc = $f.enc; + nsec = $f.nsec; + offset = $f.offset; + offsetMin = $f.offsetMin; + sec = $f.sec; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + offsetMin = 0; + /* */ if ($clone(t, Time).Location() === $pkg.UTC) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1: + offsetMin = -1; + $s = 3; + continue; + /* } else { */ case 2: + _r = $clone(t, Time).Zone(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + offset = _tuple[1]; + if (!(((_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0))) { + $s = -1; + return [sliceType$3.nil, errors.New("Time.MarshalBinary: zone offset has fractional minute")]; + } + offset = (_q = offset / (60), (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (offset < -32768 || (offset === -1) || offset > 32767) { + $s = -1; + return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")]; + } + offsetMin = ((offset << 16 >> 16)); + /* } */ case 3: + sec = t.sec(); + nsec = t.nsec(); + enc = new sliceType$3([1, (($shiftRightInt64(sec, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec, 8).$low << 24 >>> 24)), ((sec.$low << 24 >>> 24)), (((nsec >> 24 >> 0) << 24 >>> 24)), (((nsec >> 16 >> 0) << 24 >>> 24)), (((nsec >> 8 >> 0) << 24 >>> 24)), ((nsec << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]); + $s = -1; + return [enc, $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.MarshalBinary }; + } + $f._q = _q; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.enc = enc; + $f.nsec = nsec; + $f.offset = offset; + $f.offsetMin = offsetMin; + $f.sec = sec; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.MarshalBinary = function () { return this.$val.MarshalBinary(); }; + Time.ptr.prototype.UnmarshalBinary = function (data) { + var _r, _tuple, buf, data, localoff, nsec, offset, sec, t, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + buf = $f.buf; + data = $f.data; + localoff = $f.localoff; + nsec = $f.nsec; + offset = $f.offset; + sec = $f.sec; + t = $f.t; + x$1 = $f.x$1; + x$10 = $f.x$10; + x$11 = $f.x$11; + x$12 = $f.x$12; + x$13 = $f.x$13; + x$14 = $f.x$14; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + x$6 = $f.x$6; + x$7 = $f.x$7; + x$8 = $f.x$8; + x$9 = $f.x$9; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + buf = data; + if (buf.$length === 0) { + $s = -1; + return errors.New("Time.UnmarshalBinary: no data"); + } + if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { + $s = -1; + return errors.New("Time.UnmarshalBinary: unsupported version"); + } + if (!((buf.$length === 15))) { + $s = -1; + return errors.New("Time.UnmarshalBinary: invalid length"); + } + buf = $subslice(buf, 1); + sec = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (x$7 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$8 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$7.$high | x$8.$high, (x$7.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$6.$high | x$9.$high, (x$6.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$5.$high | x$10.$high, (x$5.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$4.$high | x$11.$high, (x$4.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$3.$high | x$12.$high, (x$3.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$2.$high | x$13.$high, (x$2.$low | x$13.$low) >>> 0)), x$14 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x$1.$high | x$14.$high, (x$1.$low | x$14.$low) >>> 0)); + buf = $subslice(buf, 8); + nsec = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0); + buf = $subslice(buf, 4); + offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60); + Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil)); + t.wall = (new $Uint64(0, nsec)); + t.ext = sec; + /* */ if (offset === -60) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (offset === -60) { */ case 1: + t.setLoc(utcLoc); + $s = 3; + continue; + /* } else { */ case 2: + _r = $pkg.Local.lookup(t.unixSec()); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + localoff = _tuple[1]; + if (offset === localoff) { + t.setLoc($pkg.Local); + } + else { + t.setLoc(FixedZone("", offset)); + } + /* } */ case 3: + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.UnmarshalBinary }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.buf = buf; + $f.data = data; + $f.localoff = localoff; + $f.nsec = nsec; + $f.offset = offset; + $f.sec = sec; + $f.t = t; + $f.x$1 = x$1; + $f.x$10 = x$10; + $f.x$11 = x$11; + $f.x$12 = x$12; + $f.x$13 = x$13; + $f.x$14 = x$14; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.x$6 = x$6; + $f.x$7 = x$7; + $f.x$8 = x$8; + $f.x$9 = x$9; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.UnmarshalBinary = function (data) { return this.$val.UnmarshalBinary(data); }; + Time.ptr.prototype.GobEncode = function () { + var _r, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).MarshalBinary(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.GobEncode }; + } + $f._r = _r; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.GobEncode = function () { return this.$val.GobEncode(); }; + Time.ptr.prototype.GobDecode = function (data) { + var _r, data, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + data = $f.data; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = t.UnmarshalBinary(data); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.GobDecode }; + } + $f._r = _r; + $f.data = data; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.GobDecode = function (data) { return this.$val.GobDecode(data); }; + Time.ptr.prototype.MarshalJSON = function () { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + b = $f.b; + t = $f.t; + y = $f.y; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; + return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 37); + b = $append(b, 34); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + b = _r$1; + b = $append(b, 34); + $s = -1; + return [b, $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.MarshalJSON }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.b = b; + $f.t = t; + $f.y = y; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.MarshalJSON = function () { return this.$val.MarshalJSON(); }; + Time.ptr.prototype.UnmarshalJSON = function (data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + data = $f.data; + err = $f.err; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + if (($bytesToString(data)) === "null") { + $s = -1; + return $ifaceNil; + } + err = $ifaceNil; + _r = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data))); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.UnmarshalJSON }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.data = data; + $f.err = err; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.UnmarshalJSON = function (data) { return this.$val.UnmarshalJSON(data); }; + Time.ptr.prototype.MarshalText = function () { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + b = $f.b; + t = $f.t; + y = $f.y; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; + return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 35); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return [_r$1, $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.MarshalText }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.b = b; + $f.t = t; + $f.y = y; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.MarshalText = function () { return this.$val.MarshalText(); }; + Time.ptr.prototype.UnmarshalText = function (data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + data = $f.data; + err = $f.err; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + t = this; + err = $ifaceNil; + _r = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data))); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Time.ptr.prototype.UnmarshalText }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.data = data; + $f.err = err; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Time.prototype.UnmarshalText = function (data) { return this.$val.UnmarshalText(data); }; + Unix = function (sec, nsec) { + var n, nsec, sec, x$1, x$2, x$3, x$4; + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0)) || (nsec.$high > 0 || (nsec.$high === 0 && nsec.$low >= 1000000000))) { + n = $div64(nsec, new $Int64(0, 1000000000), false); + sec = (x$1 = n, new $Int64(sec.$high + x$1.$high, sec.$low + x$1.$low)); + nsec = (x$2 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec.$high - x$2.$high, nsec.$low - x$2.$low)); + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0))) { + nsec = (x$3 = new $Int64(0, 1000000000), new $Int64(nsec.$high + x$3.$high, nsec.$low + x$3.$low)); + sec = (x$4 = new $Int64(0, 1), new $Int64(sec.$high - x$4.$high, sec.$low - x$4.$low)); + } + } + return unixTime(sec, (((nsec.$low + ((nsec.$high >> 31) * 4294967296)) >> 0))); + }; + $pkg.Unix = Unix; + isLeap = function (year) { + var _r, _r$1, _r$2, year; + return ((_r = year % 4, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$1 = year % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$2 = year % 400, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0)); + }; + norm = function (hi, lo, base) { + var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo; + nhi = 0; + nlo = 0; + if (lo < 0) { + n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + hi = hi - (n) >> 0; + lo = lo + (($imul(n, base))) >> 0; + } + if (lo >= base) { + n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + hi = hi + (n$1) >> 0; + lo = lo - (($imul(n$1, base))) >> 0; + } + _tmp = hi; + _tmp$1 = lo; + nhi = _tmp; + nlo = _tmp$1; + return [nhi, nlo]; + }; + Date = function (year, month, day, hour, min, sec, nsec, loc) { + var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, abs, d, day, end, hour, loc, m, min, month, n, nsec, offset, sec, start, t, unix, utc, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, year, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + _tuple$2 = $f._tuple$2; + _tuple$3 = $f._tuple$3; + _tuple$4 = $f._tuple$4; + _tuple$5 = $f._tuple$5; + _tuple$6 = $f._tuple$6; + _tuple$7 = $f._tuple$7; + abs = $f.abs; + d = $f.d; + day = $f.day; + end = $f.end; + hour = $f.hour; + loc = $f.loc; + m = $f.m; + min = $f.min; + month = $f.month; + n = $f.n; + nsec = $f.nsec; + offset = $f.offset; + sec = $f.sec; + start = $f.start; + t = $f.t; + unix = $f.unix; + utc = $f.utc; + x$1 = $f.x$1; + x$10 = $f.x$10; + x$11 = $f.x$11; + x$12 = $f.x$12; + x$13 = $f.x$13; + x$14 = $f.x$14; + x$15 = $f.x$15; + x$16 = $f.x$16; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + x$6 = $f.x$6; + x$7 = $f.x$7; + x$8 = $f.x$8; + x$9 = $f.x$9; + y = $f.y; + year = $f.year; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Date")); + } + m = ((month >> 0)) - 1 >> 0; + _tuple = norm(year, m, 12); + year = _tuple[0]; + m = _tuple[1]; + month = ((m >> 0)) + 1 >> 0; + _tuple$1 = norm(sec, nsec, 1000000000); + sec = _tuple$1[0]; + nsec = _tuple$1[1]; + _tuple$2 = norm(min, sec, 60); + min = _tuple$2[0]; + sec = _tuple$2[1]; + _tuple$3 = norm(hour, min, 60); + hour = _tuple$3[0]; + min = _tuple$3[1]; + _tuple$4 = norm(day, hour, 24); + day = _tuple$4[0]; + hour = _tuple$4[1]; + y = ((x$1 = (x$2 = (new $Int64(0, year)), new $Int64(x$2.$high - -69, x$2.$low - 4075721025)), new $Uint64(x$1.$high, x$1.$low))); + n = $div64(y, new $Uint64(0, 400), false); + y = (x$3 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low)); + d = $mul64(new $Uint64(0, 146097), n); + n = $div64(y, new $Uint64(0, 100), false); + y = (x$4 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$4.$high, y.$low - x$4.$low)); + d = (x$5 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$5.$high, d.$low + x$5.$low)); + n = $div64(y, new $Uint64(0, 4), false); + y = (x$6 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$6.$high, y.$low - x$6.$low)); + d = (x$7 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low)); + n = y; + d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low)); + d = (x$9 = (new $Uint64(0, (x$10 = month - 1 >> 0, ((x$10 < 0 || x$10 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$10])))), new $Uint64(d.$high + x$9.$high, d.$low + x$9.$low)); + if (isLeap(year) && month >= 3) { + d = (x$11 = new $Uint64(0, 1), new $Uint64(d.$high + x$11.$high, d.$low + x$11.$low)); + } + d = (x$12 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$12.$high, d.$low + x$12.$low)); + abs = $mul64(d, new $Uint64(0, 86400)); + abs = (x$13 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec >> 0))), new $Uint64(abs.$high + x$13.$high, abs.$low + x$13.$low)); + unix = (x$14 = (new $Int64(abs.$high, abs.$low)), new $Int64(x$14.$high + -2147483647, x$14.$low + 3844486912)); + _r = loc.lookup(unix); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple$5 = _r; + offset = _tuple$5[1]; + start = _tuple$5[2]; + end = _tuple$5[3]; + /* */ if (!((offset === 0))) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (!((offset === 0))) { */ case 2: + utc = (x$15 = (new $Int64(0, offset)), new $Int64(unix.$high - x$15.$high, unix.$low - x$15.$low)); + /* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { + $s = 5; + continue; + } + /* */ if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { */ case 5: + _r$1 = loc.lookup(new $Int64(start.$high - 0, start.$low - 1)); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple$6 = _r$1; + offset = _tuple$6[1]; + $s = 7; + continue; + /* } else if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 6: + _r$2 = loc.lookup(end); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _tuple$7 = _r$2; + offset = _tuple$7[1]; + /* } */ case 7: + case 4: + unix = (x$16 = (new $Int64(0, offset)), new $Int64(unix.$high - x$16.$high, unix.$low - x$16.$low)); + /* } */ case 3: + t = $clone(unixTime(unix, ((nsec >> 0))), Time); + t.setLoc(loc); + $s = -1; + return t; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Date }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f._tuple$2 = _tuple$2; + $f._tuple$3 = _tuple$3; + $f._tuple$4 = _tuple$4; + $f._tuple$5 = _tuple$5; + $f._tuple$6 = _tuple$6; + $f._tuple$7 = _tuple$7; + $f.abs = abs; + $f.d = d; + $f.day = day; + $f.end = end; + $f.hour = hour; + $f.loc = loc; + $f.m = m; + $f.min = min; + $f.month = month; + $f.n = n; + $f.nsec = nsec; + $f.offset = offset; + $f.sec = sec; + $f.start = start; + $f.t = t; + $f.unix = unix; + $f.utc = utc; + $f.x$1 = x$1; + $f.x$10 = x$10; + $f.x$11 = x$11; + $f.x$12 = x$12; + $f.x$13 = x$13; + $f.x$14 = x$14; + $f.x$15 = x$15; + $f.x$16 = x$16; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.x$6 = x$6; + $f.x$7 = x$7; + $f.x$8 = x$8; + $f.x$9 = x$9; + $f.y = y; + $f.year = year; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Date = Date; + Time.ptr.prototype.Truncate = function (d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + }; + Time.prototype.Truncate = function (d) { return this.$val.Truncate(d); }; + Time.ptr.prototype.Round = function (d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + if (lessThanHalf(r, d)) { + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + } + return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low)); + }; + Time.prototype.Round = function (d) { return this.$val.Round(d); }; + div = function (t, d) { + var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec, qmod2, r, sec, sec$1, t, tmp, u0, u0x, u1, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + qmod2 = 0; + r = new Duration(0, 0); + neg = false; + nsec = t.nsec(); + sec = t.sec(); + if ((sec.$high < 0 || (sec.$high === 0 && sec.$low < 0))) { + neg = true; + sec = new $Int64(-sec.$high, -sec.$low); + nsec = -nsec; + if (nsec < 0) { + nsec = nsec + (1000000000) >> 0; + sec = (x$1 = new $Int64(0, 1), new $Int64(sec.$high - x$1.$high, sec.$low - x$1.$low)); + } + } + if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$2 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$2.$high === 0 && x$2.$low === 0))) { + qmod2 = (((_q = nsec / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1; + r = (new Duration(0, (_r = nsec % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); + } + else if ((x$3 = $div64(d, new Duration(0, 1000000000), true), (x$3.$high === 0 && x$3.$low === 0))) { + d1 = ((x$4 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$4.$high, x$4.$low))); + qmod2 = (((x$5 = $div64(sec, d1, false), x$5.$low + ((x$5.$high >> 31) * 4294967296)) >> 0)) & 1; + r = (x$6 = $mul64(((x$7 = $div64(sec, d1, true), new Duration(x$7.$high, x$7.$low))), new Duration(0, 1000000000)), x$8 = (new Duration(0, nsec)), new Duration(x$6.$high + x$8.$high, x$6.$low + x$8.$low)); + } + else { + sec$1 = (new $Uint64(sec.$high, sec.$low)); + tmp = $mul64(($shiftRightUint64(sec$1, 32)), new $Uint64(0, 1000000000)); + u1 = $shiftRightUint64(tmp, 32); + u0 = $shiftLeft64(tmp, 32); + tmp = $mul64((new $Uint64(sec$1.$high & 0, (sec$1.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000)); + _tmp = u0; + _tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low); + u0x = _tmp; + u0 = _tmp$1; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$9 = new $Uint64(0, 1), new $Uint64(u1.$high + x$9.$high, u1.$low + x$9.$low)); + } + _tmp$2 = u0; + _tmp$3 = (x$10 = (new $Uint64(0, nsec)), new $Uint64(u0.$high + x$10.$high, u0.$low + x$10.$low)); + u0x = _tmp$2; + u0 = _tmp$3; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$11 = new $Uint64(0, 1), new $Uint64(u1.$high + x$11.$high, u1.$low + x$11.$low)); + } + d1$1 = (new $Uint64(d.$high, d.$low)); + while (true) { + if (!(!((x$12 = $shiftRightUint64(d1$1, 63), (x$12.$high === 0 && x$12.$low === 1))))) { + break; + } + d1$1 = $shiftLeft64(d1$1, (1)); + } + d0 = new $Uint64(0, 0); + while (true) { + qmod2 = 0; + if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) { + qmod2 = 1; + _tmp$4 = u0; + _tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low); + u0x = _tmp$4; + u0 = _tmp$5; + if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) { + u1 = (x$13 = new $Uint64(0, 1), new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low)); + } + u1 = (x$14 = d1$1, new $Uint64(u1.$high - x$14.$high, u1.$low - x$14.$low)); + } + if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$15 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$15.$high && d0.$low === x$15.$low))) { + break; + } + d0 = $shiftRightUint64(d0, (1)); + d0 = (x$16 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$16.$high, (d0.$low | x$16.$low) >>> 0)); + d1$1 = $shiftRightUint64(d1$1, (1)); + } + r = (new Duration(u0.$high, u0.$low)); + } + if (neg && !((r.$high === 0 && r.$low === 0))) { + qmod2 = (qmod2 ^ (1)) >> 0; + r = new Duration(d.$high - r.$high, d.$low - r.$low); + } + return [qmod2, r]; + }; + Location.ptr.prototype.get = function () { + var l, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + l = $f.l; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + l = this; + if (l === ptrType$2.nil) { + $s = -1; + return utcLoc; + } + /* */ if (l === localLoc) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (l === localLoc) { */ case 1: + $r = localOnce.Do(initLocal); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 2: + $s = -1; + return l; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Location.ptr.prototype.get }; + } + $f.l = l; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Location.prototype.get = function () { return this.$val.get(); }; + Location.ptr.prototype.String = function () { + var _r, l, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + l = $f.l; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + l = this; + _r = l.get(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r.name; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Location.ptr.prototype.String }; + } + $f._r = _r; + $f.l = l; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Location.prototype.String = function () { return this.$val.String(); }; + FixedZone = function (name, offset) { + var l, name, offset, x$1; + l = new Location.ptr(name, new sliceType([new zone.ptr(name, offset, false)]), new sliceType$1([new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false)]), new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); + l.cacheZone = (x$1 = l.zone, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + return l; + }; + $pkg.FixedZone = FixedZone; + Location.ptr.prototype.lookup = function (sec) { + var _q, _r, end, hi, l, lim, lo, m, name, offset, sec, start, tx, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, zone$1, zone$2, zone$3, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _q = $f._q; + _r = $f._r; + end = $f.end; + hi = $f.hi; + l = $f.l; + lim = $f.lim; + lo = $f.lo; + m = $f.m; + name = $f.name; + offset = $f.offset; + sec = $f.sec; + start = $f.start; + tx = $f.tx; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + x$6 = $f.x$6; + x$7 = $f.x$7; + x$8 = $f.x$8; + x$9 = $f.x$9; + zone$1 = $f.zone$1; + zone$2 = $f.zone$2; + zone$3 = $f.zone$3; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + name = ""; + offset = 0; + start = new $Int64(0, 0); + end = new $Int64(0, 0); + l = this; + _r = l.get(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + l = _r; + if (l.zone.$length === 0) { + name = "UTC"; + offset = 0; + start = new $Int64(-2147483648, 0); + end = new $Int64(2147483647, 4294967295); + $s = -1; + return [name, offset, start, end]; + } + zone$1 = l.cacheZone; + if (!(zone$1 === ptrType.nil) && (x$1 = l.cacheStart, (x$1.$high < sec.$high || (x$1.$high === sec.$high && x$1.$low <= sec.$low))) && (x$2 = l.cacheEnd, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { + name = zone$1.name; + offset = zone$1.offset; + start = l.cacheStart; + end = l.cacheEnd; + $s = -1; + return [name, offset, start, end]; + } + if ((l.tx.$length === 0) || (x$3 = (x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).when, (sec.$high < x$3.$high || (sec.$high === x$3.$high && sec.$low < x$3.$low)))) { + zone$2 = (x$5 = l.zone, x$6 = l.lookupFirstZone(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + name = zone$2.name; + offset = zone$2.offset; + start = new $Int64(-2147483648, 0); + if (l.tx.$length > 0) { + end = (x$7 = l.tx, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).when; + } + else { + end = new $Int64(2147483647, 4294967295); + } + $s = -1; + return [name, offset, start, end]; + } + tx = l.tx; + end = new $Int64(2147483647, 4294967295); + lo = 0; + hi = tx.$length; + while (true) { + if (!((hi - lo >> 0) > 1)) { + break; + } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when; + if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) { + end = lim; + hi = m; + } + else { + lo = m; + } + } + zone$3 = (x$8 = l.zone, x$9 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + name = zone$3.name; + offset = zone$3.offset; + start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; + $s = -1; + return [name, offset, start, end]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Location.ptr.prototype.lookup }; + } + $f._q = _q; + $f._r = _r; + $f.end = end; + $f.hi = hi; + $f.l = l; + $f.lim = lim; + $f.lo = lo; + $f.m = m; + $f.name = name; + $f.offset = offset; + $f.sec = sec; + $f.start = start; + $f.tx = tx; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.x$6 = x$6; + $f.x$7 = x$7; + $f.x$8 = x$8; + $f.x$9 = x$9; + $f.zone$1 = zone$1; + $f.zone$2 = zone$2; + $f.zone$3 = zone$3; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Location.prototype.lookup = function (sec) { return this.$val.lookup(sec); }; + Location.ptr.prototype.lookupFirstZone = function () { + var _i, _ref, l, x$1, x$2, x$3, x$4, x$5, x$6, zi, zi$1; + l = this; + if (!l.firstZoneUsed()) { + return 0; + } + if (l.tx.$length > 0 && (x$1 = l.zone, x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])).isDST) { + zi = (((x$4 = l.tx, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])).index >> 0)) - 1 >> 0; + while (true) { + if (!(zi >= 0)) { + break; + } + if (!(x$5 = l.zone, ((zi < 0 || zi >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi])).isDST) { + return zi; + } + zi = zi - (1) >> 0; + } + } + _ref = l.zone; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + zi$1 = _i; + if (!(x$6 = l.zone, ((zi$1 < 0 || zi$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + zi$1])).isDST) { + return zi$1; + } + _i++; + } + return 0; + }; + Location.prototype.lookupFirstZone = function () { return this.$val.lookupFirstZone(); }; + Location.ptr.prototype.firstZoneUsed = function () { + var _i, _ref, l, tx; + l = this; + _ref = l.tx; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans); + if (tx.index === 0) { + return true; + } + _i++; + } + return false; + }; + Location.prototype.firstZoneUsed = function () { return this.$val.firstZoneUsed(); }; + Location.ptr.prototype.lookupName = function (name, unix) { + var _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x$1, x$2, x$3, zone$1, zone$2, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _i$1 = $f._i$1; + _r = $f._r; + _r$1 = $f._r$1; + _ref = $f._ref; + _ref$1 = $f._ref$1; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tuple = $f._tuple; + i = $f.i; + i$1 = $f.i$1; + l = $f.l; + nam = $f.nam; + name = $f.name; + offset = $f.offset; + offset$1 = $f.offset$1; + ok = $f.ok; + unix = $f.unix; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + zone$1 = $f.zone$1; + zone$2 = $f.zone$2; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + offset = 0; + ok = false; + l = this; + _r = l.get(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + l = _r; + _ref = l.zone; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 3; + continue; + } + i = _i; + zone$1 = (x$1 = l.zone, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + /* */ if (zone$1.name === name) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (zone$1.name === name) { */ case 4: + _r$1 = l.lookup((x$2 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$2.$high, unix.$low - x$2.$low))); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + nam = _tuple[0]; + offset$1 = _tuple[1]; + if (nam === zone$1.name) { + _tmp = offset$1; + _tmp$1 = true; + offset = _tmp; + ok = _tmp$1; + $s = -1; + return [offset, ok]; + } + /* } */ case 5: + _i++; + /* } */ $s = 2; + continue; + case 3: + _ref$1 = l.zone; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { + break; + } + i$1 = _i$1; + zone$2 = (x$3 = l.zone, ((i$1 < 0 || i$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i$1])); + if (zone$2.name === name) { + _tmp$2 = zone$2.offset; + _tmp$3 = true; + offset = _tmp$2; + ok = _tmp$3; + $s = -1; + return [offset, ok]; + } + _i$1++; + } + $s = -1; + return [offset, ok]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Location.ptr.prototype.lookupName }; + } + $f._i = _i; + $f._i$1 = _i$1; + $f._r = _r; + $f._r$1 = _r$1; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tuple = _tuple; + $f.i = i; + $f.i$1 = i$1; + $f.l = l; + $f.nam = nam; + $f.name = name; + $f.offset = offset; + $f.offset$1 = offset$1; + $f.ok = ok; + $f.unix = unix; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.zone$1 = zone$1; + $f.zone$2 = zone$2; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + Location.prototype.lookupName = function (name, unix) { return this.$val.lookupName(name, unix); }; + ptrType$4.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + Time.methods = [{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false) }, { prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false) }, { prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false) }, { prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false) }, { prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false) }, { prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false) }, { prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false) }, { prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false) }, { prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false) }, { prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false) }, { prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false) }, { prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false) }, { prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false) }, { prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false) }, { prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false) }, { prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false) }, { prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false) }, { prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false) }, { prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false) }, { prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false) }, { prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false) }, { prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false) }, { prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false) }, { prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false) }, { prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false) }, { prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false) }, { prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false) }, { prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false) }, { prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false) }]; + ptrType$7.methods = [{ prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false) }, { prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false) }, { prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false) }, { prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false) }, { prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false) }, { prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false) }, { prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false) }, { prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false) }, { prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false) }, { prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false) }, { prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false) }, { prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false) }]; + Month.methods = [{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + Weekday.methods = [{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + Duration.methods = [{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false) }, { prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false) }, { prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false) }, { prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false) }, { prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false) }, { prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false) }]; + ptrType$2.methods = [{ prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64], false) }, { prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false) }, { prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false) }, { prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false) }]; + ParseError.init("", [{ prop: "Layout", name: "Layout", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "LayoutElem", name: "LayoutElem", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "ValueElem", name: "ValueElem", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: "" }]); + Time.init("time", [{ prop: "wall", name: "wall", embedded: false, exported: false, typ: $Uint64, tag: "" }, { prop: "ext", name: "ext", embedded: false, exported: false, typ: $Int64, tag: "" }, { prop: "loc", name: "loc", embedded: false, exported: false, typ: ptrType$2, tag: "" }]); + Location.init("time", [{ prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: "" }, { prop: "zone", name: "zone", embedded: false, exported: false, typ: sliceType, tag: "" }, { prop: "tx", name: "tx", embedded: false, exported: false, typ: sliceType$1, tag: "" }, { prop: "cacheStart", name: "cacheStart", embedded: false, exported: false, typ: $Int64, tag: "" }, { prop: "cacheEnd", name: "cacheEnd", embedded: false, exported: false, typ: $Int64, tag: "" }, { prop: "cacheZone", name: "cacheZone", embedded: false, exported: false, typ: ptrType, tag: "" }]); + zone.init("time", [{ prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: "" }, { prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "isDST", name: "isDST", embedded: false, exported: false, typ: $Bool, tag: "" }]); + zoneTrans.init("time", [{ prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: "" }, { prop: "index", name: "index", embedded: false, exported: false, typ: $Uint8, tag: "" }, { prop: "isstd", name: "isstd", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "isutc", name: "isutc", embedded: false, exported: false, typ: $Bool, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = js.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = nosync.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = runtime.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = syscall.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + localOnce = new nosync.Once.ptr(false, false); + zoneSources = new sliceType$2([runtime.GOROOT() + "/lib/time/zoneinfo.zip"]); + std0x = $toNativeArray($kindInt, [260, 265, 524, 526, 528, 274]); + longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + shortMonthNames = new sliceType$2(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); + longMonthNames = new sliceType$2(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + atoiError = errors.New("time: invalid number"); + errBad = errors.New("bad value for field"); + errLeadingInt = errors.New("time: bad [0-9]*"); + months = $toNativeArray($kindString, ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + days = $toNativeArray($kindString, ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + unitMap = $makeMap($String.keyFor, [{ k: "ns", v: new $Int64(0, 1) }, { k: "us", v: new $Int64(0, 1000) }, { k: "\xC2\xB5s", v: new $Int64(0, 1000) }, { k: "\xCE\xBCs", v: new $Int64(0, 1000) }, { k: "ms", v: new $Int64(0, 1000000) }, { k: "s", v: new $Int64(0, 1000000000) }, { k: "m", v: new $Int64(13, 4165425152) }, { k: "h", v: new $Int64(838, 817405952) }]); + daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]); + startNano = (x = runtimeNano(), new $Int64(x.$high - 0, x.$low - 1)); + utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + $pkg.UTC = utcLoc; + $pkg.Local = localLoc; + errLocation = errors.New("time: invalid location name"); + badData = errors.New("malformed time zone information"); + init(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["internal/poll"] = (function () { + var $pkg = {}, $init, errors, io, runtime, atomic, syscall, time, pollDesc, TimeoutError, fdMutex, FD, ptrType, chanType, sliceType, ptrType$1, ptrType$2, arrayType, sliceType$1, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$2, ptrType$9, funcType, funcType$1, ptrType$10, ptrType$11, ptrType$12, sliceType$3, ptrType$13, semWaiters, tryDupCloexec, tryDupCloexec$24ptr, runtime_Semacquire, runtime_Semrelease, errClosing, consume, fcntl, DupCloseOnExec, dupCloseOnExecOld, writev, accept; + errors = $packages["errors"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + pollDesc = $pkg.pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function (closing_) { + this.$val = this; + if (arguments.length === 0) { + this.closing = false; + return; + } + this.closing = closing_; + }); + TimeoutError = $pkg.TimeoutError = $newType(0, $kindStruct, "poll.TimeoutError", true, "internal/poll", true, function () { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + fdMutex = $pkg.fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function (state_, rsema_, wsema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = new $Uint64(0, 0); + this.rsema = 0; + this.wsema = 0; + return; + } + this.state = state_; + this.rsema = rsema_; + this.wsema = wsema_; + }); + FD = $pkg.FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function (fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { + this.$val = this; + if (arguments.length === 0) { + this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); + this.Sysfd = 0; + this.pd = new pollDesc.ptr(false); + this.iovecs = ptrType$3.nil; + this.csema = 0; + this.isBlocking = 0; + this.IsStream = false; + this.ZeroReadIsEOF = false; + this.isFile = false; + return; + } + this.fdmu = fdmu_; + this.Sysfd = Sysfd_; + this.pd = pd_; + this.iovecs = iovecs_; + this.csema = csema_; + this.isBlocking = isBlocking_; + this.IsStream = IsStream_; + this.ZeroReadIsEOF = ZeroReadIsEOF_; + this.isFile = isFile_; + }); + ptrType = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType = $sliceType(chanType); + ptrType$1 = $ptrType($Uint64); + ptrType$2 = $ptrType($Int32); + arrayType = $arrayType($Uint8, 4); + sliceType$1 = $sliceType(syscall.Iovec); + ptrType$3 = $ptrType(sliceType$1); + ptrType$4 = $ptrType($Uint8); + ptrType$5 = $ptrType(FD); + ptrType$6 = $ptrType(pollDesc); + ptrType$7 = $ptrType(TimeoutError); + ptrType$8 = $ptrType(fdMutex); + sliceType$2 = $sliceType($Uint8); + ptrType$9 = $ptrType(syscall.Stat_t); + funcType = $funcType([$Uintptr], [], false); + funcType$1 = $funcType([$Uintptr], [$Bool], false); + ptrType$10 = $ptrType(syscall.Linger); + ptrType$11 = $ptrType(syscall.IPMreq); + ptrType$12 = $ptrType(syscall.IPv6Mreq); + sliceType$3 = $sliceType(sliceType$2); + ptrType$13 = $ptrType(sliceType$3); + pollDesc.ptr.prototype.init = function (fd) { + var fd, pd; + pd = this; + return $ifaceNil; + }; + pollDesc.prototype.init = function (fd) { return this.$val.init(fd); }; + pollDesc.ptr.prototype.close = function () { + var pd; + pd = this; + }; + pollDesc.prototype.close = function () { return this.$val.close(); }; + pollDesc.ptr.prototype.evict = function () { + var pd; + pd = this; + pd.closing = true; + }; + pollDesc.prototype.evict = function () { return this.$val.evict(); }; + pollDesc.ptr.prototype.prepare = function (mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $ifaceNil; + }; + pollDesc.prototype.prepare = function (mode, isFile) { return this.$val.prepare(mode, isFile); }; + pollDesc.ptr.prototype.prepareRead = function (isFile) { + var isFile, pd; + pd = this; + return pd.prepare(114, isFile); + }; + pollDesc.prototype.prepareRead = function (isFile) { return this.$val.prepareRead(isFile); }; + pollDesc.ptr.prototype.prepareWrite = function (isFile) { + var isFile, pd; + pd = this; + return pd.prepare(119, isFile); + }; + pollDesc.prototype.prepareWrite = function (isFile) { return this.$val.prepareWrite(isFile); }; + pollDesc.ptr.prototype.wait = function (mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $pkg.ErrTimeout; + }; + pollDesc.prototype.wait = function (mode, isFile) { return this.$val.wait(mode, isFile); }; + pollDesc.ptr.prototype.waitRead = function (isFile) { + var isFile, pd; + pd = this; + return pd.wait(114, isFile); + }; + pollDesc.prototype.waitRead = function (isFile) { return this.$val.waitRead(isFile); }; + pollDesc.ptr.prototype.waitWrite = function (isFile) { + var isFile, pd; + pd = this; + return pd.wait(119, isFile); + }; + pollDesc.prototype.waitWrite = function (isFile) { return this.$val.waitWrite(isFile); }; + pollDesc.ptr.prototype.pollable = function () { + return true; + }; + pollDesc.prototype.pollable = function () { return this.$val.pollable(); }; + FD.ptr.prototype.SetDeadline = function (t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetDeadline = function (t) { return this.$val.SetDeadline(t); }; + FD.ptr.prototype.SetReadDeadline = function (t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetReadDeadline = function (t) { return this.$val.SetReadDeadline(t); }; + FD.ptr.prototype.SetWriteDeadline = function (t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetWriteDeadline = function (t) { return this.$val.SetWriteDeadline(t); }; + runtime_Semacquire = function (s) { + var _entry, _key, _r, ch, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _key = $f._key; + _r = $f._r; + ch = $f.ch; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + /* */ if (s.$get() === 0) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (s.$get() === 0) { */ case 1: + ch = new $Chan($Bool, 0); + _key = s; + (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: $append((_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil), ch) }; + _r = $recv(ch); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r[0]; + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: runtime_Semacquire }; + } + $f._entry = _entry; + $f._key = _key; + $f._r = _r; + $f.ch = ch; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + runtime_Semrelease = function (s) { + var _entry, _key, ch, s, w, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _key = $f._key; + ch = $f.ch; + s = $f.s; + w = $f.w; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil); + if (w.$length === 0) { + $s = -1; + return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; + (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType.keyFor(s)]; + } + $r = $send(ch, true); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: runtime_Semrelease }; + } + $f._entry = _entry; + $f._key = _key; + $f.ch = ch; + $f.s = s; + $f.w = w; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + errClosing = function (isFile) { + var isFile; + if (isFile) { + return $pkg.ErrFileClosing; + } + return $pkg.ErrNetClosing; + }; + TimeoutError.ptr.prototype.Error = function () { + var e; + e = this; + return "i/o timeout"; + }; + TimeoutError.prototype.Error = function () { return this.$val.Error(); }; + TimeoutError.ptr.prototype.Timeout = function () { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Timeout = function () { return this.$val.Timeout(); }; + TimeoutError.ptr.prototype.Temporary = function () { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Temporary = function () { return this.$val.Temporary(); }; + consume = function (v, n) { + var ln0, n, v, x, x$1, x$2, x$3; + while (true) { + if (!(v.$get().$length > 0)) { + break; + } + ln0 = (new $Int64(0, (x = v.$get(), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).$length)); + if ((ln0.$high > n.$high || (ln0.$high === n.$high && ln0.$low > n.$low))) { + (x$2 = v.$get(), (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = v.$get(), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $flatten64(n)))); + return; + } + n = (x$3 = ln0, new $Int64(n.$high - x$3.$high, n.$low - x$3.$low)); + v.$set($subslice((v.$get()), 1)); + } + }; + FD.ptr.prototype.Fsync = function () { + var _tuple, e1, err, fd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _tuple = $f._tuple; + e1 = $f.e1; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _tuple = fcntl(fd.Sysfd, 51, 0); + e1 = _tuple[1]; + $s = -1; + return e1; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Fsync }; + } + $f._tuple = _tuple; + $f.e1 = e1; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Fsync = function () { return this.$val.Fsync(); }; + fcntl = function () { + $throwRuntimeError("native function not implemented: internal/poll.fcntl"); + }; + fdMutex.ptr.prototype.incref = function () { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + return false; + } + new$1 = new $Uint64(old.$high + 0, old.$low + 8); + if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return true; + } + } + }; + fdMutex.prototype.incref = function () { return this.$val.incref(); }; + fdMutex.ptr.prototype.increfAndClose = function () { + var mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + mu = $f.mu; + new$1 = $f.new$1; + old = $f.old; + x = $f.x; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + x$6 = $f.x$6; + x$7 = $f.x$7; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + mu = this; + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; + return false; + } + new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8)); + if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu))), old, new$1)) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* while (true) { */ case 5: + /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { + $s = 6; + continue; + } + old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); + $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function () { return this.$target.rsema; }, function ($v) { this.$target.rsema = $v; }, mu)))); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ $s = 5; + continue; + case 6: + /* while (true) { */ case 8: + /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { + $s = 9; + continue; + } + old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); + $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function () { return this.$target.wsema; }, function ($v) { this.$target.wsema = $v; }, mu)))); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ $s = 8; + continue; + case 9: + $s = -1; + return true; + /* } */ case 4: + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return false; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: fdMutex.ptr.prototype.increfAndClose }; + } + $f.mu = mu; + $f.new$1 = new$1; + $f.old = old; + $f.x = x; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.x$6 = x$6; + $f.x$7 = x$7; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + fdMutex.prototype.increfAndClose = function () { return this.$val.increfAndClose(); }; + fdMutex.ptr.prototype.decref = function () { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = new $Uint64(old.$high - 0, old.$low - 8); + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); + } + } + }; + fdMutex.prototype.decref = function () { return this.$val.decref(); }; + fdMutex.ptr.prototype.rwlock = function (read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + mu = $f.mu; + mutexBit = $f.mutexBit; + mutexMask = $f.mutexMask; + mutexSema = $f.mutexSema; + mutexWait = $f.mutexWait; + new$1 = $f.new$1; + old = $f.old; + read = $f.read; + x = $f.x; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function () { return this.$target.rsema; }, function ($v) { this.$target.rsema = $v; }, mu))); + } + else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function () { return this.$target.wsema; }, function ($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; + return false; + } + new$1 = new $Uint64(0, 0); + if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8)); + if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } + else { + new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low); + if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu))), old, new$1)) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { + $s = -1; + return true; + } + $r = runtime_Semacquire(mutexSema); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 4: + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return false; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: fdMutex.ptr.prototype.rwlock }; + } + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f.mu = mu; + $f.mutexBit = mutexBit; + $f.mutexMask = mutexMask; + $f.mutexSema = mutexSema; + $f.mutexWait = mutexWait; + $f.new$1 = new$1; + $f.old = old; + $f.read = read; + $f.x = x; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + fdMutex.prototype.rwlock = function (read) { return this.$val.rwlock(read); }; + fdMutex.ptr.prototype.rwunlock = function (read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + mu = $f.mu; + mutexBit = $f.mutexBit; + mutexMask = $f.mutexMask; + mutexSema = $f.mutexSema; + mutexWait = $f.mutexWait; + new$1 = $f.new$1; + old = $f.old; + read = $f.read; + x = $f.x; + x$1 = $f.x$1; + x$2 = $f.x$2; + x$3 = $f.x$3; + x$4 = $f.x$4; + x$5 = $f.x$5; + x$6 = $f.x$6; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function () { return this.$target.rsema; }, function ($v) { this.$target.rsema = $v; }, mu))); + } + else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function () { return this.$target.wsema; }, function ($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8)); + if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { + new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function () { return this.$target.state; }, function ($v) { this.$target.state = $v; }, mu))), old, new$1)) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5: + $r = runtime_Semrelease(mutexSema); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 6: + $s = -1; + return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1)); + /* } */ case 4: + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return false; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: fdMutex.ptr.prototype.rwunlock }; + } + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f.mu = mu; + $f.mutexBit = mutexBit; + $f.mutexMask = mutexMask; + $f.mutexSema = mutexSema; + $f.mutexWait = mutexWait; + $f.new$1 = new$1; + $f.old = old; + $f.read = read; + $f.x = x; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.x$3 = x$3; + $f.x$4 = x$4; + $f.x$5 = x$5; + $f.x$6 = x$6; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + fdMutex.prototype.rwunlock = function (read) { return this.$val.rwunlock(read); }; + FD.ptr.prototype.incref = function () { + var fd; + fd = this; + if (!fd.fdmu.incref()) { + return errClosing(fd.isFile); + } + return $ifaceNil; + }; + FD.prototype.incref = function () { return this.$val.incref(); }; + FD.ptr.prototype.decref = function () { + var _r, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + /* */ if (fd.fdmu.decref()) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (fd.fdmu.decref()) { */ case 1: + _r = fd.destroy(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } */ case 2: + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.decref }; + } + $f._r = _r; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.decref = function () { return this.$val.decref(); }; + FD.ptr.prototype.readLock = function () { + var _r, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + _r = fd.fdmu.rwlock(true); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!_r) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!_r) { */ case 1: + $s = -1; + return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.readLock }; + } + $f._r = _r; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.readLock = function () { return this.$val.readLock(); }; + FD.ptr.prototype.readUnlock = function () { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + _r = fd.fdmu.rwunlock(true); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$1; + /* } */ case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.readUnlock }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.readUnlock = function () { return this.$val.readUnlock(); }; + FD.ptr.prototype.writeLock = function () { + var _r, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + _r = fd.fdmu.rwlock(false); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!_r) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!_r) { */ case 1: + $s = -1; + return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.writeLock }; + } + $f._r = _r; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.writeLock = function () { return this.$val.writeLock(); }; + FD.ptr.prototype.writeUnlock = function () { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + _r = fd.fdmu.rwunlock(false); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$1; + /* } */ case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.writeUnlock }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.writeUnlock = function () { return this.$val.writeUnlock(); }; + FD.ptr.prototype.eofError = function (n, err) { + var err, fd, n; + fd = this; + if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) { + return io.EOF; + } + return err; + }; + FD.prototype.eofError = function (n, err) { return this.$val.eofError(n, err); }; + FD.ptr.prototype.Fchmod = function (mode) { + var _r, err, fd, mode, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + mode = $f.mode; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchmod(fd.Sysfd, mode); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Fchmod }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.mode = mode; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Fchmod = function (mode) { return this.$val.Fchmod(mode); }; + FD.ptr.prototype.Fchown = function (uid, gid) { + var _r, err, fd, gid, uid, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + gid = $f.gid; + uid = $f.uid; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchown(fd.Sysfd, uid, gid); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Fchown }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.gid = gid; + $f.uid = uid; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Fchown = function (uid, gid) { return this.$val.Fchown(uid, gid); }; + FD.ptr.prototype.Ftruncate = function (size) { + var _r, err, fd, size, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + size = $f.size; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Ftruncate(fd.Sysfd, size); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Ftruncate }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.size = size; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Ftruncate = function (size) { return this.$val.Ftruncate(size); }; + FD.ptr.prototype.Init = function (net, pollable) { + var err, fd, net, pollable; + fd = this; + if (net === "file") { + fd.isFile = true; + } + if (!pollable) { + fd.isBlocking = 1; + return $ifaceNil; + } + err = fd.pd.init(fd); + if (!($interfaceIsEqual(err, $ifaceNil))) { + fd.isBlocking = 1; + } + return err; + }; + FD.prototype.Init = function (net, pollable) { return this.$val.Init(net, pollable); }; + FD.ptr.prototype.destroy = function () { + var _r, err, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + fd.pd.close(); + _r = $pkg.CloseFunc(fd.Sysfd); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + fd.Sysfd = -1; + $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function () { return this.$target.csema; }, function ($v) { this.$target.csema = $v; }, fd)))); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.destroy }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.destroy = function () { return this.$val.destroy(); }; + FD.ptr.prototype.Close = function () { + var _r, _r$1, err, fd, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + _r = fd.fdmu.increfAndClose(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (!_r) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!_r) { */ case 1: + $s = -1; + return errClosing(fd.isFile); + /* } */ case 2: + fd.pd.evict(); + _r$1 = fd.decref(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + err = _r$1; + /* */ if (fd.isBlocking === 0) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (fd.isBlocking === 0) { */ case 5: + $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function () { return this.$target.csema; }, function ($v) { this.$target.csema = $v; }, fd)))); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 6: + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Close }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.Close = function () { return this.$val.Close(); }; + FD.ptr.prototype.Shutdown = function (how) { + var _r, err, fd, how, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + how = $f.how; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Shutdown(fd.Sysfd, how); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Shutdown }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.how = how; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Shutdown = function (how) { return this.$val.Shutdown(how); }; + FD.ptr.prototype.SetBlocking = function () { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function () { return this.$target.isBlocking; }, function ($v) { this.$target.isBlocking = $v; }, fd))), 1); + _r = syscall.SetNonblock(fd.Sysfd, false); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.SetBlocking }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.SetBlocking = function () { return this.$val.SetBlocking(); }; + FD.ptr.prototype.Read = function (p) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + fd = $f.fd; + n = $f.n; + p = $f.p; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + if (p.$length === 0) { + $s = -1; + return [0, $ifaceNil]; + } + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [0, err$1]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + /* while (true) { */ case 2: + _r$1 = syscall.Read(fd.Sysfd, p); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + if (true && $interfaceIsEqual(err$2, new syscall.Errno(4))) { + /* continue; */ $s = 2; + continue; + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; + return [n, err$2]; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [0, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Read }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.fd = fd; + $f.n = n; + $f.p = p; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Read = function (p) { return this.$val.Read(p); }; + FD.ptr.prototype.Pread = function (p, off) { + var _r, _r$1, _tuple, err, err$1, fd, n, off, p, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + fd = $f.fd; + n = $f.n; + off = $f.off; + p = $f.p; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, err]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + _r = syscall.Pread(fd.Sysfd, p, off); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + } + _r$1 = fd.decref(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$1; + err$1 = fd.eofError(n, err$1); + $s = -1; + return [n, err$1]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Pread }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.fd = fd; + $f.n = n; + $f.off = off; + $f.p = p; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.prototype.Pread = function (p, off) { return this.$val.Pread(p, off); }; + FD.ptr.prototype.ReadFrom = function (p) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + fd = $f.fd; + n = $f.n; + p = $f.p; + sa = $f.sa; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [0, $ifaceNil, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Recvfrom(fd.Sysfd, p, 0); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + sa = _tuple[1]; + err$2 = _tuple[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; + return [n, sa, err$2]; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [0, $ifaceNil, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.ReadFrom }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.fd = fd; + $f.n = n; + $f.p = p; + $f.sa = sa; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.ReadFrom = function (p) { return this.$val.ReadFrom(p); }; + FD.ptr.prototype.ReadMsg = function (p, oob) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + fd = $f.fd; + flags = $f.flags; + n = $f.n; + oob = $f.oob; + oobn = $f.oobn; + p = $f.p; + sa = $f.sa; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, 0, 0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [0, 0, 0, $ifaceNil, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Recvmsg(fd.Sysfd, p, oob, 0); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + oobn = _tuple[1]; + flags = _tuple[2]; + sa = _tuple[3]; + err$2 = _tuple[4]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; + return [n, oobn, flags, sa, err$2]; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [0, 0, 0, $ifaceNil, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, 0, 0, $ifaceNil, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.ReadMsg }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.fd = fd; + $f.flags = flags; + $f.n = n; + $f.oob = oob; + $f.oobn = oobn; + $f.p = p; + $f.sa = sa; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.ReadMsg = function (p, oob) { return this.$val.ReadMsg(p, oob); }; + FD.ptr.prototype.Write = function (p) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + fd = $f.fd; + max = $f.max; + n = $f.n; + nn = $f.nn; + p = $f.p; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [0, err$1]; + } + nn = 0; + /* while (true) { */ case 2: + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _r$1 = syscall.Write(fd.Sysfd, $subslice(p, nn, max)); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; + return [nn, err$2]; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; + return [nn, err$2]; + } + if (n === 0) { + $s = -1; + return [nn, io.ErrUnexpectedEOF]; + } + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [0, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Write }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.fd = fd; + $f.max = max; + $f.n = n; + $f.nn = nn; + $f.p = p; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Write = function (p) { return this.$val.Write(p); }; + FD.ptr.prototype.Pwrite = function (p, off) { + var _r, _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + fd = $f.fd; + max = $f.max; + n = $f.n; + nn = $f.nn; + off = $f.off; + p = $f.p; + x = $f.x; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + nn = 0; + /* while (true) { */ case 1: + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _r = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low))); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; + return [nn, err$1]; + } + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [nn, err$1]; + } + if (n === 0) { + $s = -1; + return [nn, io.ErrUnexpectedEOF]; + } + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return [0, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Pwrite }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.fd = fd; + $f.max = max; + $f.n = n; + $f.nn = nn; + $f.off = off; + $f.p = p; + $f.x = x; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Pwrite = function (p, off) { return this.$val.Pwrite(p, off); }; + FD.ptr.prototype.WriteTo = function (p, sa) { + var _r, _r$1, err, err$1, err$2, fd, p, sa, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + fd = $f.fd; + p = $f.p; + sa = $f.sa; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Sendto(fd.Sysfd, p, 0, sa); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + err$2 = _r$1; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; + return [0, err$2]; + } + $s = -1; + return [p.$length, $ifaceNil]; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [0, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.WriteTo }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.fd = fd; + $f.p = p; + $f.sa = sa; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.WriteTo = function (p, sa) { return this.$val.WriteTo(p, sa); }; + FD.ptr.prototype.WriteMsg = function (p, oob, sa) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + fd = $f.fd; + n = $f.n; + oob = $f.oob; + p = $f.p; + sa = $f.sa; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, 0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [0, 0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if ($interfaceIsEqual(err$2, new syscall.Errno(35)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; + return [n, 0, err$2]; + } + $s = -1; + return [n, oob.$length, err$2]; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [0, 0, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, 0, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.WriteMsg }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.fd = fd; + $f.n = n; + $f.oob = oob; + $f.p = p; + $f.sa = sa; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.WriteMsg = function (p, oob, sa) { return this.$val.WriteMsg(p, oob, sa); }; + FD.ptr.prototype.Accept = function () { + var _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + errcall = $f.errcall; + fd = $f.fd; + rsa = $f.rsa; + s = $f.s; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [-1, $ifaceNil, "", err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [-1, $ifaceNil, "", err$1]; + } + /* while (true) { */ case 2: + _r$1 = accept(fd.Sysfd); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + s = _tuple[0]; + rsa = _tuple[1]; + errcall = _tuple[2]; + err$2 = _tuple[3]; + if ($interfaceIsEqual(err$2, $ifaceNil)) { + $s = -1; + return [s, rsa, "", err$2]; + } + _1 = err$2; + if ($interfaceIsEqual(_1, new syscall.Errno((35)))) { + if (fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + } + else if ($interfaceIsEqual(_1, new syscall.Errno((53)))) { + /* continue; */ $s = 2; + continue; + } + $s = -1; + return [-1, $ifaceNil, errcall, err$2]; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [0, $ifaceNil, "", $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil, "", $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Accept }; + } + $f._1 = _1; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.errcall = errcall; + $f.fd = fd; + $f.rsa = rsa; + $f.s = s; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Accept = function () { return this.$val.Accept(); }; + FD.ptr.prototype.Seek = function (offset, whence) { + var _r, err, fd, offset, whence, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + offset = $f.offset; + whence = $f.whence; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Seek(fd.Sysfd, offset, whence); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [new $Int64(0, 0), $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Seek }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.offset = offset; + $f.whence = whence; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Seek = function (offset, whence) { return this.$val.Seek(offset, whence); }; + FD.ptr.prototype.ReadDirent = function (buf) { + var _r, _tuple, buf, err, err$1, fd, n, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + buf = $f.buf; + err = $f.err; + err$1 = $f.err$1; + fd = $f.fd; + n = $f.n; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + /* while (true) { */ case 1: + _r = syscall.ReadDirent(fd.Sysfd, buf); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$1, new syscall.Errno(35)) && fd.pd.pollable()) { + err$1 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$1, $ifaceNil)) { + /* continue; */ $s = 1; + continue; + } + } + } + $s = -1; + return [n, err$1]; + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return [0, $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.ReadDirent }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.buf = buf; + $f.err = err; + $f.err$1 = err$1; + $f.fd = fd; + $f.n = n; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.ReadDirent = function (buf) { return this.$val.ReadDirent(buf); }; + FD.ptr.prototype.Fchdir = function () { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fchdir(fd.Sysfd); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Fchdir }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Fchdir = function () { return this.$val.Fchdir(); }; + FD.ptr.prototype.Fstat = function (s) { + var _r, err, fd, s, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + s = $f.s; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.Fstat(fd.Sysfd, s); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Fstat }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.s = s; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Fstat = function (s) { return this.$val.Fstat(s); }; + DupCloseOnExec = function (fd) { + var _1, _r, _tuple, e1, fd, r0, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _tuple = $f._tuple; + e1 = $f.e1; + fd = $f.fd; + r0 = $f.r0; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + if (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function () { return tryDupCloexec; }, function ($v) { tryDupCloexec = $v; })))) === 1) { + _tuple = fcntl(fd, 67, 0); + r0 = _tuple[0]; + e1 = _tuple[1]; + if ($interfaceIsEqual(e1, $ifaceNil)) { + $s = -1; + return [r0, "", $ifaceNil]; + } + _1 = $assertType(e1, syscall.Errno); + if ((_1 === (22)) || (_1 === (78))) { + atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function () { return tryDupCloexec; }, function ($v) { tryDupCloexec = $v; }))), 0); + } + else { + $s = -1; + return [-1, "fcntl", e1]; + } + } + _r = dupCloseOnExecOld(fd); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: DupCloseOnExec }; + } + $f._1 = _1; + $f._r = _r; + $f._tuple = _tuple; + $f.e1 = e1; + $f.fd = fd; + $f.r0 = r0; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.DupCloseOnExec = DupCloseOnExec; + dupCloseOnExecOld = function (fd) { + var _r, _tuple, err, fd, newfd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + err = $f.err; + fd = $f.fd; + newfd = $f.newfd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + $r = syscall.ForkLock.RLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); + _r = syscall.Dup(fd); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + newfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [-1, "dup", err]; + } + $r = syscall.CloseOnExec(newfd); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return [newfd, "", $ifaceNil]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, "", $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: dupCloseOnExecOld }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.err = err; + $f.fd = fd; + $f.newfd = newfd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.ptr.prototype.Dup = function () { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [-1, "", err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = DupCloseOnExec(fd.Sysfd); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, "", $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Dup }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Dup = function () { return this.$val.Dup(); }; + FD.ptr.prototype.WaitWrite = function () { + var fd; + fd = this; + return fd.pd.waitWrite(fd.isFile); + }; + FD.prototype.WaitWrite = function () { return this.$val.WaitWrite(); }; + FD.ptr.prototype.WriteOnce = function (p) { + var _r, _r$1, err, fd, p, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + err = $f.err; + fd = $f.fd; + p = $f.p; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + _r$1 = syscall.Write(fd.Sysfd, p); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [0, $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.WriteOnce }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.err = err; + $f.fd = fd; + $f.p = p; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.WriteOnce = function (p) { return this.$val.WriteOnce(p); }; + FD.ptr.prototype.RawControl = function (f) { + var err, f, fd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + err = $f.err; + f = $f.f; + fd = $f.fd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $r = f(((fd.Sysfd >>> 0))); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return $ifaceNil; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.RawControl }; + } + $f.err = err; + $f.f = f; + $f.fd = fd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.RawControl = function (f) { return this.$val.RawControl(f); }; + FD.ptr.prototype.RawRead = function (f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + f = $f.f; + fd = $f.fd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (_r$1) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_r$1) { */ case 4: + $s = -1; + return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitRead(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; + return err$2; + } + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return $ifaceNil; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.RawRead }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.f = f; + $f.fd = fd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.RawRead = function (f) { return this.$val.RawRead(f); }; + FD.ptr.prototype.RawWrite = function (f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + f = $f.f; + fd = $f.fd; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (_r$1) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_r$1) { */ case 4: + $s = -1; + return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitWrite(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; + return err$2; + } + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return $ifaceNil; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.RawWrite }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.f = f; + $f.fd = fd; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.RawWrite = function (f) { return this.$val.RawWrite(f); }; + writev = function () { + $throwRuntimeError("native function not implemented: internal/poll.writev"); + }; + FD.ptr.prototype.SetsockoptInt = function (level, name, arg) { + var _r, arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + arg = $f.arg; + err = $f.err; + fd = $f.fd; + level = $f.level; + name = $f.name; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptInt(fd.Sysfd, level, name, arg); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.SetsockoptInt }; + } + $f._r = _r; + $f.arg = arg; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.name = name; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.SetsockoptInt = function (level, name, arg) { return this.$val.SetsockoptInt(level, name, arg); }; + FD.ptr.prototype.SetsockoptInet4Addr = function (level, name, arg) { + var _r, arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + arg = $f.arg; + err = $f.err; + fd = $f.fd; + level = $f.level; + name = $f.name; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptInet4Addr(fd.Sysfd, level, name, $clone(arg, arrayType)); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.SetsockoptInet4Addr }; + } + $f._r = _r; + $f.arg = arg; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.name = name; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.SetsockoptInet4Addr = function (level, name, arg) { return this.$val.SetsockoptInet4Addr(level, name, arg); }; + FD.ptr.prototype.SetsockoptLinger = function (level, name, l) { + var _r, err, fd, l, level, name, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + l = $f.l; + level = $f.level; + name = $f.name; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptLinger(fd.Sysfd, level, name, l); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.SetsockoptLinger }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.l = l; + $f.level = level; + $f.name = name; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.SetsockoptLinger = function (level, name, l) { return this.$val.SetsockoptLinger(level, name, l); }; + FD.ptr.prototype.SetsockoptByte = function (level, name, arg) { + var _r, arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + arg = $f.arg; + err = $f.err; + fd = $f.fd; + level = $f.level; + name = $f.name; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptByte(fd.Sysfd, level, name, arg); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.SetsockoptByte }; + } + $f._r = _r; + $f.arg = arg; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.name = name; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.SetsockoptByte = function (level, name, arg) { return this.$val.SetsockoptByte(level, name, arg); }; + FD.ptr.prototype.SetsockoptIPMreq = function (level, name, mreq) { + var _r, err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + level = $f.level; + mreq = $f.mreq; + name = $f.name; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptIPMreq(fd.Sysfd, level, name, mreq); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.SetsockoptIPMreq }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.mreq = mreq; + $f.name = name; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.SetsockoptIPMreq = function (level, name, mreq) { return this.$val.SetsockoptIPMreq(level, name, mreq); }; + FD.ptr.prototype.SetsockoptIPv6Mreq = function (level, name, mreq) { + var _r, err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + fd = $f.fd; + level = $f.level; + mreq = $f.mreq; + name = $f.name; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = syscall.SetsockoptIPv6Mreq(fd.Sysfd, level, name, mreq); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return $ifaceNil; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.SetsockoptIPv6Mreq }; + } + $f._r = _r; + $f.err = err; + $f.fd = fd; + $f.level = level; + $f.mreq = mreq; + $f.name = name; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.SetsockoptIPv6Mreq = function (level, name, mreq) { return this.$val.SetsockoptIPv6Mreq(level, name, mreq); }; + accept = function (s) { + var _r, _r$1, _r$2, _tuple, err, ns, s, sa, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _tuple = $f._tuple; + err = $f.err; + ns = $f.ns; + s = $f.s; + sa = $f.sa; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = $pkg.AcceptFunc(s); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + ns = _tuple[0]; + sa = _tuple[1]; + err = _tuple[2]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 2: + $r = syscall.CloseOnExec(ns); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 3: + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [-1, $ifaceNil, "accept", err]; + } + _r$1 = syscall.SetNonblock(ns, true); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + err = _r$1; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 6: + _r$2 = $pkg.CloseFunc(ns); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _r$2; + $s = -1; + return [-1, $ifaceNil, "setnonblock", err]; + /* } */ case 7: + $s = -1; + return [ns, sa, "", $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: accept }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._tuple = _tuple; + $f.err = err; + $f.ns = ns; + $f.s = s; + $f.sa = sa; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FD.ptr.prototype.Writev = function (v) { + var _i, _r, _ref, _tuple, chunk, err, err$1, err$2, fd, iovecs, maxVec, n, v, wrote, x, x$1, x$2, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _ref = $f._ref; + _tuple = $f._tuple; + chunk = $f.chunk; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + fd = $f.fd; + iovecs = $f.iovecs; + maxVec = $f.maxVec; + n = $f.n; + v = $f.v; + wrote = $f.wrote; + x = $f.x; + x$1 = $f.x$1; + x$2 = $f.x$2; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + iovecs = [iovecs]; + fd = this; + _r = fd.writeLock(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; + return [new $Int64(0, 0), err$1]; + } + iovecs[0] = sliceType$1.nil; + if (!(fd.iovecs === ptrType$3.nil)) { + iovecs[0] = fd.iovecs.$get(); + } + maxVec = 1024; + n = new $Int64(0, 0); + err$2 = $ifaceNil; + /* while (true) { */ case 2: + /* if (!(v.$get().$length > 0)) { break; } */ if (!(v.$get().$length > 0)) { + $s = 3; + continue; + } + iovecs[0] = $subslice(iovecs[0], 0, 0); + _ref = v.$get(); + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 5; + continue; + } + chunk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (chunk.$length === 0) { + _i++; + /* continue; */ $s = 4; + continue; + } + iovecs[0] = $append(iovecs[0], new syscall.Iovec.ptr($indexPtr(chunk.$array, chunk.$offset + 0, ptrType$4), new $Uint64(0, 0))); + if (fd.IsStream && chunk.$length > 1073741824) { + (x = iovecs[0].$length - 1 >> 0, ((x < 0 || x >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x])).SetLen(1073741824); + /* break; */ $s = 5; + continue; + } + (x$1 = iovecs[0].$length - 1 >> 0, ((x$1 < 0 || x$1 >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x$1])).SetLen(chunk.$length); + if (iovecs[0].$length === maxVec) { + /* break; */ $s = 5; + continue; + } + _i++; + /* } */ $s = 4; + continue; + case 5: + if (iovecs[0].$length === 0) { + /* break; */ $s = 3; + continue; + } + fd.iovecs = (iovecs.$ptr || (iovecs.$ptr = new ptrType$3(function () { return this.$target[0]; }, function ($v) { this.$target[0] = $v; }, iovecs))); + wrote = 0; + _tuple = writev(fd.Sysfd, iovecs[0]); + wrote = _tuple[0]; + err$2 = _tuple[1]; + if (wrote === 4294967295) { + wrote = 0; + } + $r = $pkg.TestHookDidWritev(((wrote >> 0))); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + n = (x$2 = (new $Int64(0, wrote.constructor === Number ? wrote : 1)), new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); + consume(v, (new $Int64(0, wrote.constructor === Number ? wrote : 1))); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($assertType(err$2, syscall.Errno) === 35) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; + continue; + } + } + /* break; */ $s = 3; + continue; + } + if ((n.$high === 0 && n.$low === 0)) { + err$2 = io.ErrUnexpectedEOF; + /* break; */ $s = 3; + continue; + } + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return [n, err$2]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + return [new $Int64(0, 0), $ifaceNil]; + } + finally { + $callDeferred($deferred, $err); + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: FD.ptr.prototype.Writev }; + } + $f._i = _i; + $f._r = _r; + $f._ref = _ref; + $f._tuple = _tuple; + $f.chunk = chunk; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.fd = fd; + $f.iovecs = iovecs; + $f.maxVec = maxVec; + $f.n = n; + $f.v = v; + $f.wrote = wrote; + $f.x = x; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + FD.prototype.Writev = function (v) { return this.$val.Writev(v); }; + ptrType$6.methods = [{ prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$5], [$error], false) }, { prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false) }, { prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false) }, { prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false) }, { prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false) }, { prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false) }, { prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false) }, { prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false) }, { prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false) }, { prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false) }, { prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false) }]; + ptrType$7.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false) }]; + ptrType$8.methods = [{ prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false) }, { prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false) }, { prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false) }, { prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false) }, { prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false) }]; + ptrType$5.methods = [{ prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false) }, { prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false) }, { prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false) }, { prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false) }, { prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false) }, { prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false) }, { prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false) }, { prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false) }, { prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false) }, { prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false) }, { prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false) }, { prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false) }, { prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false) }, { prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false) }, { prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false) }, { prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false) }, { prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false) }, { prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false) }, { prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false) }, { prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false) }, { prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$2], [$Int, syscall.Sockaddr, $error], false) }, { prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType$2, sliceType$2], [$Int, $Int, $Int, syscall.Sockaddr, $error], false) }, { prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false) }, { prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$2, syscall.Sockaddr], [$Int, $error], false) }, { prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType$2, sliceType$2, syscall.Sockaddr], [$Int, $Int, $error], false) }, { prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false) }, { prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false) }, { prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false) }, { prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$9], [$error], false) }, { prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false) }, { prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false) }, { prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType], [$error], false) }, { prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType$1], [$error], false) }, { prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType$1], [$error], false) }, { prop: "SetsockoptInt", name: "SetsockoptInt", pkg: "", typ: $funcType([$Int, $Int, $Int], [$error], false) }, { prop: "SetsockoptInet4Addr", name: "SetsockoptInet4Addr", pkg: "", typ: $funcType([$Int, $Int, arrayType], [$error], false) }, { prop: "SetsockoptLinger", name: "SetsockoptLinger", pkg: "", typ: $funcType([$Int, $Int, ptrType$10], [$error], false) }, { prop: "SetsockoptByte", name: "SetsockoptByte", pkg: "", typ: $funcType([$Int, $Int, $Uint8], [$error], false) }, { prop: "SetsockoptIPMreq", name: "SetsockoptIPMreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$11], [$error], false) }, { prop: "SetsockoptIPv6Mreq", name: "SetsockoptIPv6Mreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$12], [$error], false) }, { prop: "Writev", name: "Writev", pkg: "", typ: $funcType([ptrType$13], [$Int64, $error], false) }]; + pollDesc.init("internal/poll", [{ prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: "" }]); + TimeoutError.init("", []); + fdMutex.init("internal/poll", [{ prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: "" }, { prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: "" }]); + FD.init("internal/poll", [{ prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: "" }, { prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: "" }, { prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: "" }, { prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$3, tag: "" }, { prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: "" }, { prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: "" }, { prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: "" }, { prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = io.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = runtime.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = atomic.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = syscall.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = time.$init(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + semWaiters = {}; + $pkg.ErrNetClosing = errors.New("use of closed network connection"); + $pkg.ErrFileClosing = errors.New("use of closed file"); + $pkg.ErrNoDeadline = errors.New("file type does not support deadline"); + $pkg.ErrTimeout = new TimeoutError.ptr(); + $pkg.TestHookDidWritev = (function (wrote) { + var wrote; + }); + tryDupCloexec = 1; + $pkg.CloseFunc = syscall.Close; + $pkg.AcceptFunc = syscall.Accept; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["internal/syscall/unix"] = (function () { + var $pkg = {}, $init, syscall, IsNonblock; + syscall = $packages["syscall"]; + IsNonblock = function (fd) { + var _tmp, _tmp$1, err, fd, nonblocking; + nonblocking = false; + err = $ifaceNil; + _tmp = false; + _tmp$1 = $ifaceNil; + nonblocking = _tmp; + err = _tmp$1; + return [nonblocking, err]; + }; + $pkg.IsNonblock = IsNonblock; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = syscall.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["internal/testlog"] = (function () { + var $pkg = {}, $init, atomic, Interface, ptrType, logger, Logger, Stat; + atomic = $packages["sync/atomic"]; + Interface = $pkg.Interface = $newType(8, $kindInterface, "testlog.Interface", true, "internal/testlog", true, null); + ptrType = $ptrType(Interface); + Logger = function () { + var impl; + impl = logger.Load(); + if ($interfaceIsEqual(impl, $ifaceNil)) { + return $ifaceNil; + } + return $assertType(impl, ptrType).$get(); + }; + $pkg.Logger = Logger; + Stat = function (name) { + var log, name, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + log = $f.log; + name = $f.name; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Stat(name); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Stat }; + } + $f.log = log; + $f.name = name; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Stat = Stat; + Interface.init([{ prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([$String], [], false) }, { prop: "Getenv", name: "Getenv", pkg: "", typ: $funcType([$String], [], false) }, { prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [], false) }, { prop: "Stat", name: "Stat", pkg: "", typ: $funcType([$String], [], false) }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = atomic.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + logger = new atomic.Value.ptr($ifaceNil); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["os"] = (function () { + var $pkg = {}, $init, errors, js, poll, unix, testlog, io, runtime, sync, atomic, syscall, time, dirInfo, timeout, PathError, SyscallError, LinkError, file, rawConn, File, FileInfo, FileMode, fileStat, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, arrayType, sliceType$5, ptrType$12, arrayType$2, ptrType$13, funcType$1, ptrType$15, arrayType$5, ptrType$16, funcType$2, funcType$3, ptrType$17, errFinished, lstat, useSyscallwd, _r, _r$1, _r$2, runtime_args, init, runtime_beforeExit, NewSyscallError, IsNotExist, underlyingError, wrapSyscallError, isNotExist, sigpipe, syscallMode, NewFile, newFile, epipecheck, init$1, useSyscallwdDarwin, basename, init$2, Exit, newRawConn, Lstat, fillFileStatFromSys, timespecToTime, lstatNolog; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + poll = $packages["internal/poll"]; + unix = $packages["internal/syscall/unix"]; + testlog = $packages["internal/testlog"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + dirInfo = $pkg.dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function (buf_, nbuf_, bufp_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType$2.nil; + this.nbuf = 0; + this.bufp = 0; + return; + } + this.buf = buf_; + this.nbuf = nbuf_; + this.bufp = bufp_; + }); + timeout = $pkg.timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null); + PathError = $pkg.PathError = $newType(0, $kindStruct, "os.PathError", true, "os", true, function (Op_, Path_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Path = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Path = Path_; + this.Err = Err_; + }); + SyscallError = $pkg.SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function (Syscall_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Syscall = ""; + this.Err = $ifaceNil; + return; + } + this.Syscall = Syscall_; + this.Err = Err_; + }); + LinkError = $pkg.LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function (Op_, Old_, New_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Old = ""; + this.New = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Old = Old_; + this.New = New_; + this.Err = Err_; + }); + file = $pkg.file = $newType(0, $kindStruct, "os.file", true, "os", false, function (pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_) { + this.$val = this; + if (arguments.length === 0) { + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, false, false, false); + this.name = ""; + this.dirinfo = ptrType$1.nil; + this.nonblock = false; + this.stdoutOrErr = false; + return; + } + this.pfd = pfd_; + this.name = name_; + this.dirinfo = dirinfo_; + this.nonblock = nonblock_; + this.stdoutOrErr = stdoutOrErr_; + }); + rawConn = $pkg.rawConn = $newType(0, $kindStruct, "os.rawConn", true, "os", false, function (file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType.nil; + return; + } + this.file = file_; + }); + File = $pkg.File = $newType(0, $kindStruct, "os.File", true, "os", true, function (file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$13.nil; + return; + } + this.file = file_; + }); + FileInfo = $pkg.FileInfo = $newType(8, $kindInterface, "os.FileInfo", true, "os", true, null); + FileMode = $pkg.FileMode = $newType(4, $kindUint32, "os.FileMode", true, "os", true, null); + fileStat = $pkg.fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function (name_, size_, mode_, modTime_, sys_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.size = new $Int64(0, 0); + this.mode = 0; + this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil); + this.sys = new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero()); + return; + } + this.name = name_; + this.size = size_; + this.mode = mode_; + this.modTime = modTime_; + this.sys = sys_; + }); + sliceType = $sliceType($String); + ptrType = $ptrType(File); + sliceType$1 = $sliceType(FileInfo); + ptrType$1 = $ptrType(dirInfo); + sliceType$2 = $sliceType($Uint8); + ptrType$2 = $ptrType(PathError); + ptrType$3 = $ptrType(LinkError); + ptrType$4 = $ptrType(SyscallError); + arrayType = $arrayType($Uint8, 4); + sliceType$5 = $sliceType(syscall.Iovec); + ptrType$12 = $ptrType(sliceType$5); + arrayType$2 = $arrayType($Int64, 2); + ptrType$13 = $ptrType(file); + funcType$1 = $funcType([ptrType$13], [$error], false); + ptrType$15 = $ptrType(time.Location); + arrayType$5 = $arrayType($Uint8, 32); + ptrType$16 = $ptrType(fileStat); + funcType$2 = $funcType([$Uintptr], [], false); + funcType$3 = $funcType([$Uintptr], [$Bool], false); + ptrType$17 = $ptrType(rawConn); + runtime_args = function () { + return $pkg.Args; + }; + init = function () { + var argv, i, process; + process = $global.process; + if (!(process === undefined)) { + argv = process.argv; + $pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0)); + i = 0; + while (true) { + if (!(i < ($parseInt(argv.length) - 1 >> 0))) { + break; + } + ((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String)); + i = i + (1) >> 0; + } + } + if ($pkg.Args.$length === 0) { + $pkg.Args = new sliceType(["?"]); + } + }; + runtime_beforeExit = function () { + }; + File.ptr.prototype.Readdir = function (n) { + var _r$3, f, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + f = $f.f; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; + return [sliceType$1.nil, $pkg.ErrInvalid]; + } + _r$3 = f.readdir(n); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Readdir }; + } + $f._r$3 = _r$3; + $f.f = f; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Readdir = function (n) { return this.$val.Readdir(n); }; + File.ptr.prototype.Readdirnames = function (n) { + var _r$3, _tmp, _tmp$1, _tuple, err, f, n, names, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + err = $f.err; + f = $f.f; + n = $f.n; + names = $f.names; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f === ptrType.nil) { + _tmp = sliceType.nil; + _tmp$1 = $pkg.ErrInvalid; + names = _tmp; + err = _tmp$1; + $s = -1; + return [names, err]; + } + _r$3 = f.readdirnames(n); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + names = _tuple[0]; + err = _tuple[1]; + $s = -1; + return [names, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Readdirnames }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.err = err; + $f.f = f; + $f.n = n; + $f.names = names; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Readdirnames = function (n) { return this.$val.Readdirnames(n); }; + dirInfo.ptr.prototype.close = function () { + var d; + d = this; + }; + dirInfo.prototype.close = function () { return this.$val.close(); }; + File.ptr.prototype.readdirnames = function (n) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, d, err, errno, f, n, names, nb, nc, size, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tmp$4 = $f._tmp$4; + _tmp$5 = $f._tmp$5; + _tmp$6 = $f._tmp$6; + _tmp$7 = $f._tmp$7; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + d = $f.d; + err = $f.err; + errno = $f.errno; + f = $f.f; + n = $f.n; + names = $f.names; + nb = $f.nb; + nc = $f.nc; + size = $f.size; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f.file.dirinfo === ptrType$1.nil) { + f.file.dirinfo = new dirInfo.ptr(sliceType$2.nil, 0, 0); + f.file.dirinfo.buf = $makeSlice(sliceType$2, 8192); + } + d = f.file.dirinfo; + size = n; + if (size <= 0) { + size = 100; + n = -1; + } + names = $makeSlice(sliceType, 0, size); + /* while (true) { */ case 1: + /* if (!(!((n === 0)))) { break; } */ if (!(!((n === 0)))) { + $s = 2; + continue; + } + /* */ if (d.bufp >= d.nbuf) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (d.bufp >= d.nbuf) { */ case 3: + d.bufp = 0; + errno = $ifaceNil; + _r$3 = f.file.pfd.ReadDirent(d.buf); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + d.nbuf = _tuple[0]; + errno = _tuple[1]; + runtime.KeepAlive(f); + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp = names; + _tmp$1 = wrapSyscallError("readdirent", errno); + names = _tmp; + err = _tmp$1; + $s = -1; + return [names, err]; + } + if (d.nbuf <= 0) { + /* break; */ $s = 2; + continue; + } + /* } */ case 4: + _tmp$2 = 0; + _tmp$3 = 0; + nb = _tmp$2; + nc = _tmp$3; + _tuple$1 = syscall.ParseDirent($subslice(d.buf, d.bufp, d.nbuf), n, names); + nb = _tuple$1[0]; + nc = _tuple$1[1]; + names = _tuple$1[2]; + d.bufp = d.bufp + (nb) >> 0; + n = n - (nc) >> 0; + /* } */ $s = 1; + continue; + case 2: + if (n >= 0 && (names.$length === 0)) { + _tmp$4 = names; + _tmp$5 = io.EOF; + names = _tmp$4; + err = _tmp$5; + $s = -1; + return [names, err]; + } + _tmp$6 = names; + _tmp$7 = $ifaceNil; + names = _tmp$6; + err = _tmp$7; + $s = -1; + return [names, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.readdirnames }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tmp$4 = _tmp$4; + $f._tmp$5 = _tmp$5; + $f._tmp$6 = _tmp$6; + $f._tmp$7 = _tmp$7; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.d = d; + $f.err = err; + $f.errno = errno; + $f.f = f; + $f.n = n; + $f.names = names; + $f.nb = nb; + $f.nc = nc; + $f.size = size; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.readdirnames = function (n) { return this.$val.readdirnames(n); }; + PathError.ptr.prototype.Error = function () { + var _r$3, e, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + e = this; + _r$3 = e.Err.Error(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return e.Op + " " + e.Path + ": " + _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: PathError.ptr.prototype.Error }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + PathError.prototype.Error = function () { return this.$val.Error(); }; + PathError.ptr.prototype.Timeout = function () { + var _r$3, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tuple = $f._tuple; + _v = $f._v; + e = $f.e; + ok = $f.ok; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { + _v = false; + $s = 1; + continue s; + } + _r$3 = t.Timeout(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _v = _r$3; + case 1: + $s = -1; + return _v; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: PathError.ptr.prototype.Timeout }; + } + $f._r$3 = _r$3; + $f._tuple = _tuple; + $f._v = _v; + $f.e = e; + $f.ok = ok; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + PathError.prototype.Timeout = function () { return this.$val.Timeout(); }; + SyscallError.ptr.prototype.Error = function () { + var _r$3, e, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + e = this; + _r$3 = e.Err.Error(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return e.Syscall + ": " + _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SyscallError.ptr.prototype.Error }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + SyscallError.prototype.Error = function () { return this.$val.Error(); }; + SyscallError.ptr.prototype.Timeout = function () { + var _r$3, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tuple = $f._tuple; + _v = $f._v; + e = $f.e; + ok = $f.ok; + t = $f.t; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { + _v = false; + $s = 1; + continue s; + } + _r$3 = t.Timeout(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _v = _r$3; + case 1: + $s = -1; + return _v; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: SyscallError.ptr.prototype.Timeout }; + } + $f._r$3 = _r$3; + $f._tuple = _tuple; + $f._v = _v; + $f.e = e; + $f.ok = ok; + $f.t = t; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + SyscallError.prototype.Timeout = function () { return this.$val.Timeout(); }; + NewSyscallError = function (syscall$1, err) { + var err, syscall$1; + if ($interfaceIsEqual(err, $ifaceNil)) { + return $ifaceNil; + } + return new SyscallError.ptr(syscall$1, err); + }; + $pkg.NewSyscallError = NewSyscallError; + IsNotExist = function (err) { + var err; + return isNotExist(err); + }; + $pkg.IsNotExist = IsNotExist; + underlyingError = function (err) { + var _ref, err, err$1, err$2, err$3; + _ref = err; + if ($assertType(_ref, ptrType$2, true)[1]) { + err$1 = _ref.$val; + return err$1.Err; + } + else if ($assertType(_ref, ptrType$3, true)[1]) { + err$2 = _ref.$val; + return err$2.Err; + } + else if ($assertType(_ref, ptrType$4, true)[1]) { + err$3 = _ref.$val; + return err$3.Err; + } + return err; + }; + wrapSyscallError = function (name, err) { + var _tuple, err, name, ok; + _tuple = $assertType(err, syscall.Errno, true); + ok = _tuple[1]; + if (ok) { + err = NewSyscallError(name, err); + } + return err; + }; + isNotExist = function (err) { + var err; + err = underlyingError(err); + return $interfaceIsEqual(err, new syscall.Errno(2)) || $interfaceIsEqual(err, $pkg.ErrNotExist); + }; + File.ptr.prototype.Name = function () { + var f; + f = this; + return f.file.name; + }; + File.prototype.Name = function () { return this.$val.Name(); }; + LinkError.ptr.prototype.Error = function () { + var _r$3, e, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + e = this; + _r$3 = e.Err.Error(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return e.Op + " " + e.Old + " " + e.New + ": " + _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: LinkError.ptr.prototype.Error }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + LinkError.prototype.Error = function () { return this.$val.Error(); }; + File.ptr.prototype.Read = function (b) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tuple = $f._tuple; + b = $f.b; + e = $f.e; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + } + _r$3 = f.read(b); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + n = _tuple[0]; + e = _tuple[1]; + _tmp$2 = n; + _tmp$3 = f.wrapErr("read", e); + n = _tmp$2; + err = _tmp$3; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Read }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tuple = _tuple; + $f.b = b; + $f.e = e; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Read = function (b) { return this.$val.Read(b); }; + File.ptr.prototype.ReadAt = function (b, off) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tuple = $f._tuple; + b = $f.b; + e = $f.e; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + m = $f.m; + n = $f.n; + off = $f.off; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("readat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; + return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if (!(b.$length > 0)) { + $s = 2; + continue; + } + _r$3 = f.pread(b, off); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("read", e); + /* break; */ $s = 2; + continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.ReadAt }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tuple = _tuple; + $f.b = b; + $f.e = e; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.m = m; + $f.n = n; + $f.off = off; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.ReadAt = function (b, off) { return this.$val.ReadAt(b, off); }; + File.ptr.prototype.Write = function (b) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tuple = $f._tuple; + b = $f.b; + e = $f.e; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + } + _r$3 = f.write(b); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + n = _tuple[0]; + e = _tuple[1]; + if (n < 0) { + n = 0; + } + if (!((n === b.$length))) { + err = io.ErrShortWrite; + } + epipecheck(f, e); + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + } + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Write }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tuple = _tuple; + $f.b = b; + $f.e = e; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Write = function (b) { return this.$val.Write(b); }; + File.ptr.prototype.WriteAt = function (b, off) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tuple = $f._tuple; + b = $f.b; + e = $f.e; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + m = $f.m; + n = $f.n; + off = $f.off; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("writeat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; + return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if (!(b.$length > 0)) { + $s = 2; + continue; + } + _r$3 = f.pwrite(b, off); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + /* break; */ $s = 2; + continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.WriteAt }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tuple = _tuple; + $f.b = b; + $f.e = e; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.m = m; + $f.n = n; + $f.off = off; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.WriteAt = function (b, off) { return this.$val.WriteAt(b, off); }; + File.ptr.prototype.Seek = function (offset, whence) { + var _r$3, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tmp$4 = $f._tmp$4; + _tmp$5 = $f._tmp$5; + _tuple = $f._tuple; + e = $f.e; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + offset = $f.offset; + r = $f.r; + ret = $f.ret; + whence = $f.whence; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + err$1 = f.checkValid("seek"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = new $Int64(0, 0); + _tmp$1 = err$1; + ret = _tmp; + err = _tmp$1; + $s = -1; + return [ret, err]; + } + _r$3 = f.seek(offset, whence); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + r = _tuple[0]; + e = _tuple[1]; + if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$1.nil) && !((r.$high === 0 && r.$low === 0))) { + e = new syscall.Errno(21); + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = new $Int64(0, 0); + _tmp$3 = f.wrapErr("seek", e); + ret = _tmp$2; + err = _tmp$3; + $s = -1; + return [ret, err]; + } + _tmp$4 = r; + _tmp$5 = $ifaceNil; + ret = _tmp$4; + err = _tmp$5; + $s = -1; + return [ret, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Seek }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tmp$4 = _tmp$4; + $f._tmp$5 = _tmp$5; + $f._tuple = _tuple; + $f.e = e; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.offset = offset; + $f.r = r; + $f.ret = ret; + $f.whence = whence; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Seek = function (offset, whence) { return this.$val.Seek(offset, whence); }; + File.ptr.prototype.WriteString = function (s) { + var _r$3, _tuple, err, f, n, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tuple = $f._tuple; + err = $f.err; + f = $f.f; + n = $f.n; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.Write((new sliceType$2($stringToBytes(s)))); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.WriteString }; + } + $f._r$3 = _r$3; + $f._tuple = _tuple; + $f.err = err; + $f.f = f; + $f.n = n; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.WriteString = function (s) { return this.$val.WriteString(s); }; + File.ptr.prototype.wrapErr = function (op, err) { + var err, f, op; + f = this; + if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { + return err; + } + if ($interfaceIsEqual(err, poll.ErrFileClosing)) { + err = $pkg.ErrClosed; + } + return new PathError.ptr(op, f.file.name, err); + }; + File.prototype.wrapErr = function (op, err) { return this.$val.wrapErr(op, err); }; + File.ptr.prototype.Chmod = function (mode) { + var _r$3, f, mode, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + f = $f.f; + mode = $f.mode; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + _r$3 = f.chmod(mode); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Chmod }; + } + $f._r$3 = _r$3; + $f.f = f; + $f.mode = mode; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Chmod = function (mode) { return this.$val.Chmod(mode); }; + File.ptr.prototype.SetDeadline = function (t) { + var f, t; + f = this; + return f.setDeadline($clone(t, time.Time)); + }; + File.prototype.SetDeadline = function (t) { return this.$val.SetDeadline(t); }; + File.ptr.prototype.SetReadDeadline = function (t) { + var f, t; + f = this; + return f.setReadDeadline($clone(t, time.Time)); + }; + File.prototype.SetReadDeadline = function (t) { return this.$val.SetReadDeadline(t); }; + File.ptr.prototype.SetWriteDeadline = function (t) { + var f, t; + f = this; + return f.setWriteDeadline($clone(t, time.Time)); + }; + File.prototype.SetWriteDeadline = function (t) { return this.$val.SetWriteDeadline(t); }; + File.ptr.prototype.SyscallConn = function () { + var _returncast, err, f; + f = this; + err = f.checkValid("SyscallConn"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [$ifaceNil, err]; + } + _returncast = newRawConn(f); + return [_returncast[0], _returncast[1]]; + }; + File.prototype.SyscallConn = function () { return this.$val.SyscallConn(); }; + sigpipe = function () { + $throwRuntimeError("native function not implemented: os.sigpipe"); + }; + syscallMode = function (i) { + var i, o; + o = 0; + o = (o | (((new FileMode(i).Perm() >>> 0)))) >>> 0; + if (!((((i & 8388608) >>> 0) === 0))) { + o = (o | (2048)) >>> 0; + } + if (!((((i & 4194304) >>> 0) === 0))) { + o = (o | (1024)) >>> 0; + } + if (!((((i & 1048576) >>> 0) === 0))) { + o = (o | (512)) >>> 0; + } + return o; + }; + File.ptr.prototype.chmod = function (mode) { + var _r$3, e, err, f, mode, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + err = $f.err; + f = $f.f; + mode = $f.mode; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + err = f.checkValid("chmod"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = f.file.pfd.Fchmod(syscallMode(mode)); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; + return f.wrapErr("chmod", e); + } + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.chmod }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.err = err; + $f.f = f; + $f.mode = mode; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.chmod = function (mode) { return this.$val.chmod(mode); }; + File.ptr.prototype.Chown = function (uid, gid) { + var _r$3, e, err, f, gid, uid, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + err = $f.err; + f = $f.f; + gid = $f.gid; + uid = $f.uid; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + err = f.checkValid("chown"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = f.file.pfd.Fchown(uid, gid); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; + return f.wrapErr("chown", e); + } + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Chown }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.err = err; + $f.f = f; + $f.gid = gid; + $f.uid = uid; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Chown = function (uid, gid) { return this.$val.Chown(uid, gid); }; + File.ptr.prototype.Truncate = function (size) { + var _r$3, e, err, f, size, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + err = $f.err; + f = $f.f; + size = $f.size; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + err = f.checkValid("truncate"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = f.file.pfd.Ftruncate(size); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; + return f.wrapErr("truncate", e); + } + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Truncate }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.err = err; + $f.f = f; + $f.size = size; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Truncate = function (size) { return this.$val.Truncate(size); }; + File.ptr.prototype.Sync = function () { + var _r$3, e, err, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + err = $f.err; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + err = f.checkValid("sync"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = f.file.pfd.Fsync(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; + return f.wrapErr("sync", e); + } + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Sync }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.err = err; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Sync = function () { return this.$val.Sync(); }; + File.ptr.prototype.Chdir = function () { + var _r$3, e, err, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + err = $f.err; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + err = f.checkValid("chdir"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = f.file.pfd.Fchdir(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; + return f.wrapErr("chdir", e); + } + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Chdir }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.err = err; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Chdir = function () { return this.$val.Chdir(); }; + File.ptr.prototype.setDeadline = function (t) { + var err, f, t; + f = this; + err = f.checkValid("SetDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetDeadline($clone(t, time.Time)); + }; + File.prototype.setDeadline = function (t) { return this.$val.setDeadline(t); }; + File.ptr.prototype.setReadDeadline = function (t) { + var err, f, t; + f = this; + err = f.checkValid("SetReadDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetReadDeadline($clone(t, time.Time)); + }; + File.prototype.setReadDeadline = function (t) { return this.$val.setReadDeadline(t); }; + File.ptr.prototype.setWriteDeadline = function (t) { + var err, f, t; + f = this; + err = f.checkValid("SetWriteDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetWriteDeadline($clone(t, time.Time)); + }; + File.prototype.setWriteDeadline = function (t) { return this.$val.setWriteDeadline(t); }; + File.ptr.prototype.checkValid = function (op) { + var f, op; + f = this; + if (f === ptrType.nil) { + return $pkg.ErrInvalid; + } + return $ifaceNil; + }; + File.prototype.checkValid = function (op) { return this.$val.checkValid(op); }; + File.ptr.prototype.Fd = function () { + var _r$3, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; + return 4294967295; + } + /* */ if (f.file.nonblock) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (f.file.nonblock) { */ case 1: + _r$3 = f.file.pfd.SetBlocking(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _r$3; + /* } */ case 2: + $s = -1; + return ((f.file.pfd.Sysfd >>> 0)); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Fd }; + } + $f._r$3 = _r$3; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Fd = function () { return this.$val.Fd(); }; + NewFile = function (fd, name) { + var _r$3, _tuple, err, fd, kind, name, nb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tuple = $f._tuple; + err = $f.err; + fd = $f.fd; + kind = $f.kind; + name = $f.name; + nb = $f.nb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + kind = 0; + _tuple = unix.IsNonblock(((fd >> 0))); + nb = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) && nb) { + kind = 3; + } + _r$3 = newFile(fd, name, kind); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: NewFile }; + } + $f._r$3 = _r$3; + $f._tuple = _tuple; + $f.err = err; + $f.fd = fd; + $f.kind = kind; + $f.name = name; + $f.nb = nb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.NewFile = NewFile; + newFile = function (fd, name, kind) { + var _1, _r$3, _r$4, _r$5, err, err$1, err$2, err$3, f, fd, fdi, kind, name, pollable, st, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + err$3 = $f.err$3; + f = $f.f; + fd = $f.fd; + fdi = $f.fdi; + kind = $f.kind; + name = $f.name; + pollable = $f.pollable; + st = $f.st; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + st = [st]; + fdi = ((fd >> 0)); + if (fdi < 0) { + $s = -1; + return ptrType.nil; + } + f = new File.ptr(new file.ptr(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, true, true, false), name, ptrType$1.nil, false, (fdi === 1) || (fdi === 2))); + pollable = (kind === 1) || (kind === 2) || (kind === 3); + /* */ if (kind === 1) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (kind === 1) { */ case 1: + st[0] = new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero()); + _1 = "darwin"; + /* */ if (_1 === ("freebsd")) { + $s = 4; + continue; + } + /* */ if (_1 === ("dragonfly") || _1 === ("netbsd") || _1 === ("openbsd")) { + $s = 5; + continue; + } + /* */ if (_1 === ("darwin")) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (_1 === ("freebsd")) { */ case 4: + pollable = false; + $s = 7; + continue; + /* } else if (_1 === ("dragonfly") || _1 === ("netbsd") || _1 === ("openbsd")) { */ case 5: + _r$3 = syscall.Fstat(fdi, st[0]); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + err = _r$3; + if ($interfaceIsEqual(err, $ifaceNil) && (((st[0].Mode & 61440) >>> 0) === 32768)) { + pollable = false; + } + $s = 7; + continue; + /* } else if (_1 === ("darwin")) { */ case 6: + _r$4 = syscall.Fstat(fdi, st[0]); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + err$1 = _r$4; + if ($interfaceIsEqual(err$1, $ifaceNil) && ((((st[0].Mode & 61440) >>> 0) === 4096) || (((st[0].Mode & 61440) >>> 0) === 32768))) { + pollable = false; + } + /* } */ case 7: + case 3: + /* } */ case 2: + err$2 = f.file.pfd.Init("file", pollable); + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = 10; + continue; + } + /* */ if (pollable) { + $s = 11; + continue; + } + /* */ $s = 12; + continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 10: + $s = 12; + continue; + /* } else if (pollable) { */ case 11: + _r$5 = syscall.SetNonblock(fdi, true); /* */ + $s = 13; + case 13: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + err$3 = _r$5; + if ($interfaceIsEqual(err$3, $ifaceNil)) { + f.file.nonblock = true; + } + /* } */ case 12: + runtime.SetFinalizer(f.file, new funcType$1($methodExpr(ptrType$13, "close"))); + $s = -1; + return f; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: newFile }; + } + $f._1 = _1; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.err$3 = err$3; + $f.f = f; + $f.fd = fd; + $f.fdi = fdi; + $f.kind = kind; + $f.name = name; + $f.pollable = pollable; + $f.st = st; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + epipecheck = function (file$1, e) { + var e, file$1; + if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { + sigpipe(); + } + }; + File.ptr.prototype.Close = function () { + var _r$3, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; + return $pkg.ErrInvalid; + } + _r$3 = f.file.close(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Close }; + } + $f._r$3 = _r$3; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Close = function () { return this.$val.Close(); }; + file.ptr.prototype.close = function () { + var _r$3, e, err, file$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + e = $f.e; + err = $f.err; + file$1 = $f.file$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + file$1 = this; + if (file$1 === ptrType$13.nil) { + $s = -1; + return new syscall.Errno(22); + } + if (!(file$1.dirinfo === ptrType$1.nil)) { + file$1.dirinfo.close(); + } + err = $ifaceNil; + _r$3 = file$1.pfd.Close(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + e = _r$3; + if (!($interfaceIsEqual(e, $ifaceNil))) { + if ($interfaceIsEqual(e, poll.ErrFileClosing)) { + e = $pkg.ErrClosed; + } + err = new PathError.ptr("close", file$1.name, e); + } + runtime.SetFinalizer(file$1, $ifaceNil); + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: file.ptr.prototype.close }; + } + $f._r$3 = _r$3; + $f.e = e; + $f.err = err; + $f.file$1 = file$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + file.prototype.close = function () { return this.$val.close(); }; + File.ptr.prototype.read = function (b) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + b = $f.b; + err = $f.err; + f = $f.f; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Read(b); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.read }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.b = b; + $f.err = err; + $f.f = f; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.read = function (b) { return this.$val.read(b); }; + File.ptr.prototype.pread = function (b, off) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + b = $f.b; + err = $f.err; + f = $f.f; + n = $f.n; + off = $f.off; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Pread(b, off); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.pread }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.b = b; + $f.err = err; + $f.f = f; + $f.n = n; + $f.off = off; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.pread = function (b, off) { return this.$val.pread(b, off); }; + File.ptr.prototype.write = function (b) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + b = $f.b; + err = $f.err; + f = $f.f; + n = $f.n; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Write(b); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.write }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.b = b; + $f.err = err; + $f.f = f; + $f.n = n; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.write = function (b) { return this.$val.write(b); }; + File.ptr.prototype.pwrite = function (b, off) { + var _r$3, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + b = $f.b; + err = $f.err; + f = $f.f; + n = $f.n; + off = $f.off; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Pwrite(b, off); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.pwrite }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.b = b; + $f.err = err; + $f.f = f; + $f.n = n; + $f.off = off; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.pwrite = function (b, off) { return this.$val.pwrite(b, off); }; + File.ptr.prototype.seek = function (offset, whence) { + var _r$3, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + err = $f.err; + f = $f.f; + offset = $f.offset; + ret = $f.ret; + whence = $f.whence; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + _r$3 = f.file.pfd.Seek(offset, whence); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + ret = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = ret; + _tmp$1 = err; + ret = _tmp; + err = _tmp$1; + $s = -1; + return [ret, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.seek }; + } + $f._r$3 = _r$3; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f.err = err; + $f.f = f; + $f.offset = offset; + $f.ret = ret; + $f.whence = whence; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.seek = function (offset, whence) { return this.$val.seek(offset, whence); }; + File.ptr.prototype.readdir = function (n) { + var _i, _r$3, _r$4, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, dirname, err, f, fi, filename, fip, lerr, n, names, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _ref = $f._ref; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tmp$2 = $f._tmp$2; + _tmp$3 = $f._tmp$3; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + dirname = $f.dirname; + err = $f.err; + f = $f.f; + fi = $f.fi; + filename = $f.filename; + fip = $f.fip; + lerr = $f.lerr; + n = $f.n; + names = $f.names; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fi = sliceType$1.nil; + err = $ifaceNil; + f = this; + dirname = f.file.name; + if (dirname === "") { + dirname = "."; + } + _r$3 = f.Readdirnames(n); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _tuple = _r$3; + names = _tuple[0]; + err = _tuple[1]; + fi = $makeSlice(sliceType$1, 0, names.$length); + _ref = names; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 3; + continue; + } + filename = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$4 = lstat(dirname + "/" + filename); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + _tuple$1 = _r$4; + fip = _tuple$1[0]; + lerr = _tuple$1[1]; + if (IsNotExist(lerr)) { + _i++; + /* continue; */ $s = 2; + continue; + } + if (!($interfaceIsEqual(lerr, $ifaceNil))) { + _tmp = fi; + _tmp$1 = lerr; + fi = _tmp; + err = _tmp$1; + $s = -1; + return [fi, err]; + } + fi = $append(fi, fip); + _i++; + /* } */ $s = 2; + continue; + case 3: + if ((fi.$length === 0) && $interfaceIsEqual(err, $ifaceNil) && n > 0) { + err = io.EOF; + } + _tmp$2 = fi; + _tmp$3 = err; + fi = _tmp$2; + err = _tmp$3; + $s = -1; + return [fi, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.readdir }; + } + $f._i = _i; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._ref = _ref; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tmp$2 = _tmp$2; + $f._tmp$3 = _tmp$3; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.dirname = dirname; + $f.err = err; + $f.f = f; + $f.fi = fi; + $f.filename = filename; + $f.fip = fip; + $f.lerr = lerr; + $f.n = n; + $f.names = names; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.readdir = function (n) { return this.$val.readdir(n); }; + init$1 = function () { + useSyscallwd = useSyscallwdDarwin; + }; + useSyscallwdDarwin = function (err) { + var err; + return !($interfaceIsEqual(err, new syscall.Errno(45))); + }; + basename = function (name) { + var i, name; + i = name.length - 1 >> 0; + while (true) { + if (!(i > 0 && (name.charCodeAt(i) === 47))) { + break; + } + name = $substring(name, 0, i); + i = i - (1) >> 0; + } + i = i - (1) >> 0; + while (true) { + if (!(i >= 0)) { + break; + } + if (name.charCodeAt(i) === 47) { + name = $substring(name, (i + 1 >> 0)); + break; + } + i = i - (1) >> 0; + } + return name; + }; + init$2 = function () { + if (false) { + return; + } + $pkg.Args = runtime_args(); + }; + Exit = function (code) { + var code; + if (code === 0) { + runtime_beforeExit(); + } + syscall.Exit(code); + }; + $pkg.Exit = Exit; + rawConn.ptr.prototype.Control = function (f) { + var _r$3, c, err, err$1, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + c = $f.c; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + c = this; + err = c.file.checkValid("SyscallConn.Control"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = c.file.file.pfd.RawControl(f); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; + return err$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rawConn.ptr.prototype.Control }; + } + $f._r$3 = _r$3; + $f.c = c; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rawConn.prototype.Control = function (f) { return this.$val.Control(f); }; + rawConn.ptr.prototype.Read = function (f) { + var _r$3, c, err, err$1, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + c = $f.c; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + c = this; + err = c.file.checkValid("SyscallConn.Read"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = c.file.file.pfd.RawRead(f); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; + return err$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rawConn.ptr.prototype.Read }; + } + $f._r$3 = _r$3; + $f.c = c; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rawConn.prototype.Read = function (f) { return this.$val.Read(f); }; + rawConn.ptr.prototype.Write = function (f) { + var _r$3, c, err, err$1, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + c = $f.c; + err = $f.err; + err$1 = $f.err$1; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + c = this; + err = c.file.checkValid("SyscallConn.Write"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + _r$3 = c.file.file.pfd.RawWrite(f); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + err$1 = _r$3; + runtime.KeepAlive(c.file); + $s = -1; + return err$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: rawConn.ptr.prototype.Write }; + } + $f._r$3 = _r$3; + $f.c = c; + $f.err = err; + $f.err$1 = err$1; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + rawConn.prototype.Write = function (f) { return this.$val.Write(f); }; + newRawConn = function (file$1) { + var file$1; + return [new rawConn.ptr(file$1), $ifaceNil]; + }; + Lstat = function (name) { + var _r$3, name, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + name = $f.name; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = testlog.Stat(name); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _r$3 = lstatNolog(name); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $s = -1; + return _r$3; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Lstat }; + } + $f._r$3 = _r$3; + $f.name = name; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Lstat = Lstat; + fillFileStatFromSys = function (fs, name) { + var _1, fs, name; + fs.name = basename(name); + fs.size = fs.sys.Size; + time.Time.copy(fs.modTime, timespecToTime($clone(fs.sys.Mtimespec, syscall.Timespec))); + fs.mode = ((((fs.sys.Mode & 511) >>> 0) >>> 0)); + _1 = (fs.sys.Mode & 61440) >>> 0; + if ((_1 === (24576)) || (_1 === (57344))) { + fs.mode = (fs.mode | (67108864)) >>> 0; + } + else if (_1 === (8192)) { + fs.mode = (fs.mode | (69206016)) >>> 0; + } + else if (_1 === (16384)) { + fs.mode = (fs.mode | (2147483648)) >>> 0; + } + else if (_1 === (4096)) { + fs.mode = (fs.mode | (33554432)) >>> 0; + } + else if (_1 === (40960)) { + fs.mode = (fs.mode | (134217728)) >>> 0; + } + else if (_1 === (32768)) { + } + else if (_1 === (49152)) { + fs.mode = (fs.mode | (16777216)) >>> 0; + } + if (!((((fs.sys.Mode & 1024) >>> 0) === 0))) { + fs.mode = (fs.mode | (4194304)) >>> 0; + } + if (!((((fs.sys.Mode & 2048) >>> 0) === 0))) { + fs.mode = (fs.mode | (8388608)) >>> 0; + } + if (!((((fs.sys.Mode & 512) >>> 0) === 0))) { + fs.mode = (fs.mode | (1048576)) >>> 0; + } + }; + timespecToTime = function (ts) { + var ts; + return time.Unix((ts.Sec), (ts.Nsec)); + }; + File.ptr.prototype.Stat = function () { + var _r$3, err, f, fs, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + err = $f.err; + f = $f.f; + fs = $f.fs; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fs = [fs]; + f = this; + if (f === ptrType.nil) { + $s = -1; + return [$ifaceNil, $pkg.ErrInvalid]; + } + fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero())); + _r$3 = f.file.pfd.Fstat(fs[0].sys); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [$ifaceNil, new PathError.ptr("stat", f.file.name, err)]; + } + fillFileStatFromSys(fs[0], f.file.name); + $s = -1; + return [fs[0], $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: File.ptr.prototype.Stat }; + } + $f._r$3 = _r$3; + $f.err = err; + $f.f = f; + $f.fs = fs; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + File.prototype.Stat = function () { return this.$val.Stat(); }; + lstatNolog = function (name) { + var _r$3, err, fs, name, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r$3 = $f._r$3; + err = $f.err; + fs = $f.fs; + name = $f.name; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + fs = [fs]; + fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(0, 0, 0, new $Uint64(0, 0), 0, 0, 0, arrayType.zero(), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new $Int64(0, 0), new $Int64(0, 0), 0, 0, 0, 0, arrayType$2.zero())); + _r$3 = syscall.Lstat(name, fs[0].sys); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return [$ifaceNil, new PathError.ptr("lstat", name, err)]; + } + fillFileStatFromSys(fs[0], name); + $s = -1; + return [fs[0], $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: lstatNolog }; + } + $f._r$3 = _r$3; + $f.err = err; + $f.fs = fs; + $f.name = name; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FileMode.prototype.String = function () { + var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; + m = this.$val; + buf = arrayType$5.zero(); + w = 0; + _ref = "dalTLDpSugct?"; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { + break; + } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24))); + w = w + (1) >> 0; + } + _i += _rune[1]; + } + if (w === 0) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + w = w + (1) >> 0; + } + _ref$1 = "rwxrwxrwx"; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.length)) { + break; + } + _rune$1 = $decodeRune(_ref$1, _i$1); + i$1 = _i$1; + c$1 = _rune$1[0]; + if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24))); + } + else { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + w = w + (1) >> 0; + _i$1 += _rune$1[1]; + } + return ($bytesToString($subslice(new sliceType$2(buf), 0, w))); + }; + $ptrType(FileMode).prototype.String = function () { return new FileMode(this.$get()).String(); }; + FileMode.prototype.IsDir = function () { + var m; + m = this.$val; + return !((((m & 2147483648) >>> 0) === 0)); + }; + $ptrType(FileMode).prototype.IsDir = function () { return new FileMode(this.$get()).IsDir(); }; + FileMode.prototype.IsRegular = function () { + var m; + m = this.$val; + return ((m & 2401763328) >>> 0) === 0; + }; + $ptrType(FileMode).prototype.IsRegular = function () { return new FileMode(this.$get()).IsRegular(); }; + FileMode.prototype.Perm = function () { + var m; + m = this.$val; + return (m & 511) >>> 0; + }; + $ptrType(FileMode).prototype.Perm = function () { return new FileMode(this.$get()).Perm(); }; + fileStat.ptr.prototype.Name = function () { + var fs; + fs = this; + return fs.name; + }; + fileStat.prototype.Name = function () { return this.$val.Name(); }; + fileStat.ptr.prototype.IsDir = function () { + var fs; + fs = this; + return new FileMode(fs.Mode()).IsDir(); + }; + fileStat.prototype.IsDir = function () { return this.$val.IsDir(); }; + fileStat.ptr.prototype.Size = function () { + var fs; + fs = this; + return fs.size; + }; + fileStat.prototype.Size = function () { return this.$val.Size(); }; + fileStat.ptr.prototype.Mode = function () { + var fs; + fs = this; + return fs.mode; + }; + fileStat.prototype.Mode = function () { return this.$val.Mode(); }; + fileStat.ptr.prototype.ModTime = function () { + var fs; + fs = this; + return fs.modTime; + }; + fileStat.prototype.ModTime = function () { return this.$val.ModTime(); }; + fileStat.ptr.prototype.Sys = function () { + var fs; + fs = this; + return fs.sys; + }; + fileStat.prototype.Sys = function () { return this.$val.Sys(); }; + ptrType$1.methods = [{ prop: "close", name: "close", pkg: "os", typ: $funcType([], [], false) }]; + ptrType$2.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false) }]; + ptrType$4.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false) }]; + ptrType$3.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$13.methods = [{ prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false) }]; + ptrType$17.methods = [{ prop: "Control", name: "Control", pkg: "", typ: $funcType([funcType$2], [$error], false) }, { prop: "Read", name: "Read", pkg: "", typ: $funcType([funcType$3], [$error], false) }, { prop: "Write", name: "Write", pkg: "", typ: $funcType([funcType$3], [$error], false) }]; + ptrType.methods = [{ prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false) }, { prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false) }, { prop: "readdirnames", name: "readdirnames", pkg: "os", typ: $funcType([$Int], [sliceType, $error], false) }, { prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false) }, { prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false) }, { prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false) }, { prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false) }, { prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false) }, { prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([FileMode], [$error], false) }, { prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false) }, { prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false) }, { prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false) }, { prop: "SyscallConn", name: "SyscallConn", pkg: "", typ: $funcType([], [syscall.RawConn, $error], false) }, { prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([FileMode], [$error], false) }, { prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false) }, { prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false) }, { prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false) }, { prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false) }, { prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false) }, { prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false) }, { prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false) }, { prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false) }, { prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false) }, { prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false) }, { prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false) }, { prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false) }, { prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false) }, { prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int], [sliceType$1, $error], false) }, { prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false) }]; + FileMode.methods = [{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false) }]; + ptrType$16.methods = [{ prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false) }, { prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false) }, { prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false) }, { prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false) }, { prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false) }]; + dirInfo.init("os", [{ prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: "" }, { prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: "" }]); + timeout.init([{ prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false) }]); + PathError.init("", [{ prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: "" }]); + SyscallError.init("", [{ prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: "" }]); + LinkError.init("", [{ prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: "" }]); + file.init("os", [{ prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: "" }, { prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: "" }, { prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: "" }]); + rawConn.init("os", [{ prop: "file", name: "file", embedded: false, exported: false, typ: ptrType, tag: "" }]); + File.init("os", [{ prop: "file", name: "file", embedded: true, exported: false, typ: ptrType$13, tag: "" }]); + FileInfo.init([{ prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false) }, { prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false) }, { prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false) }, { prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false) }, { prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false) }]); + fileStat.init("os", [{ prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: "" }, { prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: "" }, { prop: "mode", name: "mode", embedded: false, exported: false, typ: FileMode, tag: "" }, { prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: "" }, { prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = js.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = poll.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = unix.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = testlog.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = io.$init(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = runtime.$init(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sync.$init(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = atomic.$init(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = syscall.$init(); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = time.$init(); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $pkg.Args = sliceType.nil; + $pkg.ErrInvalid = errors.New("invalid argument"); + $pkg.ErrPermission = errors.New("permission denied"); + $pkg.ErrExist = errors.New("file already exists"); + $pkg.ErrNotExist = errors.New("file does not exist"); + $pkg.ErrClosed = errors.New("file already closed"); + errFinished = errors.New("os: process already finished"); + _r = NewFile(((syscall.Stdin >>> 0)), "/dev/stdin"); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $pkg.Stdin = _r; + _r$1 = NewFile(((syscall.Stdout >>> 0)), "/dev/stdout"); /* */ + $s = 13; + case 13: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $pkg.Stdout = _r$1; + _r$2 = NewFile(((syscall.Stderr >>> 0)), "/dev/stderr"); /* */ + $s = 14; + case 14: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $pkg.Stderr = _r$2; + useSyscallwd = (function (param) { + var param; + return true; + }); + lstat = Lstat; + init(); + init$1(); + init$2(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["fmt"] = (function () { + var $pkg = {}, $init, errors, fmtsort, io, math, os, reflect, strconv, sync, utf8, fmtFlags, fmt, State, Formatter, Stringer, GoStringer, buffer, pp, scanError, ss, ssave, sliceType, ptrType, ptrType$1, arrayType, arrayType$1, sliceType$1, sliceType$2, arrayType$2, ptrType$2, ptrType$5, ptrType$25, funcType, ppFree, space, ssFree, complexError, boolError, newPrinter, Fprintf, Sprintf, Errorf, Fprint, Fprintln, getField, tooLarge, parsenum, intFromArg, parseArgNumber, isSpace, notSpace, indexRune; + errors = $packages["errors"]; + fmtsort = $packages["internal/fmtsort"]; + io = $packages["io"]; + math = $packages["math"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + utf8 = $packages["unicode/utf8"]; + fmtFlags = $pkg.fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function (widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) { + this.$val = this; + if (arguments.length === 0) { + this.widPresent = false; + this.precPresent = false; + this.minus = false; + this.plus = false; + this.sharp = false; + this.space = false; + this.zero = false; + this.plusV = false; + this.sharpV = false; + return; + } + this.widPresent = widPresent_; + this.precPresent = precPresent_; + this.minus = minus_; + this.plus = plus_; + this.sharp = sharp_; + this.space = space_; + this.zero = zero_; + this.plusV = plusV_; + this.sharpV = sharpV_; + }); + fmt = $pkg.fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function (buf_, fmtFlags_, wid_, prec_, intbuf_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = ptrType$1.nil; + this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false); + this.wid = 0; + this.prec = 0; + this.intbuf = arrayType.zero(); + return; + } + this.buf = buf_; + this.fmtFlags = fmtFlags_; + this.wid = wid_; + this.prec = prec_; + this.intbuf = intbuf_; + }); + State = $pkg.State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null); + Formatter = $pkg.Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null); + Stringer = $pkg.Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null); + GoStringer = $pkg.GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null); + buffer = $pkg.buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null); + pp = $pkg.pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function (buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = buffer.nil; + this.arg = $ifaceNil; + this.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()); + this.reordered = false; + this.goodArgNum = false; + this.panicking = false; + this.erroring = false; + return; + } + this.buf = buf_; + this.arg = arg_; + this.value = value_; + this.fmt = fmt_; + this.reordered = reordered_; + this.goodArgNum = goodArgNum_; + this.panicking = panicking_; + this.erroring = erroring_; + }); + scanError = $pkg.scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function (err_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + return; + } + this.err = err_; + }); + ss = $pkg.ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function (rs_, buf_, count_, atEOF_, ssave_) { + this.$val = this; + if (arguments.length === 0) { + this.rs = $ifaceNil; + this.buf = buffer.nil; + this.count = 0; + this.atEOF = false; + this.ssave = new ssave.ptr(false, false, false, 0, 0, 0); + return; + } + this.rs = rs_; + this.buf = buf_; + this.count = count_; + this.atEOF = atEOF_; + this.ssave = ssave_; + }); + ssave = $pkg.ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function (validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) { + this.$val = this; + if (arguments.length === 0) { + this.validSave = false; + this.nlIsEnd = false; + this.nlIsSpace = false; + this.argLimit = 0; + this.limit = 0; + this.maxWid = 0; + return; + } + this.validSave = validSave_; + this.nlIsEnd = nlIsEnd_; + this.nlIsSpace = nlIsSpace_; + this.argLimit = argLimit_; + this.limit = limit_; + this.maxWid = maxWid_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(reflect.rtype); + ptrType$1 = $ptrType(buffer); + arrayType = $arrayType($Uint8, 68); + arrayType$1 = $arrayType($Uint16, 2); + sliceType$1 = $sliceType(arrayType$1); + sliceType$2 = $sliceType($Uint8); + arrayType$2 = $arrayType($Uint8, 5); + ptrType$2 = $ptrType(pp); + ptrType$5 = $ptrType(ss); + ptrType$25 = $ptrType(fmt); + funcType = $funcType([$Int32], [$Bool], false); + fmt.ptr.prototype.clearflags = function () { + var f; + f = this; + fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false)); + }; + fmt.prototype.clearflags = function () { return this.$val.clearflags(); }; + fmt.ptr.prototype.init = function (buf) { + var buf, f; + f = this; + f.buf = buf; + f.clearflags(); + }; + fmt.prototype.init = function (buf) { return this.$val.init(buf); }; + fmt.ptr.prototype.writePadding = function (n) { + var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding; + f = this; + if (n <= 0) { + return; + } + buf = f.buf.$get(); + oldLen = buf.$length; + newLen = oldLen + n >> 0; + if (newLen > buf.$capacity) { + buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0)); + $copySlice(buf, f.buf.$get()); + } + padByte = 32; + if (f.fmtFlags.zero) { + padByte = 48; + } + padding = $subslice(buf, oldLen, newLen); + _ref = padding; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + ((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte); + _i++; + } + f.buf.$set($subslice(buf, 0, newLen)); + }; + fmt.prototype.writePadding = function (n) { return this.$val.writePadding(n); }; + fmt.ptr.prototype.pad = function (b) { + var b, f, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.Write(b); + return; + } + width = f.wid - utf8.RuneCount(b) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.Write(b); + } + else { + f.buf.Write(b); + f.writePadding(width); + } + }; + fmt.prototype.pad = function (b) { return this.$val.pad(b); }; + fmt.ptr.prototype.padString = function (s) { + var f, s, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.WriteString(s); + return; + } + width = f.wid - utf8.RuneCountInString(s) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.WriteString(s); + } + else { + f.buf.WriteString(s); + f.writePadding(width); + } + }; + fmt.prototype.padString = function (s) { return this.$val.padString(s); }; + fmt.ptr.prototype.fmtBoolean = function (v) { + var f, v; + f = this; + if (v) { + f.padString("true"); + } + else { + f.padString("false"); + } + }; + fmt.prototype.fmtBoolean = function (v) { return this.$val.fmtBoolean(v); }; + fmt.ptr.prototype.fmtUnicode = function (u) { + var buf, f, i, oldZero, prec, u, width; + f = this; + buf = $subslice(new sliceType$2(f.intbuf), 0); + prec = 4; + if (f.fmtFlags.precPresent && f.prec > 4) { + prec = f.prec; + width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + i = buf.$length; + if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0; + utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0))); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { + break; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + prec = prec - (1) >> 0; + u = $shiftRightUint64(u, (4)); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u))); + prec = prec - (1) >> 0; + while (true) { + if (!(prec > 0)) { + break; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + prec = prec - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85); + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero; + }; + fmt.prototype.fmtUnicode = function (u) { return this.$val.fmtUnicode(u); }; + fmt.ptr.prototype.fmtInteger = function (u, base, isSigned, digits) { + var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, width, x, x$1, x$2, x$3, x$4; + f = this; + negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0))); + if (negative) { + u = new $Uint64(-u.$high, -u.$low); + } + buf = $subslice(new sliceType$2(f.intbuf), 0); + if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) { + width = (3 + f.wid >> 0) + f.prec >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + prec = 0; + if (f.fmtFlags.precPresent) { + prec = f.prec; + if ((prec === 0) && (u.$high === 0 && u.$low === 0)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.writePadding(f.wid); + f.fmtFlags.zero = oldZero; + return; + } + } + else if (f.fmtFlags.zero && f.fmtFlags.widPresent) { + prec = f.wid; + if (negative || f.fmtFlags.plus || f.fmtFlags.space) { + prec = prec - (1) >> 0; + } + } + i = buf.$length; + _1 = base; + if (_1 === (10)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { + break; + } + i = i - (1) >> 0; + next = $div64(u, new $Uint64(0, 10), false); + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); + u = next; + } + } + else if (_1 === (16)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { + break; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + u = $shiftRightUint64(u, (4)); + } + } + else if (_1 === (8)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { + break; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (3)); + } + } + else if (_1 === (2)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { + break; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (1)); + } + } + else { + $panic(new $String("fmt: unknown base; can't happen")); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u))); + while (true) { + if (!(i > 0 && prec > (buf.$length - i >> 0))) { + break; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + if (f.fmtFlags.sharp) { + _2 = base; + if (_2 === (8)) { + if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } + else if (_2 === (16)) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16)); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } + if (negative) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45); + } + else if (f.fmtFlags.plus) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + } + else if (f.fmtFlags.space) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + oldZero$1 = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero$1; + }; + fmt.prototype.fmtInteger = function (u, base, isSigned, digits) { return this.$val.fmtInteger(u, base, isSigned, digits); }; + fmt.ptr.prototype.truncateString = function (s) { + var _i, _ref, _rune, f, i, n, s; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { + break; + } + _rune = $decodeRune(_ref, _i); + i = _i; + n = n - (1) >> 0; + if (n < 0) { + return $substring(s, 0, i); + } + _i += _rune[1]; + } + } + return s; + }; + fmt.prototype.truncateString = function (s) { return this.$val.truncateString(s); }; + fmt.ptr.prototype.truncate = function (b) { + var _tuple, b, f, i, n, wid; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + i = 0; + while (true) { + if (!(i < b.$length)) { + break; + } + n = n - (1) >> 0; + if (n < 0) { + return $subslice(b, 0, i); + } + wid = 1; + if (((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) >= 128) { + _tuple = utf8.DecodeRune($subslice(b, i)); + wid = _tuple[1]; + } + i = i + (wid) >> 0; + } + } + return b; + }; + fmt.prototype.truncate = function (b) { return this.$val.truncate(b); }; + fmt.ptr.prototype.fmtS = function (s) { + var f, s; + f = this; + s = f.truncateString(s); + f.padString(s); + }; + fmt.prototype.fmtS = function (s) { return this.$val.fmtS(s); }; + fmt.ptr.prototype.fmtBs = function (b) { + var b, f; + f = this; + b = f.truncate(b); + f.pad(b); + }; + fmt.prototype.fmtBs = function (b) { return this.$val.fmtBs(b); }; + fmt.ptr.prototype.fmtSbx = function (s, b, digits) { + var b, buf, c, digits, f, i, length, s, width; + f = this; + length = b.$length; + if (b === sliceType$2.nil) { + length = s.length; + } + if (f.fmtFlags.precPresent && f.prec < length) { + length = f.prec; + } + width = $imul(2, length); + if (width > 0) { + if (f.fmtFlags.space) { + if (f.fmtFlags.sharp) { + width = $imul(width, (2)); + } + width = width + ((length - 1 >> 0)) >> 0; + } + else if (f.fmtFlags.sharp) { + width = width + (2) >> 0; + } + } + else { + if (f.fmtFlags.widPresent) { + f.writePadding(f.wid); + } + return; + } + if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + buf = f.buf.$get(); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + c = 0; + i = 0; + while (true) { + if (!(i < length)) { + break; + } + if (f.fmtFlags.space && i > 0) { + buf = $append(buf, 32); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + } + if (!(b === sliceType$2.nil)) { + c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]); + } + else { + c = s.charCodeAt(i); + } + buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0))); + i = i + (1) >> 0; + } + f.buf.$set(buf); + if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + }; + fmt.prototype.fmtSbx = function (s, b, digits) { return this.$val.fmtSbx(s, b, digits); }; + fmt.ptr.prototype.fmtSx = function (s, digits) { + var digits, f, s; + f = this; + f.fmtSbx(s, sliceType$2.nil, digits); + }; + fmt.prototype.fmtSx = function (s, digits) { return this.$val.fmtSx(s, digits); }; + fmt.ptr.prototype.fmtBx = function (b, digits) { + var b, digits, f; + f = this; + f.fmtSbx("", b, digits); + }; + fmt.prototype.fmtBx = function (b, digits) { return this.$val.fmtBx(b, digits); }; + fmt.ptr.prototype.fmtQ = function (s) { + var buf, f, s; + f = this; + s = f.truncateString(s); + if (f.fmtFlags.sharp && strconv.CanBackquote(s)) { + f.padString("`" + s + "`"); + return; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteToASCII(buf, s)); + } + else { + f.pad(strconv.AppendQuote(buf, s)); + } + }; + fmt.prototype.fmtQ = function (s) { return this.$val.fmtQ(s); }; + fmt.ptr.prototype.fmtC = function (c) { + var buf, c, f, r, w; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + w = utf8.EncodeRune($subslice(buf, 0, 4), r); + f.pad($subslice(buf, 0, w)); + }; + fmt.prototype.fmtC = function (c) { return this.$val.fmtC(c); }; + fmt.ptr.prototype.fmtQc = function (c) { + var buf, c, f, r; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteRuneToASCII(buf, r)); + } + else { + f.pad(strconv.AppendQuoteRune(buf, r)); + } + }; + fmt.prototype.fmtQc = function (c) { return this.$val.fmtQc(c); }; + fmt.ptr.prototype.fmtFloat = function (v, size, verb, prec) { + var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, size, tail, tailBuf, v, verb; + f = this; + if (f.fmtFlags.precPresent) { + prec = f.prec; + } + num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size); + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) { + num = $subslice(num, 1); + } + else { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43); + } + if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32); + } + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) { + num = $subslice(num, 1); + } + f.pad(num); + f.fmtFlags.zero = oldZero; + return; + } + if (f.fmtFlags.sharp && !((verb === 98))) { + digits = 0; + _1 = verb; + if ((_1 === (118)) || (_1 === (103)) || (_1 === (71))) { + digits = prec; + if (digits === -1) { + digits = 6; + } + } + tailBuf = arrayType$2.zero(); + tail = $subslice(new sliceType$2(tailBuf), 0, 0); + hasDecimalPoint = false; + i = 1; + while (true) { + if (!(i < num.$length)) { + break; + } + _2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]); + if (_2 === (46)) { + hasDecimalPoint = true; + } + else if ((_2 === (101)) || (_2 === (69))) { + tail = $appendSlice(tail, $subslice(num, i)); + num = $subslice(num, 0, i); + } + else { + digits = digits - (1) >> 0; + } + i = i + (1) >> 0; + } + if (!hasDecimalPoint) { + num = $append(num, 46); + } + while (true) { + if (!(digits > 0)) { + break; + } + num = $append(num, 48); + digits = digits - (1) >> 0; + } + num = $appendSlice(num, tail); + } + if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) { + if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) { + f.buf.WriteByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0])); + f.writePadding(f.wid - num.$length >> 0); + f.buf.Write($subslice(num, 1)); + return; + } + f.pad(num); + return; + } + f.pad($subslice(num, 1)); + }; + fmt.prototype.fmtFloat = function (v, size, verb, prec) { return this.$val.fmtFloat(v, size, verb, prec); }; + $ptrType(buffer).prototype.Write = function (p) { + var b, p; + b = this; + b.$set($appendSlice(b.$get(), p)); + }; + $ptrType(buffer).prototype.WriteString = function (s) { + var b, s; + b = this; + b.$set($appendSlice(b.$get(), s)); + }; + $ptrType(buffer).prototype.WriteByte = function (c) { + var b, c; + b = this; + b.$set($append(b.$get(), c)); + }; + $ptrType(buffer).prototype.WriteRune = function (r) { + var b, bp, n, r, w, x; + bp = this; + if (r < 128) { + bp.$set($append(bp.$get(), ((r << 24 >>> 24)))); + return; + } + b = bp.$get(); + n = b.$length; + while (true) { + if (!((n + 4 >> 0) > b.$capacity)) { + break; + } + b = $append(b, 0); + } + w = utf8.EncodeRune((x = $subslice(b, n, (n + 4 >> 0)), $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)), r); + bp.$set($subslice(b, 0, (n + w >> 0))); + }; + newPrinter = function () { + var _r, p, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + p = $f.p; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = ppFree.Get(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + p = $assertType(_r, ptrType$2); + p.panicking = false; + p.erroring = false; + p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p)))); + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: newPrinter }; + } + $f._r = _r; + $f.p = p; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.ptr.prototype.free = function () { + var p; + p = this; + if (p.buf.$capacity > 65536) { + return; + } + p.buf = $subslice(p.buf, 0, 0); + p.arg = $ifaceNil; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + ppFree.Put(p); + }; + pp.prototype.free = function () { return this.$val.free(); }; + pp.ptr.prototype.Width = function () { + var _tmp, _tmp$1, ok, p, wid; + wid = 0; + ok = false; + p = this; + _tmp = p.fmt.wid; + _tmp$1 = p.fmt.fmtFlags.widPresent; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + }; + pp.prototype.Width = function () { return this.$val.Width(); }; + pp.ptr.prototype.Precision = function () { + var _tmp, _tmp$1, ok, p, prec; + prec = 0; + ok = false; + p = this; + _tmp = p.fmt.prec; + _tmp$1 = p.fmt.fmtFlags.precPresent; + prec = _tmp; + ok = _tmp$1; + return [prec, ok]; + }; + pp.prototype.Precision = function () { return this.$val.Precision(); }; + pp.ptr.prototype.Flag = function (b) { + var _1, b, p; + p = this; + _1 = b; + if (_1 === (45)) { + return p.fmt.fmtFlags.minus; + } + else if (_1 === (43)) { + return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV; + } + else if (_1 === (35)) { + return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV; + } + else if (_1 === (32)) { + return p.fmt.fmtFlags.space; + } + else if (_1 === (48)) { + return p.fmt.fmtFlags.zero; + } + return false; + }; + pp.prototype.Flag = function (b) { return this.$val.Flag(b); }; + pp.ptr.prototype.Write = function (b) { + var _tmp, _tmp$1, b, err, p, ret; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).Write(b); + _tmp = b.$length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.Write = function (b) { return this.$val.Write(b); }; + pp.ptr.prototype.WriteString = function (s) { + var _tmp, _tmp$1, err, p, ret, s; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(s); + _tmp = s.length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.WriteString = function (s) { return this.$val.WriteString(s); }; + Fprintf = function (w, format, a) { + var _r, _r$1, _tuple, a, err, format, n, p, w, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + a = $f.a; + err = $f.err; + format = $f.format; + n = $f.n; + p = $f.p; + w = $f.w; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + p = _r; + $r = p.doPrintf(format, a); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Fprintf }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.a = a; + $f.err = err; + $f.format = format; + $f.n = n; + $f.p = p; + $f.w = w; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Fprintf = Fprintf; + Sprintf = function (format, a) { + var _r, a, format, p, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + a = $f.a; + format = $f.format; + p = $f.p; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = newPrinter(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + p = _r; + $r = p.doPrintf(format, a); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; + return s; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Sprintf }; + } + $f._r = _r; + $f.a = a; + $f.format = format; + $f.p = p; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Sprintf = Sprintf; + Errorf = function (format, a) { + var _r, _r$1, a, format, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + a = $f.a; + format = $f.format; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = Sprintf(format, a); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r$1 = errors.New(_r); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return _r$1; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Errorf }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.a = a; + $f.format = format; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Errorf = Errorf; + Fprint = function (w, a) { + var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + a = $f.a; + err = $f.err; + n = $f.n; + p = $f.p; + w = $f.w; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + p = _r; + $r = p.doPrint(a); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Fprint }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.a = a; + $f.err = err; + $f.n = n; + $f.p = p; + $f.w = w; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Fprint = Fprint; + Fprintln = function (w, a) { + var _r, _r$1, _tuple, a, err, n, p, w, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + a = $f.a; + err = $f.err; + n = $f.n; + p = $f.p; + w = $f.w; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + n = 0; + err = $ifaceNil; + _r = newPrinter(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + p = _r; + $r = p.doPrintln(a); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _r$1 = w.Write((x = p.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length))); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple = _r$1; + n = _tuple[0]; + err = _tuple[1]; + p.free(); + $s = -1; + return [n, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: Fprintln }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.a = a; + $f.err = err; + $f.n = n; + $f.p = p; + $f.w = w; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.Fprintln = Fprintln; + getField = function (v, i) { + var _r, _r$1, i, v, val, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + i = $f.i; + v = $f.v; + val = $f.val; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = $clone(v, reflect.Value).Field(i); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + val = _r; + /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: + _r$1 = $clone(val, reflect.Value).Elem(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + val = _r$1; + /* } */ case 3: + $s = -1; + return val; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: getField }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.i = i; + $f.v = v; + $f.val = val; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + tooLarge = function (x) { + var x; + return x > 1000000 || x < -1000000; + }; + parsenum = function (s, start, end) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start; + num = 0; + isnum = false; + newi = 0; + if (start >= end) { + _tmp = 0; + _tmp$1 = false; + _tmp$2 = end; + num = _tmp; + isnum = _tmp$1; + newi = _tmp$2; + return [num, isnum, newi]; + } + newi = start; + while (true) { + if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { + break; + } + if (tooLarge(num)) { + _tmp$3 = 0; + _tmp$4 = false; + _tmp$5 = end; + num = _tmp$3; + isnum = _tmp$4; + newi = _tmp$5; + return [num, isnum, newi]; + } + num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0; + isnum = true; + newi = newi + (1) >> 0; + } + return [num, isnum, newi]; + }; + pp.ptr.prototype.unknownType = function (v) { + var _r, p, v, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + p = $f.p; + v = $f.v; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + if (!$clone(v, reflect.Value).IsValid()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; + return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(63); + _r = $clone(v, reflect.Value).Type().String(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(63); + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.unknownType }; + } + $f._r = _r; + $f.p = p; + $f.v = v; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.unknownType = function (v) { return this.$val.unknownType(v); }; + pp.ptr.prototype.badVerb = function (verb) { + var _r, _r$1, p, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + p = $f.p; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + p.erroring = true; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(40); + /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { + $s = 2; + continue; + } + /* */ if ($clone(p.value, reflect.Value).IsValid()) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: + _r = reflect.TypeOf(p.arg).String(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(p.arg, 118); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 5; + continue; + /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: + _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r$1); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ + $s = 11; + case 11: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 5; + continue; + /* } else { */ case 4: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 5: + case 1: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(41); + p.erroring = false; + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.badVerb }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.p = p; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.badVerb = function (verb) { return this.$val.badVerb(verb); }; + pp.ptr.prototype.fmtBool = function (v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + p = $f.p; + v = $f.v; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (116)) || (_1 === (118))) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if ((_1 === (116)) || (_1 === (118))) { */ case 2: + p.fmt.fmtBoolean(v); + $s = 4; + continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 4: + case 1: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.fmtBool }; + } + $f._1 = _1; + $f.p = p; + $f.v = v; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.fmtBool = function (v, verb) { return this.$val.fmtBool(v, verb); }; + pp.ptr.prototype.fmt0x64 = function (v, leading0x) { + var leading0x, p, sharp, v; + p = this; + sharp = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = leading0x; + p.fmt.fmtInteger(v, 16, false, "0123456789abcdefx"); + p.fmt.fmtFlags.sharp = sharp; + }; + pp.prototype.fmt0x64 = function (v, leading0x) { return this.$val.fmt0x64(v, leading0x); }; + pp.ptr.prototype.fmtInteger = function (v, isSigned, verb) { + var _1, isSigned, p, v, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + isSigned = $f.isSigned; + p = $f.p; + v = $f.v; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { + $s = 2; + continue; + } + /* */ if (_1 === (100)) { + $s = 3; + continue; + } + /* */ if (_1 === (98)) { + $s = 4; + continue; + } + /* */ if (_1 === (111)) { + $s = 5; + continue; + } + /* */ if (_1 === (120)) { + $s = 6; + continue; + } + /* */ if (_1 === (88)) { + $s = 7; + continue; + } + /* */ if (_1 === (99)) { + $s = 8; + continue; + } + /* */ if (_1 === (113)) { + $s = 9; + continue; + } + /* */ if (_1 === (85)) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV && !isSigned) { + p.fmt0x64(v, true); + } + else { + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + } + $s = 12; + continue; + /* } else if (_1 === (100)) { */ case 3: + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + $s = 12; + continue; + /* } else if (_1 === (98)) { */ case 4: + p.fmt.fmtInteger(v, 2, isSigned, "0123456789abcdefx"); + $s = 12; + continue; + /* } else if (_1 === (111)) { */ case 5: + p.fmt.fmtInteger(v, 8, isSigned, "0123456789abcdefx"); + $s = 12; + continue; + /* } else if (_1 === (120)) { */ case 6: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789abcdefx"); + $s = 12; + continue; + /* } else if (_1 === (88)) { */ case 7: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789ABCDEFX"); + $s = 12; + continue; + /* } else if (_1 === (99)) { */ case 8: + p.fmt.fmtC(v); + $s = 12; + continue; + /* } else if (_1 === (113)) { */ case 9: + /* */ if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { + $s = 13; + continue; + } + /* */ $s = 14; + continue; + /* if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { */ case 13: + p.fmt.fmtQc(v); + $s = 15; + continue; + /* } else { */ case 14: + $r = p.badVerb(verb); /* */ + $s = 16; + case 16: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 15: + $s = 12; + continue; + /* } else if (_1 === (85)) { */ case 10: + p.fmt.fmtUnicode(v); + $s = 12; + continue; + /* } else { */ case 11: + $r = p.badVerb(verb); /* */ + $s = 17; + case 17: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 12: + case 1: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.fmtInteger }; + } + $f._1 = _1; + $f.isSigned = isSigned; + $f.p = p; + $f.v = v; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.fmtInteger = function (v, isSigned, verb) { return this.$val.fmtInteger(v, isSigned, verb); }; + pp.ptr.prototype.fmtFloat = function (v, size, verb) { + var _1, p, size, v, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + p = $f.p; + size = $f.size; + v = $f.v; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { + $s = 2; + continue; + } + /* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { + $s = 3; + continue; + } + /* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { + $s = 4; + continue; + } + /* */ if (_1 === (70)) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (_1 === (118)) { */ case 2: + p.fmt.fmtFloat(v, size, 103, -1); + $s = 7; + continue; + /* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { */ case 3: + p.fmt.fmtFloat(v, size, verb, -1); + $s = 7; + continue; + /* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4: + p.fmt.fmtFloat(v, size, verb, 6); + $s = 7; + continue; + /* } else if (_1 === (70)) { */ case 5: + p.fmt.fmtFloat(v, size, 102, 6); + $s = 7; + continue; + /* } else { */ case 6: + $r = p.badVerb(verb); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 7: + case 1: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.fmtFloat }; + } + $f._1 = _1; + $f.p = p; + $f.size = size; + $f.v = v; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.fmtFloat = function (v, size, verb) { return this.$val.fmtFloat(v, size, verb); }; + pp.ptr.prototype.fmtComplex = function (v, size, verb) { + var _1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _q = $f._q; + _q$1 = $f._q$1; + oldPlus = $f.oldPlus; + p = $f.p; + size = $f.size; + v = $f.v; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: + oldPlus = p.fmt.fmtFlags.plus; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(40); + $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + p.fmt.fmtFlags.plus = true; + $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1 / 0 && _q$1 !== -1 / 0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("i)"); + p.fmt.fmtFlags.plus = oldPlus; + $s = 4; + continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 4: + case 1: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.fmtComplex }; + } + $f._1 = _1; + $f._q = _q; + $f._q$1 = _q$1; + $f.oldPlus = oldPlus; + $f.p = p; + $f.size = size; + $f.v = v; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.fmtComplex = function (v, size, verb) { return this.$val.fmtComplex(v, size, verb); }; + pp.ptr.prototype.fmtString = function (v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + p = $f.p; + v = $f.v; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { + $s = 2; + continue; + } + /* */ if (_1 === (115)) { + $s = 3; + continue; + } + /* */ if (_1 === (120)) { + $s = 4; + continue; + } + /* */ if (_1 === (88)) { + $s = 5; + continue; + } + /* */ if (_1 === (113)) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + p.fmt.fmtQ(v); + } + else { + p.fmt.fmtS(v); + } + $s = 8; + continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtS(v); + $s = 8; + continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtSx(v, "0123456789abcdefx"); + $s = 8; + continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtSx(v, "0123456789ABCDEFX"); + $s = 8; + continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(v); + $s = 8; + continue; + /* } else { */ case 7: + $r = p.badVerb(verb); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 8: + case 1: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.fmtString }; + } + $f._1 = _1; + $f.p = p; + $f.v = v; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.fmtString = function (v, verb) { return this.$val.fmtString(v, verb); }; + pp.ptr.prototype.fmtBytes = function (v, verb, typeString) { + var _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _i = $f._i; + _i$1 = $f._i$1; + _r = $f._r; + _ref = $f._ref; + _ref$1 = $f._ref$1; + c = $f.c; + c$1 = $f.c$1; + i = $f.i; + i$1 = $f.i$1; + p = $f.p; + typeString = $f.typeString; + v = $f.v; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (100))) { + $s = 2; + continue; + } + /* */ if (_1 === (115)) { + $s = 3; + continue; + } + /* */ if (_1 === (120)) { + $s = 4; + continue; + } + /* */ if (_1 === (88)) { + $s = 5; + continue; + } + /* */ if (_1 === (113)) { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(typeString); + if (v === sliceType$2.nil) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; + return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(123); + _ref = v; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + p.fmt0x64((new $Uint64(0, c)), true); + _i++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } + else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(91); + _ref$1 = v; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { + break; + } + i$1 = _i$1; + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, "0123456789abcdefx"); + _i$1++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 8; + continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtBs(v); + $s = 8; + continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtBx(v, "0123456789abcdefx"); + $s = 8; + continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtBx(v, "0123456789ABCDEFX"); + $s = 8; + continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(($bytesToString(v))); + $s = 8; + continue; + /* } else { */ case 7: + _r = reflect.ValueOf(v); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 8: + case 1: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.fmtBytes }; + } + $f._1 = _1; + $f._i = _i; + $f._i$1 = _i$1; + $f._r = _r; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f.c = c; + $f.c$1 = c$1; + $f.i = i; + $f.i$1 = i$1; + $f.p = p; + $f.typeString = typeString; + $f.v = v; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.fmtBytes = function (v, verb, typeString) { return this.$val.fmtBytes(v, verb, typeString); }; + pp.ptr.prototype.fmtPointer = function (value, verb) { + var _1, _2, _r, p, u, value, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _2 = $f._2; + _r = $f._r; + p = $f.p; + u = $f.u; + value = $f.value; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + u = 0; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2: + u = $clone(value, reflect.Value).Pointer(); + $s = 4; + continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* } */ case 4: + case 1: + _2 = verb; + /* */ if (_2 === (118)) { + $s = 7; + continue; + } + /* */ if (_2 === (112)) { + $s = 8; + continue; + } + /* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { + $s = 9; + continue; + } + /* */ $s = 10; + continue; + /* if (_2 === (118)) { */ case 7: + /* */ if (p.fmt.fmtFlags.sharpV) { + $s = 12; + continue; + } + /* */ $s = 13; + continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 12: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(40); + _r = $clone(value, reflect.Value).Type().String(); /* */ + $s = 15; + case 15: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ + $s = 16; + case 16: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(")("); + if (u === 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("nil"); + } + else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(41); + $s = 14; + continue; + /* } else { */ case 13: + if (u === 0) { + p.fmt.padString(""); + } + else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + } + /* } */ case 14: + $s = 11; + continue; + /* } else if (_2 === (112)) { */ case 8: + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + $s = 11; + continue; + /* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9: + $r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ + $s = 17; + case 17: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 11; + continue; + /* } else { */ case 10: + $r = p.badVerb(verb); /* */ + $s = 18; + case 18: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 11: + case 6: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.fmtPointer }; + } + $f._1 = _1; + $f._2 = _2; + $f._r = _r; + $f.p = p; + $f.u = u; + $f.value = value; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.fmtPointer = function (value, verb) { return this.$val.fmtPointer(value, verb); }; + pp.ptr.prototype.catchPanic = function (arg, verb, method) { + var _r, arg, err, method, oldFlags, p, v, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + arg = $f.arg; + err = $f.err; + method = $f.method; + oldFlags = $f.oldFlags; + p = $f.p; + v = $f.v; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + err = $recover(); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: + _r = reflect.ValueOf(arg); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + v = _r; + if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; + return; + } + if (p.panicking) { + $panic(err); + } + oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("(PANIC="); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(method); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(" method: "); + p.panicking = true; + $r = p.printArg(err, 118); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + p.panicking = false; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(41); + fmtFlags.copy(p.fmt.fmtFlags, oldFlags); + /* } */ case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.catchPanic }; + } + $f._r = _r; + $f.arg = arg; + $f.err = err; + $f.method = method; + $f.oldFlags = oldFlags; + $f.p = p; + $f.v = v; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.catchPanic = function (arg, verb, method) { return this.$val.catchPanic(arg, verb, method); }; + pp.ptr.prototype.handleMethods = function (verb) { + var _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, formatter, handled, ok, ok$1, p, stringer, v, v$1, verb, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _ref = $f._ref; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + formatter = $f.formatter; + handled = $f.handled; + ok = $f.ok; + ok$1 = $f.ok$1; + p = $f.p; + stringer = $f.stringer; + v = $f.v; + v$1 = $f.v$1; + verb = $f.verb; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + handled = false; + p = this; + if (p.erroring) { + $s = -1; + return handled; + } + _tuple = $assertType(p.arg, Formatter, true); + formatter = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (ok) { */ case 1: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Format"]]); + $r = formatter.Format(p, verb); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return handled; + /* } */ case 2: + /* */ if (p.fmt.fmtFlags.sharpV) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 4: + _tuple$1 = $assertType(p.arg, GoStringer, true); + stringer = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if (ok$1) { */ case 7: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "GoString"]]); + _r = stringer.GoString(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $r = p.fmt.fmtS(_r); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return handled; + /* } */ case 8: + $s = 6; + continue; + /* } else { */ case 5: + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { + $s = 12; + continue; + } + /* */ $s = 13; + continue; + /* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 12: + _ref = p.arg; + /* */ if ($assertType(_ref, $error, true)[1]) { + $s = 14; + continue; + } + /* */ if ($assertType(_ref, Stringer, true)[1]) { + $s = 15; + continue; + } + /* */ $s = 16; + continue; + /* if ($assertType(_ref, $error, true)[1]) { */ case 14: + v = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "Error"]]); + _r$1 = v.Error(); /* */ + $s = 17; + case 17: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $r = p.fmtString(_r$1, verb); /* */ + $s = 18; + case 18: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return handled; + /* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 15: + v$1 = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb, "String"]]); + _r$2 = v$1.String(); /* */ + $s = 19; + case 19: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $r = p.fmtString(_r$2, verb); /* */ + $s = 20; + case 20: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return handled; + /* } */ case 16: + /* } */ case 13: + case 11: + /* } */ case 6: + handled = false; + $s = -1; + return handled; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + } + finally { + $callDeferred($deferred, $err); + if (!$curGoroutine.asleep) { + return handled; + } + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.handleMethods }; + } + $f._1 = _1; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._ref = _ref; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.formatter = formatter; + $f.handled = handled; + $f.ok = ok; + $f.ok$1 = ok$1; + $f.p = p; + $f.stringer = stringer; + $f.v = v; + $f.v$1 = v$1; + $f.verb = verb; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + pp.prototype.handleMethods = function (verb) { return this.$val.handleMethods(verb); }; + pp.ptr.prototype.printArg = function (arg, verb) { + var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _2 = $f._2; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _ref = $f._ref; + arg = $f.arg; + f = $f.f; + f$1 = $f.f$1; + f$10 = $f.f$10; + f$11 = $f.f$11; + f$12 = $f.f$12; + f$13 = $f.f$13; + f$14 = $f.f$14; + f$15 = $f.f$15; + f$16 = $f.f$16; + f$17 = $f.f$17; + f$18 = $f.f$18; + f$19 = $f.f$19; + f$2 = $f.f$2; + f$3 = $f.f$3; + f$4 = $f.f$4; + f$5 = $f.f$5; + f$6 = $f.f$6; + f$7 = $f.f$7; + f$8 = $f.f$8; + f$9 = $f.f$9; + p = $f.p; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + p.arg = arg; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1: + _1 = verb; + /* */ if ((_1 === (84)) || (_1 === (118))) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if ((_1 === (84)) || (_1 === (118))) { */ case 4: + p.fmt.padString(""); + $s = 6; + continue; + /* } else { */ case 5: + $r = p.badVerb(verb); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 6: + case 3: + $s = -1; + return; + /* } */ case 2: + _2 = verb; + /* */ if (_2 === (84)) { + $s = 9; + continue; + } + /* */ if (_2 === (112)) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (_2 === (84)) { */ case 9: + _r = reflect.TypeOf(arg).String(); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $r = p.fmt.fmtS(_r); /* */ + $s = 13; + case 13: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* } else if (_2 === (112)) { */ case 10: + _r$1 = reflect.ValueOf(arg); /* */ + $s = 14; + case 14: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ + $s = 15; + case 15: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* } */ case 11: + case 8: + _ref = arg; + /* */ if ($assertType(_ref, $Bool, true)[1]) { + $s = 16; + continue; + } + /* */ if ($assertType(_ref, $Float32, true)[1]) { + $s = 17; + continue; + } + /* */ if ($assertType(_ref, $Float64, true)[1]) { + $s = 18; + continue; + } + /* */ if ($assertType(_ref, $Complex64, true)[1]) { + $s = 19; + continue; + } + /* */ if ($assertType(_ref, $Complex128, true)[1]) { + $s = 20; + continue; + } + /* */ if ($assertType(_ref, $Int, true)[1]) { + $s = 21; + continue; + } + /* */ if ($assertType(_ref, $Int8, true)[1]) { + $s = 22; + continue; + } + /* */ if ($assertType(_ref, $Int16, true)[1]) { + $s = 23; + continue; + } + /* */ if ($assertType(_ref, $Int32, true)[1]) { + $s = 24; + continue; + } + /* */ if ($assertType(_ref, $Int64, true)[1]) { + $s = 25; + continue; + } + /* */ if ($assertType(_ref, $Uint, true)[1]) { + $s = 26; + continue; + } + /* */ if ($assertType(_ref, $Uint8, true)[1]) { + $s = 27; + continue; + } + /* */ if ($assertType(_ref, $Uint16, true)[1]) { + $s = 28; + continue; + } + /* */ if ($assertType(_ref, $Uint32, true)[1]) { + $s = 29; + continue; + } + /* */ if ($assertType(_ref, $Uint64, true)[1]) { + $s = 30; + continue; + } + /* */ if ($assertType(_ref, $Uintptr, true)[1]) { + $s = 31; + continue; + } + /* */ if ($assertType(_ref, $String, true)[1]) { + $s = 32; + continue; + } + /* */ if ($assertType(_ref, sliceType$2, true)[1]) { + $s = 33; + continue; + } + /* */ if ($assertType(_ref, reflect.Value, true)[1]) { + $s = 34; + continue; + } + /* */ $s = 35; + continue; + /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: + f = _ref.$val; + $r = p.fmtBool(f, verb); /* */ + $s = 37; + case 37: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: + f$1 = _ref.$val; + $r = p.fmtFloat((f$1), 32, verb); /* */ + $s = 38; + case 38: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: + f$2 = _ref.$val; + $r = p.fmtFloat(f$2, 64, verb); /* */ + $s = 39; + case 39: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: + f$3 = _ref.$val; + $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ + $s = 40; + case 40: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: + f$4 = _ref.$val; + $r = p.fmtComplex(f$4, 128, verb); /* */ + $s = 41; + case 41: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: + f$5 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ + $s = 42; + case 42: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: + f$6 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ + $s = 43; + case 43: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: + f$7 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ + $s = 44; + case 44: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: + f$8 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ + $s = 45; + case 45: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: + f$9 = _ref.$val; + $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ + $s = 46; + case 46: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: + f$10 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ + $s = 47; + case 47: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: + f$11 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ + $s = 48; + case 48: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: + f$12 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ + $s = 49; + case 49: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: + f$13 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ + $s = 50; + case 50: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: + f$14 = _ref.$val; + $r = p.fmtInteger(f$14, false, verb); /* */ + $s = 51; + case 51: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: + f$15 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ + $s = 52; + case 52: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: + f$16 = _ref.$val; + $r = p.fmtString(f$16, verb); /* */ + $s = 53; + case 53: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33: + f$17 = _ref.$val; + $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ + $s = 54; + case 54: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: + f$18 = _ref.$val; + /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { + $s = 55; + continue; + } + /* */ $s = 56; + continue; + /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: + _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ + $s = 57; + case 57: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + p.arg = _r$2; + _r$3 = p.handleMethods(verb); /* */ + $s = 60; + case 60: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + /* */ if (_r$3) { + $s = 58; + continue; + } + /* */ $s = 59; + continue; + /* if (_r$3) { */ case 58: + $s = -1; + return; + /* } */ case 59: + /* } */ case 56: + $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ + $s = 61; + case 61: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 36; + continue; + /* } else { */ case 35: + f$19 = _ref; + _r$4 = p.handleMethods(verb); /* */ + $s = 64; + case 64: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + /* */ if (!_r$4) { + $s = 62; + continue; + } + /* */ $s = 63; + continue; + /* if (!_r$4) { */ case 62: + _r$5 = reflect.ValueOf(f$19); /* */ + $s = 65; + case 65: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ + $s = 66; + case 66: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 63: + /* } */ case 36: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.printArg }; + } + $f._1 = _1; + $f._2 = _2; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._ref = _ref; + $f.arg = arg; + $f.f = f; + $f.f$1 = f$1; + $f.f$10 = f$10; + $f.f$11 = f$11; + $f.f$12 = f$12; + $f.f$13 = f$13; + $f.f$14 = f$14; + $f.f$15 = f$15; + $f.f$16 = f$16; + $f.f$17 = f$17; + $f.f$18 = f$18; + $f.f$19 = f$19; + $f.f$2 = f$2; + $f.f$3 = f$3; + $f.f$4 = f$4; + $f.f$5 = f$5; + $f.f$6 = f$6; + $f.f$7 = f$7; + $f.f$8 = f$8; + $f.f$9 = f$9; + $f.p = p; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.printArg = function (arg, verb) { return this.$val.printArg(arg, verb); }; + pp.ptr.prototype.printValue = function (value, verb, depth) { + var _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, name, p, sorted, t, value, value$1, verb, x, x$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _2 = $f._2; + _3 = $f._3; + _4 = $f._4; + _arg = $f._arg; + _arg$1 = $f._arg$1; + _arg$2 = $f._arg$2; + _i = $f._i; + _i$1 = $f._i$1; + _r = $f._r; + _r$1 = $f._r$1; + _r$10 = $f._r$10; + _r$11 = $f._r$11; + _r$12 = $f._r$12; + _r$13 = $f._r$13; + _r$14 = $f._r$14; + _r$15 = $f._r$15; + _r$16 = $f._r$16; + _r$17 = $f._r$17; + _r$18 = $f._r$18; + _r$19 = $f._r$19; + _r$2 = $f._r$2; + _r$20 = $f._r$20; + _r$21 = $f._r$21; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + _r$8 = $f._r$8; + _r$9 = $f._r$9; + _ref = $f._ref; + _ref$1 = $f._ref$1; + a = $f.a; + bytes = $f.bytes; + depth = $f.depth; + f = $f.f; + i = $f.i; + i$1 = $f.i$1; + i$2 = $f.i$2; + i$3 = $f.i$3; + i$4 = $f.i$4; + key = $f.key; + name = $f.name; + p = $f.p; + sorted = $f.sorted; + t = $f.t; + value = $f.value; + value$1 = $f.value$1; + verb = $f.verb; + x = $f.x; + x$1 = $f.x$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1: + _r = $clone(value, reflect.Value).Interface(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + p.arg = _r; + _r$1 = p.handleMethods(verb); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (_r$1) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_r$1) { */ case 4: + $s = -1; + return; + /* } */ case 5: + /* } */ case 2: + p.arg = $ifaceNil; + p.value = value; + f = value; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if (_1 === (0)) { + $s = 8; + continue; + } + /* */ if (_1 === (1)) { + $s = 9; + continue; + } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + $s = 10; + continue; + } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + $s = 11; + continue; + } + /* */ if (_1 === (13)) { + $s = 12; + continue; + } + /* */ if (_1 === (14)) { + $s = 13; + continue; + } + /* */ if (_1 === (15)) { + $s = 14; + continue; + } + /* */ if (_1 === (16)) { + $s = 15; + continue; + } + /* */ if (_1 === (24)) { + $s = 16; + continue; + } + /* */ if (_1 === (21)) { + $s = 17; + continue; + } + /* */ if (_1 === (25)) { + $s = 18; + continue; + } + /* */ if (_1 === (20)) { + $s = 19; + continue; + } + /* */ if ((_1 === (17)) || (_1 === (23))) { + $s = 20; + continue; + } + /* */ if (_1 === (22)) { + $s = 21; + continue; + } + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { + $s = 22; + continue; + } + /* */ $s = 23; + continue; + /* if (_1 === (0)) { */ case 8: + /* */ if (depth === 0) { + $s = 25; + continue; + } + /* */ $s = 26; + continue; + /* if (depth === 0) { */ case 25: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 27; + continue; + /* } else { */ case 26: + _2 = verb; + /* */ if (_2 === (118)) { + $s = 29; + continue; + } + /* */ $s = 30; + continue; + /* if (_2 === (118)) { */ case 29: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 31; + continue; + /* } else { */ case 30: + $r = p.badVerb(verb); /* */ + $s = 32; + case 32: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 31: + case 28: + /* } */ case 27: + $s = 24; + continue; + /* } else if (_1 === (1)) { */ case 9: + $r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ + $s = 33; + case 33: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10: + $r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ + $s = 34; + case 34: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11: + $r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ + $s = 35; + case 35: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if (_1 === (13)) { */ case 12: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ + $s = 36; + case 36: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if (_1 === (14)) { */ case 13: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ + $s = 37; + case 37: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if (_1 === (15)) { */ case 14: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ + $s = 38; + case 38: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if (_1 === (16)) { */ case 15: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ + $s = 39; + case 39: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if (_1 === (24)) { */ case 16: + _r$2 = $clone(f, reflect.Value).String(); /* */ + $s = 40; + case 40: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $r = p.fmtString(_r$2, verb); /* */ + $s = 41; + case 41: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if (_1 === (21)) { */ case 17: + /* */ if (p.fmt.fmtFlags.sharpV) { + $s = 42; + continue; + } + /* */ $s = 43; + continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 42: + _r$3 = $clone(f, reflect.Value).Type().String(); /* */ + $s = 45; + case 45: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r$3); /* */ + $s = 46; + case 46: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + if ($clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; + return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(123); + $s = 44; + continue; + /* } else { */ case 43: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("map["); + /* } */ case 44: + _r$4 = fmtsort.Sort($clone(f, reflect.Value)); /* */ + $s = 47; + case 47: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + sorted = _r$4; + _ref = sorted.Key; + _i = 0; + /* while (true) { */ case 48: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 49; + continue; + } + i = _i; + key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ + $s = 50; + case 50: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(58); + $r = p.printValue($clone((x$1 = sorted.Value, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])), reflect.Value), verb, depth + 1 >> 0); /* */ + $s = 51; + case 51: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _i++; + /* } */ $s = 48; + continue; + case 49: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } + else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 24; + continue; + /* } else if (_1 === (25)) { */ case 18: + /* */ if (p.fmt.fmtFlags.sharpV) { + $s = 52; + continue; + } + /* */ $s = 53; + continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 52: + _r$5 = $clone(f, reflect.Value).Type().String(); /* */ + $s = 54; + case 54: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r$5); /* */ + $s = 55; + case 55: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 53: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$1 = 0; + /* while (true) { */ case 56: + /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if (!(i$1 < $clone(f, reflect.Value).NumField())) { + $s = 57; + continue; + } + if (i$1 > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { + $s = 58; + continue; + } + /* */ $s = 59; + continue; + /* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 58: + _r$6 = $clone(f, reflect.Value).Type().Field(i$1); /* */ + $s = 60; + case 60: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + name = _r$6.Name; + if (!(name === "")) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(name); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(58); + } + /* } */ case 59: + _r$7 = getField($clone(f, reflect.Value), i$1); /* */ + $s = 61; + case 61: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + $r = p.printValue($clone(_r$7, reflect.Value), verb, depth + 1 >> 0); /* */ + $s = 62; + case 62: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 56; + continue; + case 57: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 24; + continue; + /* } else if (_1 === (20)) { */ case 19: + _r$8 = $clone(f, reflect.Value).Elem(); /* */ + $s = 63; + case 63: + if ($c) { + $c = false; + _r$8 = _r$8.$blk(); + } + if (_r$8 && _r$8.$blk !== undefined) { + break s; + } + value$1 = _r$8; + /* */ if (!$clone(value$1, reflect.Value).IsValid()) { + $s = 64; + continue; + } + /* */ $s = 65; + continue; + /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 64: + /* */ if (p.fmt.fmtFlags.sharpV) { + $s = 67; + continue; + } + /* */ $s = 68; + continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 67: + _r$9 = $clone(f, reflect.Value).Type().String(); /* */ + $s = 70; + case 70: + if ($c) { + $c = false; + _r$9 = _r$9.$blk(); + } + if (_r$9 && _r$9.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r$9); /* */ + $s = 71; + case 71: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = 69; + continue; + /* } else { */ case 68: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 69: + $s = 66; + continue; + /* } else { */ case 65: + $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ + $s = 72; + case 72: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 66: + $s = 24; + continue; + /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: + _3 = verb; + /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { + $s = 74; + continue; + } + /* */ $s = 75; + continue; + /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 74: + t = $clone(f, reflect.Value).Type(); + _r$10 = t.Elem(); /* */ + $s = 78; + case 78: + if ($c) { + $c = false; + _r$10 = _r$10.$blk(); + } + if (_r$10 && _r$10.$blk !== undefined) { + break s; + } + _r$11 = _r$10.Kind(); /* */ + $s = 79; + case 79: + if ($c) { + $c = false; + _r$11 = _r$11.$blk(); + } + if (_r$11 && _r$11.$blk !== undefined) { + break s; + } + /* */ if (_r$11 === 8) { + $s = 76; + continue; + } + /* */ $s = 77; + continue; + /* if (_r$11 === 8) { */ case 76: + bytes = sliceType$2.nil; + /* */ if ($clone(f, reflect.Value).Kind() === 23) { + $s = 80; + continue; + } + /* */ if ($clone(f, reflect.Value).CanAddr()) { + $s = 81; + continue; + } + /* */ $s = 82; + continue; + /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 80: + _r$12 = $clone(f, reflect.Value).Bytes(); /* */ + $s = 84; + case 84: + if ($c) { + $c = false; + _r$12 = _r$12.$blk(); + } + if (_r$12 && _r$12.$blk !== undefined) { + break s; + } + bytes = _r$12; + $s = 83; + continue; + /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 81: + _r$13 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ + $s = 85; + case 85: + if ($c) { + $c = false; + _r$13 = _r$13.$blk(); + } + if (_r$13 && _r$13.$blk !== undefined) { + break s; + } + _r$14 = $clone(_r$13, reflect.Value).Bytes(); /* */ + $s = 86; + case 86: + if ($c) { + $c = false; + _r$14 = _r$14.$blk(); + } + if (_r$14 && _r$14.$blk !== undefined) { + break s; + } + bytes = _r$14; + $s = 83; + continue; + /* } else { */ case 82: + bytes = $makeSlice(sliceType$2, $clone(f, reflect.Value).Len()); + _ref$1 = bytes; + _i$1 = 0; + /* while (true) { */ case 87: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if (!(_i$1 < _ref$1.$length)) { + $s = 88; + continue; + } + i$2 = _i$1; + _r$15 = $clone(f, reflect.Value).Index(i$2); /* */ + $s = 89; + case 89: + if ($c) { + $c = false; + _r$15 = _r$15.$blk(); + } + if (_r$15 && _r$15.$blk !== undefined) { + break s; + } + _r$16 = $clone(_r$15, reflect.Value).Uint(); /* */ + $s = 90; + case 90: + if ($c) { + $c = false; + _r$16 = _r$16.$blk(); + } + if (_r$16 && _r$16.$blk !== undefined) { + break s; + } + ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$16.$low << 24 >>> 24))); + _i$1++; + /* } */ $s = 87; + continue; + case 88: + /* } */ case 83: + _arg = bytes; + _arg$1 = verb; + _r$17 = t.String(); /* */ + $s = 91; + case 91: + if ($c) { + $c = false; + _r$17 = _r$17.$blk(); + } + if (_r$17 && _r$17.$blk !== undefined) { + break s; + } + _arg$2 = _r$17; + $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ + $s = 92; + case 92: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* } */ case 77: + /* } */ case 75: + case 73: + /* */ if (p.fmt.fmtFlags.sharpV) { + $s = 93; + continue; + } + /* */ $s = 94; + continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 93: + _r$18 = $clone(f, reflect.Value).Type().String(); /* */ + $s = 96; + case 96: + if ($c) { + $c = false; + _r$18 = _r$18.$blk(); + } + if (_r$18 && _r$18.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r$18); /* */ + $s = 97; + case 97: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; + return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$3 = 0; + /* while (true) { */ case 98: + /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if (!(i$3 < $clone(f, reflect.Value).Len())) { + $s = 99; + continue; + } + if (i$3 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + _r$19 = $clone(f, reflect.Value).Index(i$3); /* */ + $s = 100; + case 100: + if ($c) { + $c = false; + _r$19 = _r$19.$blk(); + } + if (_r$19 && _r$19.$blk !== undefined) { + break s; + } + $r = p.printValue($clone(_r$19, reflect.Value), verb, depth + 1 >> 0); /* */ + $s = 101; + case 101: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i$3 = i$3 + (1) >> 0; + /* } */ $s = 98; + continue; + case 99: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 95; + continue; + /* } else { */ case 94: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(91); + i$4 = 0; + /* while (true) { */ case 102: + /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if (!(i$4 < $clone(f, reflect.Value).Len())) { + $s = 103; + continue; + } + if (i$4 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + _r$20 = $clone(f, reflect.Value).Index(i$4); /* */ + $s = 104; + case 104: + if ($c) { + $c = false; + _r$20 = _r$20.$blk(); + } + if (_r$20 && _r$20.$blk !== undefined) { + break s; + } + $r = p.printValue($clone(_r$20, reflect.Value), verb, depth + 1 >> 0); /* */ + $s = 105; + case 105: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + i$4 = i$4 + (1) >> 0; + /* } */ $s = 102; + continue; + case 103: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(93); + /* } */ case 95: + $s = 24; + continue; + /* } else if (_1 === (22)) { */ case 21: + /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { + $s = 106; + continue; + } + /* */ $s = 107; + continue; + /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 106: + _r$21 = $clone(f, reflect.Value).Elem(); /* */ + $s = 109; + case 109: + if ($c) { + $c = false; + _r$21 = _r$21.$blk(); + } + if (_r$21 && _r$21.$blk !== undefined) { + break s; + } + a = _r$21; + _4 = $clone(a, reflect.Value).Kind(); + /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { + $s = 110; + continue; + } + /* */ $s = 111; + continue; + /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 110: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(38); + $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ + $s = 112; + case 112: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* } */ case 111: + case 108: + /* } */ case 107: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ + $s = 113; + case 113: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ + $s = 114; + case 114: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 24; + continue; + /* } else { */ case 23: + $r = p.unknownType($clone(f, reflect.Value)); /* */ + $s = 115; + case 115: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 24: + case 7: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.printValue }; + } + $f._1 = _1; + $f._2 = _2; + $f._3 = _3; + $f._4 = _4; + $f._arg = _arg; + $f._arg$1 = _arg$1; + $f._arg$2 = _arg$2; + $f._i = _i; + $f._i$1 = _i$1; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$10 = _r$10; + $f._r$11 = _r$11; + $f._r$12 = _r$12; + $f._r$13 = _r$13; + $f._r$14 = _r$14; + $f._r$15 = _r$15; + $f._r$16 = _r$16; + $f._r$17 = _r$17; + $f._r$18 = _r$18; + $f._r$19 = _r$19; + $f._r$2 = _r$2; + $f._r$20 = _r$20; + $f._r$21 = _r$21; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f._r$8 = _r$8; + $f._r$9 = _r$9; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f.a = a; + $f.bytes = bytes; + $f.depth = depth; + $f.f = f; + $f.i = i; + $f.i$1 = i$1; + $f.i$2 = i$2; + $f.i$3 = i$3; + $f.i$4 = i$4; + $f.key = key; + $f.name = name; + $f.p = p; + $f.sorted = sorted; + $f.t = t; + $f.value = value; + $f.value$1 = value$1; + $f.verb = verb; + $f.x = x; + $f.x$1 = x$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.printValue = function (value, verb, depth) { return this.$val.printValue(value, verb, depth); }; + intFromArg = function (a, argNum) { + var _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _tuple = $f._tuple; + a = $f.a; + argNum = $f.argNum; + isInt = $f.isInt; + n = $f.n; + n$1 = $f.n$1; + newArgNum = $f.newArgNum; + num = $f.num; + v = $f.v; + x = $f.x; + x$1 = $f.x$1; + x$2 = $f.x$2; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + num = 0; + isInt = false; + newArgNum = 0; + newArgNum = argNum; + /* */ if (argNum < a.$length) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (argNum < a.$length) { */ case 1: + _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); + num = _tuple[0]; + isInt = _tuple[1]; + /* */ if (!isInt) { + $s = 3; + continue; + } + /* */ $s = 4; + continue; + /* if (!isInt) { */ case 3: + _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + v = _r; + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + n = $clone(v, reflect.Value).Int(); + if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { + num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); + isInt = true; + } + } + else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + n$1 = $clone(v, reflect.Value).Uint(); + if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { + num = ((n$1.$low >> 0)); + isInt = true; + } + } + case 5: + /* } */ case 4: + newArgNum = argNum + 1 >> 0; + if (tooLarge(num)) { + num = 0; + isInt = false; + } + /* } */ case 2: + $s = -1; + return [num, isInt, newArgNum]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: intFromArg }; + } + $f._1 = _1; + $f._r = _r; + $f._tuple = _tuple; + $f.a = a; + $f.argNum = argNum; + $f.isInt = isInt; + $f.n = n; + $f.n$1 = n$1; + $f.newArgNum = newArgNum; + $f.num = num; + $f.v = v; + $f.x = x; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + parseArgNumber = function (format) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; + index = 0; + wid = 0; + ok = false; + if (format.length < 3) { + _tmp = 0; + _tmp$1 = 1; + _tmp$2 = false; + index = _tmp; + wid = _tmp$1; + ok = _tmp$2; + return [index, wid, ok]; + } + i = 1; + while (true) { + if (!(i < format.length)) { + break; + } + if (format.charCodeAt(i) === 93) { + _tuple = parsenum(format, 1, i); + width = _tuple[0]; + ok$1 = _tuple[1]; + newi = _tuple[2]; + if (!ok$1 || !((newi === i))) { + _tmp$3 = 0; + _tmp$4 = i + 1 >> 0; + _tmp$5 = false; + index = _tmp$3; + wid = _tmp$4; + ok = _tmp$5; + return [index, wid, ok]; + } + _tmp$6 = width - 1 >> 0; + _tmp$7 = i + 1 >> 0; + _tmp$8 = true; + index = _tmp$6; + wid = _tmp$7; + ok = _tmp$8; + return [index, wid, ok]; + } + i = i + (1) >> 0; + } + _tmp$9 = 0; + _tmp$10 = 1; + _tmp$11 = false; + index = _tmp$9; + wid = _tmp$10; + ok = _tmp$11; + return [index, wid, ok]; + }; + pp.ptr.prototype.argNumber = function (argNum, format, i, numArgs) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid; + newArgNum = 0; + newi = 0; + found = false; + p = this; + if (format.length <= i || !((format.charCodeAt(i) === 91))) { + _tmp = argNum; + _tmp$1 = i; + _tmp$2 = false; + newArgNum = _tmp; + newi = _tmp$1; + found = _tmp$2; + return [newArgNum, newi, found]; + } + p.reordered = true; + _tuple = parseArgNumber($substring(format, i)); + index = _tuple[0]; + wid = _tuple[1]; + ok = _tuple[2]; + if (ok && 0 <= index && index < numArgs) { + _tmp$3 = index; + _tmp$4 = i + wid >> 0; + _tmp$5 = true; + newArgNum = _tmp$3; + newi = _tmp$4; + found = _tmp$5; + return [newArgNum, newi, found]; + } + p.goodArgNum = false; + _tmp$6 = argNum; + _tmp$7 = i + wid >> 0; + _tmp$8 = ok; + newArgNum = _tmp$6; + newi = _tmp$7; + found = _tmp$8; + return [newArgNum, newi, found]; + }; + pp.prototype.argNumber = function (argNum, format, i, numArgs) { return this.$val.argNumber(argNum, format, i, numArgs); }; + pp.ptr.prototype.badArgNum = function (verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("(BADINDEX)"); + }; + pp.prototype.badArgNum = function (verb) { return this.$val.badArgNum(verb); }; + pp.ptr.prototype.missingArg = function (verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("(MISSING)"); + }; + pp.prototype.missingArg = function (verb) { return this.$val.missingArg(verb); }; + pp.ptr.prototype.doPrintf = function (format, a) { + var _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _i = $f._i; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _ref = $f._ref; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + _tuple$2 = $f._tuple$2; + _tuple$3 = $f._tuple$3; + _tuple$4 = $f._tuple$4; + _tuple$5 = $f._tuple$5; + _tuple$6 = $f._tuple$6; + _tuple$7 = $f._tuple$7; + a = $f.a; + afterIndex = $f.afterIndex; + arg = $f.arg; + argNum = $f.argNum; + c = $f.c; + end = $f.end; + format = $f.format; + i = $f.i; + i$1 = $f.i$1; + lasti = $f.lasti; + p = $f.p; + size = $f.size; + verb = $f.verb; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + end = format.length; + argNum = 0; + afterIndex = false; + p.reordered = false; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < end)) { break; } */ if (!(i < end)) { + $s = 2; + continue; + } + p.goodArgNum = true; + lasti = i; + while (true) { + if (!(i < end && !((format.charCodeAt(i) === 37)))) { + break; + } + i = i + (1) >> 0; + } + if (i > lasti) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString($substring(format, lasti, i)); + } + if (i >= end) { + /* break; */ $s = 2; + continue; + } + i = i + (1) >> 0; + p.fmt.clearflags(); + /* while (true) { */ case 3: + /* if (!(i < end)) { break; } */ if (!(i < end)) { + $s = 4; + continue; + } + c = format.charCodeAt(i); + _1 = c; + /* */ if (_1 === (35)) { + $s = 6; + continue; + } + /* */ if (_1 === (48)) { + $s = 7; + continue; + } + /* */ if (_1 === (43)) { + $s = 8; + continue; + } + /* */ if (_1 === (45)) { + $s = 9; + continue; + } + /* */ if (_1 === (32)) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (_1 === (35)) { */ case 6: + p.fmt.fmtFlags.sharp = true; + $s = 12; + continue; + /* } else if (_1 === (48)) { */ case 7: + p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus; + $s = 12; + continue; + /* } else if (_1 === (43)) { */ case 8: + p.fmt.fmtFlags.plus = true; + $s = 12; + continue; + /* } else if (_1 === (45)) { */ case 9: + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + $s = 12; + continue; + /* } else if (_1 === (32)) { */ case 10: + p.fmt.fmtFlags.space = true; + $s = 12; + continue; + /* } else { */ case 11: + /* */ if (97 <= c && c <= 122 && argNum < a.$length) { + $s = 13; + continue; + } + /* */ $s = 14; + continue; + /* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13: + if (c === 118) { + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ + $s = 15; + case 15: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + argNum = argNum + (1) >> 0; + i = i + (1) >> 0; + /* continue formatLoop; */ $s = 1; + continue s; + /* } */ case 14: + /* break simpleFormat; */ $s = 4; + continue s; + /* } */ case 12: + case 5: + i = i + (1) >> 0; + /* } */ $s = 3; + continue; + case 4: + _tuple = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple[0]; + i = _tuple[1]; + afterIndex = _tuple[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { + $s = 16; + continue; + } + /* */ $s = 17; + continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: + i = i + (1) >> 0; + _r = intFromArg(a, argNum); /* */ + $s = 19; + case 19: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple$1 = _r; + p.fmt.wid = _tuple$1[0]; + p.fmt.fmtFlags.widPresent = _tuple$1[1]; + argNum = _tuple$1[2]; + if (!p.fmt.fmtFlags.widPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADWIDTH)"); + } + if (p.fmt.wid < 0) { + p.fmt.wid = -p.fmt.wid; + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + } + afterIndex = false; + $s = 18; + continue; + /* } else { */ case 17: + _tuple$2 = parsenum(format, i, end); + p.fmt.wid = _tuple$2[0]; + p.fmt.fmtFlags.widPresent = _tuple$2[1]; + i = _tuple$2[2]; + if (afterIndex && p.fmt.fmtFlags.widPresent) { + p.goodArgNum = false; + } + /* } */ case 18: + /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { + $s = 20; + continue; + } + /* */ $s = 21; + continue; + /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: + i = i + (1) >> 0; + if (afterIndex) { + p.goodArgNum = false; + } + _tuple$3 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$3[0]; + i = _tuple$3[1]; + afterIndex = _tuple$3[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { + $s = 22; + continue; + } + /* */ $s = 23; + continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: + i = i + (1) >> 0; + _r$1 = intFromArg(a, argNum); /* */ + $s = 25; + case 25: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _tuple$4 = _r$1; + p.fmt.prec = _tuple$4[0]; + p.fmt.fmtFlags.precPresent = _tuple$4[1]; + argNum = _tuple$4[2]; + if (p.fmt.prec < 0) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = false; + } + if (!p.fmt.fmtFlags.precPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADPREC)"); + } + afterIndex = false; + $s = 24; + continue; + /* } else { */ case 23: + _tuple$5 = parsenum(format, i, end); + p.fmt.prec = _tuple$5[0]; + p.fmt.fmtFlags.precPresent = _tuple$5[1]; + i = _tuple$5[2]; + if (!p.fmt.fmtFlags.precPresent) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = true; + } + /* } */ case 24: + /* } */ case 21: + if (!afterIndex) { + _tuple$6 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$6[0]; + i = _tuple$6[1]; + afterIndex = _tuple$6[2]; + } + if (i >= end) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!(NOVERB)"); + /* break; */ $s = 2; + continue; + } + _tmp = ((format.charCodeAt(i) >> 0)); + _tmp$1 = 1; + verb = _tmp; + size = _tmp$1; + if (verb >= 128) { + _tuple$7 = utf8.DecodeRuneInString($substring(format, i)); + verb = _tuple$7[0]; + size = _tuple$7[1]; + } + i = i + (size) >> 0; + /* */ if ((verb === 37)) { + $s = 27; + continue; + } + /* */ if (!p.goodArgNum) { + $s = 28; + continue; + } + /* */ if (argNum >= a.$length) { + $s = 29; + continue; + } + /* */ if ((verb === 118)) { + $s = 30; + continue; + } + /* */ $s = 31; + continue; + /* if ((verb === 37)) { */ case 27: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(37); + $s = 32; + continue; + /* } else if (!p.goodArgNum) { */ case 28: + p.badArgNum(verb); + $s = 32; + continue; + /* } else if (argNum >= a.$length) { */ case 29: + p.missingArg(verb); + $s = 32; + continue; + /* } else if ((verb === 118)) { */ case 30: + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ + $s = 33; + case 33: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + argNum = argNum + (1) >> 0; + $s = 32; + continue; + /* } else { */ case 31: + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ + $s = 34; + case 34: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + argNum = argNum + (1) >> 0; + /* } */ case 32: + case 26: + /* } */ $s = 1; + continue; + case 2: + /* */ if (!p.reordered && argNum < a.$length) { + $s = 35; + continue; + } + /* */ $s = 36; + continue; + /* if (!p.reordered && argNum < a.$length) { */ case 35: + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString("%!(EXTRA "); + _ref = $subslice(a, argNum); + _i = 0; + /* while (true) { */ case 37: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 38; + continue; + } + i$1 = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { + $s = 39; + continue; + } + /* */ $s = 40; + continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 41; + continue; + /* } else { */ case 40: + _r$2 = reflect.TypeOf(arg).String(); /* */ + $s = 42; + case 42: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteString(_r$2); /* */ + $s = 43; + case 43: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(arg, 118); /* */ + $s = 44; + case 44: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 41: + _i++; + /* } */ $s = 37; + continue; + case 38: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(41); + /* } */ case 36: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.doPrintf }; + } + $f._1 = _1; + $f._i = _i; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._ref = _ref; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f._tuple$2 = _tuple$2; + $f._tuple$3 = _tuple$3; + $f._tuple$4 = _tuple$4; + $f._tuple$5 = _tuple$5; + $f._tuple$6 = _tuple$6; + $f._tuple$7 = _tuple$7; + $f.a = a; + $f.afterIndex = afterIndex; + $f.arg = arg; + $f.argNum = argNum; + $f.c = c; + $f.end = end; + $f.format = format; + $f.i = i; + $f.i$1 = i$1; + $f.lasti = lasti; + $f.p = p; + $f.size = size; + $f.verb = verb; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.doPrintf = function (format, a) { return this.$val.doPrintf(format, a); }; + pp.ptr.prototype.doPrint = function (a) { + var _i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _ref = $f._ref; + _v = $f._v; + a = $f.a; + arg = $f.arg; + argNum = $f.argNum; + isString = $f.isString; + p = $f.p; + prevString = $f.prevString; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + prevString = false; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 2; + continue; + } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(!($interfaceIsEqual(arg, $ifaceNil)))) { + _v = false; + $s = 3; + continue s; + } + _r = reflect.TypeOf(arg).Kind(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _v = _r === 24; + case 3: + isString = _v; + if (argNum > 0 && !isString && !prevString) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + $r = p.printArg(arg, 118); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + prevString = isString; + _i++; + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.doPrint }; + } + $f._i = _i; + $f._r = _r; + $f._ref = _ref; + $f._v = _v; + $f.a = a; + $f.arg = arg; + $f.argNum = argNum; + $f.isString = isString; + $f.p = p; + $f.prevString = prevString; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.doPrint = function (a) { return this.$val.doPrint(a); }; + pp.ptr.prototype.doPrintln = function (a) { + var _i, _ref, a, arg, argNum, p, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _ref = $f._ref; + a = $f.a; + arg = $f.arg; + argNum = $f.argNum; + p = $f.p; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + p = this; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 2; + continue; + } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (argNum > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + $r = p.printArg(arg, 118); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _i++; + /* } */ $s = 1; + continue; + case 2: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, p))).WriteByte(10); + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: pp.ptr.prototype.doPrintln }; + } + $f._i = _i; + $f._ref = _ref; + $f.a = a; + $f.arg = arg; + $f.argNum = argNum; + $f.p = p; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + pp.prototype.doPrintln = function (a) { return this.$val.doPrintln(a); }; + ss.ptr.prototype.Read = function (buf) { + var _tmp, _tmp$1, buf, err, n, s; + n = 0; + err = $ifaceNil; + s = this; + _tmp = 0; + _tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune"); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + ss.prototype.Read = function (buf) { return this.$val.Read(buf); }; + ss.ptr.prototype.ReadRune = function () { + var _r, _tuple, err, r, s, size, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + err = $f.err; + r = $f.r; + s = $f.s; + size = $f.size; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + r = 0; + size = 0; + err = $ifaceNil; + s = this; + if (s.atEOF || s.count >= s.ssave.argLimit) { + err = io.EOF; + $s = -1; + return [r, size, err]; + } + _r = s.rs.ReadRune(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + r = _tuple[0]; + size = _tuple[1]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + s.count = s.count + (1) >> 0; + if (s.ssave.nlIsEnd && (r === 10)) { + s.atEOF = true; + } + } + else if ($interfaceIsEqual(err, io.EOF)) { + s.atEOF = true; + } + $s = -1; + return [r, size, err]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ss.ptr.prototype.ReadRune }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.err = err; + $f.r = r; + $f.s = s; + $f.size = size; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ss.prototype.ReadRune = function () { return this.$val.ReadRune(); }; + ss.ptr.prototype.Width = function () { + var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid; + wid = 0; + ok = false; + s = this; + if (s.ssave.maxWid === 1073741824) { + _tmp = 0; + _tmp$1 = false; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + } + _tmp$2 = s.ssave.maxWid; + _tmp$3 = true; + wid = _tmp$2; + ok = _tmp$3; + return [wid, ok]; + }; + ss.prototype.Width = function () { return this.$val.Width(); }; + ss.ptr.prototype.getRune = function () { + var _r, _tuple, err, r, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _tuple = $f._tuple; + err = $f.err; + r = $f.r; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + r = 0; + s = this; + _r = s.ReadRune(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + r = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + r = -1; + $s = -1; + return r; + } + s.error(err); + } + $s = -1; + return r; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ss.ptr.prototype.getRune }; + } + $f._r = _r; + $f._tuple = _tuple; + $f.err = err; + $f.r = r; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ss.prototype.getRune = function () { return this.$val.getRune(); }; + ss.ptr.prototype.UnreadRune = function () { + var _r, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + s = this; + _r = s.rs.UnreadRune(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r; + s.atEOF = false; + s.count = s.count - (1) >> 0; + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ss.ptr.prototype.UnreadRune }; + } + $f._r = _r; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ss.prototype.UnreadRune = function () { return this.$val.UnreadRune(); }; + ss.ptr.prototype.error = function (err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(err), new x.constructor.elem(x))); + }; + ss.prototype.error = function (err) { return this.$val.error(err); }; + ss.ptr.prototype.errorString = function (err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x))); + }; + ss.prototype.errorString = function (err) { return this.$val.errorString(err); }; + ss.ptr.prototype.Token = function (skipSpace, f) { + var _r, err, f, s, skipSpace, tok, $s, $deferred, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + err = $f.err; + f = $f.f; + s = $f.s; + skipSpace = $f.skipSpace; + tok = $f.tok; + $s = $f.$s; + $deferred = $f.$deferred; + $r = $f.$r; + } + var $err = null; + try { + s: while (true) { + switch ($s) { + case 0: + $deferred = []; + $deferred.index = $curGoroutine.deferStack.length; + $curGoroutine.deferStack.push($deferred); + err = [err]; + tok = sliceType$2.nil; + err[0] = $ifaceNil; + s = this; + $deferred.push([(function (err) { + return function () { + var _tuple, e, ok, se; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, scanError, true); + se = $clone(_tuple[0], scanError); + ok = _tuple[1]; + if (ok) { + err[0] = se.err; + } + else { + $panic(e); + } + } + }; + })(err), []]); + if (f === $throwNilPointerError) { + f = notSpace; + } + s.buf = $subslice(s.buf, 0, 0); + _r = s.token(skipSpace, f); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + tok = _r; + $s = -1; + return [tok, err[0]]; + /* */ } + return; + } + } + catch (err) { + $err = err; + $s = -1; + } + finally { + $callDeferred($deferred, $err); + if (!$curGoroutine.asleep) { + return [tok, err[0]]; + } + if ($curGoroutine.asleep) { + if ($f === undefined) { + $f = { $blk: ss.ptr.prototype.Token }; + } + $f._r = _r; + $f.err = err; + $f.f = f; + $f.s = s; + $f.skipSpace = skipSpace; + $f.tok = tok; + $f.$s = $s; + $f.$deferred = $deferred; + $f.$r = $r; + return $f; + } + } + }; + ss.prototype.Token = function (skipSpace, f) { return this.$val.Token(skipSpace, f); }; + isSpace = function (r) { + var _i, _ref, r, rng, rx; + if (r >= 65536) { + return false; + } + rx = ((r << 16 >>> 16)); + _ref = space; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { + break; + } + rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$1); + if (rx < rng[0]) { + return false; + } + if (rx <= rng[1]) { + return true; + } + _i++; + } + return false; + }; + notSpace = function (r) { + var r; + return !isSpace(r); + }; + ss.ptr.prototype.free = function (old) { + var old, s; + s = this; + if (old.validSave) { + ssave.copy(s.ssave, old); + return; + } + if (s.buf.$capacity > 1024) { + return; + } + s.buf = $subslice(s.buf, 0, 0); + s.rs = $ifaceNil; + ssFree.Put(s); + }; + ss.prototype.free = function (old) { return this.$val.free(old); }; + ss.ptr.prototype.SkipSpace = function () { + var _r, _r$1, _r$2, _v, r, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _v = $f._v; + r = $f.r; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + s = this; + /* while (true) { */ case 1: + _r = s.getRune(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + r = _r; + if (r === -1) { + $s = -1; + return; + } + if (!(r === 13)) { + _v = false; + $s = 6; + continue s; + } + _r$1 = s.peek("\n"); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _v = _r$1; + case 6: + /* */ if (_v) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (_v) { */ case 4: + /* continue; */ $s = 1; + continue; + /* } */ case 5: + /* */ if (r === 10) { + $s = 8; + continue; + } + /* */ $s = 9; + continue; + /* if (r === 10) { */ case 8: + if (s.ssave.nlIsSpace) { + /* continue; */ $s = 1; + continue; + } + s.errorString("unexpected newline"); + $s = -1; + return; + /* } */ case 9: + /* */ if (!isSpace(r)) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (!isSpace(r)) { */ case 10: + _r$2 = s.UnreadRune(); /* */ + $s = 12; + case 12: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _r$2; + /* break; */ $s = 2; + continue; + /* } */ case 11: + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ss.ptr.prototype.SkipSpace }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._v = _v; + $f.r = r; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ss.prototype.SkipSpace = function () { return this.$val.SkipSpace(); }; + ss.ptr.prototype.token = function (skipSpace, f) { + var _r, _r$1, _r$2, f, r, s, skipSpace, x, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + f = $f.f; + r = $f.r; + s = $f.s; + skipSpace = $f.skipSpace; + x = $f.x; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + s = this; + /* */ if (skipSpace) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (skipSpace) { */ case 1: + $r = s.SkipSpace(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 2: + /* while (true) { */ case 4: + _r = s.getRune(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + r = _r; + if (r === -1) { + /* break; */ $s = 5; + continue; + } + _r$1 = f(r); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (!_r$1) { + $s = 7; + continue; + } + /* */ $s = 8; + continue; + /* if (!_r$1) { */ case 7: + _r$2 = s.UnreadRune(); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _r$2; + /* break; */ $s = 5; + continue; + /* } */ case 8: + (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function () { return this.$target.buf; }, function ($v) { this.$target.buf = $v; }, s))).WriteRune(r); + /* } */ $s = 4; + continue; + case 5: + $s = -1; + return (x = s.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ss.ptr.prototype.token }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f.f = f; + $f.r = r; + $f.s = s; + $f.skipSpace = skipSpace; + $f.x = x; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ss.prototype.token = function (skipSpace, f) { return this.$val.token(skipSpace, f); }; + indexRune = function (s, r) { + var _i, _ref, _rune, c, i, r, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { + break; + } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (c === r) { + return i; + } + _i += _rune[1]; + } + return -1; + }; + ss.ptr.prototype.peek = function (ok) { + var _r, _r$1, ok, r, s, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + ok = $f.ok; + r = $f.r; + s = $f.s; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + s = this; + _r = s.getRune(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + r = _r; + /* */ if (!((r === -1))) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = s.UnreadRune(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$1; + /* } */ case 3: + $s = -1; + return indexRune(ok, r) >= 0; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: ss.ptr.prototype.peek }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.ok = ok; + $f.r = r; + $f.s = s; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + ss.prototype.peek = function (ok) { return this.$val.peek(ok); }; + ptrType$25.methods = [{ prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false) }, { prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false) }, { prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false) }, { prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false) }, { prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false) }, { prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false) }, { prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false) }, { prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $String], [], false) }, { prop: "truncateString", name: "truncateString", pkg: "fmt", typ: $funcType([$String], [$String], false) }, { prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([sliceType$2], [sliceType$2], false) }, { prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false) }, { prop: "fmtBs", name: "fmtBs", pkg: "fmt", typ: $funcType([sliceType$2], [], false) }, { prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false) }, { prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false) }, { prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false) }, { prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false) }, { prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false) }, { prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false) }, { prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false) }]; + ptrType$1.methods = [{ prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [], false) }, { prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false) }, { prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [], false) }, { prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [], false) }]; + ptrType$2.methods = [{ prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false) }, { prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false) }, { prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false) }, { prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false) }, { prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false) }, { prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false) }, { prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false) }, { prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false) }, { prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false) }, { prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false) }, { prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false) }, { prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false) }, { prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false) }, { prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false) }, { prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false) }, { prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32, $String], [], false) }, { prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false) }, { prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false) }, { prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false) }, { prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false) }, { prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false) }, { prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false) }, { prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType], [], false) }, { prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType], [], false) }, { prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType], [], false) }]; + ptrType$5.methods = [{ prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }, { prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false) }, { prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false) }, { prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false) }, { prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false) }, { prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false) }, { prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false) }, { prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false) }, { prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false) }, { prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false) }, { prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false) }, { prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false) }, { prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false) }, { prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false) }, { prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false) }, { prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false) }, { prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false) }, { prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false) }, { prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false) }, { prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false) }, { prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false) }, { prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false) }, { prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false) }, { prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false) }, { prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false) }, { prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false) }, { prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false) }, { prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false) }, { prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false) }, { prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false) }, { prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false) }, { prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false) }, { prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false) }, { prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType], [$Int, $error], false) }, { prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false) }, { prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType], [$Int, $error], false) }]; + fmtFlags.init("fmt", [{ prop: "widPresent", name: "widPresent", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "precPresent", name: "precPresent", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "minus", name: "minus", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "plus", name: "plus", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "sharp", name: "sharp", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "space", name: "space", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "zero", name: "zero", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "plusV", name: "plusV", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "sharpV", name: "sharpV", embedded: false, exported: false, typ: $Bool, tag: "" }]); + fmt.init("fmt", [{ prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$1, tag: "" }, { prop: "fmtFlags", name: "fmtFlags", embedded: true, exported: false, typ: fmtFlags, tag: "" }, { prop: "wid", name: "wid", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "prec", name: "prec", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "intbuf", name: "intbuf", embedded: false, exported: false, typ: arrayType, tag: "" }]); + State.init([{ prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false) }, { prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false) }, { prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false) }, { prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false) }]); + Formatter.init([{ prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false) }]); + Stringer.init([{ prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]); + GoStringer.init([{ prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false) }]); + buffer.init($Uint8); + pp.init("fmt", [{ prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: "" }, { prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: "" }, { prop: "value", name: "value", embedded: false, exported: false, typ: reflect.Value, tag: "" }, { prop: "fmt", name: "fmt", embedded: false, exported: false, typ: fmt, tag: "" }, { prop: "reordered", name: "reordered", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "goodArgNum", name: "goodArgNum", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "panicking", name: "panicking", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "erroring", name: "erroring", embedded: false, exported: false, typ: $Bool, tag: "" }]); + scanError.init("fmt", [{ prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: "" }]); + ss.init("fmt", [{ prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: "" }, { prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: "" }, { prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: "" }]); + ssave.init("fmt", [{ prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: "" }, { prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = fmtsort.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = io.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = math.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = os.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = reflect.$init(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = strconv.$init(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sync.$init(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = utf8.$init(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + ppFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function () { + return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()), false, false, false, false); + })); + space = new sliceType$1([$toNativeArray($kindUint16, [9, 13]), $toNativeArray($kindUint16, [32, 32]), $toNativeArray($kindUint16, [133, 133]), $toNativeArray($kindUint16, [160, 160]), $toNativeArray($kindUint16, [5760, 5760]), $toNativeArray($kindUint16, [8192, 8202]), $toNativeArray($kindUint16, [8232, 8233]), $toNativeArray($kindUint16, [8239, 8239]), $toNativeArray($kindUint16, [8287, 8287]), $toNativeArray($kindUint16, [12288, 12288])]); + ssFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function () { + return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); + })); + complexError = errors.New("syntax error scanning complex number"); + boolError = errors.New("syntax error scanning boolean"); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["strings"] = (function () { + var $pkg = {}, $init, errors, js, bytealg, io, sync, unicode, utf8, sliceType, Index, Count, Replace, ReplaceAll; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + io = $packages["io"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + sliceType = $sliceType($Uint8); + Index = function (s, sep) { + var s, sep; + return $parseInt(s.indexOf(sep)) >> 0; + }; + $pkg.Index = Index; + Count = function (s, sep) { + var n, pos, s, sep; + n = 0; + if ((sep.length === 0)) { + return utf8.RuneCountInString(s) + 1 >> 0; + } + else if (sep.length > s.length) { + return 0; + } + else if ((sep.length === s.length)) { + if (sep === s) { + return 1; + } + return 0; + } + while (true) { + pos = Index(s, sep); + if (pos === -1) { + break; + } + n = n + (1) >> 0; + s = $substring(s, (pos + sep.length >> 0)); + } + return n; + }; + $pkg.Count = Count; + Replace = function (s, old, new$1, n) { + var _tuple, i, j, m, n, new$1, old, s, start, t, w, wid; + if (old === new$1 || (n === 0)) { + return s; + } + m = Count(s, old); + if (m === 0) { + return s; + } + else if (n < 0 || m < n) { + n = m; + } + t = $makeSlice(sliceType, (s.length + ($imul(n, ((new$1.length - old.length >> 0)))) >> 0)); + w = 0; + start = 0; + i = 0; + while (true) { + if (!(i < n)) { + break; + } + j = start; + if (old.length === 0) { + if (i > 0) { + _tuple = utf8.DecodeRuneInString($substring(s, start)); + wid = _tuple[1]; + j = j + (wid) >> 0; + } + } + else { + j = j + (Index($substring(s, start), old)) >> 0; + } + w = w + ($copyString($subslice(t, w), $substring(s, start, j))) >> 0; + w = w + ($copyString($subslice(t, w), new$1)) >> 0; + start = j + old.length >> 0; + i = i + (1) >> 0; + } + w = w + ($copyString($subslice(t, w), $substring(s, start))) >> 0; + return ($bytesToString($subslice(t, 0, w))); + }; + $pkg.Replace = Replace; + ReplaceAll = function (s, old, new$1) { + var new$1, old, s; + return Replace(s, old, new$1, -1); + }; + $pkg.ReplaceAll = ReplaceAll; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = js.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = bytealg.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = io.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sync.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = unicode.$init(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = utf8.$init(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["flag"] = (function () { + var $pkg = {}, $init, errors, fmt, io, os, reflect, sort, strconv, strings, time, boolValue, boolFlag, intValue, int64Value, uintValue, uint64Value, stringValue, float64Value, durationValue, Value, ErrorHandling, FlagSet, Flag, sliceType, ptrType, ptrType$1, ptrType$2, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, sliceType$1, ptrType$11, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, sliceType$2, funcType, ptrType$19, funcType$1, mapType, errParse, errRange, x, numError, newBoolValue, newIntValue, newInt64Value, newUintValue, newUint64Value, newStringValue, newFloat64Value, newDurationValue, sortFlags, isZeroValue, UnquoteUsage, PrintDefaults, init, commandLineUsage, NewFlagSet; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + io = $packages["io"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + time = $packages["time"]; + boolValue = $pkg.boolValue = $newType(1, $kindBool, "flag.boolValue", true, "flag", false, null); + boolFlag = $pkg.boolFlag = $newType(8, $kindInterface, "flag.boolFlag", true, "flag", false, null); + intValue = $pkg.intValue = $newType(4, $kindInt, "flag.intValue", true, "flag", false, null); + int64Value = $pkg.int64Value = $newType(8, $kindInt64, "flag.int64Value", true, "flag", false, null); + uintValue = $pkg.uintValue = $newType(4, $kindUint, "flag.uintValue", true, "flag", false, null); + uint64Value = $pkg.uint64Value = $newType(8, $kindUint64, "flag.uint64Value", true, "flag", false, null); + stringValue = $pkg.stringValue = $newType(8, $kindString, "flag.stringValue", true, "flag", false, null); + float64Value = $pkg.float64Value = $newType(8, $kindFloat64, "flag.float64Value", true, "flag", false, null); + durationValue = $pkg.durationValue = $newType(8, $kindInt64, "flag.durationValue", true, "flag", false, null); + Value = $pkg.Value = $newType(8, $kindInterface, "flag.Value", true, "flag", true, null); + ErrorHandling = $pkg.ErrorHandling = $newType(4, $kindInt, "flag.ErrorHandling", true, "flag", true, null); + FlagSet = $pkg.FlagSet = $newType(0, $kindStruct, "flag.FlagSet", true, "flag", true, function (Usage_, name_, parsed_, actual_, formal_, args_, errorHandling_, output_) { + this.$val = this; + if (arguments.length === 0) { + this.Usage = $throwNilPointerError; + this.name = ""; + this.parsed = false; + this.actual = false; + this.formal = false; + this.args = sliceType$2.nil; + this.errorHandling = 0; + this.output = $ifaceNil; + return; + } + this.Usage = Usage_; + this.name = name_; + this.parsed = parsed_; + this.actual = actual_; + this.formal = formal_; + this.args = args_; + this.errorHandling = errorHandling_; + this.output = output_; + }); + Flag = $pkg.Flag = $newType(0, $kindStruct, "flag.Flag", true, "flag", true, function (Name_, Usage_, Value_, DefValue_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.Usage = ""; + this.Value = $ifaceNil; + this.DefValue = ""; + return; + } + this.Name = Name_; + this.Usage = Usage_; + this.Value = Value_; + this.DefValue = DefValue_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(strconv.NumError); + ptrType$1 = $ptrType(boolValue); + ptrType$2 = $ptrType(intValue); + ptrType$3 = $ptrType(int64Value); + ptrType$4 = $ptrType(uintValue); + ptrType$5 = $ptrType(uint64Value); + ptrType$6 = $ptrType(stringValue); + ptrType$7 = $ptrType(float64Value); + ptrType$8 = $ptrType(durationValue); + ptrType$9 = $ptrType(time.Duration); + ptrType$10 = $ptrType(Flag); + sliceType$1 = $sliceType(ptrType$10); + ptrType$11 = $ptrType(reflect.rtype); + ptrType$12 = $ptrType($Bool); + ptrType$13 = $ptrType($Int); + ptrType$14 = $ptrType($Int64); + ptrType$15 = $ptrType($Uint); + ptrType$16 = $ptrType($Uint64); + ptrType$17 = $ptrType($String); + ptrType$18 = $ptrType($Float64); + sliceType$2 = $sliceType($String); + funcType = $funcType([ptrType$10], [], false); + ptrType$19 = $ptrType(FlagSet); + funcType$1 = $funcType([], [], false); + mapType = $mapType($String, ptrType$10); + numError = function (err) { + var _tuple, err, ne, ok; + _tuple = $assertType(err, ptrType, true); + ne = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return err; + } + if ($interfaceIsEqual(ne.Err, strconv.ErrSyntax)) { + return errParse; + } + if ($interfaceIsEqual(ne.Err, strconv.ErrRange)) { + return errRange; + } + return err; + }; + newBoolValue = function (val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$1(function () { return _ptr.$get(); }, function ($v) { _ptr.$set($v); }, _ptr.$target))); + }; + $ptrType(boolValue).prototype.Set = function (s) { + var _tuple, b, err, s, v; + b = this; + _tuple = strconv.ParseBool(s); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = errParse; + } + b.$set((v)); + return err; + }; + $ptrType(boolValue).prototype.Get = function () { + var b; + b = this; + return new $Bool((b.$get())); + }; + $ptrType(boolValue).prototype.String = function () { + var b; + b = this; + return strconv.FormatBool((b.$get())); + }; + $ptrType(boolValue).prototype.IsBoolFlag = function () { + var b; + b = this; + return true; + }; + newIntValue = function (val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$2(function () { return (_ptr.$get() >> 0); }, function ($v) { _ptr.$set(($v >> 0)); }, _ptr.$target))); + }; + $ptrType(intValue).prototype.Set = function (s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseInt(s, 0, 32); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set((((v.$low + ((v.$high >> 31) * 4294967296)) >> 0))); + return err; + }; + $ptrType(intValue).prototype.Get = function () { + var i; + i = this; + return new $Int(((i.$get() >> 0))); + }; + $ptrType(intValue).prototype.String = function () { + var i; + i = this; + return strconv.Itoa(((i.$get() >> 0))); + }; + newInt64Value = function (val, p) { + var _ptr, p, val, x$1; + p.$set(val); + return ((_ptr = p, new ptrType$3(function () { return (x$1 = _ptr.$get(), new int64Value(x$1.$high, x$1.$low)); }, function ($v) { _ptr.$set(new $Int64($v.$high, $v.$low)); }, _ptr.$target))); + }; + $ptrType(int64Value).prototype.Set = function (s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseInt(s, 0, 64); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set((new int64Value(v.$high, v.$low))); + return err; + }; + $ptrType(int64Value).prototype.Get = function () { + var i, x$1; + i = this; + return ((x$1 = i.$get(), new $Int64(x$1.$high, x$1.$low))); + }; + $ptrType(int64Value).prototype.String = function () { + var i, x$1; + i = this; + return strconv.FormatInt(((x$1 = i.$get(), new $Int64(x$1.$high, x$1.$low))), 10); + }; + newUintValue = function (val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$4(function () { return (_ptr.$get() >>> 0); }, function ($v) { _ptr.$set(($v >>> 0)); }, _ptr.$target))); + }; + $ptrType(uintValue).prototype.Set = function (s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseUint(s, 0, 32); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set(((v.$low >>> 0))); + return err; + }; + $ptrType(uintValue).prototype.Get = function () { + var i; + i = this; + return new $Uint(((i.$get() >>> 0))); + }; + $ptrType(uintValue).prototype.String = function () { + var i; + i = this; + return strconv.FormatUint((new $Uint64(0, i.$get())), 10); + }; + newUint64Value = function (val, p) { + var _ptr, p, val, x$1; + p.$set(val); + return ((_ptr = p, new ptrType$5(function () { return (x$1 = _ptr.$get(), new uint64Value(x$1.$high, x$1.$low)); }, function ($v) { _ptr.$set(new $Uint64($v.$high, $v.$low)); }, _ptr.$target))); + }; + $ptrType(uint64Value).prototype.Set = function (s) { + var _tuple, err, i, s, v; + i = this; + _tuple = strconv.ParseUint(s, 0, 64); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + i.$set((new uint64Value(v.$high, v.$low))); + return err; + }; + $ptrType(uint64Value).prototype.Get = function () { + var i, x$1; + i = this; + return ((x$1 = i.$get(), new $Uint64(x$1.$high, x$1.$low))); + }; + $ptrType(uint64Value).prototype.String = function () { + var i, x$1; + i = this; + return strconv.FormatUint(((x$1 = i.$get(), new $Uint64(x$1.$high, x$1.$low))), 10); + }; + newStringValue = function (val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$6(function () { return _ptr.$get(); }, function ($v) { _ptr.$set($v); }, _ptr.$target))); + }; + $ptrType(stringValue).prototype.Set = function (val) { + var s, val; + s = this; + s.$set((val)); + return $ifaceNil; + }; + $ptrType(stringValue).prototype.Get = function () { + var s; + s = this; + return new $String((s.$get())); + }; + $ptrType(stringValue).prototype.String = function () { + var s; + s = this; + return (s.$get()); + }; + newFloat64Value = function (val, p) { + var _ptr, p, val; + p.$set(val); + return ((_ptr = p, new ptrType$7(function () { return _ptr.$get(); }, function ($v) { _ptr.$set($v); }, _ptr.$target))); + }; + $ptrType(float64Value).prototype.Set = function (s) { + var _tuple, err, f, s, v; + f = this; + _tuple = strconv.ParseFloat(s, 64); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = numError(err); + } + f.$set((v)); + return err; + }; + $ptrType(float64Value).prototype.Get = function () { + var f; + f = this; + return new $Float64((f.$get())); + }; + $ptrType(float64Value).prototype.String = function () { + var f; + f = this; + return strconv.FormatFloat((f.$get()), 103, -1, 64); + }; + newDurationValue = function (val, p) { + var _ptr, p, val, x$1; + p.$set(val); + return ((_ptr = p, new ptrType$8(function () { return (x$1 = _ptr.$get(), new durationValue(x$1.$high, x$1.$low)); }, function ($v) { _ptr.$set(new time.Duration($v.$high, $v.$low)); }, _ptr.$target))); + }; + $ptrType(durationValue).prototype.Set = function (s) { + var _tuple, d, err, s, v; + d = this; + _tuple = time.ParseDuration(s); + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = errParse; + } + d.$set((new durationValue(v.$high, v.$low))); + return err; + }; + $ptrType(durationValue).prototype.Get = function () { + var d, x$1; + d = this; + return ((x$1 = d.$get(), new time.Duration(x$1.$high, x$1.$low))); + }; + $ptrType(durationValue).prototype.String = function () { + var _ptr, d, x$1; + d = this; + return ((_ptr = d, new ptrType$9(function () { return (x$1 = _ptr.$get(), new time.Duration(x$1.$high, x$1.$low)); }, function ($v) { _ptr.$set(new durationValue($v.$high, $v.$low)); }, _ptr.$target))).String(); + }; + sortFlags = function (flags) { + var _entry, _entry$1, _i, _i$1, _keys, _ref, _ref$1, f, flags, i, i$1, list, name, result, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _entry$1 = $f._entry$1; + _i = $f._i; + _i$1 = $f._i$1; + _keys = $f._keys; + _ref = $f._ref; + _ref$1 = $f._ref$1; + f = $f.f; + flags = $f.flags; + i = $f.i; + i$1 = $f.i$1; + list = $f.list; + name = $f.name; + result = $f.result; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + list = $makeSlice(sort.StringSlice, $keys(flags).length); + i = 0; + _ref = flags; + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { + break; + } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + f = _entry.v; + ((i < 0 || i >= list.$length) ? ($throwRuntimeError("index out of range"), undefined) : list.$array[list.$offset + i] = f.Name); + i = i + (1) >> 0; + _i++; + } + $r = list.Sort(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + result = $makeSlice(sliceType$1, list.$length); + _ref$1 = list; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { + break; + } + i$1 = _i$1; + name = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= result.$length) ? ($throwRuntimeError("index out of range"), undefined) : result.$array[result.$offset + i$1] = (_entry$1 = flags[$String.keyFor(name)], _entry$1 !== undefined ? _entry$1.v : ptrType$10.nil)); + _i$1++; + } + $s = -1; + return result; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: sortFlags }; + } + $f._entry = _entry; + $f._entry$1 = _entry$1; + $f._i = _i; + $f._i$1 = _i$1; + $f._keys = _keys; + $f._ref = _ref; + $f._ref$1 = _ref$1; + $f.f = f; + $f.flags = flags; + $f.i = i; + $f.i$1 = i$1; + $f.list = list; + $f.name = name; + $f.result = result; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.ptr.prototype.Output = function () { + var f; + f = this; + if ($interfaceIsEqual(f.output, $ifaceNil)) { + return os.Stderr; + } + return f.output; + }; + FlagSet.prototype.Output = function () { return this.$val.Output(); }; + FlagSet.ptr.prototype.Name = function () { + var f; + f = this; + return f.name; + }; + FlagSet.prototype.Name = function () { return this.$val.Name(); }; + FlagSet.ptr.prototype.ErrorHandling = function () { + var f; + f = this; + return f.errorHandling; + }; + FlagSet.prototype.ErrorHandling = function () { return this.$val.ErrorHandling(); }; + FlagSet.ptr.prototype.SetOutput = function (output) { + var f, output; + f = this; + f.output = output; + }; + FlagSet.prototype.SetOutput = function (output) { return this.$val.SetOutput(output); }; + FlagSet.ptr.prototype.VisitAll = function (fn) { + var _i, _r, _ref, f, flag, fn, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _ref = $f._ref; + f = $f.f; + flag = $f.flag; + fn = $f.fn; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + _r = sortFlags(f.formal); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _ref = _r; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 3; + continue; + } + flag = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = fn(flag); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _i++; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.VisitAll }; + } + $f._i = _i; + $f._r = _r; + $f._ref = _ref; + $f.f = f; + $f.flag = flag; + $f.fn = fn; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.VisitAll = function (fn) { return this.$val.VisitAll(fn); }; + FlagSet.ptr.prototype.Visit = function (fn) { + var _i, _r, _ref, f, flag, fn, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _i = $f._i; + _r = $f._r; + _ref = $f._ref; + f = $f.f; + flag = $f.flag; + fn = $f.fn; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + _r = sortFlags(f.actual); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _ref = _r; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if (!(_i < _ref.$length)) { + $s = 3; + continue; + } + flag = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + $r = fn(flag); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + _i++; + /* } */ $s = 2; + continue; + case 3: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Visit }; + } + $f._i = _i; + $f._r = _r; + $f._ref = _ref; + $f.f = f; + $f.flag = flag; + $f.fn = fn; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Visit = function (fn) { return this.$val.Visit(fn); }; + FlagSet.ptr.prototype.Lookup = function (name) { + var _entry, f, name; + f = this; + return (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? _entry.v : ptrType$10.nil); + }; + FlagSet.prototype.Lookup = function (name) { return this.$val.Lookup(name); }; + FlagSet.ptr.prototype.Set = function (name, value) { + var _entry, _key, _r, _r$1, _tuple, err, f, flag, name, ok, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _key = $f._key; + _r = $f._r; + _r$1 = $f._r$1; + _tuple = $f._tuple; + err = $f.err; + f = $f.f; + flag = $f.flag; + name = $f.name; + ok = $f.ok; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + _tuple = (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + flag = _tuple[0]; + ok = _tuple[1]; + /* */ if (!ok) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (!ok) { */ case 1: + _r = fmt.Errorf("no such flag -%v", new sliceType([new $String(name)])); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return _r; + /* } */ case 2: + _r$1 = flag.Value.Set(value); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; + return err; + } + if (f.actual === false) { + f.actual = {}; + } + _key = name; + (f.actual || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Set }; + } + $f._entry = _entry; + $f._key = _key; + $f._r = _r; + $f._r$1 = _r$1; + $f._tuple = _tuple; + $f.err = err; + $f.f = f; + $f.flag = flag; + $f.name = name; + $f.ok = ok; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Set = function (name, value) { return this.$val.Set(name, value); }; + isZeroValue = function (flag, value) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, flag, typ, value, z, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + flag = $f.flag; + typ = $f.typ; + value = $f.value; + z = $f.z; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + typ = reflect.TypeOf(flag.Value); + z = new reflect.Value.ptr(ptrType$11.nil, 0, 0); + _r = typ.Kind(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + /* */ if (_r === 22) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (_r === 22) { */ case 1: + _r$1 = typ.Elem(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$2 = reflect.New(_r$1); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + z = _r$2; + $s = 3; + continue; + /* } else { */ case 2: + _r$3 = reflect.Zero(typ); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + z = _r$3; + /* } */ case 3: + _r$4 = $clone(z, reflect.Value).Interface(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + _r$5 = $assertType(_r$4, Value).String(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + $s = -1; + return value === _r$5; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: isZeroValue }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f.flag = flag; + $f.typ = typ; + $f.value = value; + $f.z = z; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + UnquoteUsage = function (flag) { + var _ref, _tmp, _tmp$1, flag, i, j, name, usage; + name = ""; + usage = ""; + usage = flag.Usage; + i = 0; + while (true) { + if (!(i < usage.length)) { + break; + } + if (usage.charCodeAt(i) === 96) { + j = i + 1 >> 0; + while (true) { + if (!(j < usage.length)) { + break; + } + if (usage.charCodeAt(j) === 96) { + name = $substring(usage, (i + 1 >> 0), j); + usage = $substring(usage, 0, i) + name + $substring(usage, (j + 1 >> 0)); + _tmp = name; + _tmp$1 = usage; + name = _tmp; + usage = _tmp$1; + return [name, usage]; + } + j = j + (1) >> 0; + } + break; + } + i = i + (1) >> 0; + } + name = "value"; + _ref = flag.Value; + if ($assertType(_ref, boolFlag, true)[1]) { + name = ""; + } + else if ($assertType(_ref, ptrType$8, true)[1]) { + name = "duration"; + } + else if ($assertType(_ref, ptrType$7, true)[1]) { + name = "float"; + } + else if ($assertType(_ref, ptrType$2, true)[1] || $assertType(_ref, ptrType$3, true)[1]) { + name = "int"; + } + else if ($assertType(_ref, ptrType$6, true)[1]) { + name = "string"; + } + else if ($assertType(_ref, ptrType$4, true)[1] || $assertType(_ref, ptrType$5, true)[1]) { + name = "uint"; + } + return [name, usage]; + }; + $pkg.UnquoteUsage = UnquoteUsage; + FlagSet.ptr.prototype.PrintDefaults = function () { + var f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = [f]; + f[0] = this; + $r = f[0].VisitAll((function (f) { + return function $b(flag) { + var _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, flag, name, ok, s, usage, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + flag = $f.flag; + name = $f.name; + ok = $f.ok; + s = $f.s; + usage = $f.usage; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = fmt.Sprintf(" -%s", new sliceType([new $String(flag.Name)])); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + s = _r; + _tuple = UnquoteUsage(flag); + name = _tuple[0]; + usage = _tuple[1]; + if (name.length > 0) { + s = s + (" " + name); + } + if (s.length <= 4) { + s = s + ("\t"); + } + else { + s = s + ("\n \t"); + } + s = s + (strings.ReplaceAll(usage, "\n", "\n \t")); + _r$1 = isZeroValue(flag, flag.DefValue); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + /* */ if (!_r$1) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (!_r$1) { */ case 2: + _tuple$1 = $assertType(flag.Value, ptrType$6, true); + ok = _tuple$1[1]; + /* */ if (ok) { + $s = 5; + continue; + } + /* */ $s = 6; + continue; + /* if (ok) { */ case 5: + _r$2 = fmt.Sprintf(" (default %q)", new sliceType([new $String(flag.DefValue)])); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + s = s + (_r$2); + $s = 7; + continue; + /* } else { */ case 6: + _r$3 = fmt.Sprintf(" (default %v)", new sliceType([new $String(flag.DefValue)])); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + s = s + (_r$3); + /* } */ case 7: + /* } */ case 3: + _r$4 = fmt.Fprint(f[0].Output(), new sliceType([new $String(s), new $String("\n")])); /* */ + $s = 10; + case 10: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + _r$4; + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $b }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f.flag = flag; + $f.name = name; + $f.ok = ok; + $f.s = s; + $f.usage = usage; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + })(f)); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.PrintDefaults }; + } + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.PrintDefaults = function () { return this.$val.PrintDefaults(); }; + PrintDefaults = function () { + var $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = $pkg.CommandLine.PrintDefaults(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: PrintDefaults }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.PrintDefaults = PrintDefaults; + FlagSet.ptr.prototype.defaultUsage = function () { + var _r, _r$1, f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + /* */ if (f.name === "") { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (f.name === "") { */ case 1: + _r = fmt.Fprintf(f.Output(), "Usage:\n", new sliceType([])); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r; + $s = 3; + continue; + /* } else { */ case 2: + _r$1 = fmt.Fprintf(f.Output(), "Usage of %s:\n", new sliceType([new $String(f.name)])); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$1; + /* } */ case 3: + $r = f.PrintDefaults(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.defaultUsage }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.defaultUsage = function () { return this.$val.defaultUsage(); }; + FlagSet.ptr.prototype.NFlag = function () { + var f; + f = this; + return $keys(f.actual).length; + }; + FlagSet.prototype.NFlag = function () { return this.$val.NFlag(); }; + FlagSet.ptr.prototype.Arg = function (i) { + var f, i, x$1; + f = this; + if (i < 0 || i >= f.args.$length) { + return ""; + } + return (x$1 = f.args, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])); + }; + FlagSet.prototype.Arg = function (i) { return this.$val.Arg(i); }; + FlagSet.ptr.prototype.NArg = function () { + var f; + f = this; + return f.args.$length; + }; + FlagSet.prototype.NArg = function () { return this.$val.NArg(); }; + FlagSet.ptr.prototype.Args = function () { + var f; + f = this; + return f.args; + }; + FlagSet.prototype.Args = function () { return this.$val.Args(); }; + FlagSet.ptr.prototype.BoolVar = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newBoolValue(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.BoolVar }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.BoolVar = function (p, name, value, usage) { return this.$val.BoolVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Bool = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer(false, ptrType$12); + $r = f.BoolVar(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Bool }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Bool = function (name, value, usage) { return this.$val.Bool(name, value, usage); }; + FlagSet.ptr.prototype.IntVar = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newIntValue(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.IntVar }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.IntVar = function (p, name, value, usage) { return this.$val.IntVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Int = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer(0, ptrType$13); + $r = f.IntVar(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Int }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Int = function (name, value, usage) { return this.$val.Int(name, value, usage); }; + FlagSet.ptr.prototype.Int64Var = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newInt64Value(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Int64Var }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Int64Var = function (p, name, value, usage) { return this.$val.Int64Var(p, name, value, usage); }; + FlagSet.ptr.prototype.Int64 = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer(new $Int64(0, 0), ptrType$14); + $r = f.Int64Var(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Int64 }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Int64 = function (name, value, usage) { return this.$val.Int64(name, value, usage); }; + FlagSet.ptr.prototype.UintVar = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newUintValue(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.UintVar }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.UintVar = function (p, name, value, usage) { return this.$val.UintVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Uint = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer(0, ptrType$15); + $r = f.UintVar(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Uint }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Uint = function (name, value, usage) { return this.$val.Uint(name, value, usage); }; + FlagSet.ptr.prototype.Uint64Var = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newUint64Value(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Uint64Var }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Uint64Var = function (p, name, value, usage) { return this.$val.Uint64Var(p, name, value, usage); }; + FlagSet.ptr.prototype.Uint64 = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer(new $Uint64(0, 0), ptrType$16); + $r = f.Uint64Var(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Uint64 }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Uint64 = function (name, value, usage) { return this.$val.Uint64(name, value, usage); }; + FlagSet.ptr.prototype.StringVar = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newStringValue(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.StringVar }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.StringVar = function (p, name, value, usage) { return this.$val.StringVar(p, name, value, usage); }; + FlagSet.ptr.prototype.String = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer("", ptrType$17); + $r = f.StringVar(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.String }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.String = function (name, value, usage) { return this.$val.String(name, value, usage); }; + FlagSet.ptr.prototype.Float64Var = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newFloat64Value(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Float64Var }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Float64Var = function (p, name, value, usage) { return this.$val.Float64Var(p, name, value, usage); }; + FlagSet.ptr.prototype.Float64 = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer(0, ptrType$18); + $r = f.Float64Var(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Float64 }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Float64 = function (name, value, usage) { return this.$val.Float64(name, value, usage); }; + FlagSet.ptr.prototype.DurationVar = function (p, name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + $r = f.Var(newDurationValue(value, p), name, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.DurationVar }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.DurationVar = function (p, name, value, usage) { return this.$val.DurationVar(p, name, value, usage); }; + FlagSet.ptr.prototype.Duration = function (name, value, usage) { + var f, name, p, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + name = $f.name; + p = $f.p; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + p = $newDataPointer(new time.Duration(0, 0), ptrType$9); + $r = f.DurationVar(p, name, value, usage); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return p; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Duration }; + } + $f.f = f; + $f.name = name; + $f.p = p; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Duration = function (name, value, usage) { return this.$val.Duration(name, value, usage); }; + FlagSet.ptr.prototype.Var = function (value, name, usage) { + var _entry, _key, _r, _r$1, _r$2, _r$3, _tuple, alreadythere, f, flag, msg, name, usage, value, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _key = $f._key; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _tuple = $f._tuple; + alreadythere = $f.alreadythere; + f = $f.f; + flag = $f.flag; + msg = $f.msg; + name = $f.name; + usage = $f.usage; + value = $f.value; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + _r = value.String(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + flag = new Flag.ptr(name, usage, value, _r); + _tuple = (_entry = f.formal[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + alreadythere = _tuple[1]; + /* */ if (alreadythere) { + $s = 2; + continue; + } + /* */ $s = 3; + continue; + /* if (alreadythere) { */ case 2: + msg = ""; + /* */ if (f.name === "") { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (f.name === "") { */ case 4: + _r$1 = fmt.Sprintf("flag redefined: %s", new sliceType([new $String(name)])); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + msg = _r$1; + $s = 6; + continue; + /* } else { */ case 5: + _r$2 = fmt.Sprintf("%s flag redefined: %s", new sliceType([new $String(f.name), new $String(name)])); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + msg = _r$2; + /* } */ case 6: + _r$3 = fmt.Fprintln(f.Output(), new sliceType([new $String(msg)])); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + _r$3; + $panic(new $String(msg)); + /* } */ case 3: + if (f.formal === false) { + f.formal = {}; + } + _key = name; + (f.formal || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Var }; + } + $f._entry = _entry; + $f._key = _key; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._tuple = _tuple; + $f.alreadythere = alreadythere; + $f.f = f; + $f.flag = flag; + $f.msg = msg; + $f.name = name; + $f.usage = usage; + $f.value = value; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Var = function (value, name, usage) { return this.$val.Var(value, name, usage); }; + FlagSet.ptr.prototype.failf = function (format, a) { + var _r, _r$1, a, err, f, format, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + _r$1 = $f._r$1; + a = $f.a; + err = $f.err; + f = $f.f; + format = $f.format; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + _r = fmt.Errorf(format, a); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + err = _r; + _r$1 = fmt.Fprintln(f.Output(), new sliceType([err])); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + _r$1; + $r = f.usage(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return err; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.failf }; + } + $f._r = _r; + $f._r$1 = _r$1; + $f.a = a; + $f.err = err; + $f.f = f; + $f.format = format; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.failf = function (format, a) { return this.$val.failf(format, a); }; + FlagSet.ptr.prototype.usage = function () { + var f, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + f = $f.f; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + /* */ if (f.Usage === $throwNilPointerError) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if (f.Usage === $throwNilPointerError) { */ case 1: + $r = f.defaultUsage(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = 3; + continue; + /* } else { */ case 2: + $r = f.Usage(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + /* } */ case 3: + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.usage }; + } + $f.f = f; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.usage = function () { return this.$val.usage(); }; + FlagSet.ptr.prototype.parseOne = function () { + var _entry, _key, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tmp, _tmp$1, _tuple, _tuple$1, _v, alreadythere, err, err$1, err$2, f, flag, fv, hasValue, i, m, name, numMinuses, ok, s, value, x$1, x$2, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _entry = $f._entry; + _key = $f._key; + _r = $f._r; + _r$1 = $f._r$1; + _r$2 = $f._r$2; + _r$3 = $f._r$3; + _r$4 = $f._r$4; + _r$5 = $f._r$5; + _r$6 = $f._r$6; + _r$7 = $f._r$7; + _r$8 = $f._r$8; + _r$9 = $f._r$9; + _tmp = $f._tmp; + _tmp$1 = $f._tmp$1; + _tuple = $f._tuple; + _tuple$1 = $f._tuple$1; + _v = $f._v; + alreadythere = $f.alreadythere; + err = $f.err; + err$1 = $f.err$1; + err$2 = $f.err$2; + f = $f.f; + flag = $f.flag; + fv = $f.fv; + hasValue = $f.hasValue; + i = $f.i; + m = $f.m; + name = $f.name; + numMinuses = $f.numMinuses; + ok = $f.ok; + s = $f.s; + value = $f.value; + x$1 = $f.x$1; + x$2 = $f.x$2; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + if (f.args.$length === 0) { + $s = -1; + return [false, $ifaceNil]; + } + s = (x$1 = f.args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + if (s.length < 2 || !((s.charCodeAt(0) === 45))) { + $s = -1; + return [false, $ifaceNil]; + } + numMinuses = 1; + if (s.charCodeAt(1) === 45) { + numMinuses = numMinuses + (1) >> 0; + if (s.length === 2) { + f.args = $subslice(f.args, 1); + $s = -1; + return [false, $ifaceNil]; + } + } + name = $substring(s, numMinuses); + /* */ if ((name.length === 0) || (name.charCodeAt(0) === 45) || (name.charCodeAt(0) === 61)) { + $s = 1; + continue; + } + /* */ $s = 2; + continue; + /* if ((name.length === 0) || (name.charCodeAt(0) === 45) || (name.charCodeAt(0) === 61)) { */ case 1: + _r = f.failf("bad flag syntax: %s", new sliceType([new $String(s)])); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + $s = -1; + return [false, _r]; + /* } */ case 2: + f.args = $subslice(f.args, 1); + hasValue = false; + value = ""; + i = 1; + while (true) { + if (!(i < name.length)) { + break; + } + if (name.charCodeAt(i) === 61) { + value = $substring(name, (i + 1 >> 0)); + hasValue = true; + name = $substring(name, 0, i); + break; + } + i = i + (1) >> 0; + } + m = f.formal; + _tuple = (_entry = m[$String.keyFor(name)], _entry !== undefined ? [_entry.v, true] : [ptrType$10.nil, false]); + flag = _tuple[0]; + alreadythere = _tuple[1]; + /* */ if (!alreadythere) { + $s = 4; + continue; + } + /* */ $s = 5; + continue; + /* if (!alreadythere) { */ case 4: + /* */ if (name === "help" || name === "h") { + $s = 6; + continue; + } + /* */ $s = 7; + continue; + /* if (name === "help" || name === "h") { */ case 6: + $r = f.usage(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return [false, $pkg.ErrHelp]; + /* } */ case 7: + _r$1 = f.failf("flag provided but not defined: -%s", new sliceType([new $String(name)])); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + _r$1 = _r$1.$blk(); + } + if (_r$1 && _r$1.$blk !== undefined) { + break s; + } + $s = -1; + return [false, _r$1]; + /* } */ case 5: + _tuple$1 = $assertType(flag.Value, boolFlag, true); + fv = _tuple$1[0]; + ok = _tuple$1[1]; + if (!(ok)) { + _v = false; + $s = 13; + continue s; + } + _r$2 = fv.IsBoolFlag(); /* */ + $s = 14; + case 14: + if ($c) { + $c = false; + _r$2 = _r$2.$blk(); + } + if (_r$2 && _r$2.$blk !== undefined) { + break s; + } + _v = _r$2; + case 13: + /* */ if (_v) { + $s = 10; + continue; + } + /* */ $s = 11; + continue; + /* if (_v) { */ case 10: + /* */ if (hasValue) { + $s = 15; + continue; + } + /* */ $s = 16; + continue; + /* if (hasValue) { */ case 15: + _r$3 = fv.Set(value); /* */ + $s = 18; + case 18: + if ($c) { + $c = false; + _r$3 = _r$3.$blk(); + } + if (_r$3 && _r$3.$blk !== undefined) { + break s; + } + err = _r$3; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = 19; + continue; + } + /* */ $s = 20; + continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 19: + _r$4 = f.failf("invalid boolean value %q for -%s: %v", new sliceType([new $String(value), new $String(name), err])); /* */ + $s = 21; + case 21: + if ($c) { + $c = false; + _r$4 = _r$4.$blk(); + } + if (_r$4 && _r$4.$blk !== undefined) { + break s; + } + $s = -1; + return [false, _r$4]; + /* } */ case 20: + $s = 17; + continue; + /* } else { */ case 16: + _r$5 = fv.Set("true"); /* */ + $s = 22; + case 22: + if ($c) { + $c = false; + _r$5 = _r$5.$blk(); + } + if (_r$5 && _r$5.$blk !== undefined) { + break s; + } + err$1 = _r$5; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = 23; + continue; + } + /* */ $s = 24; + continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 23: + _r$6 = f.failf("invalid boolean flag %s: %v", new sliceType([new $String(name), err$1])); /* */ + $s = 25; + case 25: + if ($c) { + $c = false; + _r$6 = _r$6.$blk(); + } + if (_r$6 && _r$6.$blk !== undefined) { + break s; + } + $s = -1; + return [false, _r$6]; + /* } */ case 24: + /* } */ case 17: + $s = 12; + continue; + /* } else { */ case 11: + if (!hasValue && f.args.$length > 0) { + hasValue = true; + _tmp = (x$2 = f.args, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])); + _tmp$1 = $subslice(f.args, 1); + value = _tmp; + f.args = _tmp$1; + } + /* */ if (!hasValue) { + $s = 26; + continue; + } + /* */ $s = 27; + continue; + /* if (!hasValue) { */ case 26: + _r$7 = f.failf("flag needs an argument: -%s", new sliceType([new $String(name)])); /* */ + $s = 28; + case 28: + if ($c) { + $c = false; + _r$7 = _r$7.$blk(); + } + if (_r$7 && _r$7.$blk !== undefined) { + break s; + } + $s = -1; + return [false, _r$7]; + /* } */ case 27: + _r$8 = flag.Value.Set(value); /* */ + $s = 29; + case 29: + if ($c) { + $c = false; + _r$8 = _r$8.$blk(); + } + if (_r$8 && _r$8.$blk !== undefined) { + break s; + } + err$2 = _r$8; + /* */ if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = 30; + continue; + } + /* */ $s = 31; + continue; + /* if (!($interfaceIsEqual(err$2, $ifaceNil))) { */ case 30: + _r$9 = f.failf("invalid value %q for flag -%s: %v", new sliceType([new $String(value), new $String(name), err$2])); /* */ + $s = 32; + case 32: + if ($c) { + $c = false; + _r$9 = _r$9.$blk(); + } + if (_r$9 && _r$9.$blk !== undefined) { + break s; + } + $s = -1; + return [false, _r$9]; + /* } */ case 31: + /* } */ case 12: + if (f.actual === false) { + f.actual = {}; + } + _key = name; + (f.actual || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: flag }; + $s = -1; + return [true, $ifaceNil]; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.parseOne }; + } + $f._entry = _entry; + $f._key = _key; + $f._r = _r; + $f._r$1 = _r$1; + $f._r$2 = _r$2; + $f._r$3 = _r$3; + $f._r$4 = _r$4; + $f._r$5 = _r$5; + $f._r$6 = _r$6; + $f._r$7 = _r$7; + $f._r$8 = _r$8; + $f._r$9 = _r$9; + $f._tmp = _tmp; + $f._tmp$1 = _tmp$1; + $f._tuple = _tuple; + $f._tuple$1 = _tuple$1; + $f._v = _v; + $f.alreadythere = alreadythere; + $f.err = err; + $f.err$1 = err$1; + $f.err$2 = err$2; + $f.f = f; + $f.flag = flag; + $f.fv = fv; + $f.hasValue = hasValue; + $f.i = i; + $f.m = m; + $f.name = name; + $f.numMinuses = numMinuses; + $f.ok = ok; + $f.s = s; + $f.value = value; + $f.x$1 = x$1; + $f.x$2 = x$2; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.parseOne = function () { return this.$val.parseOne(); }; + FlagSet.ptr.prototype.Parse = function (arguments$1) { + var _1, _r, _tuple, arguments$1, err, f, seen, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _1 = $f._1; + _r = $f._r; + _tuple = $f._tuple; + arguments$1 = $f.arguments$1; + err = $f.err; + f = $f.f; + seen = $f.seen; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + f = this; + f.parsed = true; + f.args = arguments$1; + /* while (true) { */ case 1: + _r = f.parseOne(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _tuple = _r; + seen = _tuple[0]; + err = _tuple[1]; + if (seen) { + /* continue; */ $s = 1; + continue; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + /* break; */ $s = 2; + continue; + } + _1 = f.errorHandling; + if (_1 === (0)) { + $s = -1; + return err; + } + else if (_1 === (1)) { + os.Exit(2); + } + else if (_1 === (2)) { + $panic(err); + } + /* } */ $s = 1; + continue; + case 2: + $s = -1; + return $ifaceNil; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: FlagSet.ptr.prototype.Parse }; + } + $f._1 = _1; + $f._r = _r; + $f._tuple = _tuple; + $f.arguments$1 = arguments$1; + $f.err = err; + $f.f = f; + $f.seen = seen; + $f.$s = $s; + $f.$r = $r; + return $f; + }; + FlagSet.prototype.Parse = function (arguments$1) { return this.$val.Parse(arguments$1); }; + FlagSet.ptr.prototype.Parsed = function () { + var f; + f = this; + return f.parsed; + }; + FlagSet.prototype.Parsed = function () { return this.$val.Parsed(); }; + init = function () { + $pkg.CommandLine.Usage = commandLineUsage; + }; + commandLineUsage = function () { + var $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = $pkg.Usage(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: commandLineUsage }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + NewFlagSet = function (name, errorHandling) { + var errorHandling, f, name; + f = new FlagSet.ptr($throwNilPointerError, name, false, false, false, sliceType$2.nil, errorHandling, $ifaceNil); + f.Usage = $methodVal(f, "defaultUsage"); + return f; + }; + $pkg.NewFlagSet = NewFlagSet; + FlagSet.ptr.prototype.Init = function (name, errorHandling) { + var errorHandling, f, name; + f = this; + f.name = name; + f.errorHandling = errorHandling; + }; + FlagSet.prototype.Init = function (name, errorHandling) { return this.$val.Init(name, errorHandling); }; + ptrType$1.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }, { prop: "IsBoolFlag", name: "IsBoolFlag", pkg: "", typ: $funcType([], [$Bool], false) }]; + ptrType$2.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$3.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$4.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$5.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$6.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$7.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$8.methods = [{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]; + ptrType$19.methods = [{ prop: "Output", name: "Output", pkg: "", typ: $funcType([], [io.Writer], false) }, { prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false) }, { prop: "ErrorHandling", name: "ErrorHandling", pkg: "", typ: $funcType([], [ErrorHandling], false) }, { prop: "SetOutput", name: "SetOutput", pkg: "", typ: $funcType([io.Writer], [], false) }, { prop: "VisitAll", name: "VisitAll", pkg: "", typ: $funcType([funcType], [], false) }, { prop: "Visit", name: "Visit", pkg: "", typ: $funcType([funcType], [], false) }, { prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [ptrType$10], false) }, { prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $String], [$error], false) }, { prop: "PrintDefaults", name: "PrintDefaults", pkg: "", typ: $funcType([], [], false) }, { prop: "defaultUsage", name: "defaultUsage", pkg: "flag", typ: $funcType([], [], false) }, { prop: "NFlag", name: "NFlag", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Arg", name: "Arg", pkg: "", typ: $funcType([$Int], [$String], false) }, { prop: "NArg", name: "NArg", pkg: "", typ: $funcType([], [$Int], false) }, { prop: "Args", name: "Args", pkg: "", typ: $funcType([], [sliceType$2], false) }, { prop: "BoolVar", name: "BoolVar", pkg: "", typ: $funcType([ptrType$12, $String, $Bool, $String], [], false) }, { prop: "Bool", name: "Bool", pkg: "", typ: $funcType([$String, $Bool, $String], [ptrType$12], false) }, { prop: "IntVar", name: "IntVar", pkg: "", typ: $funcType([ptrType$13, $String, $Int, $String], [], false) }, { prop: "Int", name: "Int", pkg: "", typ: $funcType([$String, $Int, $String], [ptrType$13], false) }, { prop: "Int64Var", name: "Int64Var", pkg: "", typ: $funcType([ptrType$14, $String, $Int64, $String], [], false) }, { prop: "Int64", name: "Int64", pkg: "", typ: $funcType([$String, $Int64, $String], [ptrType$14], false) }, { prop: "UintVar", name: "UintVar", pkg: "", typ: $funcType([ptrType$15, $String, $Uint, $String], [], false) }, { prop: "Uint", name: "Uint", pkg: "", typ: $funcType([$String, $Uint, $String], [ptrType$15], false) }, { prop: "Uint64Var", name: "Uint64Var", pkg: "", typ: $funcType([ptrType$16, $String, $Uint64, $String], [], false) }, { prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([$String, $Uint64, $String], [ptrType$16], false) }, { prop: "StringVar", name: "StringVar", pkg: "", typ: $funcType([ptrType$17, $String, $String, $String], [], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([$String, $String, $String], [ptrType$17], false) }, { prop: "Float64Var", name: "Float64Var", pkg: "", typ: $funcType([ptrType$18, $String, $Float64, $String], [], false) }, { prop: "Float64", name: "Float64", pkg: "", typ: $funcType([$String, $Float64, $String], [ptrType$18], false) }, { prop: "DurationVar", name: "DurationVar", pkg: "", typ: $funcType([ptrType$9, $String, time.Duration, $String], [], false) }, { prop: "Duration", name: "Duration", pkg: "", typ: $funcType([$String, time.Duration, $String], [ptrType$9], false) }, { prop: "Var", name: "Var", pkg: "", typ: $funcType([Value, $String, $String], [], false) }, { prop: "failf", name: "failf", pkg: "flag", typ: $funcType([$String, sliceType], [$error], true) }, { prop: "usage", name: "usage", pkg: "flag", typ: $funcType([], [], false) }, { prop: "parseOne", name: "parseOne", pkg: "flag", typ: $funcType([], [$Bool, $error], false) }, { prop: "Parse", name: "Parse", pkg: "", typ: $funcType([sliceType$2], [$error], false) }, { prop: "Parsed", name: "Parsed", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, ErrorHandling], [], false) }]; + boolFlag.init([{ prop: "IsBoolFlag", name: "IsBoolFlag", pkg: "", typ: $funcType([], [$Bool], false) }, { prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]); + Value.init([{ prop: "Set", name: "Set", pkg: "", typ: $funcType([$String], [$error], false) }, { prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false) }]); + FlagSet.init("flag", [{ prop: "Usage", name: "Usage", embedded: false, exported: true, typ: funcType$1, tag: "" }, { prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: "" }, { prop: "parsed", name: "parsed", embedded: false, exported: false, typ: $Bool, tag: "" }, { prop: "actual", name: "actual", embedded: false, exported: false, typ: mapType, tag: "" }, { prop: "formal", name: "formal", embedded: false, exported: false, typ: mapType, tag: "" }, { prop: "args", name: "args", embedded: false, exported: false, typ: sliceType$2, tag: "" }, { prop: "errorHandling", name: "errorHandling", embedded: false, exported: false, typ: ErrorHandling, tag: "" }, { prop: "output", name: "output", embedded: false, exported: false, typ: io.Writer, tag: "" }]); + Flag.init("", [{ prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Usage", name: "Usage", embedded: false, exported: true, typ: $String, tag: "" }, { prop: "Value", name: "Value", embedded: false, exported: true, typ: Value, tag: "" }, { prop: "DefValue", name: "DefValue", embedded: false, exported: true, typ: $String, tag: "" }]); + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = fmt.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = io.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = os.$init(); /* */ + $s = 4; + case 4: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = reflect.$init(); /* */ + $s = 5; + case 5: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = sort.$init(); /* */ + $s = 6; + case 6: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = strconv.$init(); /* */ + $s = 7; + case 7: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = strings.$init(); /* */ + $s = 8; + case 8: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = time.$init(); /* */ + $s = 9; + case 9: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $pkg.ErrHelp = errors.New("flag: help requested"); + errParse = errors.New("parse error"); + errRange = errors.New("value out of range"); + $pkg.CommandLine = NewFlagSet((x = os.Args, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), 1); + $pkg.Usage = (function $b() { + var _r, x$1, $s, $r; + /* */ $s = 0; + var $f, $c = false; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + _r = $f._r; + x$1 = $f.x$1; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + _r = fmt.Fprintf($pkg.CommandLine.Output(), "Usage of %s:\n", new sliceType([new $String((x$1 = os.Args, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])))])); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + _r = _r.$blk(); + } + if (_r && _r.$blk !== undefined) { + break s; + } + _r; + $r = PrintDefaults(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $s = -1; + return; + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $b }; + } + $f._r = _r; + $f.x$1 = x$1; + $f.$s = $s; + $f.$r = $r; + return $f; + }); + init(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["github.com/tv42/zbase32"] = (function () { + var $pkg = {}, $init, errors, flag, strconv, CorruptInputError, arrayType, sliceType, arrayType$1, sliceType$1, decodeMap, init, EncodedLen, DecodedLen, encode, Encode, EncodeToString, decode, decodeString, DecodeString; + errors = $packages["errors"]; + flag = $packages["flag"]; + strconv = $packages["strconv"]; + CorruptInputError = $pkg.CorruptInputError = $newType(8, $kindInt64, "zbase32.CorruptInputError", true, "github.com/tv42/zbase32", true, null); + arrayType = $arrayType($Uint8, 256); + sliceType = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 8); + sliceType$1 = $sliceType($Int); + init = function () { + var i, i$1, x; + i = 0; + while (true) { + if (!(i < 256)) { + break; + } + ((i < 0 || i >= decodeMap.length) ? ($throwRuntimeError("index out of range"), undefined) : decodeMap[i] = 255); + i = i + (1) >> 0; + } + i$1 = 0; + while (true) { + if (!(i$1 < 32)) { + break; + } + (x = "ybndrfg8ejkmcpqxot1uwisza345h769".charCodeAt(i$1), ((x < 0 || x >= decodeMap.length) ? ($throwRuntimeError("index out of range"), undefined) : decodeMap[x] = ((i$1 << 24 >>> 24)))); + i$1 = i$1 + (1) >> 0; + } + }; + CorruptInputError.prototype.Error = function () { + var e; + e = this; + return "illegal z-base-32 data at input byte " + strconv.FormatInt((new $Int64(e.$high, e.$low)), 10); + }; + $ptrType(CorruptInputError).prototype.Error = function () { return this.$get().Error(); }; + EncodedLen = function (n) { + var _q, n; + return $imul((_q = ((n + 4 >> 0)) / 5, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 8); + }; + $pkg.EncodedLen = EncodedLen; + DecodedLen = function (n) { + var _q, n; + return $imul((_q = ((n + 7 >> 0)) / 8, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 5); + }; + $pkg.DecodedLen = DecodedLen; + encode = function (dst, src, bits) { + var _r, b0, b1, bits, char$1, dst, i, off, offset, src, y, y$1, y$2, y$3, y$4, y$5, y$6; + off = 0; + i = 0; + while (true) { + if (!(i < bits || (bits < 0 && src.$length > 0))) { + break; + } + b0 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]); + b1 = 0; + if (src.$length > 1) { + b1 = (1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]); + } + char$1 = 0; + offset = (((_r = i % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) >>> 0)); + if (offset < 4) { + char$1 = (y = ((3 - offset >>> 0)), y < 32 ? (((b0 & (((y$1 = ((3 - offset >>> 0)), y$1 < 32 ? (31 << y$1) : 0) << 24 >>> 24))) >>> 0) >>> y) : 0) << 24 >>> 24; + } + else { + char$1 = (y$2 = ((offset - 3 >>> 0)), y$2 < 32 ? (((b0 & (((y$3 = ((offset - 3 >>> 0)), y$3 < 32 ? (31 >>> y$3) : 0) << 24 >>> 24))) >>> 0) << y$2) : 0) << 24 >>> 24; + char$1 = (char$1 | (((y$4 = ((11 - offset >>> 0)), y$4 < 32 ? (((b1 & (((y$5 = ((11 - offset >>> 0)), y$5 < 32 ? (255 << y$5) : 0) << 24 >>> 24))) >>> 0) >>> y$4) : 0) << 24 >>> 24))) >>> 0; + } + if (bits >= 0 && (i + 5 >> 0) > bits) { + char$1 = (char$1 & (((y$6 = (((((i + 5 >> 0)) - bits >> 0) >>> 0)), y$6 < 32 ? (255 << y$6) : 0) << 24 >>> 24))) >>> 0; + } + ((off < 0 || off >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + off] = "ybndrfg8ejkmcpqxot1uwisza345h769".charCodeAt(char$1)); + off = off + (1) >> 0; + if (offset > 2) { + src = $subslice(src, 1); + } + i = i + (5) >> 0; + } + return off; + }; + Encode = function (dst, src) { + var dst, src; + return encode(dst, src, -1); + }; + $pkg.Encode = Encode; + EncodeToString = function (src) { + var dst, n, src; + dst = $makeSlice(sliceType, EncodedLen(src.$length)); + n = Encode(dst, src); + return ($bytesToString($subslice(dst, 0, n))); + }; + $pkg.EncodeToString = EncodeToString; + decode = function (dst, src, bits) { + var _q, bits, bitsInBlock, dbuf, dst, in$1, j, lookup, off, olen, src, x, x$1, x$2, x$3, x$4; + olen = src.$length; + off = 0; + while (true) { + if (!(src.$length > 0)) { + break; + } + dbuf = arrayType$1.zero(); + j = 0; + while (true) { + if (!(j < 8)) { + break; + } + if (src.$length === 0) { + break; + } + in$1 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]); + src = $subslice(src, 1); + ((j < 0 || j >= dbuf.length) ? ($throwRuntimeError("index out of range"), undefined) : dbuf[j] = ((in$1 < 0 || in$1 >= decodeMap.length) ? ($throwRuntimeError("index out of range"), undefined) : decodeMap[in$1])); + if (((j < 0 || j >= dbuf.length) ? ($throwRuntimeError("index out of range"), undefined) : dbuf[j]) === 255) { + return [off, (new CorruptInputError(0, ((olen - src.$length >> 0) - 1 >> 0)))]; + } + j = j + (1) >> 0; + } + (x = off + 0 >> 0, ((x < 0 || x >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x] = (((dbuf[0] << 3 << 24 >>> 24) | (dbuf[1] >>> 2 << 24 >>> 24)) >>> 0))); + (x$1 = off + 1 >> 0, ((x$1 < 0 || x$1 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$1] = (((((dbuf[1] << 6 << 24 >>> 24) | (dbuf[2] << 1 << 24 >>> 24)) >>> 0) | (dbuf[3] >>> 4 << 24 >>> 24)) >>> 0))); + (x$2 = off + 2 >> 0, ((x$2 < 0 || x$2 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$2] = (((dbuf[3] << 4 << 24 >>> 24) | (dbuf[4] >>> 1 << 24 >>> 24)) >>> 0))); + (x$3 = off + 3 >> 0, ((x$3 < 0 || x$3 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$3] = (((((dbuf[4] << 7 << 24 >>> 24) | (dbuf[5] << 2 << 24 >>> 24)) >>> 0) | (dbuf[6] >>> 3 << 24 >>> 24)) >>> 0))); + (x$4 = off + 4 >> 0, ((x$4 < 0 || x$4 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$4] = (((dbuf[6] << 5 << 24 >>> 24) | dbuf[7]) >>> 0))); + if (bits < 0) { + lookup = new sliceType$1([0, 1, 1, 2, 2, 3, 4, 4, 5]); + off = off + (((j < 0 || j >= lookup.$length) ? ($throwRuntimeError("index out of range"), undefined) : lookup.$array[lookup.$offset + j])) >> 0; + continue; + } + bitsInBlock = bits; + if (bitsInBlock > 40) { + bitsInBlock = 40; + } + off = off + ((_q = ((bitsInBlock + 7 >> 0)) / 8, (_q === _q && _q !== 1 / 0 && _q !== -1 / 0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) >> 0; + bits = bits - (40) >> 0; + } + return [off, $ifaceNil]; + }; + decodeString = function (s, bits) { + var _tuple, bits, dst, err, n, s; + dst = $makeSlice(sliceType, DecodedLen(s.length)); + _tuple = decode(dst, (new sliceType($stringToBytes(s))), bits); + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [sliceType.nil, err]; + } + return [$subslice(dst, 0, n), $ifaceNil]; + }; + DecodeString = function (s) { + var s; + return decodeString(s, -1); + }; + $pkg.DecodeString = DecodeString; + CorruptInputError.methods = [{ prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false) }]; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = errors.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = flag.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = strconv.$init(); /* */ + $s = 3; + case 3: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + decodeMap = arrayType.zero(); + init(); + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $packages["main"] = (function () { + var $pkg = {}, $init, js, zbase32, sliceType, funcType, funcType$1, mapType, decode, encode, main; + js = $packages["github.com/gopherjs/gopherjs/js"]; + zbase32 = $packages["github.com/tv42/zbase32"]; + sliceType = $sliceType($Uint8); + funcType = $funcType([$String], [sliceType], false); + funcType$1 = $funcType([sliceType], [$String], false); + mapType = $mapType($String, $emptyInterface); + decode = function (txt) { + var _tuple, err, h, txt; + _tuple = zbase32.DecodeString(txt); + h = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return new sliceType([]); + } + return h; + }; + encode = function (b) { + var b, z; + z = zbase32.EncodeToString(b); + return z; + }; + main = function () { + $global.zbase32 = $externalize($makeMap($String.keyFor, [{ k: "Decode", v: new funcType(decode) }, { k: "Encode", v: new funcType$1(encode) }]), mapType); + }; + $init = function () { + $pkg.$init = function () { }; + /* */ var $f, $c = false, $s = 0, $r; + if (this !== undefined && this.$blk !== undefined) { + $f = this; + $c = true; + $s = $f.$s; + $r = $f.$r; + } + s: while (true) { + switch ($s) { + case 0: + $r = js.$init(); /* */ + $s = 1; + case 1: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + $r = zbase32.$init(); /* */ + $s = 2; + case 2: + if ($c) { + $c = false; + $r = $r.$blk(); + } + if ($r && $r.$blk !== undefined) { + break s; + } + if ($pkg === $mainPkg) { + main(); + $mainFinished = true; + } + /* */ } + return; + } + if ($f === undefined) { + $f = { $blk: $init }; + } + $f.$s = $s; + $f.$r = $r; + return $f; + }; + $pkg.$init = $init; + return $pkg; + })(); + $synthesizeMethods(); + var $mainPkg = $packages["main"]; + $packages["runtime"].$init(); + $go($mainPkg.$init, []); + $flushConsole(); +}).call(this); +//# sourceMappingURL=tv42_zbase32_gopherjs.js.map \ No newline at end of file diff --git a/dist/api/utils/zbase32/tv42_zbase32_gopherjs.js.map b/dist/api/utils/zbase32/tv42_zbase32_gopherjs.js.map new file mode 100644 index 0000000..0693058 --- /dev/null +++ b/dist/api/utils/zbase32/tv42_zbase32_gopherjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tv42_zbase32_gopherjs.js","sourceRoot":"","sources":["../../../../api/utils/zbase32/tv42_zbase32_gopherjs.js"],"names":[],"mappings":"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AAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,E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EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,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OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;wBAChwL,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC3lB,WAAW,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;wBAC7C,WAAW,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;wBAC/C,SAAS,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;wBAC/0F,YAAY,GAAG,IAAI,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;wBACp4B,SAAS,GAAG,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;wBACv4F,YAAY,GAAG,IAAI,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,K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AAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;Y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MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG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C;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAA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GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CA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AAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,C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,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACt0B,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;gBACpD,OAAO,CAAC,CAAC;aACT;YACD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,OAAO,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YACpC,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;gBACpD,OAAO,CAAC,CAAC;aACT;YACD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACvB,OAAO,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;aAC5D;YACD,OAAO,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,GAAG,GAAG,UAAS,CAAC,EAAE,CAAC;YAClB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YACvN,KAAK,GAAG,CAAC,CAAC;YACV,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,GAAG,GAAG,KAAK,CAAC;YACZ,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAChB,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;gBACzD,GAAG,GAAG,IAAI,CAAC;gBACX,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,GAAG,CAAC,IAAI,CAAC;gBACb,IAAI,IAAI,GAAG,CAAC,EAAE;oBACb,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAChC,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;iBACvF;aACD;YACD,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC1M,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACzL,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;aACvJ;iBAAM,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACrG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9F,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACjG,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7M;iBAAM;gBACN,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3C,GAAG,GAAG,MAAM,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBACzE,EAAE,GAAG,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAChC,EAAE,GAAG,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3B,GAAG,GAAG,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC1G,IAAI,GAAG,EAAE,CAAC;gBACV,MAAM,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/D,GAAG,GAAG,IAAI,CAAC;gBACX,EAAE,GAAG,MAAM,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;oBAC7E,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;iBACtF;gBACD,MAAM,GAAG,EAAE,CAAC;gBACZ,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAClG,GAAG,GAAG,MAAM,CAAC;gBACb,EAAE,GAAG,MAAM,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;oBAC7E,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;iBACzF;gBACD,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACtC,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBACjG,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC/B;gBACD,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,IAAI,EAAE;oBACZ,KAAK,GAAG,CAAC,CAAC;oBACV,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;wBAChN,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM,GAAG,EAAE,CAAC;wBACZ,MAAM,GAAG,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;wBAC7D,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,MAAM,CAAC;wBACZ,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;4BAC7E,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;yBACzF;wBACD,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;qBAC5E;oBACD,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;wBACzI,MAAM;qBACN;oBACD,EAAE,GAAG,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,EAAE,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtJ,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpC;gBACD,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aACtC;YACD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC9C,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;aACrD;YACD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG;YAC5B,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvL,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,KAAK,SAAS,CAAC,GAAG,EAAE;4BACxB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,MAAM,CAAC;yBACvB;wBACD,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC/C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,2BAA2B,CAAC,KAAK,CAAC;wBACjC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACzI,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpI,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YAC/B,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnM,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxH,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,EAAE,CAAC,IAAI,CAAC;oBACxB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnJ,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,SAAS,GAAG,UAAS,IAAI,EAAE,MAAM;YAChC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC;YACzB,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/O,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACvI,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,GAAG;YAC3C,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9I,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvhB,IAAI,GAAG,EAAE,CAAC;wBACV,MAAM,GAAG,CAAC,CAAC;wBACX,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzB,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvB,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxH,CAAC,GAAG,EAAE,CAAC;wBACP,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;4BACzB,IAAI,GAAG,KAAK,CAAC;4BACb,MAAM,GAAG,CAAC,CAAC;4BACX,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BACnC,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;yBAC3C;wBACD,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC;wBACrB,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BACvO,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;4BACnB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;4BACvB,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC;4BACrB,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC;4BACjB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;yBAC3C;wBACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;4BAC7O,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC9K,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;4BACnB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;4BACvB,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BACnC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,EAAE;gCACrB,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;6BAClI;iCAAM;gCACN,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;6BACzC;4BACD,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;yBAC3C;wBACD,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;wBACV,GAAG,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;wBACzC,EAAE,GAAG,CAAC,CAAC;wBACP,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC;wBAChB,OAAO,IAAI,EAAE;4BACZ,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;gCAAE,MAAM;6BAAE;4BACrC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAAC,CAAC;4BAC7I,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC5H,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;gCAChF,GAAG,GAAG,GAAG,CAAC;gCACV,EAAE,GAAG,CAAC,CAAC;6BACP;iCAAM;gCACN,EAAE,GAAG,CAAC,CAAC;6BACP;yBACD;wBACD,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;wBACpR,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;wBACnB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;wBACvB,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;wBACjI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC3C,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACve,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,GAAG;YACxC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC;YACxD,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE;gBACvB,OAAO,CAAC,CAAC;aACT;YACD,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;gBAC5S,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpJ,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBAC1B,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;wBAClJ,OAAO,EAAE,CAAC;qBACV;oBACD,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACnB;aACD;YACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACd,EAAE,GAAG,CAAC,CAAC;YACP,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACpC,IAAI,GAAG,EAAE,CAAC;gBACV,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;oBACxJ,OAAO,IAAI,CAAC;iBACZ;gBACD,EAAE,EAAE,CAAC;aACL;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,eAAe,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;QACxF,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YACpB,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;YACZ,EAAE,GAAG,CAAC,CAAC;YACP,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACpC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAClJ,IAAI,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE;oBACnB,OAAO,IAAI,CAAC;iBACZ;gBACD,EAAE,EAAE,CAAC;aACL;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,aAAa,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QACpF,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,IAAI,EAAE,IAAI;YACtD,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACpK,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnkB,MAAM,GAAG,CAAC,CAAC;wBACX,EAAE,GAAG,KAAK,CAAC;wBACX,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxH,CAAC,GAAG,EAAE,CAAC;wBACP,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC;oBACP,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzF,CAAC,GAAG,EAAE,CAAC;wBACP,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7I,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACrD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,iCAAiC,CAAC,KAAK,CAAC;wBACvC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrO,MAAM,GAAG,IAAI,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE;4BACxB,IAAI,GAAG,QAAQ,CAAC;4BAChB,MAAM,GAAG,IAAI,CAAC;4BACd,MAAM,GAAG,IAAI,CAAC;4BACd,EAAE,GAAG,MAAM,CAAC;4BACZ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;yBAC7B;oBACF,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,EAAE,CAAC;wBACN,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;wBAChB,IAAI,GAAG,CAAC,CAAC;wBACT,OAAO,IAAI,EAAE;4BACZ,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE;gCAAE,MAAM;6BAAE;4BACxC,GAAG,GAAG,IAAI,CAAC;4BACX,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;4BACnJ,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;gCACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gCACvB,MAAM,GAAG,IAAI,CAAC;gCACd,MAAM,GAAG,MAAM,CAAC;gCAChB,EAAE,GAAG,MAAM,CAAC;gCACZ,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;6BAC7B;4BACD,IAAI,EAAE,CAAC;yBACP;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC7B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACvhB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACpG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACrsG,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC9kC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAClG,OAAO,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACpG,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC7mB,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC7lB,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACte,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACtR,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAChkB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC1R,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACrX,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;wBACjH,SAAS,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC9C,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC;wBAC7E,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACjE,YAAY,GAAG,IAAI,WAAW,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;wBAC/G,aAAa,GAAG,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;wBACnF,eAAe,GAAG,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;wBACxH,cAAc,GAAG,IAAI,WAAW,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;wBAC7J,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wBAC/C,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;wBAC3C,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBAC/C,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;wBACjK,IAAI,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;wBACnH,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC5W,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACtG,SAAS,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;wBACrE,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;wBAClH,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;wBAClB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;wBACtB,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;wBACxD,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;wBACxD,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC;QAC7B,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC;QACtgB,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QAClC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAS,QAAQ;YACnH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,OAAO;aACP;YACD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;YAC7G,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,OAAO;aACP;QACF,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,UAAS,MAAM,EAAE,MAAM,EAAE,MAAM;YAC9H,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,OAAO;aACP;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,UAAS,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO;YAC5K,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;gBACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,OAAO;aACP;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5B,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACjC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrC,QAAQ,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5C,UAAU,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACnD,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACnC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,EAAE;YACxC,IAAI,EAAE,EAAE,EAAE,CAAC;YACX,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC9B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;QACX,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC9B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,IAAI,EAAE,MAAM;YACrD,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,OAAO,EAAE;gBACf,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;aAC1B;YACD,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,IAAI,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,MAAM;YACnD,IAAI,MAAM,EAAE,EAAE,CAAC;YACf,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,MAAM;YACpD,IAAI,MAAM,EAAE,EAAE,CAAC;YACf,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,MAAM;YAClD,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACrB,EAAE,GAAG,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,OAAO,EAAE;gBACf,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;aAC1B;YACD,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,MAAM;YAChD,IAAI,MAAM,EAAE,EAAE,CAAC;YACf,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM;YACjD,IAAI,MAAM,EAAE,EAAE,CAAC;YACf,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG;YACjC,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC;YACxC,IAAI,CAAC,CAAC;YACN,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,GAAG,UAAS,CAAC;YAC5C,IAAI,CAAC,CAAC;YACN,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,eAAe,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,CAAC;YAC7C,IAAI,CAAC,CAAC;YACN,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,kBAAkB,GAAG,UAAS,CAAC;YAC9B,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnP,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC/C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,2BAA2B,CAAC,KAAK,CAAC;wBACjC,EAAE,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACzB,IAAI,GAAG,CAAC,CAAC;wBAAC,CAAC,UAAU,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;wBAC9N,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1H,EAAE,CAAC,CAAC,CAAC,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC;wBACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC7B,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACxL,CAAC,CAAC;QACF,kBAAkB,GAAG,UAAS,CAAC;YAC9B,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjP,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC7B,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;wBAC9F,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;4BACpB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO;yBAChB;wBACD,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxG,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpB,IAAI,GAAG,CAAC,CAAC;wBAAC,CAAC,UAAU,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;wBACzH,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;4BACpB,OAAO,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;yBACrC;wBACD,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtL,CAAC,CAAC;QACF,UAAU,GAAG,UAAS,MAAM;YAC3B,IAAI,MAAM,CAAC;YACX,IAAI,MAAM,EAAE;gBACX,OAAO,IAAI,CAAC,cAAc,CAAC;aAC3B;YACD,OAAO,IAAI,CAAC,aAAa,CAAC;QAC3B,CAAC,CAAC;QACF,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAClC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,aAAa,CAAC;QACtB,CAAC,CAAC;QACF,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG;YACpC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG;YACtC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,YAAY,CAAC,SAAS,CAAC,SAAS,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,GAAG,UAAS,CAAC,EAAE,CAAC;YACtB,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAChC,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACvC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClJ,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;oBAC1E,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClR,OAAO;iBACP;gBACD,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aACjC;QACF,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YACxB,IAAI,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC3C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACtY,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;4BAChC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACf,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC3U,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,KAAK,GAAG;YACP,kBAAkB,CAAC,sDAAsD,CAAC,CAAC;QAC5E,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YAC3B,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,IAAI,EAAE;gBACZ,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC/F,OAAO,KAAK,CAAC;iBACb;gBACD,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACjD,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC5G,MAAM,CAAC,IAAI,OAAO,CAAC,yEAAyE,CAAC,CAAC,CAAC;iBAC/F;gBACD,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;oBAC1L,OAAO,IAAI,CAAC;iBACZ;aACD;QACF,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG;YACtC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YACjE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrU,EAAE,GAAG,IAAI,CAAC;oBACV,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BAC/F,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,KAAK,CAAC;yBACtB;wBACD,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC3G,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;4BAC5G,MAAM,CAAC,IAAI,OAAO,CAAC,yEAAyE,CAAC,CAAC,CAAC;yBAC/F;wBACD,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC3H,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACtN,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,kMAAkM,CAAC,KAAK,CAAC,CAAC;oBACzM,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,qIAAqI,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC/Q,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC/F,EAAE,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChR,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC,CAAC;oBACjC,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,kIAAkI,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzQ,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC5F,EAAE,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClR,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBACtB,OAAO,CAAC,KAAK,CAAC;wBACf,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,KAAK,CAAC;oBACtB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC5R,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YAC3B,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,IAAI,EAAE;gBACZ,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtK,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;oBAClG,MAAM,CAAC,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;iBACjD;gBACD,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACjD,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;oBAC1L,OAAO,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC/G;aACD;QACF,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI;YAC3C,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9H,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvd,EAAE,GAAG,IAAI,CAAC;wBACV,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzB,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,QAAQ,GAAG,IAAI,CAAC;wBAChB,SAAS,GAAG,MAAM,CAAC;wBACnB,SAAS,GAAG,MAAM,CAAC;wBACnB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;wBACxB,IAAI,IAAI,EAAE;4BACT,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC7B,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;4BACpC,SAAS,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;4BAC1C,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;yBACvJ;6BAAM;4BACN,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC7B,SAAS,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;4BACjC,SAAS,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BACvC,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;yBACvJ;oBACD,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BAC/F,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,KAAK,CAAC;yBACtB;wBACD,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;4BAC3H,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;4BACpI,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gCAC5G,MAAM,CAAC,IAAI,OAAO,CAAC,yEAAyE,CAAC,CAAC,CAAC;6BAC/F;yBACD;6BAAM;4BACN,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;4BAC5E,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gCACjI,MAAM,CAAC,IAAI,OAAO,CAAC,yEAAyE,CAAC,CAAC,CAAC;6BAC/F;yBACD;wBACD,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACtN,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,kMAAkM,CAAC,KAAK,CAAC;wBACxM,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;4BAC3H,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,IAAI,CAAC;yBACrB;wBACD,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAC/I,OAAO,CAAC,KAAK,CAAC;wBACf,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,KAAK,CAAC;oBACtB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACta,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI;YAC7C,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YACnI,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACre,EAAE,GAAG,IAAI,CAAC;wBACV,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACzB,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,QAAQ,GAAG,IAAI,CAAC;wBAChB,SAAS,GAAG,MAAM,CAAC;wBACnB,SAAS,GAAG,MAAM,CAAC;wBACnB,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;wBACxB,IAAI,IAAI,EAAE;4BACT,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC7B,SAAS,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;4BACpC,SAAS,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;4BAC1C,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;yBACvJ;6BAAM;4BACN,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC7B,SAAS,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;4BACjC,SAAS,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;4BACvC,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;yBACvJ;oBACD,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtK,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;4BAC5N,MAAM,CAAC,IAAI,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;yBACjD;wBACD,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;wBACtI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BAChI,KAAK,GAAG,CAAC,GAAG,GAAG,SAAS,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;yBACvF;wBACD,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACtN,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,kMAAkM,CAAC,KAAK,CAAC;wBACxM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5J,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,wIAAwI,CAAC,KAAK,CAAC;wBAC9I,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAC/I,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;oBACzH,OAAO,CAAC,KAAK,CAAC;wBACf,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,KAAK,CAAC;oBACtB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtb,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YACzB,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;gBACtB,OAAO,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;aAC7B;YACD,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YACzB,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrM,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACjD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,6BAA6B,CAAC,KAAK,CAAC;wBACnC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/I,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG;YAC3B,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrM,EAAE,GAAG,IAAI,CAAC;wBACV,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACpC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,gBAAgB,CAAC,KAAK,CAAC;wBACtB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjJ,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG;YAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrN,EAAE,GAAG,IAAI,CAAC;wBACV,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvI,KAAK,CAAC,IAAI,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,eAAe,CAAC,KAAK,CAAC;wBACrB,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvI,IAAI,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnK,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG;YAC5B,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrM,EAAE,GAAG,IAAI,CAAC;wBACV,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACpC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,gBAAgB,CAAC,KAAK,CAAC;wBACtB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAClJ,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG;YAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACzB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrN,EAAE,GAAG,IAAI,CAAC;wBACV,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxI,KAAK,CAAC,IAAI,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,eAAe,CAAC,KAAK,CAAC;wBACrB,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvI,IAAI,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpK,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,GAAG;YAC1C,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YACf,EAAE,GAAG,IAAI,CAAC;YACV,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;gBACvE,OAAO,EAAE,CAAC,GAAG,CAAC;aACd;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI;YACtC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACzC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAClY,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/I,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACxU,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,GAAG,EAAE,GAAG;YAC1C,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC9Y,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACnJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACpV,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,GAAG,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,IAAI;YACzC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACzC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAClY,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAClJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC3U,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG,EAAE,QAAQ;YAC7C,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC;YAC3B,EAAE,GAAG,IAAI,CAAC;YACV,IAAI,GAAG,KAAK,MAAM,EAAE;gBACnB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;aACjB;YACD,IAAI,CAAC,QAAQ,EAAE;gBACd,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;gBAClB,OAAO,SAAS,CAAC;aACjB;YACD,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;aAClB;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG,EAAE,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG;YAC1B,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnN,EAAE,GAAG,IAAI,CAAC;wBACV,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;wBACd,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzI,GAAG,GAAG,EAAE,CAAC;wBACT,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;wBACd,EAAE,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/Q,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,GAAG,CAAC;oBACpB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC9J,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnO,EAAE,GAAG,IAAI,CAAC;wBACV,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACpC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,gBAAgB,CAAC,KAAK,CAAC;wBACtB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;wBACd,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,GAAG,GAAG,IAAI,CAAC;wBACX,KAAK,CAAC,IAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACpD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,EAAE,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAChR,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,GAAG,CAAC;oBACpB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC5K,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,GAAG;YACvC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACxC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAChY,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAChJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACxU,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG;YAC9B,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAClX,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC,eAAe,GAAG,IAAI,OAAO,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACtL,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACrJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC7T,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACrE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC9c,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC9H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACzB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACnD,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;gCACpB,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;6BAC/B;4BACD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACrC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;6BAC3B;4BACD,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,UAAU,EAAE;gCAC1C,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;6BAChC;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACpJ,MAAM,GAAG,IAAI,CAAC;4BACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,CAAC,GAAG,CAAC,CAAC;gCACN,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;oCACxE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oCAClC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;wCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,SAAS;qCACjC;iCACD;gCACD,IAAI,IAAI,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oCAC3D,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;oCAAC,SAAS;iCACjC;6BACD;4BACD,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;4BAC9B,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;4BAC5B,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBAC/B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACvZ,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,GAAG;YACvC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACxD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3S,EAAE,GAAG,IAAI,CAAC;wBACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;wBAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACzB;wBACD,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,GAAG,UAAU,EAAE;4BAC1C,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;yBAChC;wBACD,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChJ,MAAM,GAAG,EAAE,CAAC;wBACZ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC3C,CAAC,GAAG,CAAC,CAAC;yBACN;wBACD,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,IAAI,CAAC;wBACL,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;wBAC9B,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC3B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpP,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC;YACrC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACzE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC1d,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC9H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;6BACpC;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACnD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACrC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;6BACtC;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC3J,MAAM,GAAG,IAAI,CAAC;4BACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACf,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,CAAC,GAAG,CAAC,CAAC;gCACN,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;oCACxE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oCAClC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;wCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,SAAS;qCACjC;iCACD;6BACD;4BACD,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;4BAC9B,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;4BAChC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;wBAC1C,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAClb,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,GAAG;YACzC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC3F,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC1gB,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC9H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;6BAC1C;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACnD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACrC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;6BAC5C;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/J,MAAM,GAAG,IAAI,CAAC;4BACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACjB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACf,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;oCACxE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oCAClC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;wCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,SAAS;qCACjC;iCACD;6BACD;4BACD,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;4BAC9B,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;4BAC7C,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;wBAChD,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACve,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YAClC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC9E,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACxe,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACzB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACpD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACtC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;6BAC3B;4BACD,EAAE,GAAG,CAAC,CAAC;wBACP,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;4BAChB,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE;gCAChD,GAAG,GAAG,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC;6BAC3B;4BACD,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACzK,MAAM,GAAG,IAAI,CAAC;4BACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,GAAG,CAAC,EAAE;gCACV,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;6BACnB;4BACD,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;gCACrB,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;6BAC5B;4BACD,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;gCACxE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gCACnC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;oCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;oCAAC,SAAS;iCACjC;6BACD;4BACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;6BAC5B;4BACD,IAAI,CAAC,KAAK,CAAC,EAAE;gCACZ,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;6BAC1C;4BACF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBAC/B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAClb,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,GAAG;YACxC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACzE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC9d,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACzB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,CAAC,CAAC;wBACP,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC;4BAChB,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,UAAU,EAAE;gCAChD,GAAG,GAAG,EAAE,GAAG,UAAU,IAAI,CAAC,CAAC;6BAC3B;4BACD,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/O,MAAM,GAAG,EAAE,CAAC;4BACZ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,GAAG,CAAC,EAAE;gCACV,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;6BACnB;4BACD,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;gCACrB,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;6BAC5B;4BACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;6BAC5B;4BACD,IAAI,CAAC,KAAK,CAAC,EAAE;gCACZ,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;6BAC1C;4BACF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBAC/B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACza,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,EAAE;YACxC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC9D,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC5b,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACzB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACpD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACtC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;6BAC3B;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC7J,KAAK,GAAG,IAAI,CAAC;4BACb,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;gCACxE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gCACnC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;oCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;oCAAC,SAAS;iCACjC;6BACD;4BACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;6BAC3B;4BACD,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;4BACxC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBAC/B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACxY,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,GAAG,EAAE,EAAE;YAC9C,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC9E,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACxe,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;6BAC5B;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACpD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACtC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;6BAC9B;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACpK,MAAM,GAAG,IAAI,CAAC;4BACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;gCACxE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gCACnC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;oCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;oCAAC,SAAS;iCACjC;6BACD;4BACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;6BAC9B;4BACD,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;4BACzC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;wBAClC,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACxb,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YACzB,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACpF,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACpf,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC9H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;6BACzC;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACnD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACrC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;6BAC3C;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC3I,MAAM,GAAG,IAAI,CAAC;4BACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAChB,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACpB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;gCACxC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;6BACpC;4BACD,EAAE,GAAG,KAAK,CAAC;4BACX,IAAI,iBAAiB,CAAC,EAAE,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gCACnD,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;oCACrB,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oCAClC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;wCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,SAAS;qCACjC;iCACD;6BACD;iCAAM,IAAI,iBAAiB,CAAC,EAAE,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gCAC1D,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BACjC;4BACD,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;4BACjD,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;wBAC9C,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC9c,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,MAAM,EAAE,MAAM;YAC9C,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC1Z,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACxC;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACvJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAClX,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,MAAM,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,GAAG;YACzC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC1D,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAChb,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACzB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC/C,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAClJ,MAAM,GAAG,EAAE,CAAC;4BACZ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,CAAC,GAAG,CAAC,CAAC;gCACN,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;oCACxE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oCAClC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;wCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,SAAS;qCACjC;iCACD;6BACD;4BACD,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;4BAC5B,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBAC/B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC/X,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YACzB,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAClX,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACzI,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACxT,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YAClC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACtC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC5X,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC3I,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACjU,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,cAAc,GAAG,UAAS,EAAE;YAC3B,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7P,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;4BACvK,MAAM,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC1B,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACf,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACf,IAAI,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE;gCACrC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;6BACpC;4BACD,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;4BACpC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;gCACnC,MAAM,CAAC,UAAU,CAAC,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,aAAa,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;6BACjK;iCAAM;gCACN,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;6BAClC;yBACD;wBACD,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC9L,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,iBAAiB,GAAG,UAAS,EAAE;YAC9B,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACxZ,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACzI,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC9D,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAChI,MAAM,GAAG,EAAE,CAAC;4BACZ,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;6BACjC;4BACD,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC3I,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;wBACvC,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACjW,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG;YACtB,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAClX,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;6BAC9B;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACzI,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC9T,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,GAAG,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG;YAC5B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC5C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC5Y,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACzB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACpD,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACrJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,IAAI,CAAC;wBACrB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC1V,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC;YACvC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAChX,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACtI,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,SAAS,CAAC;wBAC1B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC1T,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC;YACpC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC1D,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAChb,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC9H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACnD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACrC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,KAAK,CAAC;6BACtB;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAChJ,KAAK,CAAC,IAAI,IAAI,EAAE;gCAAE,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBACvB,iBAAiB,CAAC,KAAK,CAAC;4BACvB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,SAAS,CAAC;wBAC3B,OAAO,CAAC,KAAK,CAAC;4BACd,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BAClC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,KAAK,CAAC;6BACtB;4BACF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,SAAS,CAAC;wBAC1B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACvX,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC;YACrC,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC1D,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAChb,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACpD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACtC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,KAAK,CAAC;6BACtB;wBACD,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAChJ,KAAK,CAAC,IAAI,IAAI,EAAE;gCAAE,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBACvB,iBAAiB,CAAC,KAAK,CAAC;4BACvB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,SAAS,CAAC;wBAC3B,OAAO,CAAC,KAAK,CAAC;4BACd,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACnC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,KAAK,CAAC;6BACtB;4BACF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,SAAS,CAAC;wBAC1B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACxX,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,GAAG;YACR,kBAAkB,CAAC,uDAAuD,CAAC,CAAC;QAC7E,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,GAAG;YACzD,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACla,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAClK,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC/W,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,aAAa,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9G,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,GAAG;YAC/D,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACla,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC3L,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACrX,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1H,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,CAAC;YAC1D,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC9Z,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACnK,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC9W,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChH,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,GAAG;YAC1D,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACla,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACnK,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAChX,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,cAAc,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChH,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,IAAI;YAC7D,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACtD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACpa,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACtK,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACpX,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtH,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,IAAI;YAC/D,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACtD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACpa,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;4BAClB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,GAAG,CAAC;6BACpB;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BAC/C,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACxK,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,SAAS,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACtX,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1H,MAAM,GAAG,UAAS,CAAC;YAClB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7R,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnI,MAAM,GAAG,EAAE,CAAC;wBACZ,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACf,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACf,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,KAAK,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAClE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,8CAA8C,CAAC,KAAK,CAAC;wBACpD,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACzI,OAAO,CAAC,KAAK,CAAC;wBACd,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;yBAC/C;wBACD,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxJ,GAAG,GAAG,IAAI,CAAC;wBACX,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACrE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,iDAAiD,CAAC,KAAK,CAAC;wBACvD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7I,IAAI,CAAC;wBACL,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;oBACrD,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;oBACxC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtN,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC;YACnC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACpH,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC5kB,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;4BAClB,EAAE,GAAG,IAAI,CAAC;4BACV,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC/H,GAAG,GAAG,EAAE,CAAC;4BACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gCACzC,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;6BACxC;4BACD,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACpD,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;4BACtC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;6BAC1C;4BACD,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC;4BAC5B,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE;gCACnC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;6BAC7B;4BACD,MAAM,GAAG,IAAI,CAAC;4BACd,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACrB,KAAK,GAAG,SAAS,CAAC;wBAClB,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,6CAA6C,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE;gCAAE,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC/F,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACvC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;4BAChB,EAAE,GAAG,CAAC,CAAC;wBACP,oBAAoB,CAAC,KAAK,CAAC;4BAC1B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;gCAAE,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BACzF,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;4BAClI,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;gCACxB,EAAE,EAAE,CAAC;gCACL,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BACjC;4BACD,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChI,IAAI,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,GAAG,UAAU,EAAE;gCAC9C,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gCAC3L,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAC9B;4BACD,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BACtM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE;gCACjC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAC9B;4BACD,EAAE,EAAE,CAAC;4BACN,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,EAAE;gCAC5B,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAC9B;4BACD,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;4BACnJ,KAAK,GAAG,CAAC,CAAC;4BACV,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BAClB,IAAI,KAAK,KAAK,UAAU,EAAE;gCACzB,KAAK,GAAG,CAAC,CAAC;6BACV;4BACD,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACvJ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;4BAC1H,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACtE,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;gCAC3C,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE;oCAC7C,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oCACnC,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;wCACxC,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,SAAS;qCACjC;iCACD;gCACD,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAC9B;4BACD,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;gCACpC,KAAK,GAAG,EAAE,CAAC,gBAAgB,CAAC;gCAC5B,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAC9B;4BACF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAAC,KAAK,CAAC;4BAChC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;wBAC3B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACtiB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC9lC,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC/f,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACn+I,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC5H,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC3S,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC/0B,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,UAAU,GAAG,EAAE,CAAC;wBAChB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;wBACpE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;wBACvD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;wBACvE,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,CAAC;wBACzC,IAAI,CAAC,iBAAiB,GAAG,CAAC,UAAS,KAAK;4BACvC,IAAI,KAAK,CAAC;wBACX,CAAC,CAAC,CAAC;wBACH,aAAa,GAAG,CAAC,CAAC;wBAClB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;wBAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;oBACjC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC;QACrC,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;QAC1C,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,UAAU,GAAG,UAAS,EAAE;YACvB,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,WAAW,CAAC;YACvC,WAAW,GAAG,KAAK,CAAC;YACpB,GAAG,GAAG,SAAS,CAAC;YAChB,IAAI,GAAG,KAAK,CAAC;YACb,MAAM,GAAG,SAAS,CAAC;YACnB,WAAW,GAAG,IAAI,CAAC;YACnB,GAAG,GAAG,MAAM,CAAC;YACb,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAChI,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,kBAAkB,CAAC,GAAG,CAAC;QAChC,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;QACvE,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QAClC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,mBAAmB,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpH,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,GAAG;YACR,IAAI,IAAI,CAAC;YACT,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;gBACvC,OAAO,SAAS,CAAC;aACjB;YACD,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,GAAG,UAAS,IAAI;YACnB,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACtB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3M,GAAG,GAAG,MAAM,EAAE,CAAC;wBACf,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACrE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,iDAAiD,CAAC,KAAK,CAAC;wBACvD,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAChI,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAClI,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QAC3U,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACzC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QAClB,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,kBAAkB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,CAAC;QACvwB,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,EAAE,GAAG,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAClD,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;QAClC,IAAI,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC1C,OAAO,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACxC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QAClC,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YAC7G,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;gBAC3B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACd,OAAO;aACP;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC5F,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAS,GAAG,EAAE,KAAK,EAAE,IAAI;YAChH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;gBACrB,OAAO;aACP;YACD,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAS,QAAQ,EAAE,IAAI;YACvH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;gBACrB,OAAO;aACP;YACD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACrH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;gBACrB,OAAO;aACP;YACD,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAS,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY;YAChI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACtJ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC;gBAC7B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,OAAO;aACP;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAS,KAAK;YAChG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;gBACxB,OAAO;aACP;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAS,KAAK;YACtF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC;gBAC3B,OAAO;aACP;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9F,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3F,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAS,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI;YACjI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtF,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrZ,OAAO;aACP;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YACxB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzB,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACnC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9B,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChC,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnC,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAClC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxC,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACnC,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,UAAU,GAAG,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,UAAU,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9C,UAAU,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACnD,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,YAAY,GAAG;YACd,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC;QACF,IAAI,GAAG;YACN,IAAI,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC;YACrB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAC1B,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE;gBAC7B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBACpB,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrE,CAAC,GAAG,CAAC,CAAC;gBACN,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBACxD,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;oBAClL,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACjB;aACD;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;gBAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACjC;QACF,CAAC,CAAC;QACF,kBAAkB,GAAG;QACrB,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC;YACtC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACvB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjN,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE;4BACtB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;yBACnD;wBACD,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBACrB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC9J,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,CAAC;YAC3C,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACzD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACzS,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC;wBACtB,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE;4BACtB,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC;4BACrB,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;4BACzB,KAAK,GAAG,IAAI,CAAC;4BACb,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;yBAC7B;wBACD,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5I,MAAM,GAAG,IAAI,CAAC;wBACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC7B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC3P,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC7B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;QACV,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,CAAC;YAC3C,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC3I,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7f,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC;wBACtB,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,GAAG,EAAE;4BACrC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;yBACnD;wBACD,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;wBACnB,IAAI,GAAG,CAAC,CAAC;wBACT,IAAI,IAAI,IAAI,CAAC,EAAE;4BACd,IAAI,GAAG,GAAG,CAAC;4BACX,CAAC,GAAG,CAAC,CAAC,CAAC;yBACP;wBACD,KAAK,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACvC,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,qCAAqC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC/E,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACjD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,6BAA6B,CAAC,KAAK,CAAC;wBACnC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;wBACX,KAAK,GAAG,SAAS,CAAC;wBAClB,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvJ,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACnB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC3C,IAAI,GAAG,KAAK,CAAC;4BACb,MAAM,GAAG,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;4BAC/C,KAAK,GAAG,IAAI,CAAC;4BACb,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;yBAC7B;wBACD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;4BAChB,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAC9B;oBACF,OAAO,CAAC,KAAK,CAAC;wBACd,MAAM,GAAG,CAAC,CAAC;wBACX,MAAM,GAAG,CAAC,CAAC;wBACX,EAAE,GAAG,MAAM,CAAC;wBACZ,EAAE,GAAG,MAAM,CAAC;wBACZ,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBAC3E,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACjB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACjB,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACpB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBAC5B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACnB,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;4BACpC,MAAM,GAAG,KAAK,CAAC;4BACf,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC;4BAChB,KAAK,GAAG,MAAM,CAAC;4BACf,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;yBAC7B;wBACD,MAAM,GAAG,KAAK,CAAC;wBACf,MAAM,GAAG,SAAS,CAAC;wBACnB,KAAK,GAAG,MAAM,CAAC;wBACf,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC7B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/c,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC/B,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACpB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvM,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;oBAClD,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACvJ,CAAC,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG;YACjC,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7P,CAAC,GAAG,IAAI,CAAC;wBACT,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBAC3C,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACf,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS,CAAC,CAAC;yBAAE;wBAC9C,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,EAAE,GAAG,IAAI,CAAC;oBAAC,KAAK,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/M,CAAC,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAClC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACpB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvM,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;oBACxC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC1J,CAAC,CAAC;QACF,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG;YACpC,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7P,CAAC,GAAG,IAAI,CAAC;wBACT,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;wBAC3C,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACf,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS,CAAC,CAAC;yBAAE;wBAC9C,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,EAAE,GAAG,IAAI,CAAC;oBAAC,KAAK,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,EAAE,CAAC;oBACnB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAClN,CAAC,CAAC;QACF,YAAY,CAAC,SAAS,CAAC,OAAO,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,eAAe,GAAG,UAAS,SAAS,EAAE,GAAG;YACxC,IAAI,GAAG,EAAE,SAAS,CAAC;YACnB,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;gBACtC,OAAO,SAAS,CAAC;aACjB;YACD,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,UAAU,GAAG,UAAS,GAAG;YACxB,IAAI,GAAG,CAAC;YACR,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,eAAe,GAAG,UAAS,GAAG;YAC7B,IAAI,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;YACnC,IAAI,GAAG,GAAG,CAAC;YACX,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1C,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,OAAO,KAAK,CAAC,GAAG,CAAC;aACjB;iBAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,OAAO,KAAK,CAAC,GAAG,CAAC;aACjB;iBAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBAClB,OAAO,KAAK,CAAC,GAAG,CAAC;aACjB;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,gBAAgB,GAAG,UAAS,IAAI,EAAE,GAAG;YACpC,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YAC1B,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/C,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,EAAE;gBACP,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;aACjC;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,UAAU,GAAG,UAAS,GAAG;YACxB,IAAI,GAAG,CAAC;YACR,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjG,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YACzB,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC/B,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACpB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvM,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;oBAC/D,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACvJ,CAAC,CAAC;QACF,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YACnC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/E,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrW,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBAC7B,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC3C,IAAI,GAAG,CAAC,CAAC;4BACT,MAAM,GAAG,KAAK,CAAC;4BACf,CAAC,GAAG,IAAI,CAAC;4BACT,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACzB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpI,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,MAAM,GAAG,CAAC,CAAC;wBACX,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;wBAC9B,CAAC,GAAG,MAAM,CAAC;wBACX,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/S,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,GAAG;YAC1C,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1F,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvY,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBAC7B,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC3C,IAAI,GAAG,CAAC,CAAC;4BACT,MAAM,GAAG,KAAK,CAAC;4BACf,CAAC,GAAG,IAAI,CAAC;4BACT,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACzB;wBACD,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;4BACzD,MAAM,GAAG,CAAC,CAAC;4BACX,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;4BACjF,CAAC,GAAG,MAAM,CAAC;4BACX,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACzB;oBACD,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,sCAAsC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACjF,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1I,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;4BAC3B,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAC9B;wBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBACpF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnV,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YACpC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/E,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrW,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC9B,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC3C,IAAI,GAAG,CAAC,CAAC;4BACT,MAAM,GAAG,KAAK,CAAC;4BACf,CAAC,GAAG,IAAI,CAAC;4BACT,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACzB;wBACD,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,IAAI,CAAC,GAAG,CAAC,EAAE;4BACV,CAAC,GAAG,CAAC,CAAC;yBACN;wBACD,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;4BACzB,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC;yBACvB;wBACD,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;yBAC5B;wBACD,MAAM,GAAG,CAAC,CAAC;wBACX,MAAM,GAAG,GAAG,CAAC;wBACb,CAAC,GAAG,MAAM,CAAC;wBACX,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAChT,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,GAAG;YAC3C,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1F,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvY,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC9B,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC3C,IAAI,GAAG,CAAC,CAAC;4BACT,MAAM,GAAG,KAAK,CAAC;4BACf,CAAC,GAAG,IAAI,CAAC;4BACT,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACzB;wBACD,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;4BACzD,MAAM,GAAG,CAAC,CAAC;4BACX,MAAM,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;4BAClF,CAAC,GAAG,MAAM,CAAC;4BACX,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;yBACzB;oBACD,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,sCAAsC,CAAC,IAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACjF,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3I,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;4BAC5B,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAC9B;wBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBACpF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpV,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,MAAM,EAAE,MAAM;YAChD,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACjH,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACzb,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvB,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBAC7B,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC3C,IAAI,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BACxB,MAAM,GAAG,KAAK,CAAC;4BACf,GAAG,GAAG,IAAI,CAAC;4BACX,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;yBAC3B;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjJ,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,IAAI,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;4BACjH,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBAC1B;wBACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,MAAM,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC1B,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;4BAC9B,GAAG,GAAG,MAAM,CAAC;4BACb,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;yBAC3B;wBACD,MAAM,GAAG,CAAC,CAAC;wBACX,MAAM,GAAG,SAAS,CAAC;wBACnB,GAAG,GAAG,MAAM,CAAC;wBACb,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC3B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnY,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,MAAM,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC;YAC1C,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7P,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxK,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC9M,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,EAAE,EAAE,GAAG;YAC5C,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACf,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;gBACxE,OAAO,GAAG,CAAC;aACX;YACD,IAAI,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE;gBAChD,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;aACrB;YACD,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,EAAE,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,IAAI;YACvC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvN,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBACrB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAClK,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,GAAG,UAAS,CAAC;YAC9C,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,CAAC;YAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG;YAChC,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YACxB,CAAC,GAAG,IAAI,CAAC;YACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;aACxB;YACD,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,GAAG;YACT,kBAAkB,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC,CAAC;QACF,WAAW,GAAG,UAAS,CAAC;YACvB,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBACrC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;aACvB;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBACrC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;aACvB;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBACrC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;aACtB;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,IAAI;YACvC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/O,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC5B,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/J,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;yBACtC;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC1L,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,GAAG,EAAE,GAAG;YAC3C,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YACtC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3P,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC5B,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtJ,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;yBACtC;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtM,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,GAAG,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI;YAC1C,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/O,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAC/B,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrJ,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;yBACzC;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7L,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YACzB,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/N,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;wBAC3B,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7I,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;yBACrC;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACzK,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC1B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/N,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC5B,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC9I,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;yBACtC;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC1K,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC;YAC1C,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,OAAO,GAAG,CAAC;aACX;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,GAAG,UAAS,CAAC;YAC9C,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,OAAO,GAAG,CAAC;aACX;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,CAAC;YAC/C,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,OAAO,GAAG,CAAC;aACX;YACD,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,EAAE;YAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;YACV,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE;gBACtB,OAAO,IAAI,CAAC,UAAU,CAAC;aACvB;YACD,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG;YACvB,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACpB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvM,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE;4BACtB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,UAAU,CAAC;yBAC3B;wBACD,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAChD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,4BAA4B,CAAC,KAAK,CAAC;wBAClC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnJ,IAAI,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3C,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/I,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,UAAS,EAAE,EAAE,IAAI;YAC1B,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvR,IAAI,GAAG,CAAC,CAAC;wBACT,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACf,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE;4BAC5C,IAAI,GAAG,CAAC,CAAC;yBACT;wBACD,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBACrB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjN,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,GAAG,UAAS,EAAE,EAAE,IAAI,EAAE,IAAI;YAChC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACjG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrZ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wBACV,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;wBAClB,IAAI,GAAG,GAAG,CAAC,EAAE;4BACZ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,OAAO,CAAC,GAAG,CAAC;yBAC5B;wBACD,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnO,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;wBACxD,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC3C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,uBAAuB,CAAC,KAAK,CAAC;wBAC7B,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;wBACjZ,EAAE,GAAG,QAAQ,CAAC;wBACd,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACnD,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAChG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAClD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,QAAQ,GAAG,KAAK,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,mFAAmF,CAAC,KAAK,CAAC;wBACzF,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpJ,GAAG,GAAG,IAAI,CAAC;wBACX,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;4BAClF,QAAQ,GAAG,KAAK,CAAC;yBACjB;wBACD,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,qCAAqC,CAAC,KAAK,CAAC;wBAC3C,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpJ,KAAK,GAAG,IAAI,CAAC;wBACb,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;4BACjI,QAAQ,GAAG,KAAK,CAAC;yBACjB;oBACF,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC,CAAC;oBACR,OAAO,CAAC,KAAK,CAAC;wBACd,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACxE,KAAK,CAAC,IAAI,QAAQ,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC1C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,mDAAmD,CAAC,KAAK,EAAE;wBAC1D,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,4BAA4B,CAAC,KAAK,EAAE;wBACnC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3J,KAAK,GAAG,IAAI,CAAC;wBACb,IAAI,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;4BACxC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;yBACvB;oBACF,OAAO,CAAC,KAAK,EAAE;wBACf,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/E,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/U,CAAC,CAAC;QACF,UAAU,GAAG,UAAS,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,IAAI,iBAAiB,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC3E,OAAO,EAAE,CAAC;aACV;QACF,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC1B,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACpB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvM,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE;4BACtB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,IAAI,CAAC,UAAU,CAAC;yBAChC;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBACrB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAClJ,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC1B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACjC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACzO,MAAM,GAAG,IAAI,CAAC;wBACd,IAAI,MAAM,KAAK,UAAU,CAAC,GAAG,EAAE;4BAC9B,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;yBACtC;wBACD,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE;4BACxC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;yBACvB;wBACD,GAAG,GAAG,SAAS,CAAC;wBAChB,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7I,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4BACvC,IAAI,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE;gCAC9C,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;6BACnB;4BACD,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;yBACjD;wBACD,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;wBACxC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,GAAG,CAAC;oBACpB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpL,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YACnC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjS,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7I,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,GAAG,CAAC,CAAC;wBACT,MAAM,GAAG,GAAG,CAAC;wBACb,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC3O,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,GAAG;YACzC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1D,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/S,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnJ,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,GAAG,CAAC,CAAC;wBACT,MAAM,GAAG,GAAG,CAAC;wBACb,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC1P,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YACpC,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjS,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC9I,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,GAAG,CAAC,CAAC;wBACT,MAAM,GAAG,GAAG,CAAC;wBACb,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC5O,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,GAAG;YAC1C,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1D,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/S,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpJ,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,GAAG,CAAC,CAAC;wBACT,MAAM,GAAG,GAAG,CAAC;wBACb,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC3P,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,MAAM,EAAE,MAAM;YAChD,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACpE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnU,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACvB,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1J,MAAM,GAAG,IAAI,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,GAAG,GAAG,CAAC;wBACX,MAAM,GAAG,GAAG,CAAC;wBACb,GAAG,GAAG,IAAI,CAAC;wBACX,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBAC3B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7Q,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,MAAM,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrI,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7e,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC;wBACrB,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACtB,IAAI,OAAO,KAAK,EAAE,EAAE;4BACnB,OAAO,GAAG,GAAG,CAAC;yBACd;wBACD,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5I,MAAM,GAAG,IAAI,CAAC;wBACd,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC/C,IAAI,GAAG,KAAK,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC;oBACP,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzF,QAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;wBACrI,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1J,QAAQ,GAAG,IAAI,CAAC;wBAChB,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAClB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACnB,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;4BACrB,EAAE,EAAE,CAAC;4BACL,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBACjC;wBACD,IAAI,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;4BAC1C,IAAI,GAAG,EAAE,CAAC;4BACV,MAAM,GAAG,IAAI,CAAC;4BACd,EAAE,GAAG,IAAI,CAAC;4BACV,GAAG,GAAG,MAAM,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;yBAC1B;wBACD,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;wBACtB,EAAE,EAAE,CAAC;wBACN,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,IAAI,CAAC,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;4BACrE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;yBACb;wBACD,MAAM,GAAG,EAAE,CAAC;wBACZ,MAAM,GAAG,GAAG,CAAC;wBACb,EAAE,GAAG,MAAM,CAAC;wBACZ,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC1b,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,MAAM,GAAG;YACR,YAAY,GAAG,kBAAkB,CAAC;QACnC,CAAC,CAAC;QACF,kBAAkB,GAAG,UAAS,GAAG;YAChC,IAAI,GAAG,CAAC;YACR,OAAO,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC;QACF,QAAQ,GAAG,UAAS,IAAI;YACvB,IAAI,CAAC,EAAE,IAAI,CAAC;YACZ,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACvD,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC9B,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACtC,MAAM;iBACN;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,MAAM,GAAG;YACR,IAAI,KAAK,EAAE;gBACV,OAAO;aACP;YACD,IAAI,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;QAC5B,CAAC,CAAC;QACF,IAAI,GAAG,UAAS,IAAI;YACnB,IAAI,IAAI,CAAC;YACT,IAAI,IAAI,KAAK,CAAC,EAAE;gBACf,kBAAkB,EAAE,CAAC;aACrB;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC;YACzC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjP,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;wBAC/C,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxJ,KAAK,GAAG,IAAI,CAAC;wBACb,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC1B,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,KAAK,CAAC;oBACtB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YACtC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjP,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;wBAC5C,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrJ,KAAK,GAAG,IAAI,CAAC;wBACb,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC1B,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,KAAK,CAAC;oBACtB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC9L,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjP,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;wBAC7C,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtJ,KAAK,GAAG,IAAI,CAAC;wBACb,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC1B,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,KAAK,CAAC;oBACtB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/L,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,UAAU,GAAG,UAAS,MAAM;YAC3B,IAAI,MAAM,CAAC;YACX,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,KAAK,GAAG,UAAS,IAAI;YACpB,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACvB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7M,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3I,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBACrB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrI,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,mBAAmB,GAAG,UAAS,EAAE,EAAE,IAAI;YACtC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;YACjB,EAAE,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACvF,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChD,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;gBACzC,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;aACvC;iBAAM,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;gBACzB,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;aACvC;iBAAM,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC1B,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;gBACzB,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;aACvC;iBAAM,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC1B,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;aACxC;iBAAM,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;aAC1B;iBAAM,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC1B,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;aACvC;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC5C,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;aACtC;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC5C,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;aACtC;YACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAC3C,EAAE,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;aACtC;QACF,CAAC,CAAC;QACF,cAAc,GAAG,UAAS,EAAE;YAC3B,IAAI,EAAE,CAAC;YACP,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YACzB,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YAC7B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wBACV,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE;4BACtB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;yBAC7C;wBACD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACrgB,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtJ,GAAG,GAAG,IAAI,CAAC;wBACX,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;yBACzE;wBACD,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACxC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACnC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC3K,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,UAAU,GAAG,UAAS,IAAI;YACzB,IAAI,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wBACV,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACrgB,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzJ,GAAG,GAAG,IAAI,CAAC;wBACX,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,SAAS,EAAE,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;yBACnE;wBACD,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;wBACjC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBACnC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpK,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;YAC9E,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACd,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC,GAAG,CAAC,CAAC;YACN,IAAI,GAAG,eAAe,CAAC;YACvB,EAAE,GAAG,CAAC,CAAC;YACP,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACnC,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC9B,CAAC,GAAG,EAAE,CAAC;gBACP,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC5F,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACjB;gBACD,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;aACf;YACD,IAAI,CAAC,KAAK,CAAC,EAAE;gBACZ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACnG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,MAAM,GAAG,WAAW,CAAC;YACrB,IAAI,GAAG,CAAC,CAAC;YACT,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACvC,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACpC,GAAG,GAAG,IAAI,CAAC;gBACX,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACnG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;iBACrH;qBAAM;oBACN,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;iBACnG;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;aACnB;YACD,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAChG,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG;YAC1B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACd,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG;YAC9B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACd,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,cAAa,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QACtG,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG;YACzB,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;YACd,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YAC7B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC9B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACxC,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YAC7B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YAC7B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG;YAChC,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG;YAC5B,IAAI,EAAE,CAAC;YACP,EAAE,GAAG,IAAI,CAAC;YACV,OAAO,EAAE,CAAC,GAAG,CAAC;QACf,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC/F,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACrL,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACrL,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACpG,UAAU,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACtG,UAAU,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAChS,OAAO,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAChuG,QAAQ,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACrV,UAAU,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAClf,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACtR,OAAO,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QAChG,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAChR,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACvM,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAClW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC7d,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC5G,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC3G,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QAC5e,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACtd,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC;wBAC1B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;wBACjD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;wBACrD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;wBAClD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;wBACrD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;wBACnD,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;wBACzD,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjK,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;wBAChB,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7K,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7K,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;wBACnB,YAAY,GAAG,CAAC,UAAS,KAAK;4BAC7B,IAAI,KAAK,CAAC;4BACV,OAAO,IAAI,CAAC;wBACb,CAAC,CAAC,CAAC;wBACH,KAAK,GAAG,KAAK,CAAC;wBACd,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,CAAC;wBACT,MAAM,EAAE,CAAC;oBACT,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QACrf,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACxC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACjC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAS,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO;YAChL,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,OAAO;aACP;YACD,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAS,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO;YACtH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;gBACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAChG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBACb,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;gBACd,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC/B,OAAO;aACP;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACvF,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnG,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChG,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtG,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACxF,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAS,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS;YACtJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACtB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;gBACrB,IAAI,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/I,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,OAAO;aACP;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAS,IAAI;YACvG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;gBACrB,OAAO;aACP;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;YAC/G,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;gBACpB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACtB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzD,OAAO;aACP;YACD,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;YACd,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAS,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO;YACnJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAClB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,OAAO;aACP;YACD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YACxB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;QACxC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACtC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACjC,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3B,QAAQ,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG;YAC9B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5G,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG;YACpC,IAAI,GAAG,EAAE,CAAC,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;YACZ,CAAC,CAAC,UAAU,EAAE,CAAC;QAChB,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,CAAC;YAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;YAC7D,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,EAAE;gBACX,OAAO;aACP;YACD,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;YACrB,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE;gBAC3B,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/D,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;aAC9B;YACD,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACpB,OAAO,GAAG,EAAE,CAAC;aACb;YACD,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACzC,IAAI,GAAG,OAAO,CAAC;YACf,EAAE,GAAG,CAAC,CAAC;YACP,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACpC,CAAC,GAAG,EAAE,CAAC;gBACP,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;gBAC1I,EAAE,EAAE,CAAC;aACL;YACD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YACjC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;YAChB,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBAC5C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,OAAO;aACP;YACD,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACtB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACf;iBAAM;gBACN,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACtB;QACF,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC;YACvC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;YAChB,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE;gBAC5C,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrB,OAAO;aACP;YACD,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACtB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACrB;iBAAM;gBACN,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACtB;QACF,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,EAAE;gBACN,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;aACpB;iBAAM;gBACN,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aACrB;QACF,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC;YACxC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;YACvC,CAAC,GAAG,IAAI,CAAC;YACT,GAAG,GAAG,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,GAAG,CAAC,CAAC;YACT,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE;gBACzC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBACd,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE;oBACxB,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;iBACrC;aACD;YACD,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;YAChB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAClH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzH,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aACzH;YACD,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACnE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChN,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9B;YACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpK,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBAC3B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzH,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACvB;YACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACzH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACzH,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;QAC3B,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM;YAChE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YACzH,CAAC,GAAG,IAAI,CAAC;YACT,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,IAAI,QAAQ,EAAE;gBACb,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnC;YACD,GAAG,GAAG,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE;gBACpD,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;gBACvC,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE;oBACxB,GAAG,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;iBACrC;aACD;YACD,IAAI,GAAG,CAAC,CAAC;YACT,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAC3B,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBACd,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;oBACpD,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;oBACxB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACtB,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;oBAC1B,OAAO;iBACP;aACD;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACpD,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;gBACb,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;oBACpD,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACvB;aACD;YACD,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;YAChB,EAAE,GAAG,IAAI,CAAC;YACV,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;gBAChB,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBACnE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC3R,CAAC,GAAG,IAAI,CAAC;iBACT;aACD;iBAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;gBACvB,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBACnE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnM,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9B;aACD;iBAAM,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;gBACtB,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBAClE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5O,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9B;aACD;iBAAM,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;gBACtB,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBAClE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC5O,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC9B;aACD;iBAAM;gBACN,MAAM,CAAC,IAAI,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;aACvD;YACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvJ,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACzD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aACzH;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACrB,EAAE,GAAG,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;oBACf,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;wBACpI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;qBACzH;iBACD;qBAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;oBACvB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5I,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;iBACzH;aACD;YACD,IAAI,QAAQ,EAAE;gBACb,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aACzH;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC3B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aACzH;iBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC5B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aACzH;YACD,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;YACxB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;QAC7B,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3H,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,UAAS,CAAC;YAC5C,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAC3B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACX,IAAI,GAAG,CAAC,CAAC;gBACT,EAAE,GAAG,CAAC,CAAC;gBACP,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBACnC,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC9B,CAAC,GAAG,EAAE,CAAC;oBACP,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,EAAE;wBACV,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC3B;oBACD,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;iBACf;aACD;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,cAAc,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC;YACtC,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;YAC5B,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAC3B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACX,CAAC,GAAG,CAAC,CAAC;gBACN,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBAChC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,EAAE;wBACV,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC1B;oBACD,GAAG,GAAG,CAAC,CAAC;oBACR,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;wBACzH,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC1C,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;qBAChB;oBACD,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACnB;aACD;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YAClC,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACV,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,CAAC,EAAE,MAAM;YAC/C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC;YAC9C,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;YACnB,IAAI,CAAC,KAAK,WAAW,CAAC,GAAG,EAAE;gBAC1B,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;aAClB;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,EAAE;gBAC9C,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;aAChB;YACD,KAAK,GAAG,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACzB,IAAI,KAAK,GAAG,CAAC,EAAE;gBACd,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;oBACrB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;wBACrB,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1B;oBACD,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACzC;qBAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;oBAC5B,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACzB;aACD;iBAAM;gBACN,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE;oBAC1B,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBACtB;gBACD,OAAO;aACP;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAChE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;aACnC;YACD,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACrB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;aAC9C;YACD,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBAC7B,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;oBAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACvB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;wBACrB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC9C;iBACD;gBACD,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE;oBAC7B,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;iBAClH;qBAAM;oBACN,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBACpB;gBACD,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC/D,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;aACnC;QACF,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,MAAM;YAC3C,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,MAAM;YAC3C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACjB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YAClC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBAChD,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3B,OAAO;aACP;YACD,GAAG,GAAG,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1C;iBAAM;gBACN,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;aACnC;QACF,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YAClC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE;gBACzD,CAAC,GAAG,KAAK,CAAC;aACV;YACD,GAAG,GAAG,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YACnC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,EAAE;gBACzD,CAAC,GAAG,KAAK,CAAC;aACV;YACD,GAAG,GAAG,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;aAC9C;iBAAM;gBACN,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;aACvC;QACF,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACxD,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;YAC5F,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAC3B,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;aACd;YACD,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5G,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;gBAC3O,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACxB;iBAAM;gBACN,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aAC9G;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC9J,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;aAC9G;YACD,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;gBAC3O,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC1B,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAC/J,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBACxB;gBACD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC1B,OAAO;aACP;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE;gBACzC,MAAM,GAAG,CAAC,CAAC;gBACX,EAAE,GAAG,IAAI,CAAC;gBACV,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;oBACtD,MAAM,GAAG,IAAI,CAAC;oBACd,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;wBAClB,MAAM,GAAG,CAAC,CAAC;qBACX;iBACD;gBACD,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,GAAG,SAAS,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjD,eAAe,GAAG,KAAK,CAAC;gBACxB,CAAC,GAAG,CAAC,CAAC;gBACN,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBAClC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzH,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;wBAChB,eAAe,GAAG,IAAI,CAAC;qBACvB;yBAAM,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;wBAC3C,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC7C,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;qBAC3B;yBAAM;wBACN,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBAC3B;oBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACjB;gBACD,IAAI,CAAC,eAAe,EAAE;oBACrB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;iBACvB;gBACD,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBAC7B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACvB,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBAC3B;gBACD,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aAC9B;YACD,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;gBAC5I,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE;oBACpE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1H,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;oBACzC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC/B,OAAO;iBACP;gBACD,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACX,OAAO;aACP;YACD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3G,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YAC5C,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC;YAClD,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC;YAChD,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,EAAE,GAAG,IAAI,CAAC;YACV,IAAI,CAAC,GAAG,GAAG,EAAE;gBACZ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,OAAO;aACP;YACD,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;YACd,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBAC7C,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAClB;YACD,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,UAAU,GAAG;YACZ,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnM,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;wBAC/B,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;wBACpB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACnB,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9I,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAChI,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YACvB,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,EAAE;gBAC5B,OAAO;aACP;YACD,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC;YAClB,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YACxB,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;YAC7B,GAAG,GAAG,CAAC,CAAC;YACR,EAAE,GAAG,KAAK,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;YACjB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;YACnC,GAAG,GAAG,IAAI,CAAC;YACX,EAAE,GAAG,MAAM,CAAC;YACZ,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG;YAC5B,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC;YAC9B,IAAI,GAAG,CAAC,CAAC;YACT,EAAE,GAAG,KAAK,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAClB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;YACpC,IAAI,GAAG,IAAI,CAAC;YACZ,EAAE,GAAG,MAAM,CAAC;YACZ,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC;YACjC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;YACb,CAAC,GAAG,IAAI,CAAC;YACT,EAAE,GAAG,CAAC,CAAC;YACP,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;gBAChB,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC5B;iBAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;gBACvB,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;aACnD;iBAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;gBACvB,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;aACrD;iBAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;gBACvB,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;aAC5B;iBAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;gBACvB,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;aAC3B;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC;YAClC,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YACjC,GAAG,GAAG,CAAC,CAAC;YACR,GAAG,GAAG,SAAS,CAAC;YAChB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3I,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;YACjB,MAAM,GAAG,SAAS,CAAC;YACnB,GAAG,GAAG,IAAI,CAAC;YACX,GAAG,GAAG,MAAM,CAAC;YACb,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC;YACxC,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YACjC,GAAG,GAAG,CAAC,CAAC;YACR,GAAG,GAAG,SAAS,CAAC;YAChB,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjJ,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;YAChB,MAAM,GAAG,SAAS,CAAC;YACnB,GAAG,GAAG,IAAI,CAAC;YACX,GAAG,GAAG,MAAM,CAAC;YACb,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,GAAG,UAAS,CAAC,EAAE,MAAM,EAAE,CAAC;YAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACzD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjT,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,CAAC,GAAG,EAAE,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvN,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,CAAC,CAAC,IAAI,EAAE,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC3O,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,GAAG,UAAS,MAAM,EAAE,CAAC;YAC3B,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3O,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,CAAC,GAAG,EAAE,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5B,CAAC,CAAC,IAAI,EAAE,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrK,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,GAAG,UAAS,MAAM,EAAE,CAAC;YAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,IAAI,CAAC;oBACrB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAChK,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,GAAG,UAAS,CAAC,EAAE,CAAC;YACrB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7R,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,CAAC,GAAG,EAAE,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvN,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,CAAC,CAAC,IAAI,EAAE,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtN,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,QAAQ,GAAG,UAAS,CAAC,EAAE,CAAC;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACjD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7R,CAAC,GAAG,CAAC,CAAC;wBACN,GAAG,GAAG,SAAS,CAAC;wBAChB,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,CAAC,GAAG,EAAE,CAAC;wBACP,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvN,MAAM,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,CAAC,CAAC,IAAI,EAAE,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACzB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACxN,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,QAAQ,GAAG,UAAS,CAAC,EAAE,CAAC;YACvB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YAChC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3O,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,GAAG,GAAG,EAAE,CAAC;wBACT,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAClH,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,8FAA8F,CAAC,KAAK,CAAC;wBACpG,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5J,GAAG,GAAG,IAAI,CAAC;oBACZ,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,GAAG,CAAC;oBACpB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtK,CAAC,CAAC;QACF,QAAQ,GAAG,UAAS,CAAC;YACpB,IAAI,CAAC,CAAC;YACN,OAAO,CAAC,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,CAAC,CAAC;QACF,QAAQ,GAAG,UAAS,CAAC,EAAE,KAAK,EAAE,GAAG;YAChC,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;YAClF,GAAG,GAAG,CAAC,CAAC;YACR,KAAK,GAAG,KAAK,CAAC;YACd,IAAI,GAAG,CAAC,CAAC;YACT,IAAI,KAAK,IAAI,GAAG,EAAE;gBACjB,IAAI,GAAG,CAAC,CAAC;gBACT,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM,GAAG,GAAG,CAAC;gBACb,GAAG,GAAG,IAAI,CAAC;gBACX,KAAK,GAAG,MAAM,CAAC;gBACf,IAAI,GAAG,MAAM,CAAC;gBACd,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aAC1B;YACD,IAAI,GAAG,KAAK,CAAC;YACb,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACrF,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClB,MAAM,GAAG,CAAC,CAAC;oBACX,MAAM,GAAG,KAAK,CAAC;oBACf,MAAM,GAAG,GAAG,CAAC;oBACb,GAAG,GAAG,MAAM,CAAC;oBACb,KAAK,GAAG,MAAM,CAAC;oBACf,IAAI,GAAG,MAAM,CAAC;oBACd,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;iBAC1B;gBACD,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9E,KAAK,GAAG,IAAI,CAAC;gBACb,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACvB;YACD,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC;YACxC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACrB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7M,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;4BACxC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;4BACvJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO;yBAChB;wBACD,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzJ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClQ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC5J,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,IAAI;YACvC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC9B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnO,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;wBAClB,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACpJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAClJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAC/I,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACvE,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,mDAAmD,CAAC,KAAK,CAAC;wBACzD,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/I,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClQ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvI,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,4DAA4D,CAAC,KAAK,CAAC;wBAClE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzK,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtQ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvK,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBACxJ,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACN,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;wBACnB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC9K,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,IAAI;YAC1C,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC3B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7N,CAAC,GAAG,IAAI,CAAC;wBACR,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACjE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,6CAA6C,CAAC,KAAK,CAAC;wBACnD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACjI,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACxK,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,SAAS;YAC/C,IAAI,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3B,CAAC,GAAG,IAAI,CAAC;YACT,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;YACjC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;YACpD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,SAAS,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,QAAQ,EAAE,IAAI;YACvD,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACR,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,yBAAyB,CAAC,KAAK,CAAC;wBAC/B,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE;4BACvC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;yBACnB;6BAAM;4BACN,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;yBACvD;wBACD,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;wBACvD,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;wBACtD,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;wBACtD,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;wBACvD,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;wBACvD,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACd,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACvF,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,kEAAkE,CAAC,KAAK,EAAE;wBACzE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACf,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACnI,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,EAAE;wBACtC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACpB,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACnI,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnM,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,IAAI;YACjD,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACjC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7O,CAAC,GAAG,IAAI,CAAC;wBACR,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACjF,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAClF,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,yBAAyB,CAAC,KAAK,CAAC;wBAC/B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;wBACjC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,oEAAoE,CAAC,KAAK,CAAC;wBAC1E,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBAClC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,qEAAqE,CAAC,KAAK,CAAC;wBAC3E,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;wBACjC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACjI,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACzL,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,IAAI;YACnD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACpD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/R,CAAC,GAAG,IAAI,CAAC;wBACR,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzK,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,qJAAqJ,CAAC,KAAK,CAAC;wBAC3J,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC9B,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC9P,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;wBAC3B,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,GAAC,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1Q,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACpJ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC;wBAC9B,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACjI,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7O,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,EAAE,IAAI;YAC5C,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC3B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7N,CAAC,GAAG,IAAI,CAAC;wBACR,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,yBAAyB,CAAC,KAAK,CAAC;wBAC/B,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;4BAC1B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACd;6BAAM;4BACN,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACd;wBACD,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;wBACpC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;wBACpC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACjI,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC1K,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,UAAU;YACvD,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACnF,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrX,CAAC,GAAG,IAAI,CAAC;wBACR,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACjE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,6CAA6C,CAAC,KAAK,CAAC;wBACnD,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;4BAC1B,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;4BAC1J,IAAI,CAAC,KAAK,WAAW,CAAC,GAAG,EAAE;gCAC1B,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gCACvJ,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO;6BAChB;4BACD,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;4BACjJ,IAAI,GAAG,CAAC,CAAC;4BACT,EAAE,GAAG,CAAC,CAAC;4BACP,OAAO,IAAI,EAAE;gCACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;oCAAE,MAAM;iCAAE;gCACpC,CAAC,GAAG,EAAE,CAAC;gCACP,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;gCAC9H,IAAI,CAAC,GAAG,CAAC,EAAE;oCACV,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iCACpJ;gCACD,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gCACrC,EAAE,EAAE,CAAC;6BACL;4BACD,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;yBACjJ;6BAAM;4BACN,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;4BAChJ,MAAM,GAAG,CAAC,CAAC;4BACX,IAAI,GAAG,CAAC,CAAC;4BACT,OAAO,IAAI,EAAE;gCACZ,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE;oCAAE,MAAM;iCAAE;gCACxC,GAAG,GAAG,IAAI,CAAC;gCACX,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;gCAC5I,IAAI,GAAG,GAAG,CAAC,EAAE;oCACZ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;iCAChJ;gCACD,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;gCACxE,IAAI,EAAE,CAAC;6BACP;4BACD,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;yBAChJ;wBACD,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBACf,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;wBACpC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;wBACpC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACpK,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjU,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,UAAU,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,KAAK,EAAE,IAAI;YACjD,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvQ,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,CAAC,CAAC;wBACL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;wBACzC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACnI,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,+GAA+G,CAAC,KAAK,CAAC;wBACrH,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;wBAC3C,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBACjB,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACL,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACrH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,yBAAyB,CAAC,KAAK,CAAC;wBAC/B,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACvD,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,kCAAkC,CAAC,KAAK,EAAE;wBACzC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/J,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpQ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACpJ,IAAI,CAAC,KAAK,CAAC,EAAE;4BACZ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;yBACrJ;6BAAM;4BACN,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;yBACpE;wBACD,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,IAAI,CAAC,KAAK,CAAC,EAAE;4BACZ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;yBACzB;6BAAM;4BACN,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;yBACrF;oBACF,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,gCAAgC,CAAC,KAAK,CAAC;wBACtC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACrF,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,wGAAwG,CAAC,KAAK,CAAC;wBAC9G,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChM,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACnI,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrN,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,KAAK,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,GAAG,EAAE,IAAI,EAAE,MAAM;YACvD,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACvD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrS,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,QAAQ,EAAE,CAAC;wBACjB,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACrE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,iDAAiD,CAAC,KAAK,CAAC;wBACvD,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,CAAC,GAAG,EAAE,CAAC;wBACP,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;4BACjF,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;4BACvJ,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO;yBAChB;wBACD,IAAI,CAAC,CAAC,SAAS,EAAE;4BAChB,MAAM,CAAC,GAAG,CAAC,CAAC;yBACZ;wBACD,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAC5C,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;wBACnB,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACpJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAClJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;wBACzJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;wBACtJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC3J,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;wBACnB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;wBACpB,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACzC,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnP,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG,UAAS,IAAI;YAC7C,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YAC3H,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACtlB,OAAO,GAAG,KAAK,CAAC;4BAChB,CAAC,GAAG,IAAI,CAAC;4BACT,IAAI,CAAC,CAAC,QAAQ,EAAE;gCACf,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,OAAO,CAAC;6BACxB;4BACD,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;4BAC7C,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACtB,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACf,KAAK,CAAC,IAAI,EAAE,EAAE;gCAAE,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBACvB,eAAe,CAAC,KAAK,CAAC;4BACrB,OAAO,GAAG,IAAI,CAAC;4BACf,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACvE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC1I,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,OAAO,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC;4BACd,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;gCAAE,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BACtD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBACvB,kCAAkC,CAAC,KAAK,CAAC;4BACxC,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;4BAChD,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACvB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACnB,KAAK,CAAC,IAAI,IAAI,EAAE;gCAAE,EAAE,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBACvB,iBAAiB,CAAC,KAAK,CAAC;4BACvB,OAAO,GAAG,IAAI,CAAC;4BACf,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;4BACzE,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACpI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,KAAK,EAAE;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACjI,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,OAAO,CAAC;wBACzB,OAAO,CAAC,KAAK,CAAC;4BACd,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;wBAClB,cAAc,CAAC,KAAK,CAAC;4BACnB,EAAE,GAAG,IAAI,CAAC;4BACV,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gCAAE,EAAE,GAAG,EAAE,CAAC;gCAAC,SAAS;6BAAE;4BACvH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACxB,kGAAkG,CAAC,KAAK,EAAE;4BACzG,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;4BACb,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,EAAE,GAAG,EAAE,CAAC;gCAAC,SAAS;6BAAE;4BACpE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,EAAE,GAAG,EAAE,CAAC;gCAAC,SAAS;6BAAE;4BACtE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACxB,+CAA+C,CAAC,KAAK,EAAE;4BACtD,CAAC,GAAG,IAAI,CAAC;4BACT,OAAO,GAAG,IAAI,CAAC;4BACf,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;4BACtE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,KAAK,EAAE;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACtI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,KAAK,EAAE;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC1I,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,OAAO,CAAC;wBACzB,wDAAwD,CAAC,KAAK,EAAE;4BAC/D,GAAG,GAAG,IAAI,CAAC;4BACX,OAAO,GAAG,IAAI,CAAC;4BACf,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACvE,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,KAAK,EAAE;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACzI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,KAAK,EAAE;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BAC1I,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,OAAO,CAAC;wBACzB,OAAO,CAAC,KAAK,EAAE,CAAC;wBACjB,OAAO,CAAC,KAAK,EAAE,CAAC;wBACjB,KAAK,EAAE,CAAC;wBACT,OAAO,CAAC,KAAK,CAAC;4BACd,OAAO,GAAG,KAAK,CAAC;4BAChB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,OAAO,CAAC;wBACxB,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;oBAAE,OAAQ,OAAO,CAAC;iBAAE;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;oBAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QACjkB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,aAAa,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,GAAG,EAAE,IAAI;YAC7C,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACrL,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjoB,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;wBACZ,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBACnD,KAAK,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAClE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,8CAA8C,CAAC,KAAK,CAAC;wBACnD,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAChE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,4CAA4C,CAAC,KAAK,CAAC;wBAClD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;wBACzB,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACjI,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC;wBACN,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBACjB,OAAO,CAAC,KAAK,CAAC;wBACb,EAAE,GAAG,IAAI,CAAC;wBACV,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC9C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,wBAAwB,CAAC,KAAK,CAAC;wBAC9B,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/I,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBACjB,gCAAgC,CAAC,KAAK,EAAE;wBACvC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjJ,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjK,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBACjB,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,KAAK,CAAC;wBACN,IAAI,GAAG,GAAG,CAAC;wBACX,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACnE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACtE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACtE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACxE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACzE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAClE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACnE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACpE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACpE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACpE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACnE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACpE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACrE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACrE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACrE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACtE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACrE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACzE,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC3E,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,8CAA8C,CAAC,KAAK,EAAE;wBACrD,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,wDAAwD,CAAC,KAAK,EAAE;wBAC/D,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC9I,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,wDAAwD,CAAC,KAAK,EAAE;wBAC/D,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5I,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,0DAA0D,CAAC,KAAK,EAAE;wBACjE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClL,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,2DAA2D,CAAC,KAAK,EAAE;wBAClE,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/I,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,oDAAoD,CAAC,KAAK,EAAE;wBAC3D,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,qDAAqD,CAAC,KAAK,EAAE;wBAC5D,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,sDAAsD,CAAC,KAAK,EAAE;wBAC7D,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,sDAAsD,CAAC,KAAK,EAAE;wBAC7D,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,sDAAsD,CAAC,KAAK,EAAE;wBAC7D,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;wBAChB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/K,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,qDAAqD,CAAC,KAAK,EAAE;wBAC5D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,sDAAsD,CAAC,KAAK,EAAE;wBAC7D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,uDAAuD,CAAC,KAAK,EAAE;wBAC9D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,uDAAuD,CAAC,KAAK,EAAE;wBAC9D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,uDAAuD,CAAC,KAAK,EAAE;wBAC9D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,wDAAwD,CAAC,KAAK,EAAE;wBAC/D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtM,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,uDAAuD,CAAC,KAAK,EAAE;wBAC9D,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1I,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,2DAA2D,CAAC,KAAK,EAAE;wBAClE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnJ,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,6DAA6D,CAAC,KAAK,EAAE;wBACpE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACjB,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACrH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,gGAAgG,CAAC,KAAK,EAAE;wBACvG,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;wBACb,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,KAAK,CAAC,IAAI,IAAI,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACtC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,iBAAiB,CAAC,KAAK,EAAE;wBACxB,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBACjB,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrK,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,IAAI,GAAG,IAAI,CAAC;wBACZ,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACvC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,kBAAkB,CAAC,KAAK,EAAE;wBACzB,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACtK,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7kB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,GAAG,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,KAAK;YACxD,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YACzT,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KA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EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACv6B,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,UAAU,GAAG,UAAS,CAAC,EAAE,MAAM;YAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YACrF,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACzX,GAAG,GAAG,CAAC,CAAC;wBACR,KAAK,GAAG,KAAK,CAAC;wBACd,SAAS,GAAG,CAAC,CAAC;wBACd,SAAS,GAAG,MAAM,CAAC;wBACnB,KAAK,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACnD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC/J,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAClB,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACvC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,mBAAmB,CAAC,KAAK,CAAC;wBACxB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC9P,CAAC,GAAG,EAAE,CAAC;wBACP,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;wBACrC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BACjF,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;4BACnC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;gCAC1H,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gCACzD,KAAK,GAAG,IAAI,CAAC;6BACb;yBACD;6BAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE;4BAC3G,GAAG,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;4BACtC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;gCACxM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;gCACxB,KAAK,GAAG,IAAI,CAAC;6BACb;yBACD;oBACF,KAAK,CAAC,CAAC;oBACR,OAAO,CAAC,KAAK,CAAC;wBACd,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC5B,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;4BAClB,GAAG,GAAG,CAAC,CAAC;4BACR,KAAK,GAAG,KAAK,CAAC;yBACd;oBACF,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;oBACxC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtT,CAAC,CAAC;QACF,cAAc,GAAG,UAAS,MAAM;YAC/B,IAAI,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;YACzJ,KAAK,GAAG,CAAC,CAAC;YACV,GAAG,GAAG,CAAC,CAAC;YACR,EAAE,GAAG,KAAK,CAAC;YACX,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtB,IAAI,GAAG,CAAC,CAAC;gBACT,MAAM,GAAG,CAAC,CAAC;gBACX,MAAM,GAAG,KAAK,CAAC;gBACf,KAAK,GAAG,IAAI,CAAC;gBACb,GAAG,GAAG,MAAM,CAAC;gBACb,EAAE,GAAG,MAAM,CAAC;gBACZ,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;aACxB;YACD,CAAC,GAAG,CAAC,CAAC;YACN,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACpC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;oBAChC,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBAChC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACjB,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;wBAC7B,MAAM,GAAG,CAAC,CAAC;wBACX,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBACpB,MAAM,GAAG,KAAK,CAAC;wBACf,KAAK,GAAG,MAAM,CAAC;wBACf,GAAG,GAAG,MAAM,CAAC;wBACb,EAAE,GAAG,MAAM,CAAC;wBACZ,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;qBACxB;oBACD,MAAM,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM,GAAG,IAAI,CAAC;oBACd,KAAK,GAAG,MAAM,CAAC;oBACf,GAAG,GAAG,MAAM,CAAC;oBACb,EAAE,GAAG,MAAM,CAAC;oBACZ,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;iBACxB;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,MAAM,GAAG,CAAC,CAAC;YACX,OAAO,GAAG,CAAC,CAAC;YACZ,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,GAAG,MAAM,CAAC;YACf,GAAG,GAAG,OAAO,CAAC;YACd,EAAE,GAAG,OAAO,CAAC;YACb,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO;YAC/D,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;YACxJ,SAAS,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,CAAC,CAAC;YACT,KAAK,GAAG,KAAK,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;gBAC3D,IAAI,GAAG,MAAM,CAAC;gBACd,MAAM,GAAG,CAAC,CAAC;gBACX,MAAM,GAAG,KAAK,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;gBACjB,IAAI,GAAG,MAAM,CAAC;gBACd,KAAK,GAAG,MAAM,CAAC;gBACf,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aAChC;YACD,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;YACnB,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAClB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,OAAO,EAAE;gBACxC,MAAM,GAAG,KAAK,CAAC;gBACf,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;gBACtB,MAAM,GAAG,IAAI,CAAC;gBACd,SAAS,GAAG,MAAM,CAAC;gBACnB,IAAI,GAAG,MAAM,CAAC;gBACd,KAAK,GAAG,MAAM,CAAC;gBACf,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aAChC;YACD,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;YACrB,MAAM,GAAG,MAAM,CAAC;YAChB,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YACtB,MAAM,GAAG,EAAE,CAAC;YACZ,SAAS,GAAG,MAAM,CAAC;YACnB,IAAI,GAAG,MAAM,CAAC;YACd,KAAK,GAAG,MAAM,CAAC;YACf,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1H,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,IAAI;YACzC,IAAI,CAAC,EAAE,IAAI,CAAC;YACZ,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC7J,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,IAAI;YAC1C,IAAI,CAAC,EAAE,IAAI,CAAC;YACZ,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACpJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClJ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5J,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,MAAM,EAAE,CAAC;YAC7C,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/M,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACzqB,CAAC,GAAG,IAAI,CAAC;wBACT,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;wBACpB,MAAM,GAAG,CAAC,CAAC;wBACX,UAAU,GAAG,KAAK,CAAC;wBACnB,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;wBACpB,CAAC,GAAG,CAAC,CAAC;oBACN,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,gCAAgC,CAAC,IAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACrE,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;wBACpB,KAAK,GAAG,CAAC,CAAC;wBACV,OAAO,IAAI,EAAE;4BACZ,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;gCAAE,MAAM;6BAAE;4BAC9D,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBACjB;wBACD,IAAI,CAAC,GAAG,KAAK,EAAE;4BACd,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;yBAC5K;wBACD,IAAI,CAAC,IAAI,GAAG,EAAE;4BACb,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAC9B;wBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,gCAAgC,CAAC,IAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACrE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBACxB,EAAE,GAAG,CAAC,CAAC;wBACP,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC5C,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,wBAAwB,CAAC,KAAK,CAAC;wBAC9B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;wBAC5B,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAC5C,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;wBAC3B,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,CAAC;wBACrC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;wBAC5B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;wBAC5B,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,+BAA+B,CAAC,KAAK,EAAE;wBACtC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;wBAC5B,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC3E,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,sDAAsD,CAAC,KAAK,EAAE;wBAC7D,IAAI,CAAC,KAAK,GAAG,EAAE;4BACd,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAC7C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;4BAC7B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;4BAC3C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;yBAC5B;wBACD,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvQ,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC3B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS,CAAC,CAAC;oBAC/C,OAAO,CAAC,KAAK,EAAE;wBACf,yBAAyB,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS,CAAC,CAAC;oBAC9C,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,KAAK,CAAC;wBACN,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAClB,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;wBACnD,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACnB,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACvB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC1E,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,qDAAqD,CAAC,KAAK,EAAE;wBAC5D,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,EAAE,GAAG,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxI,QAAQ,GAAG,EAAE,CAAC;wBACd,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACxB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE;4BAC/B,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;yBAC9J;wBACD,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE;4BAClB,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;4BACvB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;4BAC5B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;yBAC5B;wBACD,UAAU,GAAG,KAAK,CAAC;wBACnB,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;wBACpC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACxB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACxC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChB,IAAI,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE;4BAC5C,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;yBACrB;oBACF,OAAO,CAAC,KAAK,EAAE;wBACf,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACrF,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,gEAAgE,CAAC,KAAK,EAAE;wBACvE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,IAAI,UAAU,EAAE;4BACf,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;yBACrB;wBACD,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;wBACrD,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACrB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChB,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC1E,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,qDAAqD,CAAC,KAAK,EAAE;wBAC5D,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBACjB,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,QAAQ,GAAG,IAAI,CAAC;wBAChB,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACrB,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE;4BACnB,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;4BACf,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;yBACnC;wBACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE;4BAChC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;yBAC7J;wBACD,UAAU,GAAG,KAAK,CAAC;wBACnB,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;wBACpC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACzC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE;4BAChC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;4BACf,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;yBAClC;oBACF,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,EAAE;wBACf,IAAI,CAAC,UAAU,EAAE;4BAChB,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;4BACrD,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACrB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BAChB,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;yBACzB;wBACD,IAAI,CAAC,IAAI,GAAG,EAAE;4BACb,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;4BAC5J,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAC9B;wBACD,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBACrC,MAAM,GAAG,CAAC,CAAC;wBACX,IAAI,GAAG,IAAI,CAAC;wBACZ,IAAI,GAAG,MAAM,CAAC;wBACd,IAAI,IAAI,IAAI,GAAG,EAAE;4BAChB,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;4BAC1D,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4BACnB,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;yBACnB;wBACD,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACnB,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC/C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC/C,KAAK,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACrD,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAChD,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,0BAA0B,CAAC,KAAK,EAAE;wBACjC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,iCAAiC,CAAC,KAAK,EAAE;wBACxC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAClB,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,uCAAuC,CAAC,KAAK,EAAE;wBAC9C,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;wBACnB,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,kCAAkC,CAAC,KAAK,EAAE;wBACzC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAC7C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;wBAC7B,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC3C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;wBAC5B,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjQ,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC3B,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjQ,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,KAAK,EAAE;wBACR,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACpE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,+CAA+C,CAAC,KAAK,EAAE;wBACtD,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;wBACnB,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;wBAC3J,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;wBAC5B,EAAE,GAAG,CAAC,CAAC;oBACP,oBAAoB,CAAC,KAAK,EAAE;wBAC3B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC1F,GAAG,GAAG,EAAE,CAAC;wBACT,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;wBAChI,IAAI,GAAG,GAAG,CAAC,EAAE;4BACZ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;yBACpJ;wBACD,KAAK,CAAC,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACnE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,8CAA8C,CAAC,KAAK,EAAE;wBACrD,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBACvJ,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzJ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtQ,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBACxI,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,EAAE,CAAC;wBACN,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBAAC,KAAK,EAAE;wBAClC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACjJ,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrnB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,MAAM,EAAE,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC;YACpC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC;YACtE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3U,CAAC,GAAG,IAAI,CAAC;wBACT,UAAU,GAAG,KAAK,CAAC;wBACnB,IAAI,GAAG,CAAC,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC;oBACP,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzF,MAAM,GAAG,EAAE,CAAC;wBACZ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;wBAChI,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS,CAAC,CAAC;yBAAE;wBAChF,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3I,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;oBAAC,KAAK,CAAC;wBACtB,QAAQ,GAAG,EAAE,CAAC;wBACd,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE;4BAC3C,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;yBAChJ;wBACD,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,UAAU,GAAG,QAAQ,CAAC;wBACtB,EAAE,EAAE,CAAC;wBACN,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtR,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACxC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/P,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,GAAG,CAAC,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC;oBACP,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzF,MAAM,GAAG,EAAE,CAAC;wBACZ,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;wBAChI,IAAI,MAAM,GAAG,CAAC,EAAE;4BACf,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;yBAChJ;wBACD,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,EAAE,EAAE,CAAC;wBACN,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;wBAChJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC5M,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG;YACnC,IAAI,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC,GAAG,CAAC,CAAC;YACN,GAAG,GAAG,SAAS,CAAC;YAChB,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,GAAG,CAAC,CAAC;YACT,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC,GAAG,IAAI,CAAC;YACT,GAAG,GAAG,MAAM,CAAC;YACb,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG;YAC3B,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACxC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/P,CAAC,GAAG,CAAC,CAAC;wBACN,IAAI,GAAG,CAAC,CAAC;wBACT,GAAG,GAAG,SAAS,CAAC;wBAChB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;4BAC3C,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;yBAC/B;wBACD,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,MAAM,GAAG,EAAE,CAAC;wBACZ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACjB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;4BACtC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;4BAC7B,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;gCAClC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;6BACf;yBACD;6BAAM,IAAI,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;4BAC1C,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;yBACf;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC/B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC3M,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YACxB,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC;YAC7C,GAAG,GAAG,CAAC,CAAC;YACR,EAAE,GAAG,KAAK,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE;gBAClC,IAAI,GAAG,CAAC,CAAC;gBACT,MAAM,GAAG,KAAK,CAAC;gBACf,GAAG,GAAG,IAAI,CAAC;gBACX,EAAE,GAAG,MAAM,CAAC;gBACZ,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aACjB;YACD,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC;YACd,GAAG,GAAG,MAAM,CAAC;YACb,EAAE,GAAG,MAAM,CAAC;YACZ,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG;YAC1B,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/O,CAAC,GAAG,CAAC,CAAC;wBACN,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,MAAM,GAAG,EAAE,CAAC;wBACZ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,IAAI,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;gCACnC,CAAC,GAAG,CAAC,CAAC,CAAC;gCACP,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,CAAC;6BAClB;4BACD,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;yBACb;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC1L,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,OAAO,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG;YAC7B,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnM,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClI,EAAE,CAAC;wBACH,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;wBAChB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC7B,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjJ,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,UAAU,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,GAAG;YACpC,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,GAAG;YAC1C,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,SAAS,EAAE,CAAC;YAC7C,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;YACrD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,IAAI,IAAI,GAAG,IAAI,CAAC;YAAC,IAAI;gBAAE,CAAC,EAAE,OAAO,IAAI,EAAE;oBAAE,QAAQ,EAAE,EAAE;wBAAE,KAAK,CAAC;4BAAE,SAAS,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC;4BAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACla,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;4BACZ,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC;4BACtB,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;4BACnB,CAAC,GAAG,IAAI,CAAC;4BACT,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,UAAS,GAAG;oCAAI,OAAO;wCACvC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;wCACtB,CAAC,GAAG,QAAQ,EAAE,CAAC;wCACf,IAAI,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE;4CACvC,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;4CACzC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;4CAClC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4CACf,IAAI,EAAE,EAAE;gDACP,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;6CAChB;iDAAM;gDACN,MAAM,CAAC,CAAC,CAAC,CAAC;6CACV;yCACD;oCACF,CAAC,CAAC;gCAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;4BACjB,IAAI,CAAC,KAAK,qBAAqB,EAAE;gCAChC,CAAC,GAAG,QAAQ,CAAC;6BACb;4BACD,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC/B,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;4BAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,IAAG,EAAE,EAAE;gCAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6BAAE;4BAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,MAAM,CAAC,CAAC;6BAAE;4BACtI,GAAG,GAAG,EAAE,CAAC;4BACT,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9B,KAAK,EAAE;oBAAC,OAAO;iBAAE;aAAE;YAAC,OAAM,GAAG,EAAE;gBAAE,IAAI,GAAG,GAAG,CAAC;gBAAC,EAAE,GAAG,CAAC,CAAC,CAAC;aAAE;oBAAS;gBAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;oBAAE,OAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAAE;gBAAC,IAAG,aAAa,CAAC,MAAM,EAAE;oBAAE,IAAI,EAAE,KAAK,SAAS,EAAE;wBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;qBAAE;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;oBAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;iBAAE;aAAE;QAC3Y,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,SAAS,EAAE,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,GAAG,UAAS,CAAC;YACnB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,KAAK,EAAE;gBACf,OAAO,KAAK,CAAC;aACb;YACD,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,GAAG,KAAK,CAAC;YACb,EAAE,GAAG,CAAC,CAAC;YACP,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACpC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;gBACrJ,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;oBAChB,OAAO,KAAK,CAAC;iBACb;gBACD,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;oBACjB,OAAO,IAAI,CAAC;iBACZ;gBACD,EAAE,EAAE,CAAC;aACL;YACD,OAAO,KAAK,CAAC;QACd,CAAC,CAAC;QACF,QAAQ,GAAG,UAAS,CAAC;YACpB,IAAI,CAAC,CAAC;YACN,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG;YACnC,IAAI,GAAG,EAAE,CAAC,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,GAAG,CAAC,SAAS,EAAE;gBAClB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBACzB,OAAO;aACP;YACD,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE;gBAC3B,OAAO;aACP;YACD,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,GAAG,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG;YAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACzP,CAAC,GAAG,IAAI,CAAC;oBACT,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5H,CAAC,GAAG,EAAE,CAAC;wBACP,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;4BACb,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO;yBAChB;wBACD,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS,CAAC,CAAC;yBAAE;wBACpD,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvI,EAAE,GAAG,IAAI,CAAC;oBAAC,KAAK,CAAC;wBACjB,KAAK,CAAC,IAAI,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,eAAe,CAAC,KAAK,CAAC;wBACrB,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClC,OAAO,CAAC,KAAK,CAAC;wBACd,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,qBAAqB,CAAC,KAAK,CAAC;wBAC3B,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;4BACtB,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBACjC;wBACD,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;wBACpC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBACjB,OAAO,CAAC,KAAK,CAAC;wBACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,wBAAwB,CAAC,KAAK,EAAE;wBAC/B,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3I,IAAI,CAAC;wBACL,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAC/B,OAAO,CAAC,KAAK,EAAE;wBAChB,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtM,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QACtE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,SAAS,EAAE,CAAC;YAC7C,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3R,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,CAAC,IAAI,SAAS,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC1C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,sBAAsB,CAAC,KAAK,CAAC;wBAC5B,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAC/H,OAAO,CAAC,KAAK,CAAC,CAAC;oBACf,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5H,CAAC,GAAG,EAAE,CAAC;wBACP,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;4BACb,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAC9B;wBACD,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACtC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,kBAAkB,CAAC,KAAK,CAAC;wBACxB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3I,IAAI,CAAC;wBACL,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAC/B,OAAO,CAAC,KAAK,CAAC;wBACd,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;wBAChJ,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACpG,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,SAAS,GAAG,SAAS,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpO,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,SAAS,EAAE,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,SAAS,GAAG,UAAS,CAAC,EAAE,CAAC;YACxB,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,CAAC;YACT,EAAE,GAAG,CAAC,CAAC;YACP,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACnC,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC9B,CAAC,GAAG,EAAE,CAAC;gBACP,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,EAAE;oBACZ,OAAO,CAAC,CAAC;iBACT;gBACD,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;aACf;YACD,OAAO,CAAC,CAAC,CAAC;QACX,CAAC,CAAC;QACF,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,EAAE;YAClC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/B,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACzO,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5H,CAAC,GAAG,EAAE,CAAC;wBACP,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC9C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,0BAA0B,CAAC,KAAK,CAAC;wBAChC,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzI,IAAI,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;oBACtC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjL,CAAC,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,UAAU,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACzuD,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC/W,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACvgF,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC/3G,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC1zB,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC3c,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QACzW,SAAS,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QACxG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QACjG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QACvG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC9uB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC5G,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAClc,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QACvjB,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;4BAChD,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBACrP,CAAC,CAAC,CAAC,CAAC;wBACJ,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7b,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;4BAChD,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACjG,CAAC,CAAC,CAAC,CAAC;wBACJ,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;wBAClE,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;oBACxD,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC;QACvB,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;QACjH,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,EAAE,GAAG,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAClD,OAAO,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACxC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACjC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,GAAG,UAAS,CAAC,EAAE,GAAG;YACtB,IAAI,CAAC,EAAE,GAAG,CAAC;YACX,OAAO,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,KAAK,GAAG,UAAS,CAAC,EAAE,GAAG;YACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YACnB,CAAC,GAAG,CAAC,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC1C;iBAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE;gBACjC,OAAO,CAAC,CAAC;aACT;iBAAM,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE;gBACrC,IAAI,GAAG,KAAK,CAAC,EAAE;oBACd,OAAO,CAAC,CAAC;iBACT;gBACD,OAAO,CAAC,CAAC;aACT;YACD,OAAO,IAAI,EAAE;gBACZ,GAAG,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACpB,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;oBACf,MAAM;iBACN;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3C;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,GAAG,UAAS,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;YAClC,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;YACxD,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/B,OAAO,CAAC,CAAC;aACT;YACD,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,EAAE;gBACZ,OAAO,CAAC,CAAC;aACT;iBAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC1B,CAAC,GAAG,CAAC,CAAC;aACN;YACD,CAAC,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC,GAAG,CAAC,CAAC;YACN,KAAK,GAAG,CAAC,CAAC;YACV,CAAC,GAAG,CAAC,CAAC;YACN,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACxB,CAAC,GAAG,KAAK,CAAC;gBACV,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrB,IAAI,CAAC,GAAG,CAAC,EAAE;wBACV,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;wBACvD,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBACnB;iBACD;qBAAM;oBACN,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;iBAChD;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;gBACnD,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC5B,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClE,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,UAAU,GAAG,UAAS,CAAC,EAAE,GAAG,EAAE,KAAK;YAClC,IAAI,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAClB,OAAO,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAC7H,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QACpB,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,CAAC;QAChwB,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QACvB,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjG,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnG,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7F,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACrG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjG,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzG,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzG,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7G,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9G,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzF,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3G,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAS,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO;YACtK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;gBACnC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,OAAO;aACP;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,aAAa,GAAG,cAAc,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAS,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;YACrH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,OAAO;aACP;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;QACxC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QAChC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClC,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClC,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;QACnC,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACrC,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QAClC,QAAQ,GAAG,SAAS,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9C,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,UAAU,GAAG,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QACtC,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxC,QAAQ,GAAG,UAAS,GAAG;YACtB,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YACxB,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACzC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACf,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,EAAE,EAAE;gBACR,OAAO,GAAG,CAAC;aACX;YACD,IAAI,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;gBACjD,OAAO,QAAQ,CAAC;aAChB;YACD,IAAI,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAChD,OAAO,QAAQ,CAAC;aAChB;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,YAAY,GAAG,UAAS,GAAG,EAAE,CAAC;YAC7B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvH,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YAC7C,IAAI,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,GAAG,GAAG,QAAQ,CAAC;aACf;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YACnC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YACtC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,UAAU,GAAG;YAC1C,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;QACF,WAAW,GAAG,UAAS,GAAG,EAAE,CAAC;YAC5B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrI,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YAC5C,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YAClC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YACrC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,aAAa,GAAG,UAAS,GAAG,EAAE,CAAC;YAC9B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/L,CAAC,CAAC;QACF,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YAC9C,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YACpC,IAAI,CAAC,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC;QACF,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YACvC,IAAI,CAAC,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,CAAC,CAAC;QACF,YAAY,GAAG,UAAS,GAAG,EAAE,CAAC;YAC7B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvI,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YAC7C,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YACnC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YACtC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,cAAc,GAAG,UAAS,GAAG,EAAE,CAAC;YAC/B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjM,CAAC,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YAC/C,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YACrC,IAAI,CAAC,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YACxC,IAAI,CAAC,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC;QACF,cAAc,GAAG,UAAS,GAAG,EAAE,CAAC;YAC/B,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvH,CAAC,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,GAAG;YACjD,IAAI,CAAC,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACd,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YACrC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YACxC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnB,CAAC,CAAC;QACF,eAAe,GAAG,UAAS,GAAG,EAAE,CAAC;YAChC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvH,CAAC,CAAC;QACF,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YAChD,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YACtC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YACzC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC,CAAC;QACF,gBAAgB,GAAG,UAAS,GAAG,EAAE,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzM,CAAC,CAAC;QACF,QAAQ,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,GAAG,IAAI,CAAC;YACT,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAC/B,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,GAAG,GAAG,QAAQ,CAAC;aACf;YACD,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,QAAQ,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG;YACvC,IAAI,CAAC,EAAE,GAAG,CAAC;YACX,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;QACF,QAAQ,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG;YAC1C,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC;YACjB,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC,cAAa,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAClN,CAAC,CAAC;QACF,SAAS,GAAG,UAAS,KAAK;YACzB,IAAI,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAClG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnZ,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;wBACzD,CAAC,GAAG,CAAC,CAAC;wBACN,IAAI,GAAG,KAAK,CAAC;wBACb,EAAE,GAAG,CAAC,CAAC;wBACP,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;wBACpB,OAAO,IAAI,EAAE;4BACZ,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;gCAAE,MAAM;6BAAE;4BACpC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;4BACzB,IAAI,MAAM,KAAK,SAAS,EAAE;gCACzB,EAAE,EAAE,CAAC;gCACL,SAAS;6BACT;4BACD,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;4BACb,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;4BAChI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;4BACjB,EAAE,EAAE,CAAC;yBACL;wBACD,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5H,MAAM,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC/C,MAAM,GAAG,IAAI,CAAC;wBACd,IAAI,GAAG,CAAC,CAAC;wBACT,OAAO,IAAI,EAAE;4BACZ,IAAI,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE;gCAAE,MAAM;6BAAE;4BACxC,GAAG,GAAG,IAAI,CAAC;4BACX,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;4BAC7I,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;4BACpO,IAAI,EAAE,CAAC;yBACP;wBACD,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,MAAM,CAAC;oBACvB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC/U,CAAC,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YAC9B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;gBAC3C,OAAO,EAAE,CAAC,MAAM,CAAC;aACjB;YACD,OAAO,CAAC,CAAC,MAAM,CAAC;QACjB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YAC5B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,IAAI,CAAC;QACf,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG;YACrC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,aAAa,CAAC;QACxB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM;YAChD,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;QACnB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,EAAE;YAC3C,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACtC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3P,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpI,IAAI,GAAG,EAAE,CAAC;wBACV,EAAE,GAAG,CAAC,CAAC;oBACP,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzF,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;wBACjI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzH,EAAE,EAAE,CAAC;wBACN,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC5M,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,EAAE;YACxC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;YACtC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC3P,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpI,IAAI,GAAG,EAAE,CAAC;wBACV,EAAE,GAAG,CAAC,CAAC;oBACP,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,0CAA0C,CAAC,IAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACzF,IAAI,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC;wBACjI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzH,EAAE,EAAE,CAAC;wBACN,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACzM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,EAAE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI;YAC3C,IAAI,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC;YACpB,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpG,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,KAAK;YAC/C,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YAC1E,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvV,CAAC,GAAG,IAAI,CAAC;wBACT,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;wBACtH,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACjB,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACf,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBACpC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,gBAAgB,CAAC,KAAK,CAAC;wBACtB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnL,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC;wBACd,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChJ,GAAG,GAAG,IAAI,CAAC;wBACX,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BACzC,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;wBACD,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;4BACvB,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;yBACd;wBACD,IAAI,GAAG,IAAI,CAAC;wBAAC,CAAC,CAAC,CAAC,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;wBAC7H,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnS,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,WAAW,GAAG,UAAS,IAAI,EAAE,KAAK;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YAClE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnU,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACjC,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChD,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC1C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,sBAAsB,CAAC,KAAK,CAAC;wBAC5B,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5I,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5I,CAAC,GAAG,IAAI,CAAC;oBACV,OAAO,CAAC,KAAK,CAAC;wBACd,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/J,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,KAAK,KAAK,IAAI,CAAC;oBAC/B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjQ,CAAC,CAAC;QACF,YAAY,GAAG,UAAS,IAAI;YAC3B,IAAI,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;YAChD,IAAI,GAAG,EAAE,CAAC;YACV,KAAK,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACnB,CAAC,GAAG,CAAC,CAAC;YACN,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBACnC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC/B,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACf,OAAO,IAAI,EAAE;wBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE;4BAAE,MAAM;yBAAE;wBACnC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;4BAC/B,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC1C,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;4BACzE,IAAI,GAAG,IAAI,CAAC;4BACZ,MAAM,GAAG,KAAK,CAAC;4BACf,IAAI,GAAG,IAAI,CAAC;4BACZ,KAAK,GAAG,MAAM,CAAC;4BACf,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;yBACrB;wBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBACjB;oBACD,MAAM;iBACN;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,IAAI,GAAG,OAAO,CAAC;YACf,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YAClB,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzC,IAAI,GAAG,EAAE,CAAC;aACV;iBAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,IAAI,GAAG,UAAU,CAAC;aAClB;iBAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,IAAI,GAAG,OAAO,CAAC;aACf;iBAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1F,IAAI,GAAG,KAAK,CAAC;aACb;iBAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACjD,IAAI,GAAG,QAAQ,CAAC;aAChB;iBAAM,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1F,IAAI,GAAG,MAAM,CAAC;aACd;YACD,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,GAAG;YACrC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvL,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACR,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;wBACZ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAS,CAAC;4BAAI,OAAO,SAAS,EAAE,CAAC,IAAI;gCACxD,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;gCACnF,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;gCAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;gCAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;oCAAE,EAAE,GAAG,IAAI,CAAC;oCAAC,EAAE,GAAG,IAAI,CAAC;oCAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;oCAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;oCAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;oCAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;oCAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;oCAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;oCAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;oCAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;oCAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;oCAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;oCAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oCAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;oCAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;oCAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;iCAAE;gCAAC,CAAC,EAAE,OAAO,IAAI,EAAE;oCAAE,QAAQ,EAAE,EAAE;wCAAE,KAAK,CAAC;4CAC7W,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,KAAK,CAAC;4CAAE,IAAG,EAAE,EAAE;gDAAE,EAAE,GAAG,KAAK,CAAC;gDAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;6CAAE;4CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;gDAAE,MAAM,CAAC,CAAC;6CAAE;4CAC9K,CAAC,GAAG,EAAE,CAAC;4CACP,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;4CAC5B,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4CACjB,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4CAClB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gDACpB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;6CACrB;4CACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;gDAClB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;6CACf;iDAAM;gDACN,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;6CACrB;4CACD,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;4CACtD,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;4CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,KAAK,CAAC;4CAAE,IAAG,EAAE,EAAE;gDAAE,EAAE,GAAG,KAAK,CAAC;gDAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6CAAE;4CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gDAAE,MAAM,CAAC,CAAC;6CAAE;4CAC3J,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;gDAAE,EAAE,GAAG,CAAC,CAAC;gDAAC,SAAS;6CAAE;4CACtC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4CAAC,SAAS;wCACvB,kBAAkB,CAAC,KAAK,CAAC;4CACxB,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;4CACpD,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;4CACjB,KAAK,CAAC,IAAI,EAAE,EAAE;gDAAE,EAAE,GAAG,CAAC,CAAC;gDAAC,SAAS;6CAAE;4CACnC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4CAAC,SAAS;wCACvB,eAAe,CAAC,KAAK,CAAC;4CACrB,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,KAAK,CAAC;4CAAE,IAAG,EAAE,EAAE;gDAAE,EAAE,GAAG,KAAK,CAAC;gDAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6CAAE;4CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gDAAE,MAAM,CAAC,CAAC;6CAAE;4CACpM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4CACf,EAAE,GAAG,CAAC,CAAC;4CAAC,SAAS;wCAClB,cAAc,CAAC,KAAK,CAAC;4CACpB,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4CAAC,EAAE,GAAG,CAAC,CAAC;wCAAC,KAAK,CAAC;4CAAE,IAAG,EAAE,EAAE;gDAAE,EAAE,GAAG,KAAK,CAAC;gDAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6CAAE;4CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gDAAE,MAAM,CAAC,CAAC;6CAAE;4CACpM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wCAChB,OAAO,CAAC,KAAK,CAAC,CAAC;wCAChB,OAAO,CAAC,KAAK,CAAC;4CACd,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;4CAAC,EAAE,GAAG,EAAE,CAAC;wCAAC,KAAK,EAAE;4CAAE,IAAG,EAAE,EAAE;gDAAE,EAAE,GAAG,KAAK,CAAC;gDAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;6CAAE;4CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gDAAE,MAAM,CAAC,CAAC;6CAAE;4CAC1M,IAAI,CAAC;4CACL,EAAE,GAAG,CAAC,CAAC,CAAC;4CAAC,OAAO;wCAChB,KAAK,EAAE;oCAAC,OAAO;iCAAE;gCAAC,IAAI,EAAE,KAAK,SAAS,EAAE;oCAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;iCAAE;gCAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gCAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;gCAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;gCAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;gCAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;gCAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;gCAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;gCAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;gCAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;gCAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gCAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gCAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;gCAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gCAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gCAAC,OAAO,EAAE,CAAC;4BAClS,CAAC,CAAC;wBAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrH,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7I,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QACnF,aAAa,GAAG;YACf,IAAI,EAAE,EAAE,EAAE,CAAC;YACX,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7K,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7G,CAAC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,GAAG;YACpC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACnN,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC9C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,0BAA0B,CAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvK,EAAE,CAAC;wBACH,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1M,IAAI,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClI,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACxK,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC7B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QAC/B,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC;YACrC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;YACd,CAAC,GAAG,IAAI,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjC,OAAO,EAAE,CAAC;aACV;YACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5I,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YAC5B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACvB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG;YAC5B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,IAAI,CAAC;QACf,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YAC7D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YACvD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;wBACvC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAClM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YAC5D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YACtD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;wBACnC,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACjM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YAC9D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YACxD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;wBAClD,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACnM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YAC7D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YACvD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;wBACnC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAClM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YAC/D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACvM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YACzD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;wBACnD,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YAC/D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACvM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YACzD,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;wBACpC,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACnJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACpM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YAChE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC9J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACxM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YAC1D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;wBACnC,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACpJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;YACjE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/J,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACzM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzH,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK;YAC3D,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACrP,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,GAAG,eAAe,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;wBACxD,EAAE,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACrJ,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,CAAC;oBAClB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACtM,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,KAAK;YACtD,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC;YACvG,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7Z,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC5C,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;wBACtH,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACzB,KAAK,CAAC,IAAI,YAAY,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC7C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,yBAAyB,CAAC,KAAK,CAAC;wBAC/B,GAAG,GAAG,EAAE,CAAC;wBACT,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC9C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,0BAA0B,CAAC,KAAK,CAAC;wBAChC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChM,GAAG,GAAG,IAAI,CAAC;wBACX,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxN,GAAG,GAAG,IAAI,CAAC;oBACZ,OAAO,CAAC,KAAK,CAAC;wBACd,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtL,IAAI,CAAC;wBACL,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC1B,OAAO,CAAC,KAAK,CAAC;wBACd,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;4BACvB,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;yBACd;wBACD,IAAI,GAAG,IAAI,CAAC;wBAAC,CAAC,CAAC,CAAC,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;wBAC7H,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACzW,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,MAAM,EAAE,CAAC;YAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YACxC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/P,CAAC,GAAG,IAAI,CAAC;wBACT,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACtI,GAAG,GAAG,EAAE,CAAC;wBACT,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzK,IAAI,CAAC;wBACL,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1H,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,GAAG,CAAC;oBACpB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7M,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,MAAM,EAAE,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC7B,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACvL,CAAC,GAAG,IAAI,CAAC;wBACT,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,qBAAqB,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAClE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,8CAA8C,CAAC,KAAK,CAAC;wBACpD,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACjI,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAClB,cAAc,CAAC,KAAK,CAAC;wBACpB,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;oBAC3H,OAAO,CAAC,KAAK,CAAC;wBACd,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrI,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,GAAG;YAChC,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;YAC/N,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7tB,CAAC,GAAG,IAAI,CAAC;wBACT,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;4BACzB,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;yBACnC;wBACD,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC7H,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;4BAChD,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;yBACnC;wBACD,UAAU,GAAG,CAAC,CAAC;wBACf,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;4BAC3B,UAAU,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;4BACnC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;gCACnB,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gCAC9B,EAAE,GAAG,CAAC,CAAC,CAAC;gCAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;6BACnC;yBACD;wBACD,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;wBACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAClH,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,8FAA8F,CAAC,KAAK,CAAC;wBACpG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,qBAAqB,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChL,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC;wBACd,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC9B,QAAQ,GAAG,KAAK,CAAC;wBACjB,KAAK,GAAG,EAAE,CAAC;wBACX,CAAC,GAAG,CAAC,CAAC;wBACN,OAAO,IAAI,EAAE;4BACZ,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;gCAAE,MAAM;6BAAE;4BAClC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC9B,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gCACvC,QAAQ,GAAG,IAAI,CAAC;gCAChB,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gCAC9B,MAAM;6BACN;4BACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;yBACjB;wBACD,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;wBACb,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;wBAC/G,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACjB,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACzB,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAC9C,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,0BAA0B,CAAC,KAAK,CAAC;wBAChC,KAAK,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE;4BAAE,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAAE;wBAChE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBACvB,4CAA4C,CAAC,KAAK,CAAC;wBAClD,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1H,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACvC,OAAO,CAAC,KAAK,CAAC;wBACd,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,oCAAoC,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5M,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,KAAK,CAAC;wBACd,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;wBACnD,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACjB,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACjB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS,CAAC,CAAC;yBAAE;wBAC/C,IAAI,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5I,EAAE,GAAG,IAAI,CAAC;oBAAC,KAAK,EAAE;wBAClB,KAAK,CAAC,IAAI,EAAE,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACpC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,eAAe,CAAC,KAAK,EAAE;wBACtB,KAAK,CAAC,IAAI,QAAQ,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC1C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,qBAAqB,CAAC,KAAK,EAAE;wBAC5B,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC1I,GAAG,GAAG,IAAI,CAAC;wBACX,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACtE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,iDAAiD,CAAC,KAAK,EAAE;wBACxD,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACzO,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3I,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACxE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,mDAAmD,CAAC,KAAK,EAAE;wBAC1D,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC9M,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,EAAE;wBACf,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACnB,cAAc,CAAC,KAAK,EAAE;wBACrB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;4BACpC,QAAQ,GAAG,IAAI,CAAC;4BAChB,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4BAChI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;4BAC9B,KAAK,GAAG,IAAI,CAAC;4BACb,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC;yBAChB;wBACD,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBAC3C,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,sBAAsB,CAAC,KAAK,EAAE;wBAC7B,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACvM,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,KAAK,EAAE;wBACf,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAClJ,KAAK,GAAG,IAAI,CAAC;wBACb,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,EAAE;4BAAE,EAAE,GAAG,EAAE,CAAC;4BAAC,SAAS;yBAAE;wBACxE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;wBAAC,SAAS;oBACxB,mDAAmD,CAAC,KAAK,EAAE;wBAC1D,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,mCAAmC,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,EAAE,CAAC;oBAAC,KAAK,EAAE;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBACxO,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;oBACjB,OAAO,CAAC,KAAK,EAAE;wBACf,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,EAAE;4BACvB,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;yBACd;wBACD,IAAI,GAAG,IAAI,CAAC;wBAAC,CAAC,CAAC,CAAC,MAAM,IAAI,kBAAkB,CAAC,gCAAgC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;wBAC7H,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBAClC,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC9qB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,WAAW;YACjD,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;YACtD,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;gBAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;gBAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC/R,CAAC,GAAG,IAAI,CAAC;wBACT,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;wBAChB,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC;oBACrB,oBAAoB,CAAC,KAAK,CAAC;wBAC1B,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,MAAM,GAAG,EAAE,CAAC;wBACZ,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACjB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAChB,IAAI,IAAI,EAAE;4BACT,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBACjC;wBACD,IAAI,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE;4BACtC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,SAAS;yBAC9B;wBACD,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC;wBACrB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;4BACf,EAAE,GAAG,CAAC,CAAC,CAAC;4BAAC,OAAO,GAAG,CAAC;yBACpB;6BAAM,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;4BACtB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACX;6BAAM,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;4BACtB,MAAM,CAAC,GAAG,CAAC,CAAC;yBACZ;wBACF,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBAAC,SAAS;oBAAC,KAAK,CAAC;wBAChC,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO,SAAS,CAAC;oBAC1B,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;YAAC,EAAE,CAAC,WAAW,GAAG,WAAW,CAAC;YAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;YAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAC7O,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,UAAS,WAAW,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG;YAC9B,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,CAAC,CAAC,MAAM,CAAC;QACjB,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,GAAG;YACN,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAC3C,CAAC,CAAC;QACF,gBAAgB,GAAG;YAClB,IAAI,EAAE,EAAE,EAAE,CAAC;YACX,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBAC7K,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,CAAC,CAAC,CAAC;wBAAC,OAAO;oBAChB,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QAChH,CAAC,CAAC;QACF,UAAU,GAAG,UAAS,IAAI,EAAE,aAAa;YACxC,IAAI,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC;YAC3B,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;YACjH,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,aAAa;YACxD,IAAI,aAAa,EAAE,CAAC,EAAE,IAAI,CAAC;YAC3B,CAAC,GAAG,IAAI,CAAC;YACT,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;YACd,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;QACjC,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,UAAS,IAAI,EAAE,aAAa,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACvG,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QACjW,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,SAAS,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC1Q,UAAU,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC5hH,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QACzQ,KAAK,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;QAC/K,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAC/vB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC;QAClX,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC5H,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;wBAClD,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBACrC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;wBAC5C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACpJ,IAAI,CAAC,KAAK,GAAG,CAAC,SAAS,EAAE;4BACxB,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;4BACpB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;4BAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gCAAE,EAAE,GAAG,IAAI,CAAC;gCAAC,EAAE,GAAG,IAAI,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gCAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gCAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;6BAAE;4BAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gCAAE,QAAQ,EAAE,EAAE;oCAAE,KAAK,CAAC;wCACvM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;wCAAC,EAAE,GAAG,CAAC,CAAC;oCAAC,KAAK,CAAC;wCAAE,IAAG,EAAE,EAAE;4CAAE,EAAE,GAAG,KAAK,CAAC;4CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yCAAE;wCAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4CAAE,MAAM,CAAC,CAAC;yCAAE;wCAClU,EAAE,CAAC;wCACH,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC,KAAK;wCAAC,EAAE,GAAG,CAAC,CAAC;oCAAC,KAAK,CAAC;wCAAE,IAAG,EAAE,EAAE;4CAAE,EAAE,GAAG,KAAK,CAAC;4CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yCAAE;wCAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4CAAE,MAAM,CAAC,CAAC;yCAAE;wCAChI,EAAE,GAAG,CAAC,CAAC,CAAC;wCAAC,OAAO;oCAChB,KAAK,EAAE;gCAAC,OAAO;6BAAE;4BAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gCAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;6BAAE;4BAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;4BAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;4BAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;4BAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;4BAAC,OAAO,EAAE,CAAC;wBAC5H,CAAC,CAAC,CAAC;wBACH,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC;QACvC,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,CAAC;QAC5N,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,2BAA2B,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/I,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACpC,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,WAAW,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG;YACN,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YACd,CAAC,GAAG,CAAC,CAAC;YACN,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBAC1B,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChH,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,GAAG,GAAG,CAAC,CAAC;YACR,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBAC3B,CAAC,CAAC,GAAG,kCAAkC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3L,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrB;QACF,CAAC,CAAC;QACF,iBAAiB,CAAC,SAAS,CAAC,KAAK,GAAG;YACnC,IAAI,CAAC,CAAC;YACN,CAAC,GAAG,IAAI,CAAC;YACT,OAAO,uCAAuC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvG,CAAC,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,cAAa,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACzF,UAAU,GAAG,UAAS,CAAC;YACtB,IAAI,EAAE,EAAE,CAAC,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/I,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,UAAU,GAAG,UAAS,CAAC;YACtB,IAAI,EAAE,EAAE,CAAC,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/I,CAAC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,MAAM,GAAG,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;YAC/B,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YACxF,GAAG,GAAG,CAAC,CAAC;YACR,CAAC,GAAG,CAAC,CAAC;YACN,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBAC5D,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC9G,EAAE,GAAG,CAAC,CAAC;gBACP,IAAI,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE;oBACpB,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC9G;gBACD,MAAM,GAAG,CAAC,CAAC;gBACX,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/F,IAAI,MAAM,GAAG,CAAC,EAAE;oBACf,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;iBAChK;qBAAM;oBACN,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;oBACtK,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBAC9L;gBACD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE;oBACrC,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACvH;gBACD,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,kCAAkC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClL,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,MAAM,GAAG,CAAC,EAAE;oBACf,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBACxB;gBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACjB;YACD,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,GAAG,UAAS,GAAG,EAAE,GAAG;YACzB,IAAI,GAAG,EAAE,GAAG,CAAC;YACb,OAAO,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,cAAc,GAAG,UAAS,GAAG;YAC5B,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YAChB,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,MAAM,GAAG,UAAS,GAAG,EAAE,GAAG,EAAE,IAAI;YAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC7F,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;YACnB,GAAG,GAAG,CAAC,CAAC;YACR,OAAO,IAAI,EAAE;gBACZ,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE;oBAAE,MAAM;iBAAE;gBAClC,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;gBAC1B,CAAC,GAAG,CAAC,CAAC;gBACN,OAAO,IAAI,EAAE;oBACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;wBAAE,MAAM;qBAAE;oBACxB,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE;wBACtB,MAAM;qBACN;oBACD,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChH,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrN,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;wBAC5G,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC/E;oBACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACjB;gBACD,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/M,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/P,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvN,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/P,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClM,IAAI,IAAI,GAAG,CAAC,EAAE;oBACb,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACtD,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAChJ,SAAS;iBACT;gBACD,WAAW,GAAG,IAAI,CAAC;gBACnB,IAAI,WAAW,GAAG,EAAE,EAAE;oBACrB,WAAW,GAAG,EAAE,CAAC;iBACjB;gBACD,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,GAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC1J,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;aACxB;YACD,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,YAAY,GAAG,UAAS,CAAC,EAAE,IAAI;YAC9B,IAAI,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACjC,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aAC5B;YACD,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1C,CAAC,CAAC;QACF,YAAY,GAAG,UAAS,CAAC;YACxB,IAAI,CAAC,CAAC;YACN,OAAO,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,iBAAiB,CAAC,OAAO,GAAG,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,EAAC,CAAC,CAAC;QAC5G,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC/H,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC7H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,SAAS,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;wBAC7B,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;QACpB,IAAI,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC;QAClG,EAAE,GAAG,SAAS,CAAC,iCAAiC,CAAC,CAAC;QAClD,OAAO,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAC/C,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,QAAQ,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;QACpD,UAAU,GAAG,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC7C,MAAM,GAAG,UAAS,GAAG;YACpB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC;YACxB,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACd,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE;gBACzC,OAAO,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;aACzB;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,MAAM,GAAG,UAAS,CAAC;YAClB,IAAI,CAAC,EAAE,CAAC,CAAC;YACT,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,IAAI,GAAG;YACN,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3J,CAAC,CAAC;QACF,KAAK,GAAG;YACP,IAAI,CAAC,KAAK,GAAG,cAAY,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAAC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,IAAI,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAAE;YAAC,CAAC,EAAE,OAAO,IAAI,EAAE;gBAAE,QAAQ,EAAE,EAAE;oBAAE,KAAK,CAAC;wBACjL,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAC3H,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK;wBAAC,EAAE,GAAG,CAAC,CAAC;oBAAC,KAAK,CAAC;wBAAE,IAAG,EAAE,EAAE;4BAAE,EAAE,GAAG,KAAK,CAAC;4BAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;yBAAE;wBAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE;4BAAE,MAAM,CAAC,CAAC;yBAAE;wBAChI,IAAI,IAAI,KAAK,QAAQ,EAAE;4BACtB,IAAI,EAAE,CAAC;4BACP,aAAa,GAAG,IAAI,CAAC;yBACrB;oBACD,KAAK,EAAE;gBAAC,OAAO;aAAE;YAAC,IAAI,EAAE,KAAK,SAAS,EAAE;gBAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;aAAE;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;QACrG,CAAC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,EAAE,CAAC;IACL,kBAAkB,EAAE,CAAC;IACrB,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7B,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,aAAa,EAAE,CAAC;AAEhB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"} \ No newline at end of file diff --git a/dist/app.js b/dist/app.js new file mode 100644 index 0000000..5eca833 --- /dev/null +++ b/dist/app.js @@ -0,0 +1,121 @@ +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const express = require("express"); +const bodyParser = require("body-parser"); +const helmet = require("helmet"); +const cookieParser = require("cookie-parser"); +const crypto = require("crypto"); +const models_1 = require("./api/models"); +const logger_1 = require("./api/utils/logger"); +const hub_1 = require("./api/hub"); +const setup_1 = require("./api/utils/setup"); +const controllers = require("./api/controllers"); +const socket = require("./api/utils/socket"); +let server = null; +const port = process.env.PORT || 3001; +const env = process.env.NODE_ENV || 'development'; +const config = require(__dirname + '/config/app.json')[env]; +process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA'; +var i = 0; +// START SETUP! +connectToLND(); +function connectToLND() { + return __awaiter(this, void 0, void 0, function* () { + i++; + console.log(`=> [lnd] connecting... attempt #${i}`); + try { + yield controllers.iniGrpcSubscriptions(); + mainSetup(); + } + catch (e) { + setTimeout(() => __awaiter(this, void 0, void 0, function* () { + yield connectToLND(); + }), 2000); + } + }); +} +function mainSetup() { + return __awaiter(this, void 0, void 0, function* () { + yield setup_1.setupDatabase(); + if (config.hub_api_url) { + hub_1.pingHubInterval(5000); + hub_1.checkInvitesHubInterval(5000); + } + yield setupApp(); + }); +} +function setupApp() { + return __awaiter(this, void 0, void 0, function* () { + const app = express(); + const server = require("http").Server(app); + app.use(helmet()); + app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ extended: true })); + app.use(logger_1.default); + app.options('*', (req, res) => res.send(200)); + app.use((req, res, next) => { + res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080'); + res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); + res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept'); + res.setHeader('Cache-Control', 'private, no-cache, no-store, must-revalidate'); + res.setHeader('Expires', '-1'); + res.setHeader('Pragma', 'no-cache'); + next(); + }); + app.use(cookieParser()); + if (env != 'development') { + app.use(authModule); + } + app.use('/static', express.static('public')); + app.get('/app', (req, res) => res.sendFile(__dirname + '/public/index.html')); + server.listen(port, (err) => { + if (err) + throw err; + /* eslint-disable no-console */ + console.log(`Node listening on ${port}.`); + }); + controllers.set(app); + socket.connect(server); + }); +} +function authModule(req, res, next) { + return __awaiter(this, void 0, void 0, function* () { + if (req.path == '/app' || + req.path == '/' || + req.path == '/info' || + req.path == '/contacts/tokens' || + req.path == '/login' || + req.path.startsWith('/static') || + req.path == '/contacts/set_dev') { + next(); + return; + } + const token = req.headers['x-user-token'] || req.cookies['x-user-token']; + if (token == null) { + res.writeHead(401, 'Access invalid for user', { 'Content-Type': 'text/plain' }); + res.end('Invalid credentials'); + } + else { + const user = yield models_1.models.Contact.findOne({ where: { isOwner: true } }); + const hashedToken = crypto.createHash('sha256').update(token).digest('base64'); + if (user.authToken == null || user.authToken != hashedToken) { + res.writeHead(401, 'Access invalid for user', { 'Content-Type': 'text/plain' }); + res.end('Invalid credentials'); + } + else { + next(); + } + } + }); +} +exports.default = server; +//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/dist/app.js.map b/dist/app.js.map new file mode 100644 index 0000000..3620a38 --- /dev/null +++ b/dist/app.js.map @@ -0,0 +1 @@ +{"version":3,"file":"app.js","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/config/constants.json b/dist/config/constants.json new file mode 100644 index 0000000..508b5e7 --- /dev/null +++ b/dist/config/constants.json @@ -0,0 +1,52 @@ +{ + "invite_statuses": { + "pending": 0, + "ready": 1, + "delivered": 2, + "in_progress": 3, + "complete": 4, + "expired": 5, + "payment_pending": 6 + }, + "contact_statuses": { + "pending": 0, + "confirmed": 1 + }, + "statuses": { + "pending": 0, + "confirmed": 1, + "cancelled": 2, + "received": 3, + "failed": 4 + }, + "message_types": { + "message": 0, + "confirmation": 1, + "invoice": 2, + "payment": 3, + "cancellation": 4, + "direct_payment": 5, + "attachment": 6, + "purchase": 7, + "purchase_accept": 8, + "purchase_deny": 9, + "contact_key": 10, + "contact_key_confirmation": 11, + "group_create": 12, + "group_invite": 13, + "group_join": 14, + "group_leave": 15, + "group_query": 16 + }, + "payment_errors": { + "timeout": "Timed Out", + "no_route": "No Route To Receiver", + "error": "Error", + "incorrect_payment_details": "Incorrect Payment Details", + "unknown": "Unknown" + }, + "chat_types": { + "conversation": 0, + "group": 1 + } +} diff --git a/dist/public/index.html b/dist/public/index.html new file mode 100644 index 0000000..177c256 --- /dev/null +++ b/dist/public/index.html @@ -0,0 +1,11 @@ + + + + React app + + +
+ + + + diff --git a/dist/public/js/app.js b/dist/public/js/app.js new file mode 100644 index 0000000..6ebc7cb --- /dev/null +++ b/dist/public/js/app.js @@ -0,0 +1,32444 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 296); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +if (true) { + module.exports = __webpack_require__(499); +} else {} + + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +module.exports = _defineProperty; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +module.exports = _assertThisInitialized; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(16); +var core = __webpack_require__(37); +var hide = __webpack_require__(29); +var redefine = __webpack_require__(30); +var ctx = __webpack_require__(38); +var PROTOTYPE = 'prototype'; + +var $export = function (type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); + var key, own, out, exp; + if (IS_GLOBAL) source = name; + for (key in source) { + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + // export native or passed + out = (own ? target : source)[key]; + // bind timers to global for call from export context + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // extend global + if (target) redefine(target, key, out, type & $export.U); + // export + if (exports[key] != out) hide(exports, key, exp); + if (IS_PROTO && expProto[key] != out) expProto[key] = out; + } +}; +global.core = core; +// type bitmap +$export.F = 1; // forced +$export.G = 2; // global +$export.S = 4; // static +$export.P = 8; // proto +$export.B = 16; // bind +$export.W = 32; // wrap +$export.U = 64; // safe +$export.R = 128; // real proto method for `library` +module.exports = $export; + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + +function _extends() { + module.exports = _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +module.exports = _extends; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (false) { var throwOnDirectAccess, ReactIs; } else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(540)(); +} + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if ( true && module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else if (true) { + // register as 'classnames', consistent with npm package name + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { + return classNames; + }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} +}()); + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseInvoke = __webpack_require__(504), + baseRest = __webpack_require__(96); + +/** + * Invokes the method at `path` of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the method to invoke. + * @param {...*} [args] The arguments to invoke the method with. + * @returns {*} Returns the result of the invoked method. + * @example + * + * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; + * + * _.invoke(object, 'a[0].b.c.slice', 1, 3); + * // => [2, 3] + */ +var invoke = baseRest(baseInvoke); + +module.exports = invoke; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */ +function isNil(value) { + return value == null; +} + +module.exports = isNil; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(18); +module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; +}; + + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + +function _getPrototypeOf(o) { + module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +module.exports = _getPrototypeOf; + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +module.exports = _classCallCheck; + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +module.exports = _createClass; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +var _typeof = __webpack_require__(53); + +var assertThisInitialized = __webpack_require__(2); + +function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } + + return assertThisInitialized(self); +} + +module.exports = _possibleConstructorReturn; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +var setPrototypeOf = __webpack_require__(503); + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) setPrototypeOf(subClass, superClass); +} + +module.exports = _inherits; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +var defineProperty = __webpack_require__(1); + +function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + defineProperty(target, key, source[key]); + }); + } + + return target; +} + +module.exports = _objectSpread; + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self + // eslint-disable-next-line no-new-func + : Function('return this')(); +if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } +}; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__(89)('wks'); +var uid = __webpack_require__(62); +var Symbol = __webpack_require__(16).Symbol; +var USE_SYMBOL = typeof Symbol == 'function'; + +var $exports = module.exports = function (name) { + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.15 ToLength +var toInteger = __webpack_require__(40); +var min = Math.min; +module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 +}; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +// Thank's IE8 for his funny defineProperty +module.exports = !__webpack_require__(17)(function () { + return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; +}); + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(9); +var IE8_DOM_DEFINE = __webpack_require__(194); +var toPrimitive = __webpack_require__(43); +var dP = Object.defineProperty; + +exports.f = __webpack_require__(21) ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.13 ToObject(argument) +var defined = __webpack_require__(44); +module.exports = function (it) { + return Object(defined(it)); +}; + + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(119); + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isObject = function isObject(val) { + return val !== null && !Array.isArray(val) && typeof val === 'object' +} + +var codes = { + // ---------------------------------------- + // By Code + // ---------------------------------------- + 3: 'Cancel', + 6: 'Help', + 8: 'Backspace', + 9: 'Tab', + 12: 'Clear', + 13: 'Enter', + 16: 'Shift', + 17: 'Control', + 18: 'Alt', + 19: 'Pause', + 20: 'CapsLock', + 27: 'Escape', + 28: 'Convert', + 29: 'NonConvert', + 30: 'Accept', + 31: 'ModeChange', + 32: ' ', + 33: 'PageUp', + 34: 'PageDown', + 35: 'End', + 36: 'Home', + 37: 'ArrowLeft', + 38: 'ArrowUp', + 39: 'ArrowRight', + 40: 'ArrowDown', + 41: 'Select', + 42: 'Print', + 43: 'Execute', + 44: 'PrintScreen', + 45: 'Insert', + 46: 'Delete', + 48: ['0', ')'], + 49: ['1', '!'], + 50: ['2', '@'], + 51: ['3', '#'], + 52: ['4', '$'], + 53: ['5', '%'], + 54: ['6', '^'], + 55: ['7', '&'], + 56: ['8', '*'], + 57: ['9', '('], + 91: 'OS', + 93: 'ContextMenu', + 144: 'NumLock', + 145: 'ScrollLock', + 181: 'VolumeMute', + 182: 'VolumeDown', + 183: 'VolumeUp', + 186: [';', ':'], + 187: ['=', '+'], + 188: [',', '<'], + 189: ['-', '_'], + 190: ['.', '>'], + 191: ['/', '?'], + 192: ['`', '~'], + 219: ['[', '{'], + 220: ['\\', '|'], + 221: [']', '}'], + 222: ["'", '"'], + 224: 'Meta', + 225: 'AltGraph', + 246: 'Attn', + 247: 'CrSel', + 248: 'ExSel', + 249: 'EraseEof', + 250: 'Play', + 251: 'ZoomOut', +} + +// Function Keys (F1-24) +for (var i = 0; i < 24; i += 1) { + codes[112 + i] = 'F' + (i + 1) +} + +// Alphabet (a-Z) +for (var j = 0; j < 26; j += 1) { + var n = j + 65 + codes[n] = [String.fromCharCode(n + 32), String.fromCharCode(n)] +} + +var keyboardKey = { + codes: codes, + + /** + * Get the `keyCode` or `which` value from a keyboard event or `key` name. + * @param {string|object} eventOrKey A keyboard event-like object or `key` name. + * @param {string} [eventOrKey.key] If object, it must have one of these keys. + * @param {string} [eventOrKey.keyCode] If object, it must have one of these keys. + * @param {string} [eventOrKey.which] If object, it must have one of these keys. + * @returns {*} + */ + getCode: function getCode(eventOrKey) { + if (isObject(eventOrKey)) { + return eventOrKey.keyCode || eventOrKey.which || this[eventOrKey.key] + } + return this[eventOrKey] + }, + + /** + * Get the key name from a keyboard event, `keyCode`, or `which` value. + * @param {number|object} eventOrCode A keyboard event-like object or key code. + * @param {number} [eventOrCode.key] If object with a `key` name, it will be returned. + * @param {number} [eventOrCode.keyCode] If object, it must have one of these keys. + * @param {number} [eventOrCode.which] If object, it must have one of these keys. + * @param {number} [eventOrCode.shiftKey] If object, it must have one of these keys. + * @returns {*} + */ + getKey: function getKey(eventOrCode) { + var isEvent = isObject(eventOrCode) + + // handle events with a `key` already defined + if (isEvent && eventOrCode.key) { + return eventOrCode.key + } + + var name = codes[isEvent ? eventOrCode.keyCode || eventOrCode.which : eventOrCode] + + if (Array.isArray(name)) { + if (isEvent) { + name = name[eventOrCode.shiftKey ? 1 : 0] + } else { + name = name[0] + } + } + + return name + }, + + // ---------------------------------------- + // By Name + // ---------------------------------------- + // declare these manually for static analysis + Cancel: 3, + Help: 6, + Backspace: 8, + Tab: 9, + Clear: 12, + Enter: 13, + Shift: 16, + Control: 17, + Alt: 18, + Pause: 19, + CapsLock: 20, + Escape: 27, + Convert: 28, + NonConvert: 29, + Accept: 30, + ModeChange: 31, + ' ': 32, + PageUp: 33, + PageDown: 34, + End: 35, + Home: 36, + ArrowLeft: 37, + ArrowUp: 38, + ArrowRight: 39, + ArrowDown: 40, + Select: 41, + Print: 42, + Execute: 43, + PrintScreen: 44, + Insert: 45, + Delete: 46, + 0: 48, + ')': 48, + 1: 49, + '!': 49, + 2: 50, + '@': 50, + 3: 51, + '#': 51, + 4: 52, + $: 52, + 5: 53, + '%': 53, + 6: 54, + '^': 54, + 7: 55, + '&': 55, + 8: 56, + '*': 56, + 9: 57, + '(': 57, + a: 65, + A: 65, + b: 66, + B: 66, + c: 67, + C: 67, + d: 68, + D: 68, + e: 69, + E: 69, + f: 70, + F: 70, + g: 71, + G: 71, + h: 72, + H: 72, + i: 73, + I: 73, + j: 74, + J: 74, + k: 75, + K: 75, + l: 76, + L: 76, + m: 77, + M: 77, + n: 78, + N: 78, + o: 79, + O: 79, + p: 80, + P: 80, + q: 81, + Q: 81, + r: 82, + R: 82, + s: 83, + S: 83, + t: 84, + T: 84, + u: 85, + U: 85, + v: 86, + V: 86, + w: 87, + W: 87, + x: 88, + X: 88, + y: 89, + Y: 89, + z: 90, + Z: 90, + OS: 91, + ContextMenu: 93, + F1: 112, + F2: 113, + F3: 114, + F4: 115, + F5: 116, + F6: 117, + F7: 118, + F8: 119, + F9: 120, + F10: 121, + F11: 122, + F12: 123, + F13: 124, + F14: 125, + F15: 126, + F16: 127, + F17: 128, + F18: 129, + F19: 130, + F20: 131, + F21: 132, + F22: 133, + F23: 134, + F24: 135, + NumLock: 144, + ScrollLock: 145, + VolumeMute: 181, + VolumeDown: 182, + VolumeUp: 183, + ';': 186, + ':': 186, + '=': 187, + '+': 187, + ',': 188, + '<': 188, + '-': 189, + _: 189, + '.': 190, + '>': 190, + '/': 191, + '?': 191, + '`': 192, + '~': 192, + '[': 219, + '{': 219, + '\\': 220, + '|': 220, + ']': 221, + '}': 221, + "'": 222, + '"': 222, + Meta: 224, + AltGraph: 225, + Attn: 246, + CrSel: 247, + ExSel: 248, + EraseEof: 249, + Play: 250, + ZoomOut: 251, +} + +// ---------------------------------------- +// By Alias +// ---------------------------------------- +// provide dot-notation accessible keys for all key names +keyboardKey.Spacebar = keyboardKey[' '] +keyboardKey.Digit0 = keyboardKey['0'] +keyboardKey.Digit1 = keyboardKey['1'] +keyboardKey.Digit2 = keyboardKey['2'] +keyboardKey.Digit3 = keyboardKey['3'] +keyboardKey.Digit4 = keyboardKey['4'] +keyboardKey.Digit5 = keyboardKey['5'] +keyboardKey.Digit6 = keyboardKey['6'] +keyboardKey.Digit7 = keyboardKey['7'] +keyboardKey.Digit8 = keyboardKey['8'] +keyboardKey.Digit9 = keyboardKey['9'] +keyboardKey.Tilde = keyboardKey['~'] +keyboardKey.GraveAccent = keyboardKey['`'] +keyboardKey.ExclamationPoint = keyboardKey['!'] +keyboardKey.AtSign = keyboardKey['@'] +keyboardKey.PoundSign = keyboardKey['#'] +keyboardKey.PercentSign = keyboardKey['%'] +keyboardKey.Caret = keyboardKey['^'] +keyboardKey.Ampersand = keyboardKey['&'] +keyboardKey.PlusSign = keyboardKey['+'] +keyboardKey.MinusSign = keyboardKey['-'] +keyboardKey.EqualsSign = keyboardKey['='] +keyboardKey.DivisionSign = keyboardKey['/'] +keyboardKey.MultiplicationSign = keyboardKey['*'] +keyboardKey.Comma = keyboardKey[','] +keyboardKey.Decimal = keyboardKey['.'] +keyboardKey.Colon = keyboardKey[':'] +keyboardKey.Semicolon = keyboardKey[';'] +keyboardKey.Pipe = keyboardKey['|'] +keyboardKey.BackSlash = keyboardKey['\\'] +keyboardKey.QuestionMark = keyboardKey['?'] +keyboardKey.SingleQuote = keyboardKey["'"] +keyboardKey.DoubleQuote = keyboardKey['"'] +keyboardKey.LeftCurlyBrace = keyboardKey['{'] +keyboardKey.RightCurlyBrace = keyboardKey['}'] +keyboardKey.LeftParenthesis = keyboardKey['('] +keyboardKey.RightParenthesis = keyboardKey[')'] +keyboardKey.LeftAngleBracket = keyboardKey['<'] +keyboardKey.RightAngleBracket = keyboardKey['>'] +keyboardKey.LeftSquareBracket = keyboardKey['['] +keyboardKey.RightSquareBracket = keyboardKey[']'] + +module.exports = keyboardKey + + +/***/ }), +/* 26 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports) { + +module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; +}; + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + + +var stack; + +if (true) { + stack = __webpack_require__(588); +} else {} + +module.exports = stack.default; +module.exports.instance = stack.instance; + + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(22); +var createDesc = __webpack_require__(61); +module.exports = __webpack_require__(21) ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(16); +var hide = __webpack_require__(29); +var has = __webpack_require__(33); +var SRC = __webpack_require__(62)('src'); +var $toString = __webpack_require__(300); +var TO_STRING = 'toString'; +var TPL = ('' + $toString).split(TO_STRING); + +__webpack_require__(37).inspectSource = function (it) { + return $toString.call(it); +}; + +(module.exports = function (O, key, val, safe) { + var isFunction = typeof val == 'function'; + if (isFunction) has(val, 'name') || hide(val, 'name', key); + if (O[key] === val) return; + if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + if (O === global) { + O[key] = val; + } else if (!safe) { + delete O[key]; + hide(O, key, val); + } else if (O[key]) { + O[key] = val; + } else { + hide(O, key, val); + } +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, TO_STRING, function toString() { + return typeof this == 'function' && this[SRC] || $toString.call(this); +}); + + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var fails = __webpack_require__(17); +var defined = __webpack_require__(44); +var quot = /"/g; +// B.2.3.2.1 CreateHTML(string, tag, attribute, value) +var createHTML = function (string, tag, attribute, value) { + var S = String(defined(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; + return p1 + '>' + S + ''; +}; +module.exports = function (NAME, exec) { + var O = {}; + O[NAME] = exec(createHTML); + $export($export.P + $export.F * fails(function () { + var test = ''[NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }), 'String', O); +}; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayMap = __webpack_require__(83), + baseIteratee = __webpack_require__(73), + baseMap = __webpack_require__(606), + isArray = __webpack_require__(26); + +/** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ +function map(collection, iteratee) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, baseIteratee(iteratee, 3)); +} + +module.exports = map; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = __webpack_require__(90); +var defined = __webpack_require__(44); +module.exports = function (it) { + return IObject(defined(it)); +}; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +var pIE = __webpack_require__(91); +var createDesc = __webpack_require__(61); +var toIObject = __webpack_require__(34); +var toPrimitive = __webpack_require__(43); +var has = __webpack_require__(33); +var IE8_DOM_DEFINE = __webpack_require__(194); +var gOPD = Object.getOwnPropertyDescriptor; + +exports.f = __webpack_require__(21) ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) { /* empty */ } + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); +}; + + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) +var has = __webpack_require__(33); +var toObject = __webpack_require__(23); +var IE_PROTO = __webpack_require__(141)('IE_PROTO'); +var ObjectProto = Object.prototype; + +module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; +}; + + +/***/ }), +/* 37 */ +/***/ (function(module, exports) { + +var core = module.exports = { version: '2.6.9' }; +if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +// optional / simple context binding +var aFunction = __webpack_require__(27); +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), +/* 39 */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + + +/***/ }), +/* 40 */ +/***/ (function(module, exports) { + +// 7.1.4 ToInteger +var ceil = Math.ceil; +var floor = Math.floor; +module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var fails = __webpack_require__(17); + +module.exports = function (method, arg) { + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call + arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); + }); +}; + + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +var getTimezoneOffsetInMilliseconds = __webpack_require__(622) +var isDate = __webpack_require__(262) + +var MILLISECONDS_IN_HOUR = 3600000 +var MILLISECONDS_IN_MINUTE = 60000 +var DEFAULT_ADDITIONAL_DIGITS = 2 + +var parseTokenDateTimeDelimeter = /[T ]/ +var parseTokenPlainTime = /:/ + +// year tokens +var parseTokenYY = /^(\d{2})$/ +var parseTokensYYY = [ + /^([+-]\d{2})$/, // 0 additional digits + /^([+-]\d{3})$/, // 1 additional digit + /^([+-]\d{4})$/ // 2 additional digits +] + +var parseTokenYYYY = /^(\d{4})/ +var parseTokensYYYYY = [ + /^([+-]\d{4})/, // 0 additional digits + /^([+-]\d{5})/, // 1 additional digit + /^([+-]\d{6})/ // 2 additional digits +] + +// date tokens +var parseTokenMM = /^-(\d{2})$/ +var parseTokenDDD = /^-?(\d{3})$/ +var parseTokenMMDD = /^-?(\d{2})-?(\d{2})$/ +var parseTokenWww = /^-?W(\d{2})$/ +var parseTokenWwwD = /^-?W(\d{2})-?(\d{1})$/ + +// time tokens +var parseTokenHH = /^(\d{2}([.,]\d*)?)$/ +var parseTokenHHMM = /^(\d{2}):?(\d{2}([.,]\d*)?)$/ +var parseTokenHHMMSS = /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/ + +// timezone tokens +var parseTokenTimezone = /([Z+-].*)$/ +var parseTokenTimezoneZ = /^(Z)$/ +var parseTokenTimezoneHH = /^([+-])(\d{2})$/ +var parseTokenTimezoneHHMM = /^([+-])(\d{2}):?(\d{2})$/ + +/** + * @category Common Helpers + * @summary Convert the given argument to an instance of Date. + * + * @description + * Convert the given argument to an instance of Date. + * + * If the argument is an instance of Date, the function returns its clone. + * + * If the argument is a number, it is treated as a timestamp. + * + * If an argument is a string, the function tries to parse it. + * Function accepts complete ISO 8601 formats as well as partial implementations. + * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601 + * + * If all above fails, the function passes the given argument to Date constructor. + * + * @param {Date|String|Number} argument - the value to convert + * @param {Object} [options] - the object with options + * @param {0 | 1 | 2} [options.additionalDigits=2] - the additional number of digits in the extended year format + * @returns {Date} the parsed date in the local time zone + * + * @example + * // Convert string '2014-02-11T11:30:30' to date: + * var result = parse('2014-02-11T11:30:30') + * //=> Tue Feb 11 2014 11:30:30 + * + * @example + * // Parse string '+02014101', + * // if the additional number of digits in the extended year format is 1: + * var result = parse('+02014101', {additionalDigits: 1}) + * //=> Fri Apr 11 2014 00:00:00 + */ +function parse (argument, dirtyOptions) { + if (isDate(argument)) { + // Prevent the date to lose the milliseconds when passed to new Date() in IE10 + return new Date(argument.getTime()) + } else if (typeof argument !== 'string') { + return new Date(argument) + } + + var options = dirtyOptions || {} + var additionalDigits = options.additionalDigits + if (additionalDigits == null) { + additionalDigits = DEFAULT_ADDITIONAL_DIGITS + } else { + additionalDigits = Number(additionalDigits) + } + + var dateStrings = splitDateString(argument) + + var parseYearResult = parseYear(dateStrings.date, additionalDigits) + var year = parseYearResult.year + var restDateString = parseYearResult.restDateString + + var date = parseDate(restDateString, year) + + if (date) { + var timestamp = date.getTime() + var time = 0 + var offset + + if (dateStrings.time) { + time = parseTime(dateStrings.time) + } + + if (dateStrings.timezone) { + offset = parseTimezone(dateStrings.timezone) * MILLISECONDS_IN_MINUTE + } else { + var fullTime = timestamp + time + var fullTimeDate = new Date(fullTime) + + offset = getTimezoneOffsetInMilliseconds(fullTimeDate) + + // Adjust time when it's coming from DST + var fullTimeDateNextDay = new Date(fullTime) + fullTimeDateNextDay.setDate(fullTimeDate.getDate() + 1) + var offsetDiff = + getTimezoneOffsetInMilliseconds(fullTimeDateNextDay) - + getTimezoneOffsetInMilliseconds(fullTimeDate) + if (offsetDiff > 0) { + offset += offsetDiff + } + } + + return new Date(timestamp + time + offset) + } else { + return new Date(argument) + } +} + +function splitDateString (dateString) { + var dateStrings = {} + var array = dateString.split(parseTokenDateTimeDelimeter) + var timeString + + if (parseTokenPlainTime.test(array[0])) { + dateStrings.date = null + timeString = array[0] + } else { + dateStrings.date = array[0] + timeString = array[1] + } + + if (timeString) { + var token = parseTokenTimezone.exec(timeString) + if (token) { + dateStrings.time = timeString.replace(token[1], '') + dateStrings.timezone = token[1] + } else { + dateStrings.time = timeString + } + } + + return dateStrings +} + +function parseYear (dateString, additionalDigits) { + var parseTokenYYY = parseTokensYYY[additionalDigits] + var parseTokenYYYYY = parseTokensYYYYY[additionalDigits] + + var token + + // YYYY or ±YYYYY + token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString) + if (token) { + var yearString = token[1] + return { + year: parseInt(yearString, 10), + restDateString: dateString.slice(yearString.length) + } + } + + // YY or ±YYY + token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString) + if (token) { + var centuryString = token[1] + return { + year: parseInt(centuryString, 10) * 100, + restDateString: dateString.slice(centuryString.length) + } + } + + // Invalid ISO-formatted year + return { + year: null + } +} + +function parseDate (dateString, year) { + // Invalid ISO-formatted year + if (year === null) { + return null + } + + var token + var date + var month + var week + + // YYYY + if (dateString.length === 0) { + date = new Date(0) + date.setUTCFullYear(year) + return date + } + + // YYYY-MM + token = parseTokenMM.exec(dateString) + if (token) { + date = new Date(0) + month = parseInt(token[1], 10) - 1 + date.setUTCFullYear(year, month) + return date + } + + // YYYY-DDD or YYYYDDD + token = parseTokenDDD.exec(dateString) + if (token) { + date = new Date(0) + var dayOfYear = parseInt(token[1], 10) + date.setUTCFullYear(year, 0, dayOfYear) + return date + } + + // YYYY-MM-DD or YYYYMMDD + token = parseTokenMMDD.exec(dateString) + if (token) { + date = new Date(0) + month = parseInt(token[1], 10) - 1 + var day = parseInt(token[2], 10) + date.setUTCFullYear(year, month, day) + return date + } + + // YYYY-Www or YYYYWww + token = parseTokenWww.exec(dateString) + if (token) { + week = parseInt(token[1], 10) - 1 + return dayOfISOYear(year, week) + } + + // YYYY-Www-D or YYYYWwwD + token = parseTokenWwwD.exec(dateString) + if (token) { + week = parseInt(token[1], 10) - 1 + var dayOfWeek = parseInt(token[2], 10) - 1 + return dayOfISOYear(year, week, dayOfWeek) + } + + // Invalid ISO-formatted date + return null +} + +function parseTime (timeString) { + var token + var hours + var minutes + + // hh + token = parseTokenHH.exec(timeString) + if (token) { + hours = parseFloat(token[1].replace(',', '.')) + return (hours % 24) * MILLISECONDS_IN_HOUR + } + + // hh:mm or hhmm + token = parseTokenHHMM.exec(timeString) + if (token) { + hours = parseInt(token[1], 10) + minutes = parseFloat(token[2].replace(',', '.')) + return (hours % 24) * MILLISECONDS_IN_HOUR + + minutes * MILLISECONDS_IN_MINUTE + } + + // hh:mm:ss or hhmmss + token = parseTokenHHMMSS.exec(timeString) + if (token) { + hours = parseInt(token[1], 10) + minutes = parseInt(token[2], 10) + var seconds = parseFloat(token[3].replace(',', '.')) + return (hours % 24) * MILLISECONDS_IN_HOUR + + minutes * MILLISECONDS_IN_MINUTE + + seconds * 1000 + } + + // Invalid ISO-formatted time + return null +} + +function parseTimezone (timezoneString) { + var token + var absoluteOffset + + // Z + token = parseTokenTimezoneZ.exec(timezoneString) + if (token) { + return 0 + } + + // ±hh + token = parseTokenTimezoneHH.exec(timezoneString) + if (token) { + absoluteOffset = parseInt(token[2], 10) * 60 + return (token[1] === '+') ? -absoluteOffset : absoluteOffset + } + + // ±hh:mm or ±hhmm + token = parseTokenTimezoneHHMM.exec(timezoneString) + if (token) { + absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10) + return (token[1] === '+') ? -absoluteOffset : absoluteOffset + } + + return 0 +} + +function dayOfISOYear (isoYear, week, day) { + week = week || 0 + day = day || 0 + var date = new Date(0) + date.setUTCFullYear(isoYear, 0, 4) + var fourthOfJanuaryDay = date.getUTCDay() || 7 + var diff = week * 7 + day + 1 - fourthOfJanuaryDay + date.setUTCDate(date.getUTCDate() + diff) + return date +} + +module.exports = parse + + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.1 ToPrimitive(input [, PreferredType]) +var isObject = __webpack_require__(18); +// instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string +module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports) { + +// 7.2.1 RequireObjectCoercible(argument) +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +// most Object methods by ES6 should accept primitives +var $export = __webpack_require__(3); +var core = __webpack_require__(37); +var fails = __webpack_require__(17); +module.exports = function (KEY, exec) { + var fn = (core.Object || {})[KEY] || Object[KEY]; + var exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); +}; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +// 0 -> Array#forEach +// 1 -> Array#map +// 2 -> Array#filter +// 3 -> Array#some +// 4 -> Array#every +// 5 -> Array#find +// 6 -> Array#findIndex +var ctx = __webpack_require__(38); +var IObject = __webpack_require__(90); +var toObject = __webpack_require__(23); +var toLength = __webpack_require__(20); +var asc = __webpack_require__(157); +module.exports = function (TYPE, $create) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var create = $create || asc; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IObject(O); + var f = ctx(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var val, res; + for (;length > index; index++) if (NO_HOLES || index in self) { + val = self[index]; + res = f(val, index, O); + if (TYPE) { + if (IS_MAP) result[index] = res; // map + else if (res) switch (TYPE) { + case 3: return true; // some + case 5: return val; // find + case 6: return index; // findIndex + case 2: result.push(val); // filter + } else if (IS_EVERY) return false; // every + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; +}; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +if (__webpack_require__(21)) { + var LIBRARY = __webpack_require__(55); + var global = __webpack_require__(16); + var fails = __webpack_require__(17); + var $export = __webpack_require__(3); + var $typed = __webpack_require__(109); + var $buffer = __webpack_require__(165); + var ctx = __webpack_require__(38); + var anInstance = __webpack_require__(68); + var propertyDesc = __webpack_require__(61); + var hide = __webpack_require__(29); + var redefineAll = __webpack_require__(70); + var toInteger = __webpack_require__(40); + var toLength = __webpack_require__(20); + var toIndex = __webpack_require__(222); + var toAbsoluteIndex = __webpack_require__(64); + var toPrimitive = __webpack_require__(43); + var has = __webpack_require__(33); + var classof = __webpack_require__(78); + var isObject = __webpack_require__(18); + var toObject = __webpack_require__(23); + var isArrayIter = __webpack_require__(154); + var create = __webpack_require__(65); + var getPrototypeOf = __webpack_require__(36); + var gOPN = __webpack_require__(66).f; + var getIterFn = __webpack_require__(156); + var uid = __webpack_require__(62); + var wks = __webpack_require__(19); + var createArrayMethod = __webpack_require__(46); + var createArrayIncludes = __webpack_require__(99); + var speciesConstructor = __webpack_require__(93); + var ArrayIterators = __webpack_require__(159); + var Iterators = __webpack_require__(80); + var $iterDetect = __webpack_require__(104); + var setSpecies = __webpack_require__(67); + var arrayFill = __webpack_require__(158); + var arrayCopyWithin = __webpack_require__(211); + var $DP = __webpack_require__(22); + var $GOPD = __webpack_require__(35); + var dP = $DP.f; + var gOPD = $GOPD.f; + var RangeError = global.RangeError; + var TypeError = global.TypeError; + var Uint8Array = global.Uint8Array; + var ARRAY_BUFFER = 'ArrayBuffer'; + var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; + var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; + var PROTOTYPE = 'prototype'; + var ArrayProto = Array[PROTOTYPE]; + var $ArrayBuffer = $buffer.ArrayBuffer; + var $DataView = $buffer.DataView; + var arrayForEach = createArrayMethod(0); + var arrayFilter = createArrayMethod(2); + var arraySome = createArrayMethod(3); + var arrayEvery = createArrayMethod(4); + var arrayFind = createArrayMethod(5); + var arrayFindIndex = createArrayMethod(6); + var arrayIncludes = createArrayIncludes(true); + var arrayIndexOf = createArrayIncludes(false); + var arrayValues = ArrayIterators.values; + var arrayKeys = ArrayIterators.keys; + var arrayEntries = ArrayIterators.entries; + var arrayLastIndexOf = ArrayProto.lastIndexOf; + var arrayReduce = ArrayProto.reduce; + var arrayReduceRight = ArrayProto.reduceRight; + var arrayJoin = ArrayProto.join; + var arraySort = ArrayProto.sort; + var arraySlice = ArrayProto.slice; + var arrayToString = ArrayProto.toString; + var arrayToLocaleString = ArrayProto.toLocaleString; + var ITERATOR = wks('iterator'); + var TAG = wks('toStringTag'); + var TYPED_CONSTRUCTOR = uid('typed_constructor'); + var DEF_CONSTRUCTOR = uid('def_constructor'); + var ALL_CONSTRUCTORS = $typed.CONSTR; + var TYPED_ARRAY = $typed.TYPED; + var VIEW = $typed.VIEW; + var WRONG_LENGTH = 'Wrong length!'; + + var $map = createArrayMethod(1, function (O, length) { + return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); + }); + + var LITTLE_ENDIAN = fails(function () { + // eslint-disable-next-line no-undef + return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; + }); + + var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { + new Uint8Array(1).set({}); + }); + + var toOffset = function (it, BYTES) { + var offset = toInteger(it); + if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); + return offset; + }; + + var validate = function (it) { + if (isObject(it) && TYPED_ARRAY in it) return it; + throw TypeError(it + ' is not a typed array!'); + }; + + var allocate = function (C, length) { + if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { + throw TypeError('It is not a typed array constructor!'); + } return new C(length); + }; + + var speciesFromList = function (O, list) { + return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); + }; + + var fromList = function (C, list) { + var index = 0; + var length = list.length; + var result = allocate(C, length); + while (length > index) result[index] = list[index++]; + return result; + }; + + var addGetter = function (it, key, internal) { + dP(it, key, { get: function () { return this._d[internal]; } }); + }; + + var $from = function from(source /* , mapfn, thisArg */) { + var O = toObject(source); + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iterFn = getIterFn(O); + var i, length, values, result, step, iterator; + if (iterFn != undefined && !isArrayIter(iterFn)) { + for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { + values.push(step.value); + } O = values; + } + if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); + for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { + result[i] = mapping ? mapfn(O[i], i) : O[i]; + } + return result; + }; + + var $of = function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = allocate(this, length); + while (length > index) result[index] = arguments[index++]; + return result; + }; + + // iOS Safari 6.x fails here + var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); + + var $toLocaleString = function toLocaleString() { + return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); + }; + + var proto = { + copyWithin: function copyWithin(target, start /* , end */) { + return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); + }, + every: function every(callbackfn /* , thisArg */) { + return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars + return arrayFill.apply(validate(this), arguments); + }, + filter: function filter(callbackfn /* , thisArg */) { + return speciesFromList(this, arrayFilter(validate(this), callbackfn, + arguments.length > 1 ? arguments[1] : undefined)); + }, + find: function find(predicate /* , thisArg */) { + return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + findIndex: function findIndex(predicate /* , thisArg */) { + return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + forEach: function forEach(callbackfn /* , thisArg */) { + arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + indexOf: function indexOf(searchElement /* , fromIndex */) { + return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + includes: function includes(searchElement /* , fromIndex */) { + return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + join: function join(separator) { // eslint-disable-line no-unused-vars + return arrayJoin.apply(validate(this), arguments); + }, + lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars + return arrayLastIndexOf.apply(validate(this), arguments); + }, + map: function map(mapfn /* , thisArg */) { + return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); + }, + reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars + return arrayReduce.apply(validate(this), arguments); + }, + reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars + return arrayReduceRight.apply(validate(this), arguments); + }, + reverse: function reverse() { + var that = this; + var length = validate(that).length; + var middle = Math.floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; + }, + some: function some(callbackfn /* , thisArg */) { + return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + sort: function sort(comparefn) { + return arraySort.call(validate(this), comparefn); + }, + subarray: function subarray(begin, end) { + var O = validate(this); + var length = O.length; + var $begin = toAbsoluteIndex(begin, length); + return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( + O.buffer, + O.byteOffset + $begin * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) + ); + } + }; + + var $slice = function slice(start, end) { + return speciesFromList(this, arraySlice.call(validate(this), start, end)); + }; + + var $set = function set(arrayLike /* , offset */) { + validate(this); + var offset = toOffset(arguments[1], 1); + var length = this.length; + var src = toObject(arrayLike); + var len = toLength(src.length); + var index = 0; + if (len + offset > length) throw RangeError(WRONG_LENGTH); + while (index < len) this[offset + index] = src[index++]; + }; + + var $iterators = { + entries: function entries() { + return arrayEntries.call(validate(this)); + }, + keys: function keys() { + return arrayKeys.call(validate(this)); + }, + values: function values() { + return arrayValues.call(validate(this)); + } + }; + + var isTAIndex = function (target, key) { + return isObject(target) + && target[TYPED_ARRAY] + && typeof key != 'symbol' + && key in target + && String(+key) == String(key); + }; + var $getDesc = function getOwnPropertyDescriptor(target, key) { + return isTAIndex(target, key = toPrimitive(key, true)) + ? propertyDesc(2, target[key]) + : gOPD(target, key); + }; + var $setDesc = function defineProperty(target, key, desc) { + if (isTAIndex(target, key = toPrimitive(key, true)) + && isObject(desc) + && has(desc, 'value') + && !has(desc, 'get') + && !has(desc, 'set') + // TODO: add validation descriptor w/o calling accessors + && !desc.configurable + && (!has(desc, 'writable') || desc.writable) + && (!has(desc, 'enumerable') || desc.enumerable) + ) { + target[key] = desc.value; + return target; + } return dP(target, key, desc); + }; + + if (!ALL_CONSTRUCTORS) { + $GOPD.f = $getDesc; + $DP.f = $setDesc; + } + + $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { + getOwnPropertyDescriptor: $getDesc, + defineProperty: $setDesc + }); + + if (fails(function () { arrayToString.call({}); })) { + arrayToString = arrayToLocaleString = function toString() { + return arrayJoin.call(this); + }; + } + + var $TypedArrayPrototype$ = redefineAll({}, proto); + redefineAll($TypedArrayPrototype$, $iterators); + hide($TypedArrayPrototype$, ITERATOR, $iterators.values); + redefineAll($TypedArrayPrototype$, { + slice: $slice, + set: $set, + constructor: function () { /* noop */ }, + toString: arrayToString, + toLocaleString: $toLocaleString + }); + addGetter($TypedArrayPrototype$, 'buffer', 'b'); + addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); + addGetter($TypedArrayPrototype$, 'byteLength', 'l'); + addGetter($TypedArrayPrototype$, 'length', 'e'); + dP($TypedArrayPrototype$, TAG, { + get: function () { return this[TYPED_ARRAY]; } + }); + + // eslint-disable-next-line max-statements + module.exports = function (KEY, BYTES, wrapper, CLAMPED) { + CLAMPED = !!CLAMPED; + var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + KEY; + var SETTER = 'set' + KEY; + var TypedArray = global[NAME]; + var Base = TypedArray || {}; + var TAC = TypedArray && getPrototypeOf(TypedArray); + var FORCED = !TypedArray || !$typed.ABV; + var O = {}; + var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; + var getter = function (that, index) { + var data = that._d; + return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); + }; + var setter = function (that, index, value) { + var data = that._d; + if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; + data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); + }; + var addElement = function (that, index) { + dP(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + if (FORCED) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME, '_d'); + var index = 0; + var offset = 0; + var buffer, byteLength, length, klass; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new $ArrayBuffer(byteLength); + } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + buffer = data; + offset = toOffset($offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw RangeError(WRONG_LENGTH); + byteLength = $len - offset; + if (byteLength < 0) throw RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (TYPED_ARRAY in data) { + return fromList(TypedArray, data); + } else { + return $from.call(TypedArray, data); + } + hide(that, '_d', { + b: buffer, + o: offset, + l: byteLength, + e: length, + v: new $DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); + hide(TypedArrayPrototype, 'constructor', TypedArray); + } else if (!fails(function () { + TypedArray(1); + }) || !fails(function () { + new TypedArray(-1); // eslint-disable-line no-new + }) || !$iterDetect(function (iter) { + new TypedArray(); // eslint-disable-line no-new + new TypedArray(null); // eslint-disable-line no-new + new TypedArray(1.5); // eslint-disable-line no-new + new TypedArray(iter); // eslint-disable-line no-new + }, true)) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME); + var klass; + // `ws` module bug, temporarily remove validation length for Uint8Array + // https://github.com/websockets/ws/pull/645 + if (!isObject(data)) return new Base(toIndex(data)); + if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + return $length !== undefined + ? new Base(data, toOffset($offset, BYTES), $length) + : $offset !== undefined + ? new Base(data, toOffset($offset, BYTES)) + : new Base(data); + } + if (TYPED_ARRAY in data) return fromList(TypedArray, data); + return $from.call(TypedArray, data); + }); + arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { + if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); + }); + TypedArray[PROTOTYPE] = TypedArrayPrototype; + if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; + } + var $nativeIterator = TypedArrayPrototype[ITERATOR]; + var CORRECT_ITER_NAME = !!$nativeIterator + && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); + var $iterator = $iterators.values; + hide(TypedArray, TYPED_CONSTRUCTOR, true); + hide(TypedArrayPrototype, TYPED_ARRAY, NAME); + hide(TypedArrayPrototype, VIEW, true); + hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); + + if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { + dP(TypedArrayPrototype, TAG, { + get: function () { return NAME; } + }); + } + + O[NAME] = TypedArray; + + $export($export.G + $export.W + $export.F * (TypedArray != Base), O); + + $export($export.S, NAME, { + BYTES_PER_ELEMENT: BYTES + }); + + $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { + from: $from, + of: $of + }); + + if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); + + $export($export.P, NAME, proto); + + setSpecies(NAME); + + $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); + + $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); + + if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; + + $export($export.P + $export.F * fails(function () { + new TypedArray(1).slice(); + }), NAME, { slice: $slice }); + + $export($export.P + $export.F * (fails(function () { + return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); + }) || !fails(function () { + TypedArrayPrototype.toLocaleString.call([1, 2]); + })), NAME, { toLocaleString: $toLocaleString }); + + Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; + if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); + }; +} else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +var Map = __webpack_require__(217); +var $export = __webpack_require__(3); +var shared = __webpack_require__(89)('metadata'); +var store = shared.store || (shared.store = new (__webpack_require__(220))()); + +var getOrCreateMetadataMap = function (target, targetKey, create) { + var targetMetadata = store.get(target); + if (!targetMetadata) { + if (!create) return undefined; + store.set(target, targetMetadata = new Map()); + } + var keyMetadata = targetMetadata.get(targetKey); + if (!keyMetadata) { + if (!create) return undefined; + targetMetadata.set(targetKey, keyMetadata = new Map()); + } return keyMetadata; +}; +var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? false : metadataMap.has(MetadataKey); +}; +var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); +}; +var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { + getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); +}; +var ordinaryOwnMetadataKeys = function (target, targetKey) { + var metadataMap = getOrCreateMetadataMap(target, targetKey, false); + var keys = []; + if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); + return keys; +}; +var toMetaKey = function (it) { + return it === undefined || typeof it == 'symbol' ? it : String(it); +}; +var exp = function (O) { + $export($export.S, 'Reflect', O); +}; + +module.exports = { + store: store, + map: getOrCreateMetadataMap, + has: ordinaryHasOwnMetadata, + get: ordinaryGetOwnMetadata, + set: ordinaryDefineOwnMetadata, + keys: ordinaryOwnMetadataKeys, + key: toMetaKey, + exp: exp +}; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(95), + getRawTag = __webpack_require__(505), + objectToString = __webpack_require__(506); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + +var freeGlobal = __webpack_require__(232); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(74), + isLength = __webpack_require__(173); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + +function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } + +function _typeof(obj) { + if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { + module.exports = _typeof = function _typeof(obj) { + return _typeof2(obj); + }; + } else { + module.exports = _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); + }; + } + + return _typeof(obj); +} + +module.exports = _typeof; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIndexOf = __webpack_require__(239), + isArrayLike = __webpack_require__(52), + isString = __webpack_require__(128), + toInteger = __webpack_require__(126), + values = __webpack_require__(584); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * Checks if `value` is in `collection`. If `collection` is a string, it's + * checked for a substring of `value`, otherwise + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * is used for equality comparisons. If `fromIndex` is negative, it's used as + * the offset from the end of `collection`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @param {*} value The value to search for. + * @param {number} [fromIndex=0] The index to search from. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. + * @returns {boolean} Returns `true` if `value` is found, else `false`. + * @example + * + * _.includes([1, 2, 3], 1); + * // => true + * + * _.includes([1, 2, 3], 1, 2); + * // => false + * + * _.includes({ 'a': 1, 'b': 2 }, 1); + * // => true + * + * _.includes('abcd', 'bc'); + * // => true + */ +function includes(collection, value, fromIndex, guard) { + collection = isArrayLike(collection) ? collection : values(collection); + fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; + + var length = collection.length; + if (fromIndex < 0) { + fromIndex = nativeMax(length + fromIndex, 0); + } + return isString(collection) + ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) + : (!!length && baseIndexOf(collection, value, fromIndex) > -1); +} + +module.exports = includes; + + +/***/ }), +/* 55 */ +/***/ (function(module, exports) { + +module.exports = false; + + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +var META = __webpack_require__(62)('meta'); +var isObject = __webpack_require__(18); +var has = __webpack_require__(33); +var setDesc = __webpack_require__(22).f; +var id = 0; +var isExtensible = Object.isExtensible || function () { + return true; +}; +var FREEZE = !__webpack_require__(17)(function () { + return isExtensible(Object.preventExtensions({})); +}); +var setMeta = function (it) { + setDesc(it, META, { value: { + i: 'O' + ++id, // object ID + w: {} // weak collections IDs + } }); +}; +var fastKey = function (it, create) { + // return primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMeta(it); + // return object ID + } return it[META].i; +}; +var getWeak = function (it, create) { + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMeta(it); + // return hash weak collections IDs + } return it[META].w; +}; +// add metadata on freeze-family methods calling +var onFreeze = function (it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; +}; +var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze +}; + + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.3.31 Array.prototype[@@unscopables] +var UNSCOPABLES = __webpack_require__(19)('unscopables'); +var ArrayProto = Array.prototype; +if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(29)(ArrayProto, UNSCOPABLES, {}); +module.exports = function (key) { + ArrayProto[UNSCOPABLES][key] = true; +}; + + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseDifference = __webpack_require__(238), + baseRest = __webpack_require__(96), + isArrayLikeObject = __webpack_require__(123); + +/** + * Creates an array excluding all given values using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * **Note:** Unlike `_.pull`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...*} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.difference, _.xor + * @example + * + * _.without([2, 1, 2, 3], 1, 2); + * // => [3] + */ +var without = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, values) + : []; +}); + +module.exports = without; + + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +var arraySome = __webpack_require__(243), + baseIteratee = __webpack_require__(73), + baseSome = __webpack_require__(574), + isArray = __webpack_require__(26), + isIterateeCall = __webpack_require__(257); + +/** + * Checks if `predicate` returns truthy for **any** element of `collection`. + * Iteration is stopped once `predicate` returns truthy. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + * @example + * + * _.some([null, 0, 'yes', false], Boolean); + * // => true + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.some(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.some(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.some(users, 'active'); + * // => true + */ +function some(collection, predicate, guard) { + var func = isArray(collection) ? arraySome : baseSome; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, baseIteratee(predicate, 3)); +} + +module.exports = some; + + +/***/ }), +/* 60 */, +/* 61 */ +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), +/* 62 */ +/***/ (function(module, exports) { + +var id = 0; +var px = Math.random(); +module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 / 15.2.3.14 Object.keys(O) +var $keys = __webpack_require__(196); +var enumBugKeys = __webpack_require__(142); + +module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); +}; + + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(40); +var max = Math.max; +var min = Math.min; +module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) +var anObject = __webpack_require__(9); +var dPs = __webpack_require__(197); +var enumBugKeys = __webpack_require__(142); +var IE_PROTO = __webpack_require__(141)('IE_PROTO'); +var Empty = function () { /* empty */ }; +var PROTOTYPE = 'prototype'; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var createDict = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__(139)('iframe'); + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + __webpack_require__(143).appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; + return createDict(); +}; + +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : dPs(result, Properties); +}; + + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) +var $keys = __webpack_require__(196); +var hiddenKeys = __webpack_require__(142).concat('length', 'prototype'); + +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); +}; + + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__(16); +var dP = __webpack_require__(22); +var DESCRIPTORS = __webpack_require__(21); +var SPECIES = __webpack_require__(19)('species'); + +module.exports = function (KEY) { + var C = global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function () { return this; } + }); +}; + + +/***/ }), +/* 68 */ +/***/ (function(module, exports) { + +module.exports = function (it, Constructor, name, forbiddenField) { + if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { + throw TypeError(name + ': incorrect invocation!'); + } return it; +}; + + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +var ctx = __webpack_require__(38); +var call = __webpack_require__(209); +var isArrayIter = __webpack_require__(154); +var anObject = __webpack_require__(9); +var toLength = __webpack_require__(20); +var getIterFn = __webpack_require__(156); +var BREAK = {}; +var RETURN = {}; +var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { + var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); + var f = ctx(fn, that, entries ? 2 : 1); + var index = 0; + var length, step, iterator, result; + if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); + // fast case for arrays with default iterator + if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { + result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + if (result === BREAK || result === RETURN) return result; + } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { + result = call(iterator, f, step.value, entries); + if (result === BREAK || result === RETURN) return result; + } +}; +exports.BREAK = BREAK; +exports.RETURN = RETURN; + + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + +var redefine = __webpack_require__(30); +module.exports = function (target, src, safe) { + for (var key in src) redefine(target, key, src[key], safe); + return target; +}; + + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(18); +module.exports = function (it, TYPE) { + if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); + return it; +}; + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsNative = __webpack_require__(513), + getValue = __webpack_require__(516); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseMatches = __webpack_require__(543), + baseMatchesProperty = __webpack_require__(570), + identity = __webpack_require__(120), + isArray = __webpack_require__(26), + property = __webpack_require__(572); + +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); +} + +module.exports = baseIteratee; + + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + isObject = __webpack_require__(81); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; + + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function checkDCE() { + /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ + if ( + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function' + ) { + return; + } + if (false) {} + try { + // Verify that the code above has been dead code eliminated (DCE'd). + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); + } catch (err) { + // DevTools shouldn't crash React, no matter what. + // We should still report in case we break this code. + console.error(err); + } +} + +if (true) { + // DCE check should happen before ReactDOM bundle executes so that + // DevTools can report bad minification during injection. + checkDCE(); + module.exports = __webpack_require__(500); +} else {} + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayWithHoles = __webpack_require__(581); + +var iterableToArrayLimit = __webpack_require__(582); + +var nonIterableRest = __webpack_require__(583); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray; + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +var def = __webpack_require__(22).f; +var has = __webpack_require__(33); +var TAG = __webpack_require__(19)('toStringTag'); + +module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); +}; + + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + +// getting tag from 19.1.3.6 Object.prototype.toString() +var cof = __webpack_require__(39); +var TAG = __webpack_require__(19)('toStringTag'); +// ES3 wrong here +var ARG = cof(function () { return arguments; }()) == 'Arguments'; + +// fallback for IE11 Script Access Denied error +var tryGet = function (it, key) { + try { + return it[key]; + } catch (e) { /* empty */ } +}; + +module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; + + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var defined = __webpack_require__(44); +var fails = __webpack_require__(17); +var spaces = __webpack_require__(145); +var space = '[' + spaces + ']'; +var non = '\u200b\u0085'; +var ltrim = RegExp('^' + space + space + '*'); +var rtrim = RegExp(space + space + '*$'); + +var exporter = function (KEY, exec, ALIAS) { + var exp = {}; + var FORCE = fails(function () { + return !!spaces[KEY]() || non[KEY]() != non; + }); + var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; + if (ALIAS) exp[ALIAS] = fn; + $export($export.P + $export.F * FORCE, 'String', exp); +}; + +// 1 -> String#trimLeft +// 2 -> String#trimRight +// 3 -> String#trim +var trim = exporter.trim = function (string, TYPE) { + string = String(defined(string)); + if (TYPE & 1) string = string.replace(ltrim, ''); + if (TYPE & 2) string = string.replace(rtrim, ''); + return string; +}; + +module.exports = exporter; + + +/***/ }), +/* 80 */ +/***/ (function(module, exports) { + +module.exports = {}; + + +/***/ }), +/* 81 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseToString = __webpack_require__(234); + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +module.exports = toString; + + +/***/ }), +/* 83 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + +var isSymbol = __webpack_require__(113); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayLikeKeys = __webpack_require__(559), + baseKeys = __webpack_require__(178), + isArrayLike = __webpack_require__(52); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +module.exports = keys; + + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseForOwn = __webpack_require__(575), + createBaseEach = __webpack_require__(578); + +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ +function isUndefined(value) { + return value === undefined; +} + +module.exports = isUndefined; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseKeys = __webpack_require__(178), + getTag = __webpack_require__(179), + isArguments = __webpack_require__(124), + isArray = __webpack_require__(26), + isArrayLike = __webpack_require__(52), + isBuffer = __webpack_require__(176), + isPrototype = __webpack_require__(247), + isTypedArray = __webpack_require__(177); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + setTag = '[object Set]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ +function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; +} + +module.exports = isEmpty; + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + +var core = __webpack_require__(37); +var global = __webpack_require__(16); +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || (global[SHARED] = {}); + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: core.version, + mode: __webpack_require__(55) ? 'pure' : 'global', + copyright: '© 2019 Denis Pushkarev (zloirock.ru)' +}); + + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var cof = __webpack_require__(39); +// eslint-disable-next-line no-prototype-builtins +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); +}; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports) { + +exports.f = {}.propertyIsEnumerable; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 21.2.5.3 get RegExp.prototype.flags +var anObject = __webpack_require__(9); +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.unicode) result += 'u'; + if (that.sticky) result += 'y'; + return result; +}; + + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.3.20 SpeciesConstructor(O, defaultConstructor) +var anObject = __webpack_require__(9); +var aFunction = __webpack_require__(27); +var SPECIES = __webpack_require__(19)('species'); +module.exports = function (O, D) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); +}; + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(26), + isKey = __webpack_require__(166), + stringToPath = __webpack_require__(507), + toString = __webpack_require__(82); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; + + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(51); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + +var identity = __webpack_require__(120), + overRest = __webpack_require__(235), + setToString = __webpack_require__(236); + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); +} + +module.exports = baseRest; + + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) + +/** + * @category Day Helpers + * @summary Return the start of a day for the given date. + * + * @description + * Return the start of a day for the given date. + * The result will be in the local timezone. + * + * @param {Date|String|Number} date - the original date + * @returns {Date} the start of a day + * + * @example + * // The start of a day for 2 September 2014 11:55:00: + * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Tue Sep 02 2014 00:00:00 + */ +function startOfDay (dirtyDate) { + var date = parse(dirtyDate) + date.setHours(0, 0, 0, 0) + return date +} + +module.exports = startOfDay + + +/***/ }), +/* 98 */, +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + +// false -> Array#indexOf +// true -> Array#includes +var toIObject = __webpack_require__(34); +var toLength = __webpack_require__(20); +var toAbsoluteIndex = __webpack_require__(64); +module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + + +/***/ }), +/* 100 */ +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.2.2 IsArray(argument) +var cof = __webpack_require__(39); +module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; +}; + + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(40); +var defined = __webpack_require__(44); +// true -> String#at +// false -> String#codePointAt +module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; +}; + + +/***/ }), +/* 103 */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.2.8 IsRegExp(argument) +var isObject = __webpack_require__(18); +var cof = __webpack_require__(39); +var MATCH = __webpack_require__(19)('match'); +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); +}; + + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + +var ITERATOR = __webpack_require__(19)('iterator'); +var SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + riter['return'] = function () { SAFE_CLOSING = true; }; + // eslint-disable-next-line no-throw-literal + Array.from(riter, function () { throw 2; }); +} catch (e) { /* empty */ } + +module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + try { + var arr = [7]; + var iter = arr[ITERATOR](); + iter.next = function () { return { done: safe = true }; }; + arr[ITERATOR] = function () { return iter; }; + exec(arr); + } catch (e) { /* empty */ } + return safe; +}; + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var classof = __webpack_require__(78); +var builtinExec = RegExp.prototype.exec; + + // `RegExpExec` abstract operation +// https://tc39.github.io/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (typeof exec === 'function') { + var result = exec.call(R, S); + if (typeof result !== 'object') { + throw new TypeError('RegExp exec method returned something other than an Object or null'); + } + return result; + } + if (classof(R) !== 'RegExp') { + throw new TypeError('RegExp#exec called on incompatible receiver'); + } + return builtinExec.call(R, S); +}; + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +__webpack_require__(213); +var redefine = __webpack_require__(30); +var hide = __webpack_require__(29); +var fails = __webpack_require__(17); +var defined = __webpack_require__(44); +var wks = __webpack_require__(19); +var regexpExec = __webpack_require__(160); + +var SPECIES = wks('species'); + +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + // #replace needs built-in support for named groups. + // #match works fine because it just return the exec results, even if it has + // a "grops" property. + var re = /./; + re.exec = function () { + var result = []; + result.groups = { a: '7' }; + return result; + }; + return ''.replace(re, '$') !== '7'; +}); + +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () { + // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec + var re = /(?:)/; + var originalExec = re.exec; + re.exec = function () { return originalExec.apply(this, arguments); }; + var result = 'ab'.split(re); + return result.length === 2 && result[0] === 'a' && result[1] === 'b'; +})(); + +module.exports = function (KEY, length, exec) { + var SYMBOL = wks(KEY); + + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegEp methods + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) != 7; + }); + + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + re.exec = function () { execCalled = true; return null; }; + if (KEY === 'split') { + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + re.constructor[SPECIES] = function () { return re; }; + } + re[SYMBOL](''); + return !execCalled; + }) : undefined; + + if ( + !DELEGATES_TO_SYMBOL || + !DELEGATES_TO_EXEC || + (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) || + (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) + ) { + var nativeRegExpMethod = /./[SYMBOL]; + var fns = exec( + defined, + SYMBOL, + ''[KEY], + function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { + if (regexp.exec === regexpExec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; + } + return { done: true, value: nativeMethod.call(str, regexp, arg2) }; + } + return { done: false }; + } + ); + var strfn = fns[0]; + var rxfn = fns[1]; + + redefine(String.prototype, KEY, strfn); + hide(RegExp.prototype, SYMBOL, length == 2 + // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) + // 21.2.5.11 RegExp.prototype[@@split](string, limit) + ? function (string, arg) { return rxfn.call(string, this, arg); } + // 21.2.5.6 RegExp.prototype[@@match](string) + // 21.2.5.9 RegExp.prototype[@@search](string) + : function (string) { return rxfn.call(string, this); } + ); + } +}; + + +/***/ }), +/* 107 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(16); +var navigator = global.navigator; + +module.exports = navigator && navigator.userAgent || ''; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__(16); +var $export = __webpack_require__(3); +var redefine = __webpack_require__(30); +var redefineAll = __webpack_require__(70); +var meta = __webpack_require__(56); +var forOf = __webpack_require__(69); +var anInstance = __webpack_require__(68); +var isObject = __webpack_require__(18); +var fails = __webpack_require__(17); +var $iterDetect = __webpack_require__(104); +var setToStringTag = __webpack_require__(77); +var inheritIfRequired = __webpack_require__(146); + +module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + var fixMethod = function (KEY) { + var fn = proto[KEY]; + redefine(proto, KEY, + KEY == 'delete' ? function (a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a) { + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } + : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } + ); + }; + if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + // create collection constructor + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + var instance = new C(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new C(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + if (!ACCEPT_ITERABLES) { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME); + var that = inheritIfRequired(new Base(), target, C); + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + // weak collections should not contains .clear method + if (IS_WEAK && proto.clear) delete proto.clear; + } + + setToStringTag(C, NAME); + + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + + return C; +}; + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(16); +var hide = __webpack_require__(29); +var uid = __webpack_require__(62); +var TYPED = uid('typed_array'); +var VIEW = uid('view'); +var ABV = !!(global.ArrayBuffer && global.DataView); +var CONSTR = ABV; +var i = 0; +var l = 9; +var Typed; + +var TypedArrayConstructors = ( + 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' +).split(','); + +while (i < l) { + if (Typed = global[TypedArrayConstructors[i++]]) { + hide(Typed.prototype, TYPED, true); + hide(Typed.prototype, VIEW, true); + } else CONSTR = false; +} + +module.exports = { + ABV: ABV, + CONSTR: CONSTR, + TYPED: TYPED, + VIEW: VIEW +}; + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// Forced replacement prototype accessors methods +module.exports = __webpack_require__(55) || !__webpack_require__(17)(function () { + var K = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call + __defineSetter__.call(null, K, function () { /* empty */ }); + delete __webpack_require__(16)[K]; +}); + + +/***/ }), +/* 111 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/proposal-setmap-offrom/ +var $export = __webpack_require__(3); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { of: function of() { + var length = arguments.length; + var A = new Array(length); + while (length--) A[length] = arguments[length]; + return new this(A); + } }); +}; + + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/proposal-setmap-offrom/ +var $export = __webpack_require__(3); +var aFunction = __webpack_require__(27); +var ctx = __webpack_require__(38); +var forOf = __webpack_require__(69); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + return new this(A); + } }); +}; + + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + isObjectLike = __webpack_require__(47); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(72); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + +var listCacheClear = __webpack_require__(521), + listCacheDelete = __webpack_require__(522), + listCacheGet = __webpack_require__(523), + listCacheHas = __webpack_require__(524), + listCacheSet = __webpack_require__(525); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(117); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + + +/***/ }), +/* 117 */ +/***/ (function(module, exports) { + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + +var isKeyable = __webpack_require__(527); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(94), + toKey = __webpack_require__(84); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + + +/***/ }), +/* 120 */ +/***/ (function(module, exports) { + +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + +var MapCache = __webpack_require__(167), + setCacheAdd = __webpack_require__(536), + setCacheHas = __webpack_require__(537); + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +module.exports = SetCache; + + +/***/ }), +/* 122 */ +/***/ (function(module, exports) { + +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +module.exports = cacheHas; + + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArrayLike = __webpack_require__(52), + isObjectLike = __webpack_require__(47); + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +module.exports = isArrayLikeObject; + + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsArguments = __webpack_require__(561), + isObjectLike = __webpack_require__(47); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + + +/***/ }), +/* 125 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + +var toFinite = __webpack_require__(255); + +/** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ +function toInteger(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; +} + +module.exports = toInteger; + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayWithoutHoles = __webpack_require__(603); + +var iterableToArray = __webpack_require__(604); + +var nonIterableSpread = __webpack_require__(605); + +function _toConsumableArray(arr) { + return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); +} + +module.exports = _toConsumableArray; + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + isArray = __webpack_require__(26), + isObjectLike = __webpack_require__(47); + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); +} + +module.exports = isString; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports, __webpack_require__) { + +var createFind = __webpack_require__(542), + findIndex = __webpack_require__(183); + +/** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ +var find = createFind(findIndex); + +module.exports = find; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayFilter = __webpack_require__(245), + baseFilter = __webpack_require__(595), + baseIteratee = __webpack_require__(73), + isArray = __webpack_require__(26); + +/** + * Iterates over elements of `collection`, returning an array of all elements + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * **Note:** Unlike `_.remove`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + * @see _.reject + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * _.filter(users, function(o) { return !o.active; }); + * // => objects for ['fred'] + * + * // The `_.matches` iteratee shorthand. + * _.filter(users, { 'age': 36, 'active': true }); + * // => objects for ['barney'] + * + * // The `_.matchesProperty` iteratee shorthand. + * _.filter(users, ['active', false]); + * // => objects for ['fred'] + * + * // The `_.property` iteratee shorthand. + * _.filter(users, 'active'); + * // => objects for ['barney'] + */ +function filter(collection, predicate) { + var func = isArray(collection) ? arrayFilter : baseFilter; + return func(collection, baseIteratee(predicate, 3)); +} + +module.exports = filter; + + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __webpack_require__) { + +var deburrLetter = __webpack_require__(611), + toString = __webpack_require__(82); + +/** Used to match Latin Unicode letters (excluding mathematical operators). */ +var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; + +/** Used to compose unicode character classes. */ +var rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange; + +/** Used to compose unicode capture groups. */ +var rsCombo = '[' + rsComboRange + ']'; + +/** + * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and + * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). + */ +var reComboMark = RegExp(rsCombo, 'g'); + +/** + * Deburrs `string` by converting + * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) + * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) + * letters to basic Latin letters and removing + * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to deburr. + * @returns {string} Returns the deburred string. + * @example + * + * _.deburr('déjà vu'); + * // => 'deja vu' + */ +function deburr(string) { + string = toString(string); + return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); +} + +module.exports = deburr; + + +/***/ }), +/* 132 */ +/***/ (function(module, exports) { + +function setCookie(name, value, days) { + var expires = ""; + + if (days) { + var date = new Date(); + date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000); + expires = "; expires=" + date.toUTCString(); + } + + document.cookie = name + "=" + (value || "") + expires + "; path=/"; +} + +function getCookie(name) { + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + + while (c.charAt(0) == ' ') { + c = c.substring(1, c.length); + } + + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); + } + + return null; +} + +function eraseCookie(name) { + document.cookie = name + '=; Max-Age=-99999999;'; +} + +module.exports = { + setCookie: setCookie, + getCookie: getCookie, + eraseCookie: eraseCookie +}; + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __webpack_require__) { + +var isDate = __webpack_require__(262) + +/** + * @category Common Helpers + * @summary Is the given date valid? + * + * @description + * Returns false if argument is Invalid Date and true otherwise. + * Invalid Date is a Date, whose time value is NaN. + * + * Time value of Date: http://es5.github.io/#x15.9.1.1 + * + * @param {Date} date - the date to check + * @returns {Boolean} the date is valid + * @throws {TypeError} argument must be an instance of Date + * + * @example + * // For the valid date: + * var result = isValid(new Date(2014, 1, 31)) + * //=> true + * + * @example + * // For the invalid date: + * var result = isValid(new Date('')) + * //=> false + */ +function isValid (dirtyDate) { + if (isDate(dirtyDate)) { + return !isNaN(dirtyDate) + } else { + throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date') + } +} + +module.exports = isValid + + +/***/ }), +/* 134 */ +/***/ (function(module, exports) { + +// + +module.exports = function shallowEqual(objA, objB, compare, compareContext) { + var ret = compare ? compare.call(compareContext, objA, objB) : void 0; + + if (ret !== void 0) { + return !!ret; + } + + if (objA === objB) { + return true; + } + + if (typeof objA !== "object" || !objA || typeof objB !== "object" || !objB) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + + if (keysA.length !== keysB.length) { + return false; + } + + var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); + + // Test for A's keys different from B. + for (var idx = 0; idx < keysA.length; idx++) { + var key = keysA[idx]; + + if (!bHasOwnProperty(key)) { + return false; + } + + var valueA = objA[key]; + var valueB = objB[key]; + + ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0; + + if (ret === false || (ret === void 0 && valueA !== valueB)) { + return false; + } + } + + return true; +}; + + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __webpack_require__) { + +var startOfDay = __webpack_require__(97) + +/** + * @category Day Helpers + * @summary Are the given dates in the same day? + * + * @description + * Are the given dates in the same day? + * + * @param {Date|String|Number} dateLeft - the first date to check + * @param {Date|String|Number} dateRight - the second date to check + * @returns {Boolean} the dates are in the same day + * + * @example + * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day? + * var result = isSameDay( + * new Date(2014, 8, 4, 6, 0), + * new Date(2014, 8, 4, 18, 0) + * ) + * //=> true + */ +function isSameDay (dirtyDateLeft, dirtyDateRight) { + var dateLeftStartOfDay = startOfDay(dirtyDateLeft) + var dateRightStartOfDay = startOfDay(dirtyDateRight) + + return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime() +} + +module.exports = isSameDay + + +/***/ }), +/* 136 */, +/* 137 */, +/* 138 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(18); +var document = __webpack_require__(16).document; +// typeof document.createElement is 'object' in old IE +var is = isObject(document) && isObject(document.createElement); +module.exports = function (it) { + return is ? document.createElement(it) : {}; +}; + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(16); +var core = __webpack_require__(37); +var LIBRARY = __webpack_require__(55); +var wksExt = __webpack_require__(195); +var defineProperty = __webpack_require__(22).f; +module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); +}; + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(89)('keys'); +var uid = __webpack_require__(62); +module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); +}; + + +/***/ }), +/* 142 */ +/***/ (function(module, exports) { + +// IE 8- don't enum bug keys +module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' +).split(','); + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + +var document = __webpack_require__(16).document; +module.exports = document && document.documentElement; + + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __webpack_require__) { + +// Works with __proto__ only. Old v8 can't work with null proto objects. +/* eslint-disable no-proto */ +var isObject = __webpack_require__(18); +var anObject = __webpack_require__(9); +var check = function (O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); +}; +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function (test, buggy, set) { + try { + set = __webpack_require__(38)(Function.call, __webpack_require__(35).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { buggy = true; } + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + + +/***/ }), +/* 145 */ +/***/ (function(module, exports) { + +module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(18); +var setPrototypeOf = __webpack_require__(144).set; +module.exports = function (that, target, C) { + var S = target.constructor; + var P; + if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { + setPrototypeOf(that, P); + } return that; +}; + + +/***/ }), +/* 147 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var toInteger = __webpack_require__(40); +var defined = __webpack_require__(44); + +module.exports = function repeat(count) { + var str = String(defined(this)); + var res = ''; + var n = toInteger(count); + if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; + return res; +}; + + +/***/ }), +/* 148 */ +/***/ (function(module, exports) { + +// 20.2.2.28 Math.sign(x) +module.exports = Math.sign || function sign(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; +}; + + +/***/ }), +/* 149 */ +/***/ (function(module, exports) { + +// 20.2.2.14 Math.expm1(x) +var $expm1 = Math.expm1; +module.exports = (!$expm1 + // Old FF bug + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) != -2e-17 +) ? function expm1(x) { + return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; +} : $expm1; + + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var LIBRARY = __webpack_require__(55); +var $export = __webpack_require__(3); +var redefine = __webpack_require__(30); +var hide = __webpack_require__(29); +var Iterators = __webpack_require__(80); +var $iterCreate = __webpack_require__(151); +var setToStringTag = __webpack_require__(77); +var getPrototypeOf = __webpack_require__(36); +var ITERATOR = __webpack_require__(19)('iterator'); +var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` +var FF_ITERATOR = '@@iterator'; +var KEYS = 'keys'; +var VALUES = 'values'; + +var returnThis = function () { return this; }; + +module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + var getMethod = function (kind) { + if (!BUGGY && kind in proto) return proto[kind]; + switch (kind) { + case KEYS: return function keys() { return new Constructor(this, kind); }; + case VALUES: return function values() { return new Constructor(this, kind); }; + } return function entries() { return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; + // Fix native + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + $default = function values() { return $native.call(this); }; + } + // Define iterator + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; +}; + + +/***/ }), +/* 151 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var create = __webpack_require__(65); +var descriptor = __webpack_require__(61); +var setToStringTag = __webpack_require__(77); +var IteratorPrototype = {}; + +// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() +__webpack_require__(29)(IteratorPrototype, __webpack_require__(19)('iterator'), function () { return this; }); + +module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + + +/***/ }), +/* 152 */ +/***/ (function(module, exports, __webpack_require__) { + +// helper for String#{startsWith, endsWith, includes} +var isRegExp = __webpack_require__(103); +var defined = __webpack_require__(44); + +module.exports = function (that, searchString, NAME) { + if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); +}; + + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + +var MATCH = __webpack_require__(19)('match'); +module.exports = function (KEY) { + var re = /./; + try { + '/./'[KEY](re); + } catch (e) { + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch (f) { /* empty */ } + } return true; +}; + + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __webpack_require__) { + +// check on default Array iterator +var Iterators = __webpack_require__(80); +var ITERATOR = __webpack_require__(19)('iterator'); +var ArrayProto = Array.prototype; + +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; + + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $defineProperty = __webpack_require__(22); +var createDesc = __webpack_require__(61); + +module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value)); + else object[index] = value; +}; + + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__(78); +var ITERATOR = __webpack_require__(19)('iterator'); +var Iterators = __webpack_require__(80); +module.exports = __webpack_require__(37).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; +}; + + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + +// 9.4.2.3 ArraySpeciesCreate(originalArray, length) +var speciesConstructor = __webpack_require__(389); + +module.exports = function (original, length) { + return new (speciesConstructor(original))(length); +}; + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) + +var toObject = __webpack_require__(23); +var toAbsoluteIndex = __webpack_require__(64); +var toLength = __webpack_require__(20); +module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = toLength(O.length); + var aLen = arguments.length; + var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); + var end = aLen > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; +}; + + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var addToUnscopables = __webpack_require__(57); +var step = __webpack_require__(212); +var Iterators = __webpack_require__(80); +var toIObject = __webpack_require__(34); + +// 22.1.3.4 Array.prototype.entries() +// 22.1.3.13 Array.prototype.keys() +// 22.1.3.29 Array.prototype.values() +// 22.1.3.30 Array.prototype[@@iterator]() +module.exports = __webpack_require__(150)(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind +// 22.1.5.2.1 %ArrayIteratorPrototype%.next() +}, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); + +// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) +Iterators.Arguments = Iterators.Array; + +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var regexpFlags = __webpack_require__(92); + +var nativeExec = RegExp.prototype.exec; +// This always refers to the native implementation, because the +// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, +// which loads this file before patching the method. +var nativeReplace = String.prototype.replace; + +var patchedExec = nativeExec; + +var LAST_INDEX = 'lastIndex'; + +var UPDATES_LAST_INDEX_WRONG = (function () { + var re1 = /a/, + re2 = /b*/g; + nativeExec.call(re1, 'a'); + nativeExec.call(re2, 'a'); + return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; +})(); + +// nonparticipating capturing group, copied from es5-shim's String#split patch. +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; + +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; + +if (PATCH) { + patchedExec = function exec(str) { + var re = this; + var lastIndex, reCopy, match, i; + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); + } + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; + + match = nativeExec.call(re, str); + + if (UPDATES_LAST_INDEX_WRONG && match) { + re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; + } + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ + // eslint-disable-next-line no-loop-func + nativeReplace.call(match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + return match; + }; +} + +module.exports = patchedExec; + + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var at = __webpack_require__(102)(true); + + // `AdvanceStringIndex` abstract operation +// https://tc39.github.io/ecma262/#sec-advancestringindex +module.exports = function (S, index, unicode) { + return index + (unicode ? at(S, index).length : 1); +}; + + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __webpack_require__) { + +var ctx = __webpack_require__(38); +var invoke = __webpack_require__(202); +var html = __webpack_require__(143); +var cel = __webpack_require__(139); +var global = __webpack_require__(16); +var process = global.process; +var setTask = global.setImmediate; +var clearTask = global.clearImmediate; +var MessageChannel = global.MessageChannel; +var Dispatch = global.Dispatch; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var defer, channel, port; +var run = function () { + var id = +this; + // eslint-disable-next-line no-prototype-builtins + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; +var listener = function (event) { + run.call(event.data); +}; +// Node.js 0.9+ & IE10+ has setImmediate, otherwise: +if (!setTask || !clearTask) { + setTask = function setImmediate(fn) { + var args = []; + var i = 1; + while (arguments.length > i) args.push(arguments[i++]); + queue[++counter] = function () { + // eslint-disable-next-line no-new-func + invoke(typeof fn == 'function' ? fn : Function(fn), args); + }; + defer(counter); + return counter; + }; + clearTask = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (__webpack_require__(39)(process) == 'process') { + defer = function (id) { + process.nextTick(ctx(run, id, 1)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(ctx(run, id, 1)); + }; + // Browsers with MessageChannel, includes WebWorkers + } else if (MessageChannel) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = ctx(port.postMessage, port, 1); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { + defer = function (id) { + global.postMessage(id + '', '*'); + }; + global.addEventListener('message', listener, false); + // IE8- + } else if (ONREADYSTATECHANGE in cel('script')) { + defer = function (id) { + html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run.call(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(ctx(run, id, 1), 0); + }; + } +} +module.exports = { + set: setTask, + clear: clearTask +}; + + +/***/ }), +/* 163 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(16); +var macrotask = __webpack_require__(162).set; +var Observer = global.MutationObserver || global.WebKitMutationObserver; +var process = global.process; +var Promise = global.Promise; +var isNode = __webpack_require__(39)(process) == 'process'; + +module.exports = function () { + var head, last, notify; + + var flush = function () { + var parent, fn; + if (isNode && (parent = process.domain)) parent.exit(); + while (head) { + fn = head.fn; + head = head.next; + try { + fn(); + } catch (e) { + if (head) notify(); + else last = undefined; + throw e; + } + } last = undefined; + if (parent) parent.enter(); + }; + + // Node.js + if (isNode) { + notify = function () { + process.nextTick(flush); + }; + // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 + } else if (Observer && !(global.navigator && global.navigator.standalone)) { + var toggle = true; + var node = document.createTextNode(''); + new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + var promise = Promise.resolve(undefined); + notify = function () { + promise.then(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessag + // - onreadystatechange + // - setTimeout + } else { + notify = function () { + // strange IE + webpack dev server bug - use .call(global) + macrotask.call(global, flush); + }; + } + + return function (fn) { + var task = { fn: fn, next: undefined }; + if (last) last.next = task; + if (!head) { + head = task; + notify(); + } last = task; + }; +}; + + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 25.4.1.5 NewPromiseCapability(C) +var aFunction = __webpack_require__(27); + +function PromiseCapability(C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction(resolve); + this.reject = aFunction(reject); +} + +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__(16); +var DESCRIPTORS = __webpack_require__(21); +var LIBRARY = __webpack_require__(55); +var $typed = __webpack_require__(109); +var hide = __webpack_require__(29); +var redefineAll = __webpack_require__(70); +var fails = __webpack_require__(17); +var anInstance = __webpack_require__(68); +var toInteger = __webpack_require__(40); +var toLength = __webpack_require__(20); +var toIndex = __webpack_require__(222); +var gOPN = __webpack_require__(66).f; +var dP = __webpack_require__(22).f; +var arrayFill = __webpack_require__(158); +var setToStringTag = __webpack_require__(77); +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length!'; +var WRONG_INDEX = 'Wrong index!'; +var $ArrayBuffer = global[ARRAY_BUFFER]; +var $DataView = global[DATA_VIEW]; +var Math = global.Math; +var RangeError = global.RangeError; +// eslint-disable-next-line no-shadow-restricted-names +var Infinity = global.Infinity; +var BaseBuffer = $ArrayBuffer; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; +var BUFFER = 'buffer'; +var BYTE_LENGTH = 'byteLength'; +var BYTE_OFFSET = 'byteOffset'; +var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; +var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; +var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; + +// IEEE754 conversions based on https://github.com/feross/ieee754 +function packIEEE754(value, mLen, nBytes) { + var buffer = new Array(nBytes); + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; + var i = 0; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + var e, m, c; + value = abs(value); + // eslint-disable-next-line no-self-compare + if (value != value || value === Infinity) { + // eslint-disable-next-line no-self-compare + m = value != value ? 1 : 0; + e = eMax; + } else { + e = floor(log(value) / LN2); + if (value * (c = pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * pow(2, mLen); + e = e + eBias; + } else { + m = value * pow(2, eBias - 1) * pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8); + buffer[--i] |= s * 128; + return buffer; +} +function unpackIEEE754(buffer, mLen, nBytes) { + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = eLen - 7; + var i = nBytes - 1; + var s = buffer[i--]; + var e = s & 127; + var m; + s >>= 7; + for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : s ? -Infinity : Infinity; + } else { + m = m + pow(2, mLen); + e = e - eBias; + } return (s ? -1 : 1) * m * pow(2, e - mLen); +} + +function unpackI32(bytes) { + return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; +} +function packI8(it) { + return [it & 0xff]; +} +function packI16(it) { + return [it & 0xff, it >> 8 & 0xff]; +} +function packI32(it) { + return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; +} +function packF64(it) { + return packIEEE754(it, 52, 8); +} +function packF32(it) { + return packIEEE754(it, 23, 4); +} + +function addGetter(C, key, internal) { + dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); +} + +function get(view, bytes, index, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = store.slice(start, start + bytes); + return isLittleEndian ? pack : pack.reverse(); +} +function set(view, bytes, index, conversion, value, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = conversion(+value); + for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; +} + +if (!$typed.ABV) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer, ARRAY_BUFFER); + var byteLength = toIndex(length); + this._b = arrayFill.call(new Array(byteLength), 0); + this[$LENGTH] = byteLength; + }; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, $DataView, DATA_VIEW); + anInstance(buffer, $ArrayBuffer, DATA_VIEW); + var bufferLength = buffer[$LENGTH]; + var offset = toInteger(byteOffset); + if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); + this[$BUFFER] = buffer; + this[$OFFSET] = offset; + this[$LENGTH] = byteLength; + }; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); + addGetter($DataView, BUFFER, '_b'); + addGetter($DataView, BYTE_LENGTH, '_l'); + addGetter($DataView, BYTE_OFFSET, '_o'); + } + + redefineAll($DataView[PROTOTYPE], { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackI32(get(this, 4, byteOffset, arguments[1])); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packF32, value, arguments[2]); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packF64, value, arguments[2]); + } + }); +} else { + if (!fails(function () { + $ArrayBuffer(1); + }) || !fails(function () { + new $ArrayBuffer(-1); // eslint-disable-line no-new + }) || fails(function () { + new $ArrayBuffer(); // eslint-disable-line no-new + new $ArrayBuffer(1.5); // eslint-disable-line no-new + new $ArrayBuffer(NaN); // eslint-disable-line no-new + return $ArrayBuffer.name != ARRAY_BUFFER; + })) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer); + return new BaseBuffer(toIndex(length)); + }; + var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; + for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { + if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); + } + if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; + } + // iOS Safari 7.x bug + var view = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = $DataView[PROTOTYPE].setInt8; + view.setInt8(0, 2147483648); + view.setInt8(1, 2147483649); + if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { + setInt8: function setInt8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + } + }, true); +} +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); +hide($DataView[PROTOTYPE], $typed.VIEW, true); +exports[ARRAY_BUFFER] = $ArrayBuffer; +exports[DATA_VIEW] = $DataView; + + +/***/ }), +/* 166 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArray = __webpack_require__(26), + isSymbol = __webpack_require__(113); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + + +/***/ }), +/* 167 */ +/***/ (function(module, exports, __webpack_require__) { + +var mapCacheClear = __webpack_require__(510), + mapCacheDelete = __webpack_require__(526), + mapCacheGet = __webpack_require__(528), + mapCacheHas = __webpack_require__(529), + mapCacheSet = __webpack_require__(530); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + + +/***/ }), +/* 168 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(72), + root = __webpack_require__(51); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + + +/***/ }), +/* 169 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ +function baseSlice(array, start, end) { + var index = -1, + length = array.length; + + if (start < 0) { + start = -start > length ? 0 : (length + start); + } + end = end > length ? length : end; + if (end < 0) { + end += length; + } + length = start > end ? 0 : ((end - start) >>> 0); + start >>>= 0; + + var result = Array(length); + while (++index < length) { + result[index] = array[index + start]; + } + return result; +} + +module.exports = baseSlice; + + +/***/ }), +/* 170 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIndexOf = __webpack_require__(239); + +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludes(array, value) { + var length = array == null ? 0 : array.length; + return !!length && baseIndexOf(array, value, 0) > -1; +} + +module.exports = arrayIncludes; + + +/***/ }), +/* 171 */ +/***/ (function(module, exports) { + +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ +function arrayIncludesWith(array, value, comparator) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (comparator(value, array[index])) { + return true; + } + } + return false; +} + +module.exports = arrayIncludesWith; + + +/***/ }), +/* 172 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; + + +/***/ }), +/* 173 */ +/***/ (function(module, exports) { + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + + +/***/ }), +/* 174 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsEqualDeep = __webpack_require__(550), + isObjectLike = __webpack_require__(47); + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +module.exports = baseIsEqual; + + +/***/ }), +/* 175 */ +/***/ (function(module, exports) { + +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +module.exports = setToArray; + + +/***/ }), +/* 176 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(51), + stubFalse = __webpack_require__(562); + +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(246)(module))) + +/***/ }), +/* 177 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsTypedArray = __webpack_require__(563), + baseUnary = __webpack_require__(172), + nodeUtil = __webpack_require__(564); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; + + +/***/ }), +/* 178 */ +/***/ (function(module, exports, __webpack_require__) { + +var isPrototype = __webpack_require__(247), + nativeKeys = __webpack_require__(565); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +module.exports = baseKeys; + + +/***/ }), +/* 179 */ +/***/ (function(module, exports, __webpack_require__) { + +var DataView = __webpack_require__(566), + Map = __webpack_require__(168), + Promise = __webpack_require__(567), + Set = __webpack_require__(249), + WeakMap = __webpack_require__(568), + baseGetTag = __webpack_require__(50), + toSource = __webpack_require__(233); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + +var dataViewTag = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +module.exports = getTag; + + +/***/ }), +/* 180 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayPush = __webpack_require__(244), + isFlattenable = __webpack_require__(617); + +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ +function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, + length = array.length; + + predicate || (predicate = isFlattenable); + result || (result = []); + + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) { + if (depth > 1) { + // Recursively flatten arrays (susceptible to call stack limits). + baseFlatten(value, depth - 1, predicate, isStrict, result); + } else { + arrayPush(result, value); + } + } else if (!isStrict) { + result[result.length] = value; + } + } + return result; +} + +module.exports = baseFlatten; + + +/***/ }), +/* 181 */ +/***/ (function(module, exports) { + +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsZWJ = '\\u200d'; + +/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ +var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); + +/** + * Checks if `string` contains Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a symbol is found, else `false`. + */ +function hasUnicode(string) { + return reHasUnicode.test(string); +} + +module.exports = hasUnicode; + + +/***/ }), +/* 182 */ +/***/ (function(module, exports, __webpack_require__) { + +var startOfWeek = __webpack_require__(626) + +/** + * @category ISO Week Helpers + * @summary Return the start of an ISO week for the given date. + * + * @description + * Return the start of an ISO week for the given date. + * The result will be in the local timezone. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @param {Date|String|Number} date - the original date + * @returns {Date} the start of an ISO week + * + * @example + * // The start of an ISO week for 2 September 2014 11:55:00: + * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Mon Sep 01 2014 00:00:00 + */ +function startOfISOWeek (dirtyDate) { + return startOfWeek(dirtyDate, {weekStartsOn: 1}) +} + +module.exports = startOfISOWeek + + +/***/ }), +/* 183 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFindIndex = __webpack_require__(240), + baseIteratee = __webpack_require__(73), + toInteger = __webpack_require__(126); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 + */ +function findIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax(length + index, 0); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index); +} + +module.exports = findIndex; + + +/***/ }), +/* 184 */ +/***/ (function(module, exports) { + +/** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ +function noop() { + // No operation performed. +} + +module.exports = noop; + + +/***/ }), +/* 185 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayEach = __webpack_require__(586), + baseEach = __webpack_require__(86), + castFunction = __webpack_require__(587), + isArray = __webpack_require__(26); + +/** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, castFunction(iteratee)); +} + +module.exports = forEach; + + +/***/ }), +/* 186 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseInRange = __webpack_require__(590), + toFinite = __webpack_require__(255), + toNumber = __webpack_require__(256); + +/** + * Checks if `n` is between `start` and up to, but not including, `end`. If + * `end` is not specified, it's set to `start` with `start` then set to `0`. + * If `start` is greater than `end` the params are swapped to support + * negative ranges. + * + * @static + * @memberOf _ + * @since 3.3.0 + * @category Number + * @param {number} number The number to check. + * @param {number} [start=0] The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + * @see _.range, _.rangeRight + * @example + * + * _.inRange(3, 2, 4); + * // => true + * + * _.inRange(4, 8); + * // => true + * + * _.inRange(4, 2); + * // => false + * + * _.inRange(2, 2); + * // => false + * + * _.inRange(1.2, 2); + * // => true + * + * _.inRange(5.2, 4); + * // => false + * + * _.inRange(-3, -2, -6); + * // => true + */ +function inRange(number, start, end) { + start = toFinite(start); + if (end === undefined) { + end = start; + start = 0; + } else { + end = toFinite(end); + } + number = toNumber(number); + return baseInRange(number, start, end); +} + +module.exports = inRange; + + +/***/ }), +/* 187 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseDifference = __webpack_require__(238), + baseFlatten = __webpack_require__(180), + baseRest = __webpack_require__(96), + isArrayLikeObject = __webpack_require__(123); + +/** + * Creates an array of `array` values not included in the other given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * **Note:** Unlike `_.pullAll`, this method returns a new array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {...Array} [values] The values to exclude. + * @returns {Array} Returns the new array of filtered values. + * @see _.without, _.xor + * @example + * + * _.difference([2, 1], [2, 3]); + * // => [1] + */ +var difference = baseRest(function(array, values) { + return isArrayLikeObject(array) + ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) + : []; +}); + +module.exports = difference; + + +/***/ }), +/* 188 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFlatten = __webpack_require__(180), + baseRest = __webpack_require__(96), + baseUniq = __webpack_require__(258), + isArrayLikeObject = __webpack_require__(123); + +/** + * Creates an array of unique values, in order, from all given arrays using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([2], [1, 2]); + * // => [2, 1] + */ +var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); +}); + +module.exports = union; + + +/***/ }), +/* 189 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) + +/** + * @category Common Helpers + * @summary Is the first date before the second one? + * + * @description + * Is the first date before the second one? + * + * @param {Date|String|Number} date - the date that should be before the other one to return true + * @param {Date|String|Number} dateToCompare - the date to compare with + * @returns {Boolean} the first date is before the second date + * + * @example + * // Is 10 July 1989 before 11 February 1987? + * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11)) + * //=> false + */ +function isBefore (dirtyDate, dirtyDateToCompare) { + var date = parse(dirtyDate) + var dateToCompare = parse(dirtyDateToCompare) + return date.getTime() < dateToCompare.getTime() +} + +module.exports = isBefore + + +/***/ }), +/* 190 */, +/* 191 */, +/* 192 */, +/* 193 */, +/* 194 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = !__webpack_require__(21) && !__webpack_require__(17)(function () { + return Object.defineProperty(__webpack_require__(139)('div'), 'a', { get: function () { return 7; } }).a != 7; +}); + + +/***/ }), +/* 195 */ +/***/ (function(module, exports, __webpack_require__) { + +exports.f = __webpack_require__(19); + + +/***/ }), +/* 196 */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(33); +var toIObject = __webpack_require__(34); +var arrayIndexOf = __webpack_require__(99)(false); +var IE_PROTO = __webpack_require__(141)('IE_PROTO'); + +module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + return result; +}; + + +/***/ }), +/* 197 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(22); +var anObject = __webpack_require__(9); +var getKeys = __webpack_require__(63); + +module.exports = __webpack_require__(21) ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + while (length > i) dP.f(O, P = keys[i++], Properties[P]); + return O; +}; + + +/***/ }), +/* 198 */ +/***/ (function(module, exports, __webpack_require__) { + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +var toIObject = __webpack_require__(34); +var gOPN = __webpack_require__(66).f; +var toString = {}.toString; + +var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function (it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } +}; + +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); +}; + + +/***/ }), +/* 199 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 19.1.2.1 Object.assign(target, source, ...) +var DESCRIPTORS = __webpack_require__(21); +var getKeys = __webpack_require__(63); +var gOPS = __webpack_require__(100); +var pIE = __webpack_require__(91); +var toObject = __webpack_require__(23); +var IObject = __webpack_require__(90); +var $assign = Object.assign; + +// should work with symbols and should have deterministic property order (V8 bug) +module.exports = !$assign || __webpack_require__(17)(function () { + var A = {}; + var B = {}; + // eslint-disable-next-line no-undef + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source) { // eslint-disable-line no-unused-vars + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; + } + } return T; +} : $assign; + + +/***/ }), +/* 200 */ +/***/ (function(module, exports) { + +// 7.2.9 SameValue(x, y) +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; +}; + + +/***/ }), +/* 201 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var aFunction = __webpack_require__(27); +var isObject = __webpack_require__(18); +var invoke = __webpack_require__(202); +var arraySlice = [].slice; +var factories = {}; + +var construct = function (F, len, args) { + if (!(len in factories)) { + for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; + // eslint-disable-next-line no-new-func + factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); + } return factories[len](F, args); +}; + +module.exports = Function.bind || function bind(that /* , ...args */) { + var fn = aFunction(this); + var partArgs = arraySlice.call(arguments, 1); + var bound = function (/* args... */) { + var args = partArgs.concat(arraySlice.call(arguments)); + return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); + }; + if (isObject(fn.prototype)) bound.prototype = fn.prototype; + return bound; +}; + + +/***/ }), +/* 202 */ +/***/ (function(module, exports) { + +// fast apply, http://jsperf.lnkit.com/fast-apply/5 +module.exports = function (fn, args, that) { + var un = that === undefined; + switch (args.length) { + case 0: return un ? fn() + : fn.call(that); + case 1: return un ? fn(args[0]) + : fn.call(that, args[0]); + case 2: return un ? fn(args[0], args[1]) + : fn.call(that, args[0], args[1]); + case 3: return un ? fn(args[0], args[1], args[2]) + : fn.call(that, args[0], args[1], args[2]); + case 4: return un ? fn(args[0], args[1], args[2], args[3]) + : fn.call(that, args[0], args[1], args[2], args[3]); + } return fn.apply(that, args); +}; + + +/***/ }), +/* 203 */ +/***/ (function(module, exports, __webpack_require__) { + +var $parseInt = __webpack_require__(16).parseInt; +var $trim = __webpack_require__(79).trim; +var ws = __webpack_require__(145); +var hex = /^[-+]?0[xX]/; + +module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { + var string = $trim(String(str), 3); + return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); +} : $parseInt; + + +/***/ }), +/* 204 */ +/***/ (function(module, exports, __webpack_require__) { + +var $parseFloat = __webpack_require__(16).parseFloat; +var $trim = __webpack_require__(79).trim; + +module.exports = 1 / $parseFloat(__webpack_require__(145) + '-0') !== -Infinity ? function parseFloat(str) { + var string = $trim(String(str), 3); + var result = $parseFloat(string); + return result === 0 && string.charAt(0) == '-' ? -0 : result; +} : $parseFloat; + + +/***/ }), +/* 205 */ +/***/ (function(module, exports, __webpack_require__) { + +var cof = __webpack_require__(39); +module.exports = function (it, msg) { + if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); + return +it; +}; + + +/***/ }), +/* 206 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.3 Number.isInteger(number) +var isObject = __webpack_require__(18); +var floor = Math.floor; +module.exports = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + + +/***/ }), +/* 207 */ +/***/ (function(module, exports) { + +// 20.2.2.20 Math.log1p(x) +module.exports = Math.log1p || function log1p(x) { + return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); +}; + + +/***/ }), +/* 208 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.16 Math.fround(x) +var sign = __webpack_require__(148); +var pow = Math.pow; +var EPSILON = pow(2, -52); +var EPSILON32 = pow(2, -23); +var MAX32 = pow(2, 127) * (2 - EPSILON32); +var MIN32 = pow(2, -126); + +var roundTiesToEven = function (n) { + return n + 1 / EPSILON - 1 / EPSILON; +}; + +module.exports = Math.fround || function fround(x) { + var $abs = Math.abs(x); + var $sign = sign(x); + var a, result; + if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; + a = (1 + EPSILON32 / EPSILON) * $abs; + result = a - (a - $abs); + // eslint-disable-next-line no-self-compare + if (result > MAX32 || result != result) return $sign * Infinity; + return $sign * result; +}; + + +/***/ }), +/* 209 */ +/***/ (function(module, exports, __webpack_require__) { + +// call something on iterator step with safe closing on error +var anObject = __webpack_require__(9); +module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } +}; + + +/***/ }), +/* 210 */ +/***/ (function(module, exports, __webpack_require__) { + +var aFunction = __webpack_require__(27); +var toObject = __webpack_require__(23); +var IObject = __webpack_require__(90); +var toLength = __webpack_require__(20); + +module.exports = function (that, callbackfn, aLen, memo, isRight) { + aFunction(callbackfn); + var O = toObject(that); + var self = IObject(O); + var length = toLength(O.length); + var index = isRight ? length - 1 : 0; + var i = isRight ? -1 : 1; + if (aLen < 2) for (;;) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (isRight ? index < 0 : length <= index) { + throw TypeError('Reduce of empty array with no initial value'); + } + } + for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; +}; + + +/***/ }), +/* 211 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) + +var toObject = __webpack_require__(23); +var toAbsoluteIndex = __webpack_require__(64); +var toLength = __webpack_require__(20); + +module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = toLength(O.length); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else delete O[to]; + to += inc; + from += inc; + } return O; +}; + + +/***/ }), +/* 212 */ +/***/ (function(module, exports) { + +module.exports = function (done, value) { + return { value: value, done: !!done }; +}; + + +/***/ }), +/* 213 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var regexpExec = __webpack_require__(160); +__webpack_require__(3)({ + target: 'RegExp', + proto: true, + forced: regexpExec !== /./.exec +}, { + exec: regexpExec +}); + + +/***/ }), +/* 214 */ +/***/ (function(module, exports, __webpack_require__) { + +// 21.2.5.3 get RegExp.prototype.flags() +if (__webpack_require__(21) && /./g.flags != 'g') __webpack_require__(22).f(RegExp.prototype, 'flags', { + configurable: true, + get: __webpack_require__(92) +}); + + +/***/ }), +/* 215 */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return { e: false, v: exec() }; + } catch (e) { + return { e: true, v: e }; + } +}; + + +/***/ }), +/* 216 */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(9); +var isObject = __webpack_require__(18); +var newPromiseCapability = __webpack_require__(164); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + + +/***/ }), +/* 217 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var strong = __webpack_require__(218); +var validate = __webpack_require__(71); +var MAP = 'Map'; + +// 23.1 Map Objects +module.exports = __webpack_require__(108)(MAP, function (get) { + return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key) { + var entry = strong.getEntry(validate(this, MAP), key); + return entry && entry.v; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value) { + return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); + } +}, strong, true); + + +/***/ }), +/* 218 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var dP = __webpack_require__(22).f; +var create = __webpack_require__(65); +var redefineAll = __webpack_require__(70); +var ctx = __webpack_require__(38); +var anInstance = __webpack_require__(68); +var forOf = __webpack_require__(69); +var $iterDefine = __webpack_require__(150); +var step = __webpack_require__(212); +var setSpecies = __webpack_require__(67); +var DESCRIPTORS = __webpack_require__(21); +var fastKey = __webpack_require__(56).fastKey; +var validate = __webpack_require__(71); +var SIZE = DESCRIPTORS ? '_s' : 'size'; + +var getEntry = function (that, key) { + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return that._i[index]; + // frozen object case + for (entry = that._f; entry; entry = entry.n) { + if (entry.k == key) return entry; + } +}; + +module.exports = { + getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + that._i = create(null); // index + that._f = undefined; // first entry + that._l = undefined; // last entry + that[SIZE] = 0; // size + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear() { + for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { + entry.r = true; + if (entry.p) entry.p = entry.p.n = undefined; + delete data[entry.i]; + } + that._f = that._l = undefined; + that[SIZE] = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function (key) { + var that = validate(this, NAME); + var entry = getEntry(that, key); + if (entry) { + var next = entry.n; + var prev = entry.p; + delete that._i[entry.i]; + entry.r = true; + if (prev) prev.n = next; + if (next) next.p = prev; + if (that._f == entry) that._f = next; + if (that._l == entry) that._l = prev; + that[SIZE]--; + } return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn /* , that = undefined */) { + validate(this, NAME); + var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var entry; + while (entry = entry ? entry.n : this._f) { + f(entry.v, entry.k, this); + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key) { + return !!getEntry(validate(this, NAME), key); + } + }); + if (DESCRIPTORS) dP(C.prototype, 'size', { + get: function () { + return validate(this, NAME)[SIZE]; + } + }); + return C; + }, + def: function (that, key, value) { + var entry = getEntry(that, key); + var prev, index; + // change existing entry + if (entry) { + entry.v = value; + // create new entry + } else { + that._l = entry = { + i: index = fastKey(key, true), // <- index + k: key, // <- key + v: value, // <- value + p: prev = that._l, // <- previous entry + n: undefined, // <- next entry + r: false // <- removed + }; + if (!that._f) that._f = entry; + if (prev) prev.n = entry; + that[SIZE]++; + // add to index + if (index !== 'F') that._i[index] = entry; + } return that; + }, + getEntry: getEntry, + setStrong: function (C, NAME, IS_MAP) { + // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + $iterDefine(C, NAME, function (iterated, kind) { + this._t = validate(iterated, NAME); // target + this._k = kind; // kind + this._l = undefined; // previous + }, function () { + var that = this; + var kind = that._k; + var entry = that._l; + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + // get next entry + if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { + // or finish the iteration + that._t = undefined; + return step(1); + } + // return step by kind + if (kind == 'keys') return step(0, entry.k); + if (kind == 'values') return step(0, entry.v); + return step(0, [entry.k, entry.v]); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // add [@@species], 23.1.2.2, 23.2.2.2 + setSpecies(NAME); + } +}; + + +/***/ }), +/* 219 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var strong = __webpack_require__(218); +var validate = __webpack_require__(71); +var SET = 'Set'; + +// 23.2 Set Objects +module.exports = __webpack_require__(108)(SET, function (get) { + return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value) { + return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); + } +}, strong); + + +/***/ }), +/* 220 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__(16); +var each = __webpack_require__(46)(0); +var redefine = __webpack_require__(30); +var meta = __webpack_require__(56); +var assign = __webpack_require__(199); +var weak = __webpack_require__(221); +var isObject = __webpack_require__(18); +var validate = __webpack_require__(71); +var NATIVE_WEAK_MAP = __webpack_require__(71); +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var WEAK_MAP = 'WeakMap'; +var getWeak = meta.getWeak; +var isExtensible = Object.isExtensible; +var uncaughtFrozenStore = weak.ufstore; +var InternalMap; + +var wrapper = function (get) { + return function WeakMap() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}; + +var methods = { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key) { + if (isObject(key)) { + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); + return data ? data[this._i] : undefined; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value) { + return weak.def(validate(this, WEAK_MAP), key, value); + } +}; + +// 23.3 WeakMap Objects +var $WeakMap = module.exports = __webpack_require__(108)(WEAK_MAP, wrapper, methods, weak, true, true); + +// IE11 WeakMap frozen keys fix +if (NATIVE_WEAK_MAP && IS_IE11) { + InternalMap = weak.getConstructor(wrapper, WEAK_MAP); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function (key) { + var proto = $WeakMap.prototype; + var method = proto[key]; + redefine(proto, key, function (a, b) { + // store frozen objects on internal weakmap shim + if (isObject(a) && !isExtensible(a)) { + if (!this._f) this._f = new InternalMap(); + var result = this._f[key](a, b); + return key == 'set' ? this : result; + // store all the rest on native weakmap + } return method.call(this, a, b); + }); + }); +} + + +/***/ }), +/* 221 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var redefineAll = __webpack_require__(70); +var getWeak = __webpack_require__(56).getWeak; +var anObject = __webpack_require__(9); +var isObject = __webpack_require__(18); +var anInstance = __webpack_require__(68); +var forOf = __webpack_require__(69); +var createArrayMethod = __webpack_require__(46); +var $has = __webpack_require__(33); +var validate = __webpack_require__(71); +var arrayFind = createArrayMethod(5); +var arrayFindIndex = createArrayMethod(6); +var id = 0; + +// fallback for uncaught frozen keys +var uncaughtFrozenStore = function (that) { + return that._l || (that._l = new UncaughtFrozenStore()); +}; +var UncaughtFrozenStore = function () { + this.a = []; +}; +var findUncaughtFrozen = function (store, key) { + return arrayFind(store.a, function (it) { + return it[0] === key; + }); +}; +UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.a.push([key, value]); + }, + 'delete': function (key) { + var index = arrayFindIndex(this.a, function (it) { + return it[0] === key; + }); + if (~index) this.a.splice(index, 1); + return !!~index; + } +}; + +module.exports = { + getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + that._i = id++; // collection id + that._l = undefined; // leak store for uncaught frozen objects + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function (key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function (that, key, value) { + var data = getWeak(anObject(key), true); + if (data === true) uncaughtFrozenStore(that).set(key, value); + else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore +}; + + +/***/ }), +/* 222 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/ecma262/#sec-toindex +var toInteger = __webpack_require__(40); +var toLength = __webpack_require__(20); +module.exports = function (it) { + if (it === undefined) return 0; + var number = toInteger(it); + var length = toLength(number); + if (number !== length) throw RangeError('Wrong length!'); + return length; +}; + + +/***/ }), +/* 223 */ +/***/ (function(module, exports, __webpack_require__) { + +// all object keys, includes non-enumerable and symbols +var gOPN = __webpack_require__(66); +var gOPS = __webpack_require__(100); +var anObject = __webpack_require__(9); +var Reflect = __webpack_require__(16).Reflect; +module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { + var keys = gOPN.f(anObject(it)); + var getSymbols = gOPS.f; + return getSymbols ? keys.concat(getSymbols(it)) : keys; +}; + + +/***/ }), +/* 224 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray +var isArray = __webpack_require__(101); +var isObject = __webpack_require__(18); +var toLength = __webpack_require__(20); +var ctx = __webpack_require__(38); +var IS_CONCAT_SPREADABLE = __webpack_require__(19)('isConcatSpreadable'); + +function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? ctx(mapper, thisArg, 3) : false; + var element, spreadable; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + spreadable = false; + if (isObject(element)) { + spreadable = element[IS_CONCAT_SPREADABLE]; + spreadable = spreadable !== undefined ? !!spreadable : isArray(element); + } + + if (spreadable && depth > 0) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 0x1fffffffffffff) throw TypeError(); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; +} + +module.exports = flattenIntoArray; + + +/***/ }), +/* 225 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-string-pad-start-end +var toLength = __webpack_require__(20); +var repeat = __webpack_require__(147); +var defined = __webpack_require__(44); + +module.exports = function (that, maxLength, fillString, left) { + var S = String(defined(that)); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : String(fillString); + var intMaxLength = toLength(maxLength); + if (intMaxLength <= stringLength || fillStr == '') return S; + var fillLen = intMaxLength - stringLength; + var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); + return left ? stringFiller + S : S + stringFiller; +}; + + +/***/ }), +/* 226 */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(21); +var getKeys = __webpack_require__(63); +var toIObject = __webpack_require__(34); +var isEnum = __webpack_require__(91).f; +module.exports = function (isEntries) { + return function (it) { + var O = toIObject(it); + var keys = getKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS || isEnum.call(O, key)) { + result.push(isEntries ? [key, O[key]] : O[key]); + } + } + return result; + }; +}; + + +/***/ }), +/* 227 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var classof = __webpack_require__(78); +var from = __webpack_require__(228); +module.exports = function (NAME) { + return function toJSON() { + if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); + return from(this); + }; +}; + + +/***/ }), +/* 228 */ +/***/ (function(module, exports, __webpack_require__) { + +var forOf = __webpack_require__(69); + +module.exports = function (iter, ITERATOR) { + var result = []; + forOf(iter, false, result.push, result, ITERATOR); + return result; +}; + + +/***/ }), +/* 229 */ +/***/ (function(module, exports) { + +// https://rwaldron.github.io/proposal-math-extensions/ +module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) { + if ( + arguments.length === 0 + // eslint-disable-next-line no-self-compare + || x != x + // eslint-disable-next-line no-self-compare + || inLow != inLow + // eslint-disable-next-line no-self-compare + || inHigh != inHigh + // eslint-disable-next-line no-self-compare + || outLow != outLow + // eslint-disable-next-line no-self-compare + || outHigh != outHigh + ) return NaN; + if (x === Infinity || x === -Infinity) return x; + return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow; +}; + + +/***/ }), +/* 230 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + + +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + + +/***/ }), +/* 231 */ +/***/ (function(module, exports) { + +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +module.exports = apply; + + +/***/ }), +/* 232 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(138))) + +/***/ }), +/* 233 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; + + +/***/ }), +/* 234 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(95), + arrayMap = __webpack_require__(83), + isArray = __webpack_require__(26), + isSymbol = __webpack_require__(113); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; + + +/***/ }), +/* 235 */ +/***/ (function(module, exports, __webpack_require__) { + +var apply = __webpack_require__(231); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +module.exports = overRest; + + +/***/ }), +/* 236 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseSetToString = __webpack_require__(533), + shortOut = __webpack_require__(535); + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +module.exports = setToString; + + +/***/ }), +/* 237 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(72); + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +module.exports = defineProperty; + + +/***/ }), +/* 238 */ +/***/ (function(module, exports, __webpack_require__) { + +var SetCache = __webpack_require__(121), + arrayIncludes = __webpack_require__(170), + arrayIncludesWith = __webpack_require__(171), + arrayMap = __webpack_require__(83), + baseUnary = __webpack_require__(172), + cacheHas = __webpack_require__(122); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of methods like `_.difference` without support + * for excluding multiple arrays or iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Array} values The values to exclude. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of filtered values. + */ +function baseDifference(array, values, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + isCommon = true, + length = array.length, + result = [], + valuesLength = values.length; + + if (!length) { + return result; + } + if (iteratee) { + values = arrayMap(values, baseUnary(iteratee)); + } + if (comparator) { + includes = arrayIncludesWith; + isCommon = false; + } + else if (values.length >= LARGE_ARRAY_SIZE) { + includes = cacheHas; + isCommon = false; + values = new SetCache(values); + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee == null ? value : iteratee(value); + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var valuesIndex = valuesLength; + while (valuesIndex--) { + if (values[valuesIndex] === computed) { + continue outer; + } + } + result.push(value); + } + else if (!includes(values, computed, comparator)) { + result.push(value); + } + } + return result; +} + +module.exports = baseDifference; + + +/***/ }), +/* 239 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFindIndex = __webpack_require__(240), + baseIsNaN = __webpack_require__(538), + strictIndexOf = __webpack_require__(539); + +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseIndexOf(array, value, fromIndex) { + return value === value + ? strictIndexOf(array, value, fromIndex) + : baseFindIndex(array, baseIsNaN, fromIndex); +} + +module.exports = baseIndexOf; + + +/***/ }), +/* 240 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; +} + +module.exports = baseFindIndex; + + +/***/ }), +/* 241 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(115), + stackClear = __webpack_require__(545), + stackDelete = __webpack_require__(546), + stackGet = __webpack_require__(547), + stackHas = __webpack_require__(548), + stackSet = __webpack_require__(549); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + + +/***/ }), +/* 242 */ +/***/ (function(module, exports, __webpack_require__) { + +var SetCache = __webpack_require__(121), + arraySome = __webpack_require__(243), + cacheHas = __webpack_require__(122); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(array); + if (stacked && stack.get(other)) { + return stacked == other; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +module.exports = equalArrays; + + +/***/ }), +/* 243 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + + +/***/ }), +/* 244 */ +/***/ (function(module, exports) { + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; + + +/***/ }), +/* 245 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = arrayFilter; + + +/***/ }), +/* 246 */ +/***/ (function(module, exports) { + +module.exports = function(module) { + if (!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + if (!module.children) module.children = []; + Object.defineProperty(module, "loaded", { + enumerable: true, + get: function() { + return module.l; + } + }); + Object.defineProperty(module, "id", { + enumerable: true, + get: function() { + return module.i; + } + }); + module.webpackPolyfill = 1; + } + return module; +}; + + +/***/ }), +/* 247 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; + + +/***/ }), +/* 248 */ +/***/ (function(module, exports) { + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; + + +/***/ }), +/* 249 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(72), + root = __webpack_require__(51); + +/* Built-in method references that are verified to be native. */ +var Set = getNative(root, 'Set'); + +module.exports = Set; + + +/***/ }), +/* 250 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(81); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + + +/***/ }), +/* 251 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; +} + +module.exports = matchesStrictComparable; + + +/***/ }), +/* 252 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseHasIn = __webpack_require__(571), + hasPath = __webpack_require__(253); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; + + +/***/ }), +/* 253 */ +/***/ (function(module, exports, __webpack_require__) { + +var castPath = __webpack_require__(94), + isArguments = __webpack_require__(124), + isArray = __webpack_require__(26), + isIndex = __webpack_require__(125), + isLength = __webpack_require__(173), + toKey = __webpack_require__(84); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; + + +/***/ }), +/* 254 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = baseProperty; + + +/***/ }), +/* 255 */ +/***/ (function(module, exports, __webpack_require__) { + +var toNumber = __webpack_require__(256); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0, + MAX_INTEGER = 1.7976931348623157e+308; + +/** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ +function toFinite(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; +} + +module.exports = toFinite; + + +/***/ }), +/* 256 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(81), + isSymbol = __webpack_require__(113); + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** Used to match leading and trailing whitespace. */ +var reTrim = /^\s+|\s+$/g; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +module.exports = toNumber; + + +/***/ }), +/* 257 */ +/***/ (function(module, exports, __webpack_require__) { + +var eq = __webpack_require__(117), + isArrayLike = __webpack_require__(52), + isIndex = __webpack_require__(125), + isObject = __webpack_require__(81); + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +module.exports = isIterateeCall; + + +/***/ }), +/* 258 */ +/***/ (function(module, exports, __webpack_require__) { + +var SetCache = __webpack_require__(121), + arrayIncludes = __webpack_require__(170), + arrayIncludesWith = __webpack_require__(171), + cacheHas = __webpack_require__(122), + createSet = __webpack_require__(579), + setToArray = __webpack_require__(175); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ +function baseUniq(array, iteratee, comparator) { + var index = -1, + includes = arrayIncludes, + length = array.length, + isCommon = true, + result = [], + seen = result; + + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } + else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) { + return setToArray(set); + } + isCommon = false; + includes = cacheHas; + seen = new SetCache; + } + else { + seen = iteratee ? [] : result; + } + outer: + while (++index < length) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) { + if (seen[seenIndex] === computed) { + continue outer; + } + } + if (iteratee) { + seen.push(computed); + } + result.push(value); + } + else if (!includes(seen, computed, comparator)) { + if (seen !== result) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} + +module.exports = baseUniq; + + +/***/ }), +/* 259 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseHas = __webpack_require__(599), + hasPath = __webpack_require__(253); + +/** + * Checks if `path` is a direct property of `object`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = { 'a': { 'b': 2 } }; + * var other = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.has(object, 'a'); + * // => true + * + * _.has(object, 'a.b'); + * // => true + * + * _.has(object, ['a', 'b']); + * // => true + * + * _.has(other, 'a'); + * // => false + */ +function has(object, path) { + return object != null && hasPath(object, path, baseHas); +} + +module.exports = has; + + +/***/ }), +/* 260 */ +/***/ (function(module, exports, __webpack_require__) { + +var assignValue = __webpack_require__(601), + castPath = __webpack_require__(94), + isIndex = __webpack_require__(125), + isObject = __webpack_require__(81), + toKey = __webpack_require__(84); + +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ +function baseSet(object, path, value, customizer) { + if (!isObject(object)) { + return object; + } + path = castPath(path, object); + + var index = -1, + length = path.length, + lastIndex = length - 1, + nested = object; + + while (nested != null && ++index < length) { + var key = toKey(path[index]), + newValue = value; + + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : undefined; + if (newValue === undefined) { + newValue = isObject(objValue) + ? objValue + : (isIndex(path[index + 1]) ? [] : {}); + } + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; +} + +module.exports = baseSet; + + +/***/ }), +/* 261 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.reduce` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @param {boolean} [initAccum] Specify using the first element of `array` as + * the initial value. + * @returns {*} Returns the accumulated value. + */ +function arrayReduce(array, iteratee, accumulator, initAccum) { + var index = -1, + length = array == null ? 0 : array.length; + + if (initAccum && length) { + accumulator = array[++index]; + } + while (++index < length) { + accumulator = iteratee(accumulator, array[index], index, array); + } + return accumulator; +} + +module.exports = arrayReduce; + + +/***/ }), +/* 262 */ +/***/ (function(module, exports) { + +/** + * @category Common Helpers + * @summary Is the given argument an instance of Date? + * + * @description + * Is the given argument an instance of Date? + * + * @param {*} argument - the argument to check + * @returns {Boolean} the given argument is an instance of Date + * + * @example + * // Is 'mayonnaise' a Date? + * var result = isDate('mayonnaise') + * //=> false + */ +function isDate (argument) { + return argument instanceof Date +} + +module.exports = isDate + + +/***/ }), +/* 263 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) +var startOfISOWeek = __webpack_require__(182) + +/** + * @category ISO Week-Numbering Year Helpers + * @summary Get the ISO week-numbering year of the given date. + * + * @description + * Get the ISO week-numbering year of the given date, + * which always starts 3 days before the year's first Thursday. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @param {Date|String|Number} date - the given date + * @returns {Number} the ISO week-numbering year + * + * @example + * // Which ISO-week numbering year is 2 January 2005? + * var result = getISOYear(new Date(2005, 0, 2)) + * //=> 2004 + */ +function getISOYear (dirtyDate) { + var date = parse(dirtyDate) + var year = date.getFullYear() + + var fourthOfJanuaryOfNextYear = new Date(0) + fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4) + fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0) + var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear) + + var fourthOfJanuaryOfThisYear = new Date(0) + fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4) + fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0) + var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear) + + if (date.getTime() >= startOfNextYear.getTime()) { + return year + 1 + } else if (date.getTime() >= startOfThisYear.getTime()) { + return year + } else { + return year - 1 + } +} + +module.exports = getISOYear + + +/***/ }), +/* 264 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Today\",\"nextMonth\":\"Next month\",\"previousMonth\":\"Previous month\",\"nextYear\":\"Next year\",\"previousYear\":\"Previous year\",\"weekdays\":[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],\"months\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]}"); + +/***/ }), +/* 265 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseUniq = __webpack_require__(258); + +/** + * Creates a duplicate-free version of an array, using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons, in which only the first occurrence of each element + * is kept. The order of result values is determined by the order they occur + * in the array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @returns {Array} Returns the new duplicate free array. + * @example + * + * _.uniq([2, 1, 2]); + * // => [2, 1] + */ +function uniq(array) { + return (array && array.length) ? baseUniq(array) : []; +} + +module.exports = uniq; + + +/***/ }), +/* 266 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + getPrototype = __webpack_require__(580), + isObjectLike = __webpack_require__(47); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +module.exports = isPlainObject; + + +/***/ }), +/* 267 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + isObjectLike = __webpack_require__(47); + +/** `Object#toString` result references. */ +var numberTag = '[object Number]'; + +/** + * Checks if `value` is classified as a `Number` primitive or object. + * + * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are + * classified as numbers, use the `_.isFinite` method. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a number, else `false`. + * @example + * + * _.isNumber(3); + * // => true + * + * _.isNumber(Number.MIN_VALUE); + * // => true + * + * _.isNumber(Infinity); + * // => true + * + * _.isNumber('3'); + * // => false + */ +function isNumber(value) { + return typeof value == 'number' || + (isObjectLike(value) && baseGetTag(value) == numberTag); +} + +module.exports = isNumber; + + +/***/ }), +/* 268 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + isObjectLike = __webpack_require__(47); + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]'; + +/** + * Checks if `value` is classified as a boolean primitive or object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. + * @example + * + * _.isBoolean(false); + * // => true + * + * _.isBoolean(null); + * // => false + */ +function isBoolean(value) { + return value === true || value === false || + (isObjectLike(value) && baseGetTag(value) == boolTag); +} + +module.exports = isBoolean; + + +/***/ }), +/* 269 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(591); + + +/***/ }), +/* 270 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +if (true) { + module.exports = __webpack_require__(592); +} else {} + + +/***/ }), +/* 271 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseSet = __webpack_require__(260); + +/** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ +function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); +} + +module.exports = set; + + +/***/ }), +/* 272 */ +/***/ (function(module, exports, __webpack_require__) { + +var superPropBase = __webpack_require__(607); + +function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + module.exports = _get = Reflect.get; + } else { + module.exports = _get = function _get(target, property, receiver) { + var base = superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + } + + return _get(target, property, receiver || target); +} + +module.exports = _get; + +/***/ }), +/* 273 */ +/***/ (function(module, exports) { + +/** + * Creates an array with all falsey values removed. The values `false`, `null`, + * `0`, `""`, `undefined`, and `NaN` are falsey. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to compact. + * @returns {Array} Returns the new array of filtered values. + * @example + * + * _.compact([0, 1, false, 2, '', 3]); + * // => [1, 2, 3] + */ +function compact(array) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (value) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = compact; + + +/***/ }), +/* 274 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayEvery = __webpack_require__(608), + baseEvery = __webpack_require__(609), + baseIteratee = __webpack_require__(73), + isArray = __webpack_require__(26), + isIterateeCall = __webpack_require__(257); + +/** + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). + * + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + * @example + * + * _.every([true, 1, null, 'yes'], Boolean); + * // => false + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; + * + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); + * // => false + * + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); + * // => false + */ +function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; + } + return func(collection, baseIteratee(predicate, 3)); +} + +module.exports = every; + + +/***/ }), +/* 275 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayReduce = __webpack_require__(261), + baseEach = __webpack_require__(86), + baseIteratee = __webpack_require__(73), + baseReduce = __webpack_require__(610), + isArray = __webpack_require__(26); + +/** + * Reduces `collection` to a value which is the accumulated result of running + * each element in `collection` thru `iteratee`, where each successive + * invocation is supplied the return value of the previous. If `accumulator` + * is not given, the first element of `collection` is used as the initial + * value. The iteratee is invoked with four arguments: + * (accumulator, value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.reduce`, `_.reduceRight`, and `_.transform`. + * + * The guarded methods are: + * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, + * and `sortBy` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @param {*} [accumulator] The initial value. + * @returns {*} Returns the accumulated value. + * @see _.reduceRight + * @example + * + * _.reduce([1, 2], function(sum, n) { + * return sum + n; + * }, 0); + * // => 3 + * + * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { + * (result[value] || (result[value] = [])).push(key); + * return result; + * }, {}); + * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) + */ +function reduce(collection, iteratee, accumulator) { + var func = isArray(collection) ? arrayReduce : baseReduce, + initAccum = arguments.length < 3; + + return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); +} + +module.exports = reduce; + + +/***/ }), +/* 276 */ +/***/ (function(module, exports, __webpack_require__) { + +var toString = __webpack_require__(82); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, + reHasRegExpChar = RegExp(reRegExpChar.source); + +/** + * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", + * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https://lodash\.com/\)' + */ +function escapeRegExp(string) { + string = toString(string); + return (string && reHasRegExpChar.test(string)) + ? string.replace(reRegExpChar, '\\$&') + : string; +} + +module.exports = escapeRegExp; + + +/***/ }), +/* 277 */ +/***/ (function(module, exports, __webpack_require__) { + +var basePick = __webpack_require__(613), + flatRest = __webpack_require__(615); + +/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ +var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); +}); + +module.exports = pick; + + +/***/ }), +/* 278 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseSlice = __webpack_require__(169), + toInteger = __webpack_require__(126); + +/** + * Creates a slice of `array` with `n` elements dropped from the end. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to query. + * @param {number} [n=1] The number of elements to drop. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the slice of `array`. + * @example + * + * _.dropRight([1, 2, 3]); + * // => [1, 2] + * + * _.dropRight([1, 2, 3], 2); + * // => [1] + * + * _.dropRight([1, 2, 3], 5); + * // => [] + * + * _.dropRight([1, 2, 3], 0); + * // => [1, 2, 3] + */ +function dropRight(array, n, guard) { + var length = array == null ? 0 : array.length; + if (!length) { + return []; + } + n = (guard || n === undefined) ? 1 : toInteger(n); + n = length - n; + return baseSlice(array, 0, n < 0 ? 0 : n); +} + +module.exports = dropRight; + + +/***/ }), +/* 279 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseKeys = __webpack_require__(178), + getTag = __webpack_require__(179), + isArrayLike = __webpack_require__(52), + isString = __webpack_require__(128), + stringSize = __webpack_require__(618); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + setTag = '[object Set]'; + +/** + * Gets the size of `collection` by returning its length for array-like + * values or the number of own enumerable string keyed properties for objects. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object|string} collection The collection to inspect. + * @returns {number} Returns the collection size. + * @example + * + * _.size([1, 2, 3]); + * // => 3 + * + * _.size({ 'a': 1, 'b': 2 }); + * // => 2 + * + * _.size('pebbles'); + * // => 7 + */ +function size(collection) { + if (collection == null) { + return 0; + } + if (isArrayLike(collection)) { + return isString(collection) ? stringSize(collection) : collection.length; + } + var tag = getTag(collection); + if (tag == mapTag || tag == setTag) { + return collection.size; + } + return baseKeys(collection).length; +} + +module.exports = size; + + +/***/ }), +/* 280 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsEqual = __webpack_require__(174); + +/** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ +function isEqual(value, other) { + return baseIsEqual(value, other); +} + +module.exports = isEqual; + + +/***/ }), +/* 281 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isArray = Array.isArray; +var keyList = Object.keys; +var hasProp = Object.prototype.hasOwnProperty; +var hasElementType = typeof Element !== 'undefined'; + +function equal(a, b) { + // fast-deep-equal index.js 2.0.1 + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + var arrA = isArray(a) + , arrB = isArray(b) + , i + , length + , key; + + if (arrA && arrB) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + if (arrA != arrB) return false; + + var dateA = a instanceof Date + , dateB = b instanceof Date; + if (dateA != dateB) return false; + if (dateA && dateB) return a.getTime() == b.getTime(); + + var regexpA = a instanceof RegExp + , regexpB = b instanceof RegExp; + if (regexpA != regexpB) return false; + if (regexpA && regexpB) return a.toString() == b.toString(); + + var keys = keyList(a); + length = keys.length; + + if (length !== keyList(b).length) + return false; + + for (i = length; i-- !== 0;) + if (!hasProp.call(b, keys[i])) return false; + // end fast-deep-equal + + // start react-fast-compare + // custom handling for DOM elements + if (hasElementType && a instanceof Element && b instanceof Element) + return a === b; + + // custom handling for React + for (i = length; i-- !== 0;) { + key = keys[i]; + if (key === '_owner' && a.$$typeof) { + // React-specific: avoid traversing React elements' _owner. + // _owner contains circular references + // and is not needed when comparing the actual elements (and not their owners) + // .$$typeof and ._store on just reasonable markers of a react element + continue; + } else { + // all other properties should be traversed as usual + if (!equal(a[key], b[key])) return false; + } + } + // end react-fast-compare + + // fast-deep-equal index.js 2.0.1 + return true; + } + + return a !== a && b !== b; +} +// end fast-deep-equal + +module.exports = function exportedEqual(a, b) { + try { + return equal(a, b); + } catch (error) { + if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) { + // warn on circular references, don't crash + // browsers give this different errors name and messages: + // chrome/safari: "RangeError", "Maximum call stack size exceeded" + // firefox: "InternalError", too much recursion" + // edge: "Error", "Out of stack space" + console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message); + return false; + } + // some other error. we should definitely know about these + throw error; + } +}; + + +/***/ }), +/* 282 */ +/***/ (function(module, exports, __webpack_require__) { + +var getDayOfYear = __webpack_require__(621) +var getISOWeek = __webpack_require__(625) +var getISOYear = __webpack_require__(263) +var parse = __webpack_require__(42) +var isValid = __webpack_require__(133) +var enLocale = __webpack_require__(628) + +/** + * @category Common Helpers + * @summary Format the date. + * + * @description + * Return the formatted date string in the given format. + * + * Accepted tokens: + * | Unit | Token | Result examples | + * |-------------------------|-------|----------------------------------| + * | Month | M | 1, 2, ..., 12 | + * | | Mo | 1st, 2nd, ..., 12th | + * | | MM | 01, 02, ..., 12 | + * | | MMM | Jan, Feb, ..., Dec | + * | | MMMM | January, February, ..., December | + * | Quarter | Q | 1, 2, 3, 4 | + * | | Qo | 1st, 2nd, 3rd, 4th | + * | Day of month | D | 1, 2, ..., 31 | + * | | Do | 1st, 2nd, ..., 31st | + * | | DD | 01, 02, ..., 31 | + * | Day of year | DDD | 1, 2, ..., 366 | + * | | DDDo | 1st, 2nd, ..., 366th | + * | | DDDD | 001, 002, ..., 366 | + * | Day of week | d | 0, 1, ..., 6 | + * | | do | 0th, 1st, ..., 6th | + * | | dd | Su, Mo, ..., Sa | + * | | ddd | Sun, Mon, ..., Sat | + * | | dddd | Sunday, Monday, ..., Saturday | + * | Day of ISO week | E | 1, 2, ..., 7 | + * | ISO week | W | 1, 2, ..., 53 | + * | | Wo | 1st, 2nd, ..., 53rd | + * | | WW | 01, 02, ..., 53 | + * | Year | YY | 00, 01, ..., 99 | + * | | YYYY | 1900, 1901, ..., 2099 | + * | ISO week-numbering year | GG | 00, 01, ..., 99 | + * | | GGGG | 1900, 1901, ..., 2099 | + * | AM/PM | A | AM, PM | + * | | a | am, pm | + * | | aa | a.m., p.m. | + * | Hour | H | 0, 1, ... 23 | + * | | HH | 00, 01, ... 23 | + * | | h | 1, 2, ..., 12 | + * | | hh | 01, 02, ..., 12 | + * | Minute | m | 0, 1, ..., 59 | + * | | mm | 00, 01, ..., 59 | + * | Second | s | 0, 1, ..., 59 | + * | | ss | 00, 01, ..., 59 | + * | 1/10 of second | S | 0, 1, ..., 9 | + * | 1/100 of second | SS | 00, 01, ..., 99 | + * | Millisecond | SSS | 000, 001, ..., 999 | + * | Timezone | Z | -01:00, +00:00, ... +12:00 | + * | | ZZ | -0100, +0000, ..., +1200 | + * | Seconds timestamp | X | 512969520 | + * | Milliseconds timestamp | x | 512969520900 | + * + * The characters wrapped in square brackets are escaped. + * + * The result may vary by locale. + * + * @param {Date|String|Number} date - the original date + * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens + * @param {Object} [options] - the object with options + * @param {Object} [options.locale=enLocale] - the locale object + * @returns {String} the formatted date string + * + * @example + * // Represent 11 February 2014 in middle-endian format: + * var result = format( + * new Date(2014, 1, 11), + * 'MM/DD/YYYY' + * ) + * //=> '02/11/2014' + * + * @example + * // Represent 2 July 2014 in Esperanto: + * var eoLocale = require('date-fns/locale/eo') + * var result = format( + * new Date(2014, 6, 2), + * 'Do [de] MMMM YYYY', + * {locale: eoLocale} + * ) + * //=> '2-a de julio 2014' + */ +function format (dirtyDate, dirtyFormatStr, dirtyOptions) { + var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ' + var options = dirtyOptions || {} + + var locale = options.locale + var localeFormatters = enLocale.format.formatters + var formattingTokensRegExp = enLocale.format.formattingTokensRegExp + if (locale && locale.format && locale.format.formatters) { + localeFormatters = locale.format.formatters + + if (locale.format.formattingTokensRegExp) { + formattingTokensRegExp = locale.format.formattingTokensRegExp + } + } + + var date = parse(dirtyDate) + + if (!isValid(date)) { + return 'Invalid Date' + } + + var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp) + + return formatFn(date) +} + +var formatters = { + // Month: 1, 2, ..., 12 + 'M': function (date) { + return date.getMonth() + 1 + }, + + // Month: 01, 02, ..., 12 + 'MM': function (date) { + return addLeadingZeros(date.getMonth() + 1, 2) + }, + + // Quarter: 1, 2, 3, 4 + 'Q': function (date) { + return Math.ceil((date.getMonth() + 1) / 3) + }, + + // Day of month: 1, 2, ..., 31 + 'D': function (date) { + return date.getDate() + }, + + // Day of month: 01, 02, ..., 31 + 'DD': function (date) { + return addLeadingZeros(date.getDate(), 2) + }, + + // Day of year: 1, 2, ..., 366 + 'DDD': function (date) { + return getDayOfYear(date) + }, + + // Day of year: 001, 002, ..., 366 + 'DDDD': function (date) { + return addLeadingZeros(getDayOfYear(date), 3) + }, + + // Day of week: 0, 1, ..., 6 + 'd': function (date) { + return date.getDay() + }, + + // Day of ISO week: 1, 2, ..., 7 + 'E': function (date) { + return date.getDay() || 7 + }, + + // ISO week: 1, 2, ..., 53 + 'W': function (date) { + return getISOWeek(date) + }, + + // ISO week: 01, 02, ..., 53 + 'WW': function (date) { + return addLeadingZeros(getISOWeek(date), 2) + }, + + // Year: 00, 01, ..., 99 + 'YY': function (date) { + return addLeadingZeros(date.getFullYear(), 4).substr(2) + }, + + // Year: 1900, 1901, ..., 2099 + 'YYYY': function (date) { + return addLeadingZeros(date.getFullYear(), 4) + }, + + // ISO week-numbering year: 00, 01, ..., 99 + 'GG': function (date) { + return String(getISOYear(date)).substr(2) + }, + + // ISO week-numbering year: 1900, 1901, ..., 2099 + 'GGGG': function (date) { + return getISOYear(date) + }, + + // Hour: 0, 1, ... 23 + 'H': function (date) { + return date.getHours() + }, + + // Hour: 00, 01, ..., 23 + 'HH': function (date) { + return addLeadingZeros(date.getHours(), 2) + }, + + // Hour: 1, 2, ..., 12 + 'h': function (date) { + var hours = date.getHours() + if (hours === 0) { + return 12 + } else if (hours > 12) { + return hours % 12 + } else { + return hours + } + }, + + // Hour: 01, 02, ..., 12 + 'hh': function (date) { + return addLeadingZeros(formatters['h'](date), 2) + }, + + // Minute: 0, 1, ..., 59 + 'm': function (date) { + return date.getMinutes() + }, + + // Minute: 00, 01, ..., 59 + 'mm': function (date) { + return addLeadingZeros(date.getMinutes(), 2) + }, + + // Second: 0, 1, ..., 59 + 's': function (date) { + return date.getSeconds() + }, + + // Second: 00, 01, ..., 59 + 'ss': function (date) { + return addLeadingZeros(date.getSeconds(), 2) + }, + + // 1/10 of second: 0, 1, ..., 9 + 'S': function (date) { + return Math.floor(date.getMilliseconds() / 100) + }, + + // 1/100 of second: 00, 01, ..., 99 + 'SS': function (date) { + return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2) + }, + + // Millisecond: 000, 001, ..., 999 + 'SSS': function (date) { + return addLeadingZeros(date.getMilliseconds(), 3) + }, + + // Timezone: -01:00, +00:00, ... +12:00 + 'Z': function (date) { + return formatTimezone(date.getTimezoneOffset(), ':') + }, + + // Timezone: -0100, +0000, ... +1200 + 'ZZ': function (date) { + return formatTimezone(date.getTimezoneOffset()) + }, + + // Seconds timestamp: 512969520 + 'X': function (date) { + return Math.floor(date.getTime() / 1000) + }, + + // Milliseconds timestamp: 512969520900 + 'x': function (date) { + return date.getTime() + } +} + +function buildFormatFn (formatStr, localeFormatters, formattingTokensRegExp) { + var array = formatStr.match(formattingTokensRegExp) + var length = array.length + + var i + var formatter + for (i = 0; i < length; i++) { + formatter = localeFormatters[array[i]] || formatters[array[i]] + if (formatter) { + array[i] = formatter + } else { + array[i] = removeFormattingTokens(array[i]) + } + } + + return function (date) { + var output = '' + for (var i = 0; i < length; i++) { + if (array[i] instanceof Function) { + output += array[i](date, formatters) + } else { + output += array[i] + } + } + return output + } +} + +function removeFormattingTokens (input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|]$/g, '') + } + return input.replace(/\\/g, '') +} + +function formatTimezone (offset, delimeter) { + delimeter = delimeter || '' + var sign = offset > 0 ? '-' : '+' + var absOffset = Math.abs(offset) + var hours = Math.floor(absOffset / 60) + var minutes = absOffset % 60 + return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2) +} + +function addLeadingZeros (number, targetLength) { + var output = Math.abs(number).toString() + while (output.length < targetLength) { + output = '0' + output + } + return output +} + +module.exports = format + + +/***/ }), +/* 283 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) + +/** + * @category Common Helpers + * @summary Compare the two dates and return -1, 0 or 1. + * + * @description + * Compare the two dates and return 1 if the first date is after the second, + * -1 if the first date is before the second or 0 if dates are equal. + * + * @param {Date|String|Number} dateLeft - the first date to compare + * @param {Date|String|Number} dateRight - the second date to compare + * @returns {Number} the result of the comparison + * + * @example + * // Compare 11 February 1987 and 10 July 1989: + * var result = compareAsc( + * new Date(1987, 1, 11), + * new Date(1989, 6, 10) + * ) + * //=> -1 + * + * @example + * // Sort the array of dates: + * var result = [ + * new Date(1995, 6, 2), + * new Date(1987, 1, 11), + * new Date(1989, 6, 10) + * ].sort(compareAsc) + * //=> [ + * // Wed Feb 11 1987 00:00:00, + * // Mon Jul 10 1989 00:00:00, + * // Sun Jul 02 1995 00:00:00 + * // ] + */ +function compareAsc (dirtyDateLeft, dirtyDateRight) { + var dateLeft = parse(dirtyDateLeft) + var timeLeft = dateLeft.getTime() + var dateRight = parse(dirtyDateRight) + var timeRight = dateRight.getTime() + + if (timeLeft < timeRight) { + return -1 + } else if (timeLeft > timeRight) { + return 1 + } else { + return 0 + } +} + +module.exports = compareAsc + + +/***/ }), +/* 284 */ +/***/ (function(module, exports) { + +module.exports=function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var t={};return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r(r.s=0)}([function(e,r,t){"use strict";r.__esModule=!0,r.default=function(e,r){if(e&&r){var t=Array.isArray(r)?r:r.split(","),n=e.name||"",o=e.type||"",u=o.replace(/\/.*$/,"");return t.some(function(e){var r=e.trim();return"."===r.charAt(0)?n.toLowerCase().endsWith(r.toLowerCase()):r.endsWith("/*")?u===r.replace(/\/.*$/,""):o===r})}return!0}}]); + +/***/ }), +/* 285 */ +/***/ (function(module, exports, __webpack_require__) { + +var objectWithoutPropertiesLoose = __webpack_require__(648); + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +module.exports = _objectWithoutProperties; + +/***/ }), +/* 286 */ +/***/ (function(module, exports, __webpack_require__) { + +var createCompounder = __webpack_require__(649), + upperFirst = __webpack_require__(654); + +/** + * Converts `string` to + * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). + * + * @static + * @memberOf _ + * @since 3.1.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the start cased string. + * @example + * + * _.startCase('--foo-bar--'); + * // => 'Foo Bar' + * + * _.startCase('fooBar'); + * // => 'Foo Bar' + * + * _.startCase('__FOO_BAR__'); + * // => 'FOO BAR' + */ +var startCase = createCompounder(function(result, word, index) { + return result + (index ? ' ' : '') + upperFirst(word); +}); + +module.exports = startCase; + + +/***/ }), +/* 287 */, +/* 288 */, +/* 289 */, +/* 290 */, +/* 291 */, +/* 292 */, +/* 293 */, +/* 294 */, +/* 295 */, +/* 296 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(297); +module.exports = __webpack_require__(660); + + +/***/ }), +/* 297 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +__webpack_require__(298); + +__webpack_require__(495); + +__webpack_require__(496); + +if (global._babelPolyfill) { + throw new Error("only one instance of babel-polyfill is allowed"); +} +global._babelPolyfill = true; + +var DEFINE_PROPERTY = "defineProperty"; +function define(O, key, value) { + O[key] || Object[DEFINE_PROPERTY](O, key, { + writable: true, + configurable: true, + value: value + }); +} + +define(String.prototype, "padLeft", "".padStart); +define(String.prototype, "padRight", "".padEnd); + +"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) { + [][key] && define(Array, key, Function.call.bind([][key])); +}); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(138))) + +/***/ }), +/* 298 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(299); +__webpack_require__(302); +__webpack_require__(303); +__webpack_require__(304); +__webpack_require__(305); +__webpack_require__(306); +__webpack_require__(307); +__webpack_require__(308); +__webpack_require__(309); +__webpack_require__(310); +__webpack_require__(311); +__webpack_require__(312); +__webpack_require__(313); +__webpack_require__(314); +__webpack_require__(315); +__webpack_require__(316); +__webpack_require__(317); +__webpack_require__(318); +__webpack_require__(319); +__webpack_require__(320); +__webpack_require__(321); +__webpack_require__(322); +__webpack_require__(323); +__webpack_require__(324); +__webpack_require__(325); +__webpack_require__(326); +__webpack_require__(327); +__webpack_require__(328); +__webpack_require__(329); +__webpack_require__(330); +__webpack_require__(331); +__webpack_require__(332); +__webpack_require__(333); +__webpack_require__(334); +__webpack_require__(335); +__webpack_require__(336); +__webpack_require__(337); +__webpack_require__(338); +__webpack_require__(339); +__webpack_require__(340); +__webpack_require__(341); +__webpack_require__(342); +__webpack_require__(343); +__webpack_require__(344); +__webpack_require__(345); +__webpack_require__(346); +__webpack_require__(347); +__webpack_require__(348); +__webpack_require__(349); +__webpack_require__(350); +__webpack_require__(351); +__webpack_require__(352); +__webpack_require__(353); +__webpack_require__(354); +__webpack_require__(355); +__webpack_require__(356); +__webpack_require__(357); +__webpack_require__(358); +__webpack_require__(359); +__webpack_require__(360); +__webpack_require__(361); +__webpack_require__(362); +__webpack_require__(363); +__webpack_require__(364); +__webpack_require__(365); +__webpack_require__(366); +__webpack_require__(367); +__webpack_require__(368); +__webpack_require__(369); +__webpack_require__(370); +__webpack_require__(371); +__webpack_require__(372); +__webpack_require__(373); +__webpack_require__(374); +__webpack_require__(375); +__webpack_require__(376); +__webpack_require__(377); +__webpack_require__(379); +__webpack_require__(380); +__webpack_require__(382); +__webpack_require__(383); +__webpack_require__(384); +__webpack_require__(385); +__webpack_require__(386); +__webpack_require__(387); +__webpack_require__(388); +__webpack_require__(390); +__webpack_require__(391); +__webpack_require__(392); +__webpack_require__(393); +__webpack_require__(394); +__webpack_require__(395); +__webpack_require__(396); +__webpack_require__(397); +__webpack_require__(398); +__webpack_require__(399); +__webpack_require__(400); +__webpack_require__(401); +__webpack_require__(402); +__webpack_require__(159); +__webpack_require__(403); +__webpack_require__(213); +__webpack_require__(404); +__webpack_require__(214); +__webpack_require__(405); +__webpack_require__(406); +__webpack_require__(407); +__webpack_require__(408); +__webpack_require__(409); +__webpack_require__(217); +__webpack_require__(219); +__webpack_require__(220); +__webpack_require__(410); +__webpack_require__(411); +__webpack_require__(412); +__webpack_require__(413); +__webpack_require__(414); +__webpack_require__(415); +__webpack_require__(416); +__webpack_require__(417); +__webpack_require__(418); +__webpack_require__(419); +__webpack_require__(420); +__webpack_require__(421); +__webpack_require__(422); +__webpack_require__(423); +__webpack_require__(424); +__webpack_require__(425); +__webpack_require__(426); +__webpack_require__(427); +__webpack_require__(428); +__webpack_require__(429); +__webpack_require__(430); +__webpack_require__(431); +__webpack_require__(432); +__webpack_require__(433); +__webpack_require__(434); +__webpack_require__(435); +__webpack_require__(436); +__webpack_require__(437); +__webpack_require__(438); +__webpack_require__(439); +__webpack_require__(440); +__webpack_require__(441); +__webpack_require__(442); +__webpack_require__(443); +__webpack_require__(444); +__webpack_require__(445); +__webpack_require__(446); +__webpack_require__(447); +__webpack_require__(448); +__webpack_require__(449); +__webpack_require__(450); +__webpack_require__(451); +__webpack_require__(452); +__webpack_require__(453); +__webpack_require__(454); +__webpack_require__(455); +__webpack_require__(456); +__webpack_require__(457); +__webpack_require__(458); +__webpack_require__(459); +__webpack_require__(460); +__webpack_require__(461); +__webpack_require__(462); +__webpack_require__(463); +__webpack_require__(464); +__webpack_require__(465); +__webpack_require__(466); +__webpack_require__(467); +__webpack_require__(468); +__webpack_require__(469); +__webpack_require__(470); +__webpack_require__(471); +__webpack_require__(472); +__webpack_require__(473); +__webpack_require__(474); +__webpack_require__(475); +__webpack_require__(476); +__webpack_require__(477); +__webpack_require__(478); +__webpack_require__(479); +__webpack_require__(480); +__webpack_require__(481); +__webpack_require__(482); +__webpack_require__(483); +__webpack_require__(484); +__webpack_require__(485); +__webpack_require__(486); +__webpack_require__(487); +__webpack_require__(488); +__webpack_require__(489); +__webpack_require__(490); +__webpack_require__(491); +__webpack_require__(492); +__webpack_require__(493); +__webpack_require__(494); +module.exports = __webpack_require__(37); + + +/***/ }), +/* 299 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// ECMAScript 6 symbols shim +var global = __webpack_require__(16); +var has = __webpack_require__(33); +var DESCRIPTORS = __webpack_require__(21); +var $export = __webpack_require__(3); +var redefine = __webpack_require__(30); +var META = __webpack_require__(56).KEY; +var $fails = __webpack_require__(17); +var shared = __webpack_require__(89); +var setToStringTag = __webpack_require__(77); +var uid = __webpack_require__(62); +var wks = __webpack_require__(19); +var wksExt = __webpack_require__(195); +var wksDefine = __webpack_require__(140); +var enumKeys = __webpack_require__(301); +var isArray = __webpack_require__(101); +var anObject = __webpack_require__(9); +var isObject = __webpack_require__(18); +var toObject = __webpack_require__(23); +var toIObject = __webpack_require__(34); +var toPrimitive = __webpack_require__(43); +var createDesc = __webpack_require__(61); +var _create = __webpack_require__(65); +var gOPNExt = __webpack_require__(198); +var $GOPD = __webpack_require__(35); +var $GOPS = __webpack_require__(100); +var $DP = __webpack_require__(22); +var $keys = __webpack_require__(63); +var gOPD = $GOPD.f; +var dP = $DP.f; +var gOPN = gOPNExt.f; +var $Symbol = global.Symbol; +var $JSON = global.JSON; +var _stringify = $JSON && $JSON.stringify; +var PROTOTYPE = 'prototype'; +var HIDDEN = wks('_hidden'); +var TO_PRIMITIVE = wks('toPrimitive'); +var isEnum = {}.propertyIsEnumerable; +var SymbolRegistry = shared('symbol-registry'); +var AllSymbols = shared('symbols'); +var OPSymbols = shared('op-symbols'); +var ObjectProto = Object[PROTOTYPE]; +var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; +var QObject = global.QObject; +// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 +var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + +// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 +var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function () { return dP(this, 'a', { value: 7 }).a; } + })).a != 7; +}) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); +} : dP; + +var wrap = function (tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + sym._k = tag; + return sym; +}; + +var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { + return typeof it == 'symbol'; +} : function (it) { + return it instanceof $Symbol; +}; + +var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { enumerable: createDesc(0, false) }); + } return setSymbolDesc(it, key, D); + } return dP(it, key, D); +}; +var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + while (l > i) $defineProperty(it, key = keys[i++], P[key]); + return it; +}; +var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); +}; +var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; +}; +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; +}; +var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } return result; +}; +var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } return result; +}; + +// 19.4.1.1 Symbol([description]) +if (!USE_NATIVE) { + $Symbol = function Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + var $set = function (value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); + return wrap(tag); + }; + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__(66).f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__(91).f = $propertyIsEnumerable; + $GOPS.f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__webpack_require__(55)) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); + +for (var es6Symbols = ( + // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' +).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); + +for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); + +$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function (key) { + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; + }, + useSetter: function () { setter = true; }, + useSimple: function () { setter = false; } +}); + +$export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols +}); + +// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 +var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); }); + +$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + return $GOPS.f(toObject(it)); + } +}); + +// 24.3.2 JSON.stringify(value [, replacer [, space]]) +$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; +})), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + while (arguments.length > i) args.push(arguments[i++]); + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } +}); + +// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) +$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(29)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); +// 19.4.3.5 Symbol.prototype[@@toStringTag] +setToStringTag($Symbol, 'Symbol'); +// 20.2.1.9 Math[@@toStringTag] +setToStringTag(Math, 'Math', true); +// 24.3.3 JSON[@@toStringTag] +setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 300 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(89)('native-function-to-string', Function.toString); + + +/***/ }), +/* 301 */ +/***/ (function(module, exports, __webpack_require__) { + +// all enumerable object keys, includes symbols +var getKeys = __webpack_require__(63); +var gOPS = __webpack_require__(100); +var pIE = __webpack_require__(91); +module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); + } return result; +}; + + +/***/ }), +/* 302 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) +$export($export.S, 'Object', { create: __webpack_require__(65) }); + + +/***/ }), +/* 303 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) +$export($export.S + $export.F * !__webpack_require__(21), 'Object', { defineProperty: __webpack_require__(22).f }); + + +/***/ }), +/* 304 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) +$export($export.S + $export.F * !__webpack_require__(21), 'Object', { defineProperties: __webpack_require__(197) }); + + +/***/ }), +/* 305 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) +var toIObject = __webpack_require__(34); +var $getOwnPropertyDescriptor = __webpack_require__(35).f; + +__webpack_require__(45)('getOwnPropertyDescriptor', function () { + return function getOwnPropertyDescriptor(it, key) { + return $getOwnPropertyDescriptor(toIObject(it), key); + }; +}); + + +/***/ }), +/* 306 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 Object.getPrototypeOf(O) +var toObject = __webpack_require__(23); +var $getPrototypeOf = __webpack_require__(36); + +__webpack_require__(45)('getPrototypeOf', function () { + return function getPrototypeOf(it) { + return $getPrototypeOf(toObject(it)); + }; +}); + + +/***/ }), +/* 307 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 Object.keys(O) +var toObject = __webpack_require__(23); +var $keys = __webpack_require__(63); + +__webpack_require__(45)('keys', function () { + return function keys(it) { + return $keys(toObject(it)); + }; +}); + + +/***/ }), +/* 308 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.7 Object.getOwnPropertyNames(O) +__webpack_require__(45)('getOwnPropertyNames', function () { + return __webpack_require__(198).f; +}); + + +/***/ }), +/* 309 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.5 Object.freeze(O) +var isObject = __webpack_require__(18); +var meta = __webpack_require__(56).onFreeze; + +__webpack_require__(45)('freeze', function ($freeze) { + return function freeze(it) { + return $freeze && isObject(it) ? $freeze(meta(it)) : it; + }; +}); + + +/***/ }), +/* 310 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.17 Object.seal(O) +var isObject = __webpack_require__(18); +var meta = __webpack_require__(56).onFreeze; + +__webpack_require__(45)('seal', function ($seal) { + return function seal(it) { + return $seal && isObject(it) ? $seal(meta(it)) : it; + }; +}); + + +/***/ }), +/* 311 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.15 Object.preventExtensions(O) +var isObject = __webpack_require__(18); +var meta = __webpack_require__(56).onFreeze; + +__webpack_require__(45)('preventExtensions', function ($preventExtensions) { + return function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; + }; +}); + + +/***/ }), +/* 312 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.12 Object.isFrozen(O) +var isObject = __webpack_require__(18); + +__webpack_require__(45)('isFrozen', function ($isFrozen) { + return function isFrozen(it) { + return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; + }; +}); + + +/***/ }), +/* 313 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.13 Object.isSealed(O) +var isObject = __webpack_require__(18); + +__webpack_require__(45)('isSealed', function ($isSealed) { + return function isSealed(it) { + return isObject(it) ? $isSealed ? $isSealed(it) : false : true; + }; +}); + + +/***/ }), +/* 314 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.11 Object.isExtensible(O) +var isObject = __webpack_require__(18); + +__webpack_require__(45)('isExtensible', function ($isExtensible) { + return function isExtensible(it) { + return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; + }; +}); + + +/***/ }), +/* 315 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.1 Object.assign(target, source) +var $export = __webpack_require__(3); + +$export($export.S + $export.F, 'Object', { assign: __webpack_require__(199) }); + + +/***/ }), +/* 316 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.10 Object.is(value1, value2) +var $export = __webpack_require__(3); +$export($export.S, 'Object', { is: __webpack_require__(200) }); + + +/***/ }), +/* 317 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.19 Object.setPrototypeOf(O, proto) +var $export = __webpack_require__(3); +$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(144).set }); + + +/***/ }), +/* 318 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 19.1.3.6 Object.prototype.toString() +var classof = __webpack_require__(78); +var test = {}; +test[__webpack_require__(19)('toStringTag')] = 'z'; +if (test + '' != '[object z]') { + __webpack_require__(30)(Object.prototype, 'toString', function toString() { + return '[object ' + classof(this) + ']'; + }, true); +} + + +/***/ }), +/* 319 */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) +var $export = __webpack_require__(3); + +$export($export.P, 'Function', { bind: __webpack_require__(201) }); + + +/***/ }), +/* 320 */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(22).f; +var FProto = Function.prototype; +var nameRE = /^\s*function ([^ (]*)/; +var NAME = 'name'; + +// 19.2.4.2 name +NAME in FProto || __webpack_require__(21) && dP(FProto, NAME, { + configurable: true, + get: function () { + try { + return ('' + this).match(nameRE)[1]; + } catch (e) { + return ''; + } + } +}); + + +/***/ }), +/* 321 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var isObject = __webpack_require__(18); +var getPrototypeOf = __webpack_require__(36); +var HAS_INSTANCE = __webpack_require__(19)('hasInstance'); +var FunctionProto = Function.prototype; +// 19.2.3.6 Function.prototype[@@hasInstance](V) +if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(22).f(FunctionProto, HAS_INSTANCE, { value: function (O) { + if (typeof this != 'function' || !isObject(O)) return false; + if (!isObject(this.prototype)) return O instanceof this; + // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: + while (O = getPrototypeOf(O)) if (this.prototype === O) return true; + return false; +} }); + + +/***/ }), +/* 322 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var $parseInt = __webpack_require__(203); +// 18.2.5 parseInt(string, radix) +$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); + + +/***/ }), +/* 323 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var $parseFloat = __webpack_require__(204); +// 18.2.4 parseFloat(string) +$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); + + +/***/ }), +/* 324 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var global = __webpack_require__(16); +var has = __webpack_require__(33); +var cof = __webpack_require__(39); +var inheritIfRequired = __webpack_require__(146); +var toPrimitive = __webpack_require__(43); +var fails = __webpack_require__(17); +var gOPN = __webpack_require__(66).f; +var gOPD = __webpack_require__(35).f; +var dP = __webpack_require__(22).f; +var $trim = __webpack_require__(79).trim; +var NUMBER = 'Number'; +var $Number = global[NUMBER]; +var Base = $Number; +var proto = $Number.prototype; +// Opera ~12 has broken Object#toString +var BROKEN_COF = cof(__webpack_require__(65)(proto)) == NUMBER; +var TRIM = 'trim' in String.prototype; + +// 7.1.3 ToNumber(argument) +var toNumber = function (argument) { + var it = toPrimitive(argument, false); + if (typeof it == 'string' && it.length > 2) { + it = TRIM ? it.trim() : $trim(it, 3); + var first = it.charCodeAt(0); + var third, radix, maxCode; + if (first === 43 || first === 45) { + third = it.charCodeAt(2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (it.charCodeAt(1)) { + case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i + case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i + default: return +it; + } + for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { + code = digits.charCodeAt(i); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; +}; + +if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { + $Number = function Number(value) { + var it = arguments.length < 1 ? 0 : value; + var that = this; + return that instanceof $Number + // check on 1..constructor(foo) case + && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) + ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); + }; + for (var keys = __webpack_require__(21) ? gOPN(Base) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES6 (in case, if modules with ES6 Number statics required before): + 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' + ).split(','), j = 0, key; keys.length > j; j++) { + if (has(Base, key = keys[j]) && !has($Number, key)) { + dP($Number, key, gOPD(Base, key)); + } + } + $Number.prototype = proto; + proto.constructor = $Number; + __webpack_require__(30)(global, NUMBER, $Number); +} + + +/***/ }), +/* 325 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var toInteger = __webpack_require__(40); +var aNumberValue = __webpack_require__(205); +var repeat = __webpack_require__(147); +var $toFixed = 1.0.toFixed; +var floor = Math.floor; +var data = [0, 0, 0, 0, 0, 0]; +var ERROR = 'Number.toFixed: incorrect invocation!'; +var ZERO = '0'; + +var multiply = function (n, c) { + var i = -1; + var c2 = c; + while (++i < 6) { + c2 += n * data[i]; + data[i] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; +var divide = function (n) { + var i = 6; + var c = 0; + while (--i >= 0) { + c += data[i]; + data[i] = floor(c / n); + c = (c % n) * 1e7; + } +}; +var numToString = function () { + var i = 6; + var s = ''; + while (--i >= 0) { + if (s !== '' || i === 0 || data[i] !== 0) { + var t = String(data[i]); + s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; + } + } return s; +}; +var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; +var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; +}; + +$export($export.P + $export.F * (!!$toFixed && ( + 0.00008.toFixed(3) !== '0.000' || + 0.9.toFixed(0) !== '1' || + 1.255.toFixed(2) !== '1.25' || + 1000000000000000128.0.toFixed(0) !== '1000000000000000128' +) || !__webpack_require__(17)(function () { + // V8 ~ Android 4.3- + $toFixed.call({}); +})), 'Number', { + toFixed: function toFixed(fractionDigits) { + var x = aNumberValue(this, ERROR); + var f = toInteger(fractionDigits); + var s = ''; + var m = ZERO; + var e, z, j, k; + if (f < 0 || f > 20) throw RangeError(ERROR); + // eslint-disable-next-line no-self-compare + if (x != x) return 'NaN'; + if (x <= -1e21 || x >= 1e21) return String(x); + if (x < 0) { + s = '-'; + x = -x; + } + if (x > 1e-21) { + e = log(x * pow(2, 69, 1)) - 69; + z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(0, z); + j = f; + while (j >= 7) { + multiply(1e7, 0); + j -= 7; + } + multiply(pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(1 << 23); + j -= 23; + } + divide(1 << j); + multiply(1, 1); + divide(2); + m = numToString(); + } else { + multiply(0, z); + multiply(1 << -e, 0); + m = numToString() + repeat.call(ZERO, f); + } + } + if (f > 0) { + k = m.length; + m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); + } else { + m = s + m; + } return m; + } +}); + + +/***/ }), +/* 326 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $fails = __webpack_require__(17); +var aNumberValue = __webpack_require__(205); +var $toPrecision = 1.0.toPrecision; + +$export($export.P + $export.F * ($fails(function () { + // IE7- + return $toPrecision.call(1, undefined) !== '1'; +}) || !$fails(function () { + // V8 ~ Android 4.3- + $toPrecision.call({}); +})), 'Number', { + toPrecision: function toPrecision(precision) { + var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); + return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); + } +}); + + +/***/ }), +/* 327 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.1 Number.EPSILON +var $export = __webpack_require__(3); + +$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); + + +/***/ }), +/* 328 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.2 Number.isFinite(number) +var $export = __webpack_require__(3); +var _isFinite = __webpack_require__(16).isFinite; + +$export($export.S, 'Number', { + isFinite: function isFinite(it) { + return typeof it == 'number' && _isFinite(it); + } +}); + + +/***/ }), +/* 329 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.3 Number.isInteger(number) +var $export = __webpack_require__(3); + +$export($export.S, 'Number', { isInteger: __webpack_require__(206) }); + + +/***/ }), +/* 330 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.4 Number.isNaN(number) +var $export = __webpack_require__(3); + +$export($export.S, 'Number', { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare + return number != number; + } +}); + + +/***/ }), +/* 331 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.5 Number.isSafeInteger(number) +var $export = __webpack_require__(3); +var isInteger = __webpack_require__(206); +var abs = Math.abs; + +$export($export.S, 'Number', { + isSafeInteger: function isSafeInteger(number) { + return isInteger(number) && abs(number) <= 0x1fffffffffffff; + } +}); + + +/***/ }), +/* 332 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.6 Number.MAX_SAFE_INTEGER +var $export = __webpack_require__(3); + +$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); + + +/***/ }), +/* 333 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.10 Number.MIN_SAFE_INTEGER +var $export = __webpack_require__(3); + +$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); + + +/***/ }), +/* 334 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var $parseFloat = __webpack_require__(204); +// 20.1.2.12 Number.parseFloat(string) +$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); + + +/***/ }), +/* 335 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var $parseInt = __webpack_require__(203); +// 20.1.2.13 Number.parseInt(string, radix) +$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); + + +/***/ }), +/* 336 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.3 Math.acosh(x) +var $export = __webpack_require__(3); +var log1p = __webpack_require__(207); +var sqrt = Math.sqrt; +var $acosh = Math.acosh; + +$export($export.S + $export.F * !($acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + && Math.floor($acosh(Number.MAX_VALUE)) == 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + && $acosh(Infinity) == Infinity +), 'Math', { + acosh: function acosh(x) { + return (x = +x) < 1 ? NaN : x > 94906265.62425156 + ? Math.log(x) + Math.LN2 + : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); + } +}); + + +/***/ }), +/* 337 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.5 Math.asinh(x) +var $export = __webpack_require__(3); +var $asinh = Math.asinh; + +function asinh(x) { + return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); +} + +// Tor Browser bug: Math.asinh(0) -> -0 +$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); + + +/***/ }), +/* 338 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.7 Math.atanh(x) +var $export = __webpack_require__(3); +var $atanh = Math.atanh; + +// Tor Browser bug: Math.atanh(-0) -> 0 +$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { + atanh: function atanh(x) { + return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; + } +}); + + +/***/ }), +/* 339 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.9 Math.cbrt(x) +var $export = __webpack_require__(3); +var sign = __webpack_require__(148); + +$export($export.S, 'Math', { + cbrt: function cbrt(x) { + return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); + } +}); + + +/***/ }), +/* 340 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.11 Math.clz32(x) +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + clz32: function clz32(x) { + return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; + } +}); + + +/***/ }), +/* 341 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.12 Math.cosh(x) +var $export = __webpack_require__(3); +var exp = Math.exp; + +$export($export.S, 'Math', { + cosh: function cosh(x) { + return (exp(x = +x) + exp(-x)) / 2; + } +}); + + +/***/ }), +/* 342 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.14 Math.expm1(x) +var $export = __webpack_require__(3); +var $expm1 = __webpack_require__(149); + +$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); + + +/***/ }), +/* 343 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.16 Math.fround(x) +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { fround: __webpack_require__(208) }); + + +/***/ }), +/* 344 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) +var $export = __webpack_require__(3); +var abs = Math.abs; + +$export($export.S, 'Math', { + hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * Math.sqrt(sum); + } +}); + + +/***/ }), +/* 345 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.18 Math.imul(x, y) +var $export = __webpack_require__(3); +var $imul = Math.imul; + +// some WebKit versions fails with big numbers, some has wrong arity +$export($export.S + $export.F * __webpack_require__(17)(function () { + return $imul(0xffffffff, 5) != -5 || $imul.length != 2; +}), 'Math', { + imul: function imul(x, y) { + var UINT16 = 0xffff; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + + +/***/ }), +/* 346 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.21 Math.log10(x) +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + log10: function log10(x) { + return Math.log(x) * Math.LOG10E; + } +}); + + +/***/ }), +/* 347 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.20 Math.log1p(x) +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { log1p: __webpack_require__(207) }); + + +/***/ }), +/* 348 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.22 Math.log2(x) +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + log2: function log2(x) { + return Math.log(x) / Math.LN2; + } +}); + + +/***/ }), +/* 349 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.28 Math.sign(x) +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { sign: __webpack_require__(148) }); + + +/***/ }), +/* 350 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.30 Math.sinh(x) +var $export = __webpack_require__(3); +var expm1 = __webpack_require__(149); +var exp = Math.exp; + +// V8 near Chromium 38 has a problem with very small numbers +$export($export.S + $export.F * __webpack_require__(17)(function () { + return !Math.sinh(-2e-17) != -2e-17; +}), 'Math', { + sinh: function sinh(x) { + return Math.abs(x = +x) < 1 + ? (expm1(x) - expm1(-x)) / 2 + : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); + } +}); + + +/***/ }), +/* 351 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.33 Math.tanh(x) +var $export = __webpack_require__(3); +var expm1 = __webpack_require__(149); +var exp = Math.exp; + +$export($export.S, 'Math', { + tanh: function tanh(x) { + var a = expm1(x = +x); + var b = expm1(-x); + return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); + } +}); + + +/***/ }), +/* 352 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.34 Math.trunc(x) +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + trunc: function trunc(it) { + return (it > 0 ? Math.floor : Math.ceil)(it); + } +}); + + +/***/ }), +/* 353 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var toAbsoluteIndex = __webpack_require__(64); +var fromCharCode = String.fromCharCode; +var $fromCodePoint = String.fromCodePoint; + +// length should be 1, old FF problem +$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { + // 21.1.2.2 String.fromCodePoint(...codePoints) + fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars + var res = []; + var aLen = arguments.length; + var i = 0; + var code; + while (aLen > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); + res.push(code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) + ); + } return res.join(''); + } +}); + + +/***/ }), +/* 354 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var toIObject = __webpack_require__(34); +var toLength = __webpack_require__(20); + +$export($export.S, 'String', { + // 21.1.2.4 String.raw(callSite, ...substitutions) + raw: function raw(callSite) { + var tpl = toIObject(callSite.raw); + var len = toLength(tpl.length); + var aLen = arguments.length; + var res = []; + var i = 0; + while (len > i) { + res.push(String(tpl[i++])); + if (i < aLen) res.push(String(arguments[i])); + } return res.join(''); + } +}); + + +/***/ }), +/* 355 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 21.1.3.25 String.prototype.trim() +__webpack_require__(79)('trim', function ($trim) { + return function trim() { + return $trim(this, 3); + }; +}); + + +/***/ }), +/* 356 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $at = __webpack_require__(102)(true); + +// 21.1.3.27 String.prototype[@@iterator]() +__webpack_require__(150)(String, 'String', function (iterated) { + this._t = String(iterated); // target + this._i = 0; // next index +// 21.1.5.2.1 %StringIteratorPrototype%.next() +}, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { value: undefined, done: true }; + point = $at(O, index); + this._i += point.length; + return { value: point, done: false }; +}); + + +/***/ }), +/* 357 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $at = __webpack_require__(102)(false); +$export($export.P, 'String', { + // 21.1.3.3 String.prototype.codePointAt(pos) + codePointAt: function codePointAt(pos) { + return $at(this, pos); + } +}); + + +/***/ }), +/* 358 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) + +var $export = __webpack_require__(3); +var toLength = __webpack_require__(20); +var context = __webpack_require__(152); +var ENDS_WITH = 'endsWith'; +var $endsWith = ''[ENDS_WITH]; + +$export($export.P + $export.F * __webpack_require__(153)(ENDS_WITH), 'String', { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = context(this, searchString, ENDS_WITH); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); + var search = String(searchString); + return $endsWith + ? $endsWith.call(that, search, end) + : that.slice(end - search.length, end) === search; + } +}); + + +/***/ }), +/* 359 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 21.1.3.7 String.prototype.includes(searchString, position = 0) + +var $export = __webpack_require__(3); +var context = __webpack_require__(152); +var INCLUDES = 'includes'; + +$export($export.P + $export.F * __webpack_require__(153)(INCLUDES), 'String', { + includes: function includes(searchString /* , position = 0 */) { + return !!~context(this, searchString, INCLUDES) + .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), +/* 360 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); + +$export($export.P, 'String', { + // 21.1.3.13 String.prototype.repeat(count) + repeat: __webpack_require__(147) +}); + + +/***/ }), +/* 361 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 21.1.3.18 String.prototype.startsWith(searchString [, position ]) + +var $export = __webpack_require__(3); +var toLength = __webpack_require__(20); +var context = __webpack_require__(152); +var STARTS_WITH = 'startsWith'; +var $startsWith = ''[STARTS_WITH]; + +$export($export.P + $export.F * __webpack_require__(153)(STARTS_WITH), 'String', { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = context(this, searchString, STARTS_WITH); + var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return $startsWith + ? $startsWith.call(that, search, index) + : that.slice(index, index + search.length) === search; + } +}); + + +/***/ }), +/* 362 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.2 String.prototype.anchor(name) +__webpack_require__(31)('anchor', function (createHTML) { + return function anchor(name) { + return createHTML(this, 'a', 'name', name); + }; +}); + + +/***/ }), +/* 363 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.3 String.prototype.big() +__webpack_require__(31)('big', function (createHTML) { + return function big() { + return createHTML(this, 'big', '', ''); + }; +}); + + +/***/ }), +/* 364 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.4 String.prototype.blink() +__webpack_require__(31)('blink', function (createHTML) { + return function blink() { + return createHTML(this, 'blink', '', ''); + }; +}); + + +/***/ }), +/* 365 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.5 String.prototype.bold() +__webpack_require__(31)('bold', function (createHTML) { + return function bold() { + return createHTML(this, 'b', '', ''); + }; +}); + + +/***/ }), +/* 366 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.6 String.prototype.fixed() +__webpack_require__(31)('fixed', function (createHTML) { + return function fixed() { + return createHTML(this, 'tt', '', ''); + }; +}); + + +/***/ }), +/* 367 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.7 String.prototype.fontcolor(color) +__webpack_require__(31)('fontcolor', function (createHTML) { + return function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + }; +}); + + +/***/ }), +/* 368 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.8 String.prototype.fontsize(size) +__webpack_require__(31)('fontsize', function (createHTML) { + return function fontsize(size) { + return createHTML(this, 'font', 'size', size); + }; +}); + + +/***/ }), +/* 369 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.9 String.prototype.italics() +__webpack_require__(31)('italics', function (createHTML) { + return function italics() { + return createHTML(this, 'i', '', ''); + }; +}); + + +/***/ }), +/* 370 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.10 String.prototype.link(url) +__webpack_require__(31)('link', function (createHTML) { + return function link(url) { + return createHTML(this, 'a', 'href', url); + }; +}); + + +/***/ }), +/* 371 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.11 String.prototype.small() +__webpack_require__(31)('small', function (createHTML) { + return function small() { + return createHTML(this, 'small', '', ''); + }; +}); + + +/***/ }), +/* 372 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.12 String.prototype.strike() +__webpack_require__(31)('strike', function (createHTML) { + return function strike() { + return createHTML(this, 'strike', '', ''); + }; +}); + + +/***/ }), +/* 373 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.13 String.prototype.sub() +__webpack_require__(31)('sub', function (createHTML) { + return function sub() { + return createHTML(this, 'sub', '', ''); + }; +}); + + +/***/ }), +/* 374 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// B.2.3.14 String.prototype.sup() +__webpack_require__(31)('sup', function (createHTML) { + return function sup() { + return createHTML(this, 'sup', '', ''); + }; +}); + + +/***/ }), +/* 375 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.3.3.1 / 15.9.4.4 Date.now() +var $export = __webpack_require__(3); + +$export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); + + +/***/ }), +/* 376 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var toObject = __webpack_require__(23); +var toPrimitive = __webpack_require__(43); + +$export($export.P + $export.F * __webpack_require__(17)(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; +}), 'Date', { + // eslint-disable-next-line no-unused-vars + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + + +/***/ }), +/* 377 */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() +var $export = __webpack_require__(3); +var toISOString = __webpack_require__(378); + +// PhantomJS / old WebKit has a broken implementations +$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { + toISOString: toISOString +}); + + +/***/ }), +/* 378 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() +var fails = __webpack_require__(17); +var getTime = Date.prototype.getTime; +var $toISOString = Date.prototype.toISOString; + +var lz = function (num) { + return num > 9 ? num : '0' + num; +}; + +// PhantomJS / old WebKit has a broken implementations +module.exports = (fails(function () { + return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + $toISOString.call(new Date(NaN)); +})) ? function toISOString() { + if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); + var d = this; + var y = d.getUTCFullYear(); + var m = d.getUTCMilliseconds(); + var s = y < 0 ? '-' : y > 9999 ? '+' : ''; + return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; +} : $toISOString; + + +/***/ }), +/* 379 */ +/***/ (function(module, exports, __webpack_require__) { + +var DateProto = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var $toString = DateProto[TO_STRING]; +var getTime = DateProto.getTime; +if (new Date(NaN) + '' != INVALID_DATE) { + __webpack_require__(30)(DateProto, TO_STRING, function toString() { + var value = getTime.call(this); + // eslint-disable-next-line no-self-compare + return value === value ? $toString.call(this) : INVALID_DATE; + }); +} + + +/***/ }), +/* 380 */ +/***/ (function(module, exports, __webpack_require__) { + +var TO_PRIMITIVE = __webpack_require__(19)('toPrimitive'); +var proto = Date.prototype; + +if (!(TO_PRIMITIVE in proto)) __webpack_require__(29)(proto, TO_PRIMITIVE, __webpack_require__(381)); + + +/***/ }), +/* 381 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var anObject = __webpack_require__(9); +var toPrimitive = __webpack_require__(43); +var NUMBER = 'number'; + +module.exports = function (hint) { + if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); + return toPrimitive(anObject(this), hint != NUMBER); +}; + + +/***/ }), +/* 382 */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.2.2 / 15.4.3.2 Array.isArray(arg) +var $export = __webpack_require__(3); + +$export($export.S, 'Array', { isArray: __webpack_require__(101) }); + + +/***/ }), +/* 383 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var ctx = __webpack_require__(38); +var $export = __webpack_require__(3); +var toObject = __webpack_require__(23); +var call = __webpack_require__(209); +var isArrayIter = __webpack_require__(154); +var toLength = __webpack_require__(20); +var createProperty = __webpack_require__(155); +var getIterFn = __webpack_require__(156); + +$export($export.S + $export.F * !__webpack_require__(104)(function (iter) { Array.from(iter); }), 'Array', { + // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) + from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); + // if object isn't iterable or it's array with default iterator - use simple case + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + result.length = index; + return result; + } +}); + + +/***/ }), +/* 384 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var createProperty = __webpack_require__(155); + +// WebKit Array.of isn't generic +$export($export.S + $export.F * __webpack_require__(17)(function () { + function F() { /* empty */ } + return !(Array.of.call(F) instanceof F); +}), 'Array', { + // 22.1.2.3 Array.of( ...items) + of: function of(/* ...args */) { + var index = 0; + var aLen = arguments.length; + var result = new (typeof this == 'function' ? this : Array)(aLen); + while (aLen > index) createProperty(result, index, arguments[index++]); + result.length = aLen; + return result; + } +}); + + +/***/ }), +/* 385 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 22.1.3.13 Array.prototype.join(separator) +var $export = __webpack_require__(3); +var toIObject = __webpack_require__(34); +var arrayJoin = [].join; + +// fallback for not array-like strings +$export($export.P + $export.F * (__webpack_require__(90) != Object || !__webpack_require__(41)(arrayJoin)), 'Array', { + join: function join(separator) { + return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); + } +}); + + +/***/ }), +/* 386 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var html = __webpack_require__(143); +var cof = __webpack_require__(39); +var toAbsoluteIndex = __webpack_require__(64); +var toLength = __webpack_require__(20); +var arraySlice = [].slice; + +// fallback for not array-like ES3 strings and DOM objects +$export($export.P + $export.F * __webpack_require__(17)(function () { + if (html) arraySlice.call(html); +}), 'Array', { + slice: function slice(begin, end) { + var len = toLength(this.length); + var klass = cof(this); + end = end === undefined ? len : end; + if (klass == 'Array') return arraySlice.call(this, begin, end); + var start = toAbsoluteIndex(begin, len); + var upTo = toAbsoluteIndex(end, len); + var size = toLength(upTo - start); + var cloned = new Array(size); + var i = 0; + for (; i < size; i++) cloned[i] = klass == 'String' + ? this.charAt(start + i) + : this[start + i]; + return cloned; + } +}); + + +/***/ }), +/* 387 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var aFunction = __webpack_require__(27); +var toObject = __webpack_require__(23); +var fails = __webpack_require__(17); +var $sort = [].sort; +var test = [1, 2, 3]; + +$export($export.P + $export.F * (fails(function () { + // IE8- + test.sort(undefined); +}) || !fails(function () { + // V8 bug + test.sort(null); + // Old WebKit +}) || !__webpack_require__(41)($sort)), 'Array', { + // 22.1.3.25 Array.prototype.sort(comparefn) + sort: function sort(comparefn) { + return comparefn === undefined + ? $sort.call(toObject(this)) + : $sort.call(toObject(this), aFunction(comparefn)); + } +}); + + +/***/ }), +/* 388 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $forEach = __webpack_require__(46)(0); +var STRICT = __webpack_require__(41)([].forEach, true); + +$export($export.P + $export.F * !STRICT, 'Array', { + // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) + forEach: function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments[1]); + } +}); + + +/***/ }), +/* 389 */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(18); +var isArray = __webpack_require__(101); +var SPECIES = __webpack_require__(19)('species'); + +module.exports = function (original) { + var C; + if (isArray(original)) { + C = original.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? Array : C; +}; + + +/***/ }), +/* 390 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $map = __webpack_require__(46)(1); + +$export($export.P + $export.F * !__webpack_require__(41)([].map, true), 'Array', { + // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments[1]); + } +}); + + +/***/ }), +/* 391 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $filter = __webpack_require__(46)(2); + +$export($export.P + $export.F * !__webpack_require__(41)([].filter, true), 'Array', { + // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments[1]); + } +}); + + +/***/ }), +/* 392 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $some = __webpack_require__(46)(3); + +$export($export.P + $export.F * !__webpack_require__(41)([].some, true), 'Array', { + // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments[1]); + } +}); + + +/***/ }), +/* 393 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $every = __webpack_require__(46)(4); + +$export($export.P + $export.F * !__webpack_require__(41)([].every, true), 'Array', { + // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments[1]); + } +}); + + +/***/ }), +/* 394 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $reduce = __webpack_require__(210); + +$export($export.P + $export.F * !__webpack_require__(41)([].reduce, true), 'Array', { + // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) + reduce: function reduce(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments[1], false); + } +}); + + +/***/ }), +/* 395 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $reduce = __webpack_require__(210); + +$export($export.P + $export.F * !__webpack_require__(41)([].reduceRight, true), 'Array', { + // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments[1], true); + } +}); + + +/***/ }), +/* 396 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $indexOf = __webpack_require__(99)(false); +var $native = [].indexOf; +var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; + +$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(41)($native)), 'Array', { + // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + return NEGATIVE_ZERO + // convert -0 to +0 + ? $native.apply(this, arguments) || 0 + : $indexOf(this, searchElement, arguments[1]); + } +}); + + +/***/ }), +/* 397 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var toIObject = __webpack_require__(34); +var toInteger = __webpack_require__(40); +var toLength = __webpack_require__(20); +var $native = [].lastIndexOf; +var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; + +$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(41)($native)), 'Array', { + // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) + lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; + var O = toIObject(this); + var length = toLength(O.length); + var index = length - 1; + if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; + return -1; + } +}); + + +/***/ }), +/* 398 */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) +var $export = __webpack_require__(3); + +$export($export.P, 'Array', { copyWithin: __webpack_require__(211) }); + +__webpack_require__(57)('copyWithin'); + + +/***/ }), +/* 399 */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) +var $export = __webpack_require__(3); + +$export($export.P, 'Array', { fill: __webpack_require__(158) }); + +__webpack_require__(57)('fill'); + + +/***/ }), +/* 400 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) +var $export = __webpack_require__(3); +var $find = __webpack_require__(46)(5); +var KEY = 'find'; +var forced = true; +// Shouldn't skip holes +if (KEY in []) Array(1)[KEY](function () { forced = false; }); +$export($export.P + $export.F * forced, 'Array', { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); +__webpack_require__(57)(KEY); + + +/***/ }), +/* 401 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) +var $export = __webpack_require__(3); +var $find = __webpack_require__(46)(6); +var KEY = 'findIndex'; +var forced = true; +// Shouldn't skip holes +if (KEY in []) Array(1)[KEY](function () { forced = false; }); +$export($export.P + $export.F * forced, 'Array', { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); +__webpack_require__(57)(KEY); + + +/***/ }), +/* 402 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(67)('Array'); + + +/***/ }), +/* 403 */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(16); +var inheritIfRequired = __webpack_require__(146); +var dP = __webpack_require__(22).f; +var gOPN = __webpack_require__(66).f; +var isRegExp = __webpack_require__(103); +var $flags = __webpack_require__(92); +var $RegExp = global.RegExp; +var Base = $RegExp; +var proto = $RegExp.prototype; +var re1 = /a/g; +var re2 = /a/g; +// "new" creates a new object, old webkit buggy here +var CORRECT_NEW = new $RegExp(re1) !== re1; + +if (__webpack_require__(21) && (!CORRECT_NEW || __webpack_require__(17)(function () { + re2[__webpack_require__(19)('match')] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; +}))) { + $RegExp = function RegExp(p, f) { + var tiRE = this instanceof $RegExp; + var piRE = isRegExp(p); + var fiU = f === undefined; + return !tiRE && piRE && p.constructor === $RegExp && fiU ? p + : inheritIfRequired(CORRECT_NEW + ? new Base(piRE && !fiU ? p.source : p, f) + : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) + , tiRE ? this : proto, $RegExp); + }; + var proxy = function (key) { + key in $RegExp || dP($RegExp, key, { + configurable: true, + get: function () { return Base[key]; }, + set: function (it) { Base[key] = it; } + }); + }; + for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); + proto.constructor = $RegExp; + $RegExp.prototype = proto; + __webpack_require__(30)(global, 'RegExp', $RegExp); +} + +__webpack_require__(67)('RegExp'); + + +/***/ }), +/* 404 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +__webpack_require__(214); +var anObject = __webpack_require__(9); +var $flags = __webpack_require__(92); +var DESCRIPTORS = __webpack_require__(21); +var TO_STRING = 'toString'; +var $toString = /./[TO_STRING]; + +var define = function (fn) { + __webpack_require__(30)(RegExp.prototype, TO_STRING, fn, true); +}; + +// 21.2.5.14 RegExp.prototype.toString() +if (__webpack_require__(17)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { + define(function toString() { + var R = anObject(this); + return '/'.concat(R.source, '/', + 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); + }); +// FF44- RegExp#toString has a wrong name +} else if ($toString.name != TO_STRING) { + define(function toString() { + return $toString.call(this); + }); +} + + +/***/ }), +/* 405 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var anObject = __webpack_require__(9); +var toLength = __webpack_require__(20); +var advanceStringIndex = __webpack_require__(161); +var regExpExec = __webpack_require__(105); + +// @@match logic +__webpack_require__(106)('match', 1, function (defined, MATCH, $match, maybeCallNative) { + return [ + // `String.prototype.match` method + // https://tc39.github.io/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[MATCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); + }, + // `RegExp.prototype[@@match]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match + function (regexp) { + var res = maybeCallNative($match, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + if (!rx.global) return regExpExec(rx, S); + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = String(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + return n === 0 ? null : A; + } + ]; +}); + + +/***/ }), +/* 406 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var anObject = __webpack_require__(9); +var toObject = __webpack_require__(23); +var toLength = __webpack_require__(20); +var toInteger = __webpack_require__(40); +var advanceStringIndex = __webpack_require__(161); +var regExpExec = __webpack_require__(105); +var max = Math.max; +var min = Math.min; +var floor = Math.floor; +var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g; + +var maybeToString = function (it) { + return it === undefined ? it : String(it); +}; + +// @@replace logic +__webpack_require__(106)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) { + return [ + // `String.prototype.replace` method + // https://tc39.github.io/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = defined(this); + var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; + return fn !== undefined + ? fn.call(searchValue, O, replaceValue) + : $replace.call(String(O), searchValue, replaceValue); + }, + // `RegExp.prototype[@@replace]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace + function (regexp, replaceValue) { + var res = maybeCallNative($replace, regexp, this, replaceValue); + if (res.done) return res.value; + + var rx = anObject(regexp); + var S = String(this); + var functionalReplace = typeof replaceValue === 'function'; + if (!functionalReplace) replaceValue = String(replaceValue); + var global = rx.global; + if (global) { + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + var results = []; + while (true) { + var result = regExpExec(rx, S); + if (result === null) break; + results.push(result); + if (!global) break; + var matchStr = String(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + var accumulatedResult = ''; + var nextSourcePosition = 0; + for (var i = 0; i < results.length; i++) { + result = results[i]; + var matched = String(result[0]); + var position = max(min(toInteger(result.index), S.length), 0); + var captures = []; + // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); + var namedCaptures = result.groups; + if (functionalReplace) { + var replacerArgs = [matched].concat(captures, position, S); + if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); + var replacement = String(replaceValue.apply(undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + if (position >= nextSourcePosition) { + accumulatedResult += S.slice(nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + return accumulatedResult + S.slice(nextSourcePosition); + } + ]; + + // https://tc39.github.io/ecma262/#sec-getsubstitution + function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + return $replace.call(replacement, symbols, function (match, ch) { + var capture; + switch (ch.charAt(0)) { + case '$': return '$'; + case '&': return matched; + case '`': return str.slice(0, position); + case "'": return str.slice(tailPos); + case '<': + capture = namedCaptures[ch.slice(1, -1)]; + break; + default: // \d\d? + var n = +ch; + if (n === 0) return match; + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); + return match; + } + capture = captures[n - 1]; + } + return capture === undefined ? '' : capture; + }); + } +}); + + +/***/ }), +/* 407 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var anObject = __webpack_require__(9); +var sameValue = __webpack_require__(200); +var regExpExec = __webpack_require__(105); + +// @@search logic +__webpack_require__(106)('search', 1, function (defined, SEARCH, $search, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.github.io/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[SEARCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search + function (regexp) { + var res = maybeCallNative($search, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), +/* 408 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isRegExp = __webpack_require__(103); +var anObject = __webpack_require__(9); +var speciesConstructor = __webpack_require__(93); +var advanceStringIndex = __webpack_require__(161); +var toLength = __webpack_require__(20); +var callRegExpExec = __webpack_require__(105); +var regexpExec = __webpack_require__(160); +var fails = __webpack_require__(17); +var $min = Math.min; +var $push = [].push; +var $SPLIT = 'split'; +var LENGTH = 'length'; +var LAST_INDEX = 'lastIndex'; +var MAX_UINT32 = 0xffffffff; + +// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError +var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); }); + +// @@split logic +__webpack_require__(106)('split', 2, function (defined, SPLIT, $split, maybeCallNative) { + var internalSplit; + if ( + 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || + 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || + 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || + '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || + '.'[$SPLIT](/()()/)[LENGTH] > 1 || + ''[$SPLIT](/.?/)[LENGTH] + ) { + // based on es5-shim implementation, need to rework it + internalSplit = function (separator, limit) { + var string = String(this); + if (separator === undefined && limit === 0) return []; + // If `separator` is not a regex, use native split + if (!isRegExp(separator)) return $split.call(string, separator, limit); + var output = []; + var flags = (separator.ignoreCase ? 'i' : '') + + (separator.multiline ? 'm' : '') + + (separator.unicode ? 'u' : '') + + (separator.sticky ? 'y' : ''); + var lastLastIndex = 0; + var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0; + // Make `global` and avoid `lastIndex` issues by working with a copy + var separatorCopy = new RegExp(separator.source, flags + 'g'); + var match, lastIndex, lastLength; + while (match = regexpExec.call(separatorCopy, string)) { + lastIndex = separatorCopy[LAST_INDEX]; + if (lastIndex > lastLastIndex) { + output.push(string.slice(lastLastIndex, match.index)); + if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); + lastLength = match[0][LENGTH]; + lastLastIndex = lastIndex; + if (output[LENGTH] >= splitLimit) break; + } + if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop + } + if (lastLastIndex === string[LENGTH]) { + if (lastLength || !separatorCopy.test('')) output.push(''); + } else output.push(string.slice(lastLastIndex)); + return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; + }; + // Chakra, V8 + } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { + internalSplit = function (separator, limit) { + return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit); + }; + } else { + internalSplit = $split; + } + + return [ + // `String.prototype.split` method + // https://tc39.github.io/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = defined(this); + var splitter = separator == undefined ? undefined : separator[SPLIT]; + return splitter !== undefined + ? splitter.call(separator, O, limit) + : internalSplit.call(String(O), separator, limit); + }, + // `RegExp.prototype[@@split]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (regexp, limit) { + var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split); + if (res.done) return res.value; + + var rx = anObject(regexp); + var S = String(this); + var C = speciesConstructor(rx, RegExp); + + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + + (rx.multiline ? 'm' : '') + + (rx.unicode ? 'u' : '') + + (SUPPORTS_Y ? 'y' : 'g'); + + // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + while (q < S.length) { + splitter.lastIndex = SUPPORTS_Y ? q : 0; + var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); + var e; + if ( + z === null || + (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p + ) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + A.push(S.slice(p, q)); + if (A.length === lim) return A; + for (var i = 1; i <= z.length - 1; i++) { + A.push(z[i]); + if (A.length === lim) return A; + } + q = p = e; + } + } + A.push(S.slice(p)); + return A; + } + ]; +}); + + +/***/ }), +/* 409 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var LIBRARY = __webpack_require__(55); +var global = __webpack_require__(16); +var ctx = __webpack_require__(38); +var classof = __webpack_require__(78); +var $export = __webpack_require__(3); +var isObject = __webpack_require__(18); +var aFunction = __webpack_require__(27); +var anInstance = __webpack_require__(68); +var forOf = __webpack_require__(69); +var speciesConstructor = __webpack_require__(93); +var task = __webpack_require__(162).set; +var microtask = __webpack_require__(163)(); +var newPromiseCapabilityModule = __webpack_require__(164); +var perform = __webpack_require__(215); +var userAgent = __webpack_require__(107); +var promiseResolve = __webpack_require__(216); +var PROMISE = 'Promise'; +var TypeError = global.TypeError; +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8 || ''; +var $Promise = global[PROMISE]; +var isNode = classof(process) == 'process'; +var empty = function () { /* empty */ }; +var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; +var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; + +var USE_NATIVE = !!function () { + try { + // correct subclassing with @@species support + var promise = $Promise.resolve(1); + var FakePromise = (promise.constructor = {})[__webpack_require__(19)('species')] = function (exec) { + exec(empty, empty); + }; + // unhandled rejections tracking support, NodeJS Promise without it fails @@species test + return (isNode || typeof PromiseRejectionEvent == 'function') + && promise.then(empty) instanceof FakePromise + // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // we can't detect it synchronously, so just check versions + && v8.indexOf('6.6') !== 0 + && userAgent.indexOf('Chrome/66') === -1; + } catch (e) { /* empty */ } +}(); + +// helpers +var isThenable = function (it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; +}; +var notify = function (promise, isReject) { + if (promise._n) return; + promise._n = true; + var chain = promise._c; + microtask(function () { + var value = promise._v; + var ok = promise._s == 1; + var i = 0; + var run = function (reaction) { + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (promise._h == 2) onHandleUnhandled(promise); + promise._h = 1; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // may throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (e) { + if (domain && !exited) domain.exit(); + reject(e); + } + }; + while (chain.length > i) run(chain[i++]); // variable length - can't use forEach + promise._c = []; + promise._n = false; + if (isReject && !promise._h) onUnhandled(promise); + }); +}; +var onUnhandled = function (promise) { + task.call(global, function () { + var value = promise._v; + var unhandled = isUnhandled(promise); + var result, handler, console; + if (unhandled) { + result = perform(function () { + if (isNode) { + process.emit('unhandledRejection', value, promise); + } else if (handler = global.onunhandledrejection) { + handler({ promise: promise, reason: value }); + } else if ((console = global.console) && console.error) { + console.error('Unhandled promise rejection', value); + } + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + promise._h = isNode || isUnhandled(promise) ? 2 : 1; + } promise._a = undefined; + if (unhandled && result.e) throw result.v; + }); +}; +var isUnhandled = function (promise) { + return promise._h !== 1 && (promise._a || promise._c).length === 0; +}; +var onHandleUnhandled = function (promise) { + task.call(global, function () { + var handler; + if (isNode) { + process.emit('rejectionHandled', promise); + } else if (handler = global.onrejectionhandled) { + handler({ promise: promise, reason: promise._v }); + } + }); +}; +var $reject = function (value) { + var promise = this; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + promise._v = value; + promise._s = 2; + if (!promise._a) promise._a = promise._c.slice(); + notify(promise, true); +}; +var $resolve = function (value) { + var promise = this; + var then; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + try { + if (promise === value) throw TypeError("Promise can't be resolved itself"); + if (then = isThenable(value)) { + microtask(function () { + var wrapper = { _w: promise, _d: false }; // wrap + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch (e) { + $reject.call(wrapper, e); + } + }); + } else { + promise._v = value; + promise._s = 1; + notify(promise, false); + } + } catch (e) { + $reject.call({ _w: promise, _d: false }, e); // wrap + } +}; + +// constructor polyfill +if (!USE_NATIVE) { + // 25.4.3.1 Promise(executor) + $Promise = function Promise(executor) { + anInstance(this, $Promise, PROMISE, '_h'); + aFunction(executor); + Internal.call(this); + try { + executor(ctx($resolve, this, 1), ctx($reject, this, 1)); + } catch (err) { + $reject.call(this, err); + } + }; + // eslint-disable-next-line no-unused-vars + Internal = function Promise(executor) { + this._c = []; // <- awaiting reactions + this._a = undefined; // <- checked in isUnhandled reactions + this._s = 0; // <- state + this._d = false; // <- done + this._v = undefined; // <- value + this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled + this._n = false; // <- notify + }; + Internal.prototype = __webpack_require__(70)($Promise.prototype, { + // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) + then: function then(onFulfilled, onRejected) { + var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = isNode ? process.domain : undefined; + this._c.push(reaction); + if (this._a) this._a.push(reaction); + if (this._s) notify(this, false); + return reaction.promise; + }, + // 25.4.5.1 Promise.prototype.catch(onRejected) + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + OwnPromiseCapability = function () { + var promise = new Internal(); + this.promise = promise; + this.resolve = ctx($resolve, promise, 1); + this.reject = ctx($reject, promise, 1); + }; + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === $Promise || C === Wrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); +__webpack_require__(77)($Promise, PROMISE); +__webpack_require__(67)(PROMISE); +Wrapper = __webpack_require__(37)[PROMISE]; + +// statics +$export($export.S + $export.F * !USE_NATIVE, PROMISE, { + // 25.4.4.5 Promise.reject(r) + reject: function reject(r) { + var capability = newPromiseCapability(this); + var $$reject = capability.reject; + $$reject(r); + return capability.promise; + } +}); +$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { + // 25.4.4.6 Promise.resolve(x) + resolve: function resolve(x) { + return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + } +}); +$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(104)(function (iter) { + $Promise.all(iter)['catch'](empty); +})), PROMISE, { + // 25.4.4.1 Promise.all(iterable) + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var values = []; + var index = 0; + var remaining = 1; + forOf(iterable, false, function (promise) { + var $index = index++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + C.resolve(promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[$index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.e) reject(result.v); + return capability.promise; + }, + // 25.4.4.4 Promise.race(iterable) + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + forOf(iterable, false, function (promise) { + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if (result.e) reject(result.v); + return capability.promise; + } +}); + + +/***/ }), +/* 410 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var weak = __webpack_require__(221); +var validate = __webpack_require__(71); +var WEAK_SET = 'WeakSet'; + +// 23.4 WeakSet Objects +__webpack_require__(108)(WEAK_SET, function (get) { + return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; +}, { + // 23.4.3.1 WeakSet.prototype.add(value) + add: function add(value) { + return weak.def(validate(this, WEAK_SET), value, true); + } +}, weak, false, true); + + +/***/ }), +/* 411 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var $typed = __webpack_require__(109); +var buffer = __webpack_require__(165); +var anObject = __webpack_require__(9); +var toAbsoluteIndex = __webpack_require__(64); +var toLength = __webpack_require__(20); +var isObject = __webpack_require__(18); +var ArrayBuffer = __webpack_require__(16).ArrayBuffer; +var speciesConstructor = __webpack_require__(93); +var $ArrayBuffer = buffer.ArrayBuffer; +var $DataView = buffer.DataView; +var $isView = $typed.ABV && ArrayBuffer.isView; +var $slice = $ArrayBuffer.prototype.slice; +var VIEW = $typed.VIEW; +var ARRAY_BUFFER = 'ArrayBuffer'; + +$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); + +$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { + // 24.1.3.1 ArrayBuffer.isView(arg) + isView: function isView(it) { + return $isView && $isView(it) || isObject(it) && VIEW in it; + } +}); + +$export($export.P + $export.U + $export.F * __webpack_require__(17)(function () { + return !new $ArrayBuffer(2).slice(1, undefined).byteLength; +}), ARRAY_BUFFER, { + // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) + slice: function slice(start, end) { + if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix + var len = anObject(this).byteLength; + var first = toAbsoluteIndex(start, len); + var fin = toAbsoluteIndex(end === undefined ? len : end, len); + var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); + var viewS = new $DataView(this); + var viewT = new $DataView(result); + var index = 0; + while (first < fin) { + viewT.setUint8(index++, viewS.getUint8(first++)); + } return result; + } +}); + +__webpack_require__(67)(ARRAY_BUFFER); + + +/***/ }), +/* 412 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +$export($export.G + $export.W + $export.F * !__webpack_require__(109).ABV, { + DataView: __webpack_require__(165).DataView +}); + + +/***/ }), +/* 413 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Int8', 1, function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 414 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Uint8', 1, function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 415 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Uint8', 1, function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + + +/***/ }), +/* 416 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Int16', 2, function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 417 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Uint16', 2, function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 418 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Int32', 4, function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 419 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Uint32', 4, function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 420 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Float32', 4, function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 421 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(48)('Float64', 8, function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + + +/***/ }), +/* 422 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.1 Reflect.apply(target, thisArgument, argumentsList) +var $export = __webpack_require__(3); +var aFunction = __webpack_require__(27); +var anObject = __webpack_require__(9); +var rApply = (__webpack_require__(16).Reflect || {}).apply; +var fApply = Function.apply; +// MS Edge argumentsList argument is optional +$export($export.S + $export.F * !__webpack_require__(17)(function () { + rApply(function () { /* empty */ }); +}), 'Reflect', { + apply: function apply(target, thisArgument, argumentsList) { + var T = aFunction(target); + var L = anObject(argumentsList); + return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); + } +}); + + +/***/ }), +/* 423 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) +var $export = __webpack_require__(3); +var create = __webpack_require__(65); +var aFunction = __webpack_require__(27); +var anObject = __webpack_require__(9); +var isObject = __webpack_require__(18); +var fails = __webpack_require__(17); +var bind = __webpack_require__(201); +var rConstruct = (__webpack_require__(16).Reflect || {}).construct; + +// MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it +var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); +}); +var ARGS_BUG = !fails(function () { + rConstruct(function () { /* empty */ }); +}); + +$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { + construct: function construct(Target, args /* , newTarget */) { + aFunction(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); + if (Target == newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + $args.push.apply($args, args); + return new (bind.apply(Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : Object.prototype); + var result = Function.apply.call(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + + +/***/ }), +/* 424 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) +var dP = __webpack_require__(22); +var $export = __webpack_require__(3); +var anObject = __webpack_require__(9); +var toPrimitive = __webpack_require__(43); + +// MS Edge has broken Reflect.defineProperty - throwing instead of returning false +$export($export.S + $export.F * __webpack_require__(17)(function () { + // eslint-disable-next-line no-undef + Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); +}), 'Reflect', { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + propertyKey = toPrimitive(propertyKey, true); + anObject(attributes); + try { + dP.f(target, propertyKey, attributes); + return true; + } catch (e) { + return false; + } + } +}); + + +/***/ }), +/* 425 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.4 Reflect.deleteProperty(target, propertyKey) +var $export = __webpack_require__(3); +var gOPD = __webpack_require__(35).f; +var anObject = __webpack_require__(9); + +$export($export.S, 'Reflect', { + deleteProperty: function deleteProperty(target, propertyKey) { + var desc = gOPD(anObject(target), propertyKey); + return desc && !desc.configurable ? false : delete target[propertyKey]; + } +}); + + +/***/ }), +/* 426 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// 26.1.5 Reflect.enumerate(target) +var $export = __webpack_require__(3); +var anObject = __webpack_require__(9); +var Enumerate = function (iterated) { + this._t = anObject(iterated); // target + this._i = 0; // next index + var keys = this._k = []; // keys + var key; + for (key in iterated) keys.push(key); +}; +__webpack_require__(151)(Enumerate, 'Object', function () { + var that = this; + var keys = that._k; + var key; + do { + if (that._i >= keys.length) return { value: undefined, done: true }; + } while (!((key = keys[that._i++]) in that._t)); + return { value: key, done: false }; +}); + +$export($export.S, 'Reflect', { + enumerate: function enumerate(target) { + return new Enumerate(target); + } +}); + + +/***/ }), +/* 427 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.6 Reflect.get(target, propertyKey [, receiver]) +var gOPD = __webpack_require__(35); +var getPrototypeOf = __webpack_require__(36); +var has = __webpack_require__(33); +var $export = __webpack_require__(3); +var isObject = __webpack_require__(18); +var anObject = __webpack_require__(9); + +function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var desc, proto; + if (anObject(target) === receiver) return target[propertyKey]; + if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') + ? desc.value + : desc.get !== undefined + ? desc.get.call(receiver) + : undefined; + if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); +} + +$export($export.S, 'Reflect', { get: get }); + + +/***/ }), +/* 428 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) +var gOPD = __webpack_require__(35); +var $export = __webpack_require__(3); +var anObject = __webpack_require__(9); + +$export($export.S, 'Reflect', { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return gOPD.f(anObject(target), propertyKey); + } +}); + + +/***/ }), +/* 429 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.8 Reflect.getPrototypeOf(target) +var $export = __webpack_require__(3); +var getProto = __webpack_require__(36); +var anObject = __webpack_require__(9); + +$export($export.S, 'Reflect', { + getPrototypeOf: function getPrototypeOf(target) { + return getProto(anObject(target)); + } +}); + + +/***/ }), +/* 430 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.9 Reflect.has(target, propertyKey) +var $export = __webpack_require__(3); + +$export($export.S, 'Reflect', { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + + +/***/ }), +/* 431 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.10 Reflect.isExtensible(target) +var $export = __webpack_require__(3); +var anObject = __webpack_require__(9); +var $isExtensible = Object.isExtensible; + +$export($export.S, 'Reflect', { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible ? $isExtensible(target) : true; + } +}); + + +/***/ }), +/* 432 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.11 Reflect.ownKeys(target) +var $export = __webpack_require__(3); + +$export($export.S, 'Reflect', { ownKeys: __webpack_require__(223) }); + + +/***/ }), +/* 433 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.12 Reflect.preventExtensions(target) +var $export = __webpack_require__(3); +var anObject = __webpack_require__(9); +var $preventExtensions = Object.preventExtensions; + +$export($export.S, 'Reflect', { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + if ($preventExtensions) $preventExtensions(target); + return true; + } catch (e) { + return false; + } + } +}); + + +/***/ }), +/* 434 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) +var dP = __webpack_require__(22); +var gOPD = __webpack_require__(35); +var getPrototypeOf = __webpack_require__(36); +var has = __webpack_require__(33); +var $export = __webpack_require__(3); +var createDesc = __webpack_require__(61); +var anObject = __webpack_require__(9); +var isObject = __webpack_require__(18); + +function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDesc = gOPD.f(anObject(target), propertyKey); + var existingDescriptor, proto; + if (!ownDesc) { + if (isObject(proto = getPrototypeOf(target))) { + return set(proto, propertyKey, V, receiver); + } + ownDesc = createDesc(0); + } + if (has(ownDesc, 'value')) { + if (ownDesc.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = gOPD.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + dP.f(receiver, propertyKey, existingDescriptor); + } else dP.f(receiver, propertyKey, createDesc(0, V)); + return true; + } + return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); +} + +$export($export.S, 'Reflect', { set: set }); + + +/***/ }), +/* 435 */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.14 Reflect.setPrototypeOf(target, proto) +var $export = __webpack_require__(3); +var setProto = __webpack_require__(144); + +if (setProto) $export($export.S, 'Reflect', { + setPrototypeOf: function setPrototypeOf(target, proto) { + setProto.check(target, proto); + try { + setProto.set(target, proto); + return true; + } catch (e) { + return false; + } + } +}); + + +/***/ }), +/* 436 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/tc39/Array.prototype.includes +var $export = __webpack_require__(3); +var $includes = __webpack_require__(99)(true); + +$export($export.P, 'Array', { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +__webpack_require__(57)('includes'); + + +/***/ }), +/* 437 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap +var $export = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(224); +var toObject = __webpack_require__(23); +var toLength = __webpack_require__(20); +var aFunction = __webpack_require__(27); +var arraySpeciesCreate = __webpack_require__(157); + +$export($export.P, 'Array', { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen, A; + aFunction(callbackfn); + sourceLen = toLength(O.length); + A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]); + return A; + } +}); + +__webpack_require__(57)('flatMap'); + + +/***/ }), +/* 438 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten +var $export = __webpack_require__(3); +var flattenIntoArray = __webpack_require__(224); +var toObject = __webpack_require__(23); +var toLength = __webpack_require__(20); +var toInteger = __webpack_require__(40); +var arraySpeciesCreate = __webpack_require__(157); + +$export($export.P, 'Array', { + flatten: function flatten(/* depthArg = 1 */) { + var depthArg = arguments[0]; + var O = toObject(this); + var sourceLen = toLength(O.length); + var A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + return A; + } +}); + +__webpack_require__(57)('flatten'); + + +/***/ }), +/* 439 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/mathiasbynens/String.prototype.at +var $export = __webpack_require__(3); +var $at = __webpack_require__(102)(true); + +$export($export.P, 'String', { + at: function at(pos) { + return $at(this, pos); + } +}); + + +/***/ }), +/* 440 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/tc39/proposal-string-pad-start-end +var $export = __webpack_require__(3); +var $pad = __webpack_require__(225); +var userAgent = __webpack_require__(107); + +// https://github.com/zloirock/core-js/issues/280 +var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); + +$export($export.P + $export.F * WEBKIT_BUG, 'String', { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); + } +}); + + +/***/ }), +/* 441 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/tc39/proposal-string-pad-start-end +var $export = __webpack_require__(3); +var $pad = __webpack_require__(225); +var userAgent = __webpack_require__(107); + +// https://github.com/zloirock/core-js/issues/280 +var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); + +$export($export.P + $export.F * WEBKIT_BUG, 'String', { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); + } +}); + + +/***/ }), +/* 442 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/sebmarkbage/ecmascript-string-left-right-trim +__webpack_require__(79)('trimLeft', function ($trim) { + return function trimLeft() { + return $trim(this, 1); + }; +}, 'trimStart'); + + +/***/ }), +/* 443 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/sebmarkbage/ecmascript-string-left-right-trim +__webpack_require__(79)('trimRight', function ($trim) { + return function trimRight() { + return $trim(this, 2); + }; +}, 'trimEnd'); + + +/***/ }), +/* 444 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://tc39.github.io/String.prototype.matchAll/ +var $export = __webpack_require__(3); +var defined = __webpack_require__(44); +var toLength = __webpack_require__(20); +var isRegExp = __webpack_require__(103); +var getFlags = __webpack_require__(92); +var RegExpProto = RegExp.prototype; + +var $RegExpStringIterator = function (regexp, string) { + this._r = regexp; + this._s = string; +}; + +__webpack_require__(151)($RegExpStringIterator, 'RegExp String', function next() { + var match = this._r.exec(this._s); + return { value: match, done: match === null }; +}); + +$export($export.P, 'String', { + matchAll: function matchAll(regexp) { + defined(this); + if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!'); + var S = String(this); + var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp); + var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags); + rx.lastIndex = toLength(regexp.lastIndex); + return new $RegExpStringIterator(rx, S); + } +}); + + +/***/ }), +/* 445 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(140)('asyncIterator'); + + +/***/ }), +/* 446 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(140)('observable'); + + +/***/ }), +/* 447 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-getownpropertydescriptors +var $export = __webpack_require__(3); +var ownKeys = __webpack_require__(223); +var toIObject = __webpack_require__(34); +var gOPD = __webpack_require__(35); +var createProperty = __webpack_require__(155); + +$export($export.S, 'Object', { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIObject(object); + var getDesc = gOPD.f; + var keys = ownKeys(O); + var result = {}; + var i = 0; + var key, desc; + while (keys.length > i) { + desc = getDesc(O, key = keys[i++]); + if (desc !== undefined) createProperty(result, key, desc); + } + return result; + } +}); + + +/***/ }), +/* 448 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-values-entries +var $export = __webpack_require__(3); +var $values = __webpack_require__(226)(false); + +$export($export.S, 'Object', { + values: function values(it) { + return $values(it); + } +}); + + +/***/ }), +/* 449 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-values-entries +var $export = __webpack_require__(3); +var $entries = __webpack_require__(226)(true); + +$export($export.S, 'Object', { + entries: function entries(it) { + return $entries(it); + } +}); + + +/***/ }), +/* 450 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var toObject = __webpack_require__(23); +var aFunction = __webpack_require__(27); +var $defineProperty = __webpack_require__(22); + +// B.2.2.2 Object.prototype.__defineGetter__(P, getter) +__webpack_require__(21) && $export($export.P + __webpack_require__(110), 'Object', { + __defineGetter__: function __defineGetter__(P, getter) { + $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true }); + } +}); + + +/***/ }), +/* 451 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var toObject = __webpack_require__(23); +var aFunction = __webpack_require__(27); +var $defineProperty = __webpack_require__(22); + +// B.2.2.3 Object.prototype.__defineSetter__(P, setter) +__webpack_require__(21) && $export($export.P + __webpack_require__(110), 'Object', { + __defineSetter__: function __defineSetter__(P, setter) { + $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true }); + } +}); + + +/***/ }), +/* 452 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var toObject = __webpack_require__(23); +var toPrimitive = __webpack_require__(43); +var getPrototypeOf = __webpack_require__(36); +var getOwnPropertyDescriptor = __webpack_require__(35).f; + +// B.2.2.4 Object.prototype.__lookupGetter__(P) +__webpack_require__(21) && $export($export.P + __webpack_require__(110), 'Object', { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.get; + } while (O = getPrototypeOf(O)); + } +}); + + +/***/ }), +/* 453 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $export = __webpack_require__(3); +var toObject = __webpack_require__(23); +var toPrimitive = __webpack_require__(43); +var getPrototypeOf = __webpack_require__(36); +var getOwnPropertyDescriptor = __webpack_require__(35).f; + +// B.2.2.5 Object.prototype.__lookupSetter__(P) +__webpack_require__(21) && $export($export.P + __webpack_require__(110), 'Object', { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.set; + } while (O = getPrototypeOf(O)); + } +}); + + +/***/ }), +/* 454 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var $export = __webpack_require__(3); + +$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(227)('Map') }); + + +/***/ }), +/* 455 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var $export = __webpack_require__(3); + +$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(227)('Set') }); + + +/***/ }), +/* 456 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of +__webpack_require__(111)('Map'); + + +/***/ }), +/* 457 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of +__webpack_require__(111)('Set'); + + +/***/ }), +/* 458 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of +__webpack_require__(111)('WeakMap'); + + +/***/ }), +/* 459 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of +__webpack_require__(111)('WeakSet'); + + +/***/ }), +/* 460 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from +__webpack_require__(112)('Map'); + + +/***/ }), +/* 461 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from +__webpack_require__(112)('Set'); + + +/***/ }), +/* 462 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from +__webpack_require__(112)('WeakMap'); + + +/***/ }), +/* 463 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from +__webpack_require__(112)('WeakSet'); + + +/***/ }), +/* 464 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-global +var $export = __webpack_require__(3); + +$export($export.G, { global: __webpack_require__(16) }); + + +/***/ }), +/* 465 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-global +var $export = __webpack_require__(3); + +$export($export.S, 'System', { global: __webpack_require__(16) }); + + +/***/ }), +/* 466 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/ljharb/proposal-is-error +var $export = __webpack_require__(3); +var cof = __webpack_require__(39); + +$export($export.S, 'Error', { + isError: function isError(it) { + return cof(it) === 'Error'; + } +}); + + +/***/ }), +/* 467 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + clamp: function clamp(x, lower, upper) { + return Math.min(upper, Math.max(lower, x)); + } +}); + + +/***/ }), +/* 468 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 }); + + +/***/ }), +/* 469 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(3); +var RAD_PER_DEG = 180 / Math.PI; + +$export($export.S, 'Math', { + degrees: function degrees(radians) { + return radians * RAD_PER_DEG; + } +}); + + +/***/ }), +/* 470 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(3); +var scale = __webpack_require__(229); +var fround = __webpack_require__(208); + +$export($export.S, 'Math', { + fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { + return fround(scale(x, inLow, inHigh, outLow, outHigh)); + } +}); + + +/***/ }), +/* 471 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + iaddh: function iaddh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0; + } +}); + + +/***/ }), +/* 472 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + isubh: function isubh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0; + } +}); + + +/***/ }), +/* 473 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + imulh: function imulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >> 16; + var v1 = $v >> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16); + } +}); + + +/***/ }), +/* 474 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI }); + + +/***/ }), +/* 475 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(3); +var DEG_PER_RAD = Math.PI / 180; + +$export($export.S, 'Math', { + radians: function radians(degrees) { + return degrees * DEG_PER_RAD; + } +}); + + +/***/ }), +/* 476 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { scale: __webpack_require__(229) }); + + +/***/ }), +/* 477 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { + umulh: function umulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >>> 16; + var v1 = $v >>> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); + } +}); + + +/***/ }), +/* 478 */ +/***/ (function(module, exports, __webpack_require__) { + +// http://jfbastien.github.io/papers/Math.signbit.html +var $export = __webpack_require__(3); + +$export($export.S, 'Math', { signbit: function signbit(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0; +} }); + + +/***/ }), +/* 479 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// https://github.com/tc39/proposal-promise-finally + +var $export = __webpack_require__(3); +var core = __webpack_require__(37); +var global = __webpack_require__(16); +var speciesConstructor = __webpack_require__(93); +var promiseResolve = __webpack_require__(216); + +$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { + var C = speciesConstructor(this, core.Promise || global.Promise); + var isFunction = typeof onFinally == 'function'; + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); +} }); + + +/***/ }), +/* 480 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/tc39/proposal-promise-try +var $export = __webpack_require__(3); +var newPromiseCapability = __webpack_require__(164); +var perform = __webpack_require__(215); + +$export($export.S, 'Promise', { 'try': function (callbackfn) { + var promiseCapability = newPromiseCapability.f(this); + var result = perform(callbackfn); + (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); + return promiseCapability.promise; +} }); + + +/***/ }), +/* 481 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var toMetaKey = metadata.key; +var ordinaryDefineOwnMetadata = metadata.set; + +metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); +} }); + + +/***/ }), +/* 482 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var toMetaKey = metadata.key; +var getOrCreateMetadataMap = metadata.map; +var store = metadata.store; + +metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); + var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); + if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; + if (metadataMap.size) return true; + var targetMetadata = store.get(target); + targetMetadata['delete'](targetKey); + return !!targetMetadata.size || store['delete'](target); +} }); + + +/***/ }), +/* 483 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var getPrototypeOf = __webpack_require__(36); +var ordinaryHasOwnMetadata = metadata.has; +var ordinaryGetOwnMetadata = metadata.get; +var toMetaKey = metadata.key; + +var ordinaryGetMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; +}; + +metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { + return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +} }); + + +/***/ }), +/* 484 */ +/***/ (function(module, exports, __webpack_require__) { + +var Set = __webpack_require__(219); +var from = __webpack_require__(228); +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var getPrototypeOf = __webpack_require__(36); +var ordinaryOwnMetadataKeys = metadata.keys; +var toMetaKey = metadata.key; + +var ordinaryMetadataKeys = function (O, P) { + var oKeys = ordinaryOwnMetadataKeys(O, P); + var parent = getPrototypeOf(O); + if (parent === null) return oKeys; + var pKeys = ordinaryMetadataKeys(parent, P); + return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; +}; + +metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { + return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); +} }); + + +/***/ }), +/* 485 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var ordinaryGetOwnMetadata = metadata.get; +var toMetaKey = metadata.key; + +metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { + return ordinaryGetOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +} }); + + +/***/ }), +/* 486 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var ordinaryOwnMetadataKeys = metadata.keys; +var toMetaKey = metadata.key; + +metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { + return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); +} }); + + +/***/ }), +/* 487 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var getPrototypeOf = __webpack_require__(36); +var ordinaryHasOwnMetadata = metadata.has; +var toMetaKey = metadata.key; + +var ordinaryHasMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return true; + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; +}; + +metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { + return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +} }); + + +/***/ }), +/* 488 */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var ordinaryHasOwnMetadata = metadata.has; +var toMetaKey = metadata.key; + +metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { + return ordinaryHasOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); +} }); + + +/***/ }), +/* 489 */ +/***/ (function(module, exports, __webpack_require__) { + +var $metadata = __webpack_require__(49); +var anObject = __webpack_require__(9); +var aFunction = __webpack_require__(27); +var toMetaKey = $metadata.key; +var ordinaryDefineOwnMetadata = $metadata.set; + +$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) { + return function decorator(target, targetKey) { + ordinaryDefineOwnMetadata( + metadataKey, metadataValue, + (targetKey !== undefined ? anObject : aFunction)(target), + toMetaKey(targetKey) + ); + }; +} }); + + +/***/ }), +/* 490 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask +var $export = __webpack_require__(3); +var microtask = __webpack_require__(163)(); +var process = __webpack_require__(16).process; +var isNode = __webpack_require__(39)(process) == 'process'; + +$export($export.G, { + asap: function asap(fn) { + var domain = isNode && process.domain; + microtask(domain ? domain.bind(fn) : fn); + } +}); + + +/***/ }), +/* 491 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +// https://github.com/zenparsing/es-observable +var $export = __webpack_require__(3); +var global = __webpack_require__(16); +var core = __webpack_require__(37); +var microtask = __webpack_require__(163)(); +var OBSERVABLE = __webpack_require__(19)('observable'); +var aFunction = __webpack_require__(27); +var anObject = __webpack_require__(9); +var anInstance = __webpack_require__(68); +var redefineAll = __webpack_require__(70); +var hide = __webpack_require__(29); +var forOf = __webpack_require__(69); +var RETURN = forOf.RETURN; + +var getMethod = function (fn) { + return fn == null ? undefined : aFunction(fn); +}; + +var cleanupSubscription = function (subscription) { + var cleanup = subscription._c; + if (cleanup) { + subscription._c = undefined; + cleanup(); + } +}; + +var subscriptionClosed = function (subscription) { + return subscription._o === undefined; +}; + +var closeSubscription = function (subscription) { + if (!subscriptionClosed(subscription)) { + subscription._o = undefined; + cleanupSubscription(subscription); + } +}; + +var Subscription = function (observer, subscriber) { + anObject(observer); + this._c = undefined; + this._o = observer; + observer = new SubscriptionObserver(this); + try { + var cleanup = subscriber(observer); + var subscription = cleanup; + if (cleanup != null) { + if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); }; + else aFunction(cleanup); + this._c = cleanup; + } + } catch (e) { + observer.error(e); + return; + } if (subscriptionClosed(this)) cleanupSubscription(this); +}; + +Subscription.prototype = redefineAll({}, { + unsubscribe: function unsubscribe() { closeSubscription(this); } +}); + +var SubscriptionObserver = function (subscription) { + this._s = subscription; +}; + +SubscriptionObserver.prototype = redefineAll({}, { + next: function next(value) { + var subscription = this._s; + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + try { + var m = getMethod(observer.next); + if (m) return m.call(observer, value); + } catch (e) { + try { + closeSubscription(subscription); + } finally { + throw e; + } + } + } + }, + error: function error(value) { + var subscription = this._s; + if (subscriptionClosed(subscription)) throw value; + var observer = subscription._o; + subscription._o = undefined; + try { + var m = getMethod(observer.error); + if (!m) throw value; + value = m.call(observer, value); + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } cleanupSubscription(subscription); + return value; + }, + complete: function complete(value) { + var subscription = this._s; + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + subscription._o = undefined; + try { + var m = getMethod(observer.complete); + value = m ? m.call(observer, value) : undefined; + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } cleanupSubscription(subscription); + return value; + } + } +}); + +var $Observable = function Observable(subscriber) { + anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber); +}; + +redefineAll($Observable.prototype, { + subscribe: function subscribe(observer) { + return new Subscription(observer, this._f); + }, + forEach: function forEach(fn) { + var that = this; + return new (core.Promise || global.Promise)(function (resolve, reject) { + aFunction(fn); + var subscription = that.subscribe({ + next: function (value) { + try { + return fn(value); + } catch (e) { + reject(e); + subscription.unsubscribe(); + } + }, + error: reject, + complete: resolve + }); + }); + } +}); + +redefineAll($Observable, { + from: function from(x) { + var C = typeof this === 'function' ? this : $Observable; + var method = getMethod(anObject(x)[OBSERVABLE]); + if (method) { + var observable = anObject(method.call(x)); + return observable.constructor === C ? observable : new C(function (observer) { + return observable.subscribe(observer); + }); + } + return new C(function (observer) { + var done = false; + microtask(function () { + if (!done) { + try { + if (forOf(x, false, function (it) { + observer.next(it); + if (done) return RETURN; + }) === RETURN) return; + } catch (e) { + if (done) throw e; + observer.error(e); + return; + } observer.complete(); + } + }); + return function () { done = true; }; + }); + }, + of: function of() { + for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++]; + return new (typeof this === 'function' ? this : $Observable)(function (observer) { + var done = false; + microtask(function () { + if (!done) { + for (var j = 0; j < items.length; ++j) { + observer.next(items[j]); + if (done) return; + } observer.complete(); + } + }); + return function () { done = true; }; + }); + } +}); + +hide($Observable.prototype, OBSERVABLE, function () { return this; }); + +$export($export.G, { Observable: $Observable }); + +__webpack_require__(67)('Observable'); + + +/***/ }), +/* 492 */ +/***/ (function(module, exports, __webpack_require__) { + +// ie9- setTimeout & setInterval additional parameters fix +var global = __webpack_require__(16); +var $export = __webpack_require__(3); +var userAgent = __webpack_require__(107); +var slice = [].slice; +var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check +var wrap = function (set) { + return function (fn, time /* , ...args */) { + var boundArgs = arguments.length > 2; + var args = boundArgs ? slice.call(arguments, 2) : false; + return set(boundArgs ? function () { + // eslint-disable-next-line no-new-func + (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); + } : fn, time); + }; +}; +$export($export.G + $export.B + $export.F * MSIE, { + setTimeout: wrap(global.setTimeout), + setInterval: wrap(global.setInterval) +}); + + +/***/ }), +/* 493 */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(3); +var $task = __webpack_require__(162); +$export($export.G + $export.B, { + setImmediate: $task.set, + clearImmediate: $task.clear +}); + + +/***/ }), +/* 494 */ +/***/ (function(module, exports, __webpack_require__) { + +var $iterators = __webpack_require__(159); +var getKeys = __webpack_require__(63); +var redefine = __webpack_require__(30); +var global = __webpack_require__(16); +var hide = __webpack_require__(29); +var Iterators = __webpack_require__(80); +var wks = __webpack_require__(19); +var ITERATOR = wks('iterator'); +var TO_STRING_TAG = wks('toStringTag'); +var ArrayValues = Iterators.Array; + +var DOMIterables = { + CSSRuleList: true, // TODO: Not spec compliant, should be false. + CSSStyleDeclaration: false, + CSSValueList: false, + ClientRectList: false, + DOMRectList: false, + DOMStringList: false, + DOMTokenList: true, + DataTransferItemList: false, + FileList: false, + HTMLAllCollection: false, + HTMLCollection: false, + HTMLFormElement: false, + HTMLSelectElement: false, + MediaList: true, // TODO: Not spec compliant, should be false. + MimeTypeArray: false, + NamedNodeMap: false, + NodeList: true, + PaintRequestList: false, + Plugin: false, + PluginArray: false, + SVGLengthList: false, + SVGNumberList: false, + SVGPathSegList: false, + SVGPointList: false, + SVGStringList: false, + SVGTransformList: false, + SourceBufferList: false, + StyleSheetList: true, // TODO: Not spec compliant, should be false. + TextTrackCueList: false, + TextTrackList: false, + TouchList: false +}; + +for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { + var NAME = collections[i]; + var explicit = DOMIterables[NAME]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + var key; + if (proto) { + if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); + if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = ArrayValues; + if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); + } +} + + +/***/ }), +/* 495 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +!(function(global) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + var inModule = typeof module === "object"; + var runtime = global.regeneratorRuntime; + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + runtime.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + resolve(result); + }, reject); + } + } + + if (typeof global.process === "object" && global.process.domain) { + invoke = global.process.domain.bind(invoke); + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + runtime.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator.return) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; +})( + // Among the various tricks for obtaining a reference to the global + // object, this seems to be the most reliable technique that does not + // use indirect eval (which violates Content Security Policy). + typeof global === "object" ? global : + typeof window === "object" ? window : + typeof self === "object" ? self : this +); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(138))) + +/***/ }), +/* 496 */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(497); +module.exports = __webpack_require__(37).RegExp.escape; + + +/***/ }), +/* 497 */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/benjamingr/RexExp.escape +var $export = __webpack_require__(3); +var $re = __webpack_require__(498)(/[\\^$*+?.()|[\]{}]/g, '\\$&'); + +$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } }); + + +/***/ }), +/* 498 */ +/***/ (function(module, exports) { + +module.exports = function (regExp, replace) { + var replacer = replace === Object(replace) ? function (part) { + return replace[part]; + } : replace; + return function (it) { + return String(it).replace(regExp, replacer); + }; +}; + + +/***/ }), +/* 499 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** @license React v16.10.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var h=__webpack_require__(230),n="function"===typeof Symbol&&Symbol.for,p=n?Symbol.for("react.element"):60103,q=n?Symbol.for("react.portal"):60106,r=n?Symbol.for("react.fragment"):60107,t=n?Symbol.for("react.strict_mode"):60108,u=n?Symbol.for("react.profiler"):60114,v=n?Symbol.for("react.provider"):60109,w=n?Symbol.for("react.context"):60110,x=n?Symbol.for("react.forward_ref"):60112,y=n?Symbol.for("react.suspense"):60113,aa=n?Symbol.for("react.suspense_list"):60120,ba=n?Symbol.for("react.memo"): +60115,ca=n?Symbol.for("react.lazy"):60116;n&&Symbol.for("react.fundamental");n&&Symbol.for("react.responder");n&&Symbol.for("react.scope");var z="function"===typeof Symbol&&Symbol.iterator; +function A(a){for(var b=a.message,c="https://reactjs.org/docs/error-decoder.html?invariant="+b,d=1;dP.length&&P.push(a)} +function S(a,b,c,d){var e=typeof a;if("undefined"===e||"boolean"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case "string":case "number":g=!0;break;case "object":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(d,a,""===b?"."+T(a,0):b),1;g=0;b=""===b?".":b+":";if(Array.isArray(a))for(var l=0;lb}return!1}function B(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={}; +"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){C[a]=new B(a,0,!1,a,null,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];C[b]=new B(b,1,!1,a[1],null,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){C[a]=new B(a,2,!1,a.toLowerCase(),null,!1)}); +["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){C[a]=new B(a,2,!1,a,null,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){C[a]=new B(a,3,!1,a.toLowerCase(),null,!1)}); +["checked","multiple","muted","selected"].forEach(function(a){C[a]=new B(a,3,!0,a,null,!1)});["capture","download"].forEach(function(a){C[a]=new B(a,4,!1,a,null,!1)});["cols","rows","size","span"].forEach(function(a){C[a]=new B(a,6,!1,a,null,!1)});["rowSpan","start"].forEach(function(a){C[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var rb=/[\-:]([a-z])/g;function sb(a){return a[1].toUpperCase()} +"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=a.replace(rb, +sb);C[b]=new B(b,1,!1,a,null,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(rb,sb);C[b]=new B(b,1,!1,a,"http://www.w3.org/1999/xlink",!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(rb,sb);C[b]=new B(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1)});["tabIndex","crossOrigin"].forEach(function(a){C[a]=new B(a,1,!1,a.toLowerCase(),null,!1)}); +C.xlinkHref=new B("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0);["src","href","action","formAction"].forEach(function(a){C[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function tb(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a;default:return""}} +function ub(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw t(Error(93));b=b[0]}c=b}null==c&&(c="")}a._wrapperState={initialValue:tb(c)}} +function Mb(a,b){var c=tb(b.value),d=tb(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}var Ob={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"}; +function Pb(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Qb(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?Pb(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a} +var Rb,Sb=function(a){return"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Ob.svg||"innerHTML"in a)a.innerHTML=b;else{Rb=Rb||document.createElement("div");Rb.innerHTML=""+b.valueOf().toString()+"";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}); +function Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}var Vb={animationend:Ub("Animation","AnimationEnd"),animationiteration:Ub("Animation","AnimationIteration"),animationstart:Ub("Animation","AnimationStart"),transitionend:Ub("Transition","TransitionEnd")},Wb={},Xb={}; +Xa&&(Xb=document.createElement("div").style,"AnimationEvent"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),"TransitionEvent"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a} +var Zb=Yb("animationend"),$b=Yb("animationiteration"),ac=Yb("animationstart"),bc=Yb("transitionend"),dc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),ec=!1,fc=[],gc=null,hc=null,ic=null,jc=new Map,kc=new Map,lc="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "), +mc="focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" ");function nc(a){var b=oc(a);lc.forEach(function(c){pc(c,a,b)});mc.forEach(function(c){pc(c,a,b)})}function qc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}} +function rc(a,b){switch(a){case "focus":case "blur":gc=null;break;case "dragenter":case "dragleave":hc=null;break;case "mouseover":case "mouseout":ic=null;break;case "pointerover":case "pointerout":jc.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":kc.delete(b.pointerId)}}function sc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return qc(b,c,d,e);a.eventSystemFlags|=d;return a} +function tc(a,b,c,d){switch(b){case "focus":return gc=sc(gc,a,b,c,d),!0;case "dragenter":return hc=sc(hc,a,b,c,d),!0;case "mouseover":return ic=sc(ic,a,b,c,d),!0;case "pointerover":var e=d.pointerId;jc.set(e,sc(jc.get(e)||null,a,b,c,d));return!0;case "gotpointercapture":return e=d.pointerId,kc.set(e,sc(kc.get(e)||null,a,b,c,d)),!0}return!1}function uc(a){if(null!==a.blockedOn)return!1;var b=vc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);return null!==b?(a.blockedOn=b,!1):!0} +function wc(a,b,c){uc(a)&&c.delete(b)}function xc(){for(ec=!1;0this.eventPool.length&&this.eventPool.push(a)}function Oc(a){a.eventPool=[];a.getPooled=Pc;a.release=Qc}var Rc=F.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Sc=F.extend({clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),Tc=F.extend({view:null,detail:null}),Uc=Tc.extend({relatedTarget:null}); +function Vc(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0} +var Wc={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Xc={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4", +116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Yc={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zc(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Yc[a])?!!b[a]:!1}function $c(){return Zc} +var ad=Tc.extend({key:function(a){if(a.key){var b=Wc[a.key]||a.key;if("Unidentified"!==b)return b}return"keypress"===a.type?(a=Vc(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?Xc[a.keyCode]||"Unidentified":""},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:$c,charCode:function(a){return"keypress"===a.type?Vc(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"=== +a.type?Vc(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),bd=0,cd=0,dd=!1,fd=!1,gd=Tc.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:$c,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if("movementX"in a)return a.movementX;var b=bd;bd=a.screenX;return dd?"mousemove"===a.type?a.screenX- +b:0:(dd=!0,0)},movementY:function(a){if("movementY"in a)return a.movementY;var b=cd;cd=a.screenY;return fd?"mousemove"===a.type?a.screenY-b:0:(fd=!0,0)}}),hd=gd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),id=gd.extend({dataTransfer:null}),jd=Tc.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:$c}),kd=F.extend({propertyName:null, +elapsedTime:null,pseudoElement:null}),ld=gd.extend({deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),md=[["blur","blur",0],["cancel","cancel",0],["click","click",0],["close","close",0],["contextmenu","contextMenu",0],["copy","copy",0],["cut","cut",0],["auxclick","auxClick",0],["dblclick","doubleClick",0],["dragend","dragEnd", +0],["dragstart","dragStart",0],["drop","drop",0],["focus","focus",0],["input","input",0],["invalid","invalid",0],["keydown","keyDown",0],["keypress","keyPress",0],["keyup","keyUp",0],["mousedown","mouseDown",0],["mouseup","mouseUp",0],["paste","paste",0],["pause","pause",0],["play","play",0],["pointercancel","pointerCancel",0],["pointerdown","pointerDown",0],["pointerup","pointerUp",0],["ratechange","rateChange",0],["reset","reset",0],["seeked","seeked",0],["submit","submit",0],["touchcancel","touchCancel", +0],["touchend","touchEnd",0],["touchstart","touchStart",0],["volumechange","volumeChange",0],["drag","drag",1],["dragenter","dragEnter",1],["dragexit","dragExit",1],["dragleave","dragLeave",1],["dragover","dragOver",1],["mousemove","mouseMove",1],["mouseout","mouseOut",1],["mouseover","mouseOver",1],["pointermove","pointerMove",1],["pointerout","pointerOut",1],["pointerover","pointerOver",1],["scroll","scroll",1],["toggle","toggle",1],["touchmove","touchMove",1],["wheel","wheel",1],["abort","abort", +2],[Zb,"animationEnd",2],[$b,"animationIteration",2],[ac,"animationStart",2],["canplay","canPlay",2],["canplaythrough","canPlayThrough",2],["durationchange","durationChange",2],["emptied","emptied",2],["encrypted","encrypted",2],["ended","ended",2],["error","error",2],["gotpointercapture","gotPointerCapture",2],["load","load",2],["loadeddata","loadedData",2],["loadedmetadata","loadedMetadata",2],["loadstart","loadStart",2],["lostpointercapture","lostPointerCapture",2],["playing","playing",2],["progress", +"progress",2],["seeking","seeking",2],["stalled","stalled",2],["suspend","suspend",2],["timeupdate","timeUpdate",2],[bc,"transitionEnd",2],["waiting","waiting",2]],nd={},od={},pd=0;for(;pd=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Vd(c)}} +function Xd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Xd(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function Yd(){for(var a=window,b=Ud();b instanceof a.HTMLIFrameElement;){try{var c="string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Ud(a.document)}return b} +function Zd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}var $d="$",ae="/$",be="$?",ce="$!",de=null,ee=null;function fe(a,b){switch(a){case "button":case "input":case "select":case "textarea":return!!b.autoFocus}return!1} +function ge(a,b){return"textarea"===a||"option"===a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var he="function"===typeof setTimeout?setTimeout:void 0,ie="function"===typeof clearTimeout?clearTimeout:void 0;function je(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a} +function ke(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===$d||c===ce||c===be){if(0===b)return a;b--}else c===ae&&b++}a=a.previousSibling}return null}var le=Math.random().toString(36).slice(2),me="__reactInternalInstance$"+le,ne="__reactEventHandlers$"+le,oe="__reactContainere$"+le; +function Cd(a){var b=a[me];if(b)return b;for(var c=a.parentNode;c;){if(b=c[oe]||c[me]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=ke(a);null!==a;){if(c=a[me])return c;a=ke(a)}return b}a=c;c=a.parentNode}return null}function pe(a){a=a[me]||a[oe];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function qe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw t(Error(33));}function re(a){return a[ne]||null}var se=null,te=null,ue=null; +function ve(){if(ue)return ue;var a,b=te,c=b.length,d,e="value"in se?se.value:se.textContent,f=e.length;for(a=0;a=Ae),De=String.fromCharCode(32),Ee={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["compositionend","keypress","textInput","paste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:"blur compositionend keydown keypress keyup mousedown".split(" ")},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart", +captured:"onCompositionStartCapture"},dependencies:"blur compositionstart keydown keypress keyup mousedown".split(" ")},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:"blur compositionupdate keydown keypress keyup mousedown".split(" ")}},Fe=!1; +function Ge(a,b){switch(a){case "keyup":return-1!==ye.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "blur":return!0;default:return!1}}function He(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}var Ie=!1;function Je(a,b){switch(a){case "compositionend":return He(b);case "keypress":if(32!==b.which)return null;Fe=!0;return De;case "textInput":return a=b.data,a===De&&Fe?null:a;default:return null}} +function Ke(a,b){if(Ie)return"compositionend"===a||!ze&&Ge(a,b)?(a=ve(),ue=te=se=null,Ie=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,kf={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ")}},lf=null,mf=null,nf=null,of=!1; +function pf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(of||null==lf||lf!==Ud(c))return null;c=lf;"selectionStart"in c&&Zd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return nf&&hf(nf,c)?null:(nf=c,a=F.getPooled(kf.select,mf,a,b),a.type="select",a.target=lf,Lc(a),a)} +var qf={eventTypes:kf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=oc(e);f=ja.onSelect;for(var g=0;gsf||(a.current=rf[sf],rf[sf]=null,sf--)} +function I(a,b){sf++;rf[sf]=a.current;a.current=b}var tf={},J={current:tf},K={current:!1},uf=tf;function vf(a,b){var c=a.type.contextTypes;if(!c)return tf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function N(a){a=a.childContextTypes;return null!==a&&void 0!==a} +function wf(a){H(K,a);H(J,a)}function xf(a){H(K,a);H(J,a)}function zf(a,b,c){if(J.current!==tf)throw t(Error(168));I(J,b,a);I(K,c,a)}function Af(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw t(Error(108),Va(b)||"Unknown",e);return n({},c,{},d)}function Bf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||tf;uf=J.current;I(J,b,a);I(K,K.current,a);return!0} +function Cf(a,b,c){var d=a.stateNode;if(!d)throw t(Error(169));c?(b=Af(a,b,uf),d.__reactInternalMemoizedMergedChildContext=b,H(K,a),H(J,a),I(J,b,a)):H(K,a);I(K,c,a)} +var Df=r.unstable_runWithPriority,Ef=r.unstable_scheduleCallback,Ff=r.unstable_cancelCallback,Gf=r.unstable_shouldYield,Hf=r.unstable_requestPaint,If=r.unstable_now,Jf=r.unstable_getCurrentPriorityLevel,Kf=r.unstable_ImmediatePriority,Lf=r.unstable_UserBlockingPriority,Mf=r.unstable_NormalPriority,Nf=r.unstable_LowPriority,Of=r.unstable_IdlePriority,Pf={},Qf=void 0!==Hf?Hf:function(){},Rf=null,Sf=null,Tf=!1,Uf=If(),Vf=1E4>Uf?If:function(){return If()-Uf}; +function Wf(){switch(Jf()){case Kf:return 99;case Lf:return 98;case Mf:return 97;case Nf:return 96;case Of:return 95;default:throw t(Error(332));}}function Xf(a){switch(a){case 99:return Kf;case 98:return Lf;case 97:return Mf;case 96:return Nf;case 95:return Of;default:throw t(Error(332));}}function Yf(a,b){a=Xf(a);return Df(a,b)}function Zf(a,b,c){a=Xf(a);return Ef(a,b,c)}function $f(a){null===Rf?(Rf=[a],Sf=Ef(Kf,ag)):Rf.push(a);return Pf}function bg(){if(null!==Sf){var a=Sf;Sf=null;Ff(a)}ag()} +function ag(){if(!Tf&&null!==Rf){Tf=!0;var a=0;try{var b=Rf;Yf(99,function(){for(;a=b&&(mg=!0),a.firstContext=null)} +function ng(a,b){if(gg!==a&&!1!==b&&0!==b){if("number"!==typeof b||1073741823===b)gg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===fg){if(null===eg)throw t(Error(308));fg=b;eg.dependencies={expirationTime:0,firstContext:b,responders:null}}else fg=fg.next=b}return a._currentValue}var og=!1; +function pg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function qg(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}} +function rg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function sg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)} +function tg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=pg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=pg(a.memoizedState),e=c.updateQueue=pg(c.memoizedState)):d=a.updateQueue=qg(e):null===e&&(e=c.updateQueue=qg(d));null===e||d===e?sg(d,b):null===d.lastUpdate||null===e.lastUpdate?(sg(d,b),sg(e,b)):(sg(d,b),e.lastUpdate=b)} +function ug(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=pg(a.memoizedState):vg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function vg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=qg(b));return b} +function wg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,"function"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e="function"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:og=!0}return d} +function xg(a,b,c,d,e){og=!1;b=vg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;my?(z=q,q=null):z=q.sibling;var p=w(e,q,h[y],k);if(null===p){null===q&&(q=z);break}a&& +q&&null===p.alternate&&b(e,q);g=f(p,g,y);null===m?l=p:m.sibling=p;m=p;q=z}if(y===h.length)return c(e,q),l;if(null===q){for(;yy?(z=q,q=null):z=q.sibling;var M=w(e,q,p.value,k);if(null===M){null===q&&(q=z);break}a&&q&&null===M.alternate&&b(e,q);g=f(M,g,y);null===m?l=M:m.sibling=M;m=M;q=z}if(p.done)return c(e,q),l;if(null===q){for(;!p.done;y++,p=h.next())p=A(e,p.value,k),null!==p&&(g=f(p,g,y),null===m?l=p:m.sibling=p,m=p);return l}for(q=d(e,q);!p.done;y++,p=h.next())p=L(q,e,y,p.value,k),null!==p&&(a&&null!== +p.alternate&&q.delete(null===p.key?y:p.key),g=f(p,g,y),null===m?l=p:m.sibling=p,m=p);a&&q.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===Ha&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Fa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){if(7===k.tag?f.type===Ha:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ha?f.props.children:f.props,h);d.ref=Og(a,k,f);d.return=a;a=d;break a}c(a, +k);break}else b(a,k);k=k.sibling}f.type===Ha?(d=Vg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Tg(f.type,f.key,f.props,null,a.mode,h),h.ref=Og(a,d,f),h.return=a,a=h)}return g(a);case Ga:a:{for(k=f.key;null!==d;){if(d.key===k){if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[],h);d.return=a;a=d;break a}c(a,d);break}else b(a,d);d=d.sibling}d=Ug(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f|| +"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=Sg(f,a.mode,h),d.return=a,a=d),g(a);if(Ng(f))return wb(a,d,f,h);if(Ta(f))return M(a,d,f,h);l&&Pg(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,t(Error(152),a.displayName||a.name||"Component");}return c(a,d)}}var Wg=Qg(!0),Xg=Qg(!1),Yg={},Zg={current:Yg},$g={current:Yg},ah={current:Yg};function bh(a){if(a===Yg)throw t(Error(174));return a} +function ch(a,b){I(ah,b,a);I($g,a,a);I(Zg,Yg,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,"");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}H(Zg,a);I(Zg,b,a)}function dh(a){H(Zg,a);H($g,a);H(ah,a)}function eh(a){bh(ah.current);var b=bh(Zg.current);var c=Qb(b,a.type);b!==c&&(I($g,a,a),I(Zg,c,a))}function fh(a){$g.current===a&&(H(Zg,a),H($g,a))}var O={current:0}; +function gh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===be||c.data===ce))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if((b.effectTag&64)!==D)return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function hh(a,b){return{responder:a,props:b}} +var ih=Da.ReactCurrentDispatcher,jh=0,kh=null,P=null,lh=null,mh=null,Q=null,nh=null,oh=0,ph=null,qh=0,rh=!1,sh=null,th=0;function uh(){throw t(Error(321));}function vh(a,b){if(null===b)return!1;for(var c=0;coh&&(oh=m,zg(oh))):(yg(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);ff(f,b.memoizedState)||(mg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]} +function Ih(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===ph?(ph={lastEffect:null},ph.lastEffect=a.next=a):(b=ph.lastEffect,null===b?ph.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,ph.lastEffect=a));return a}function Jh(a,b,c,d){var e=Eh();qh|=a;e.memoizedState=Ih(b,c,void 0,void 0===d?null:d)} +function Kh(a,b,c,d){var e=Fh();d=void 0===d?null:d;var f=void 0;if(null!==P){var g=P.memoizedState;f=g.destroy;if(null!==d&&vh(d,g.deps)){Ih(0,c,f,d);return}}qh|=a;e.memoizedState=Ih(b,c,f,d)}function Lh(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Mh(){} +function Nh(a,b,c){if(!(25>th))throw t(Error(301));var d=a.alternate;if(a===kh||null!==d&&d===kh)if(rh=!0,a={expirationTime:jh,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===sh&&(sh=new Map),c=sh.get(b),void 0===c)sh.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Fg(),f=Cg.suspense;e=Gg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&& +(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(ff(l,k))return}catch(m){}finally{}Hg(a,e)}} +var zh={readContext:ng,useCallback:uh,useContext:uh,useEffect:uh,useImperativeHandle:uh,useLayoutEffect:uh,useMemo:uh,useReducer:uh,useRef:uh,useState:uh,useDebugValue:uh,useResponder:uh},xh={readContext:ng,useCallback:function(a,b){Eh().memoizedState=[a,void 0===b?null:b];return a},useContext:ng,useEffect:function(a,b){return Jh(516,192,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Jh(4,36,Lh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Jh(4, +36,a,b)},useMemo:function(a,b){var c=Eh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Eh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Nh.bind(null,kh,a);return[d.memoizedState,a]},useRef:function(a){var b=Eh();a={current:a};return b.memoizedState=a},useState:function(a){var b=Eh();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null, +dispatch:null,lastRenderedReducer:Gh,lastRenderedState:a};a=a.dispatch=Nh.bind(null,kh,a);return[b.memoizedState,a]},useDebugValue:Mh,useResponder:hh},yh={readContext:ng,useCallback:function(a,b){var c=Fh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&vh(b,d[1]))return d[0];c.memoizedState=[a,b];return a},useContext:ng,useEffect:function(a,b){return Kh(516,192,a,b)},useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Kh(4,36,Lh.bind(null,b,a),c)}, +useLayoutEffect:function(a,b){return Kh(4,36,a,b)},useMemo:function(a,b){var c=Fh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&vh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Hh,useRef:function(){return Fh().memoizedState},useState:function(a){return Hh(Gh,a)},useDebugValue:Mh,useResponder:hh},Oh=null,Ph=null,Qh=!1; +function Rh(a,b){var c=Sh(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}} +function Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=je(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&~Ac|E;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=je(b.firstChild)}else a.effectTag=a.effectTag&~Ac|E,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a} +function Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!ge(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=je(b.nextSibling);Vh(a);if(13===a.tag)if(a=a.memoizedState,a=null!==a?a.dehydrated:null,null===a)a=Ph;else a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ae){if(0===b){a=je(a.nextSibling);break a}b--}else c!==$d&&c!==ce&&c!==be||b++}a=a.nextSibling}a=null}else a=Oh?je(a.stateNode.nextSibling):null;Ph=a;return!0} +function Xh(){Ph=Oh=null;Qh=!1}var Yh=Da.ReactCurrentOwner,mg=!1;function R(a,b,c,d){b.child=null===a?Xg(b,null,c,d):Wg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;lg(b,e);d=wh(a,b,c,d,f,e);if(null!==a&&!mg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child} +function ai(a,b,c,d,e,f){if(null===a){var g=c.type;if("function"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Tg(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&rj.set(a,b)))}} +function wj(a,b){a.expirationTimea?b:a} +function Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=$f(xj.bind(null,a));else{var b=Aj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Fg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Pf&&Ff(c)}a.callbackExpirationTime= +b;a.callbackPriority=d;b=1073741823===b?$f(xj.bind(null,a)):Zf(d,Cj.bind(null,a),{timeout:10*(1073741821-b)-Vf()});a.callbackNode=b}}} +function Cj(a,b){uj=0;if(b)return b=Fg(),Dj(a,b),Z(a),null;var c=Aj(a);if(0!==c){b=a.callbackNode;if((T&(Zi|$i))!==S)throw t(Error(327));Ej();a===U&&c===W||Fj(a,c);if(null!==V){var d=T;T|=Zi;var e=Gj(a);do try{Hj();break}catch(h){Ij(a,h)}while(1);hg();T=d;Wi.current=e;if(X===bj)throw b=hj,Fj(a,c),yj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,Jj(a,c),d=X,U=null,d){case aj:case bj:throw t(Error(345));case cj:if(2!==c){Dj(a,2);break}Kj(a);break;case dj:yj(a, +c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Lj(e));if(1073741823===ij&&(e=Mi+nj-Vf(),10=c){a.lastPingedTime=c;Fj(a,c);break}}f=Aj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=he(Kj.bind(null,a),e);break}Kj(a);break;case ej:yj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Lj(e));if(mj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Fj(a,c);break}e=Aj(a);if(0!==e&&e!==c)break;if(0!== +d&&d!==c){a.lastPingedTime=d;break}1073741823!==jj?d=10*(1073741821-jj)-Vf():1073741823===ij?d=0:(d=10*(1073741821-ij)-5E3,e=Vf(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*Vi(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=Vf()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f); +if(10=b&&(Zf(97,function(){c._onComplete();return null}),X=gj)}function Oj(){if(null!==rj){var a=rj;rj=null;a.forEach(function(a,c){Dj(c,a);Z(c)});bg()}}function Pj(a,b){var c=T;T|=1;try{return a(b)}finally{T=c,T===S&&bg()}}function Qj(a,b,c,d){var e=T;T|=4;try{return Yf(98,a.bind(null,b,c,d))}finally{T=e,T===S&&bg()}} +function Rj(a,b){var c=T;T&=-2;T|=Yi;try{return a(b)}finally{T=c,T===S&&bg()}} +function Fj(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,ie(c));if(null!==V)for(c=V.return;null!==c;){var d=c;switch(d.tag){case 1:var e=d.type.childContextTypes;null!==e&&void 0!==e&&wf(d);break;case 3:dh(d);xf(d);break;case 5:fh(d);break;case 4:dh(d);break;case 13:H(O,d);break;case 19:H(O,d);break;case 10:jg(d)}c=c.return}U=a;V=Rg(a.current,null,b);W=b;X=aj;hj=null;jj=ij=1073741823;kj=null;lj=0;mj=!1} +function Ij(a,b){do{try{hg();Ah();if(null===V||null===V.return)return X=bj,hj=b,null;a:{var c=a,d=V.return,e=V,f=b;b=W;e.effectTag|=2048;e.firstEffect=e.lastEffect=null;if(null!==f&&"object"===typeof f&&"function"===typeof f.then){var g=f,h=0!==(O.current&1),k=d;do{var l;if(l=13===k.tag){var m=k.memoizedState;if(null!==m)l=null!==m.dehydrated?!0:!1;else{var A=k.memoizedProps;l=void 0===A.fallback?!1:!0!==A.unstable_avoidThisFallback?!0:h?!1:!0}}if(l){var w=k.updateQueue;if(null===w){var L=new Set; +L.add(g);k.updateQueue=L}else w.add(g);if(0===(k.mode&2)){k.effectTag|=64;e.effectTag&=-2981;if(1===e.tag)if(null===e.alternate)e.tag=17;else{var wb=rg(1073741823,null);wb.tag=2;tg(e,wb)}e.expirationTime=1073741823;break a}f=void 0;e=b;var M=c.pingCache;null===M?(M=c.pingCache=new Pi,f=new Set,M.set(g,f)):(f=M.get(g),void 0===f&&(f=new Set,M.set(g,f)));if(!f.has(e)){f.add(e);var q=Sj.bind(null,c,g,e);g.then(q,q)}k.effectTag|=4096;k.expirationTime=b;break a}k=k.return}while(null!==k);f=Error((Va(e.type)|| +"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a component higher in the tree to provide a loading indicator or placeholder to display."+Wa(e))}X!==fj&&(X=cj);f=ti(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var y=Qi(k,g,b);ug(k,y);break a;case 1:g=f;var z=k.type,p=k.stateNode;if((k.effectTag&64)===D&&("function"===typeof z.getDerivedStateFromError||null!==p&&"function"===typeof p.componentDidCatch&& +(null===Ui||!Ui.has(p)))){k.effectTag|=4096;k.expirationTime=b;var u=Ti(k,g,b);ug(k,u);break a}}k=k.return}while(null!==k)}V=Tj(V)}catch(v){b=v;continue}break}while(1)}function Gj(){var a=Wi.current;Wi.current=zh;return null===a?zh:a}function yg(a,b){alj&&(lj=a)}function Mj(){for(;null!==V;)V=Uj(V)}function Hj(){for(;null!==V&&!Gf();)V=Uj(V)} +function Uj(a){var b=Vj(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=Tj(a));Xi.current=null;return b} +function Tj(a){V=a;do{var b=V.alternate;a=V.return;if((V.effectTag&2048)===D){a:{var c=b;b=V;var d=W,e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:N(b.type)&&wf(b);break;case 3:dh(b);xf(b);d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);(null===c||null===c.child)&&Wh(b)&&mi(b);oi(b);break;case 5:fh(b);d=bh(ah.current);var f=b.type;if(null!==c&&null!=b.stateNode)pi(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g= +bh(Zg.current);if(Wh(b)){e=b;f=void 0;c=e.stateNode;var h=e.type,k=e.memoizedProps;c[me]=e;c[ne]=k;switch(h){case "iframe":case "object":case "embed":G("load",c);break;case "video":case "audio":for(var l=0;l\x3c/script>",l=k.removeChild(k.firstChild)):"string"===typeof c.is?l=l.createElement(k,{is:c.is}):(l=l.createElement(k),"select"===k&&(k=l,c.multiple?k.multiple=!0:c.size&&(k.size=c.size))):l=l.createElementNS(g,k);k=l;k[me]=h;k[ne]=c;c=k;ni(c,b,!1,!1);b.stateNode=c;g=d;var m=Rd(f,e);switch(f){case "iframe":case "object":case "embed":G("load", +c);d=e;break;case "video":case "audio":for(d=0;de.tailExpiration&&1e&&(e=c),h>e&&(e=h),f=f.sibling;d.childExpirationTime=e}if(null!==b)return b;null!==a&&(a.effectTag&2048)===D&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=V.firstEffect),a.lastEffect=V.lastEffect),1a?b:a}function Kj(a){var b=Wf();Yf(99,Wj.bind(null,a,b));return null} +function Wj(a,b){Ej();if((T&(Zi|$i))!==S)throw t(Error(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw t(Error(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Lj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=d-1);d<=a.lastPingedTime&& +(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=Wd(p,g),m=Wd(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(u=u.createRange(),u.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(u),v.extend(m.node,m.offset)):(u.setEnd(m.node,m.offset),v.addRange(u))))));u=[];for(v=p;v=v.parentNode;)1===v.nodeType&&u.push({element:v,left:v.scrollLeft,top:v.scrollTop});"function"=== +typeof p.focus&&p.focus();for(p=0;p=c)return ji(a,b,c);I(O,O.current& +1,b);b=$h(a,b,c);return null!==b?b.sibling:null}I(O,O.current&1,b);break;case 19:d=b.childExpirationTime>=c;if((a.effectTag&64)!==D){if(d)return li(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(O,O.current,b);if(!d)return null}return $h(a,b,c)}mg=!1}}else mg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=E);a=b.pendingProps;e=vf(b,J.current);lg(b,c);e=wh(null,b,d,a,e,c);b.effectTag|=1;if("object"=== +typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Ah();if(N(d)){var f=!0;Bf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;"function"===typeof g&&Eg(b,d,g,a);e.updater=Ig;b.stateNode=e;e._reactInternalFiber=b;Mg(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=E);a=b.pendingProps;Ua(e);if(1!==e._status)throw e._result; +e=e._result;b.type=e;f=b.tag=ck(e);a=cg(e,a);switch(f){case 0:b=di(null,b,e,a,c);break;case 1:b=fi(null,b,e,a,c);break;case 11:b=Zh(null,b,e,a,c);break;case 14:b=ai(null,b,e,cg(e.type,a),d,c);break;default:throw t(Error(306),e,"");}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:cg(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:cg(d,e),fi(a,b,d,e,c);case 3:hi(b);d=b.updateQueue;if(null===d)throw t(Error(282));e=b.memoizedState;e=null!==e?e.element: +null;xg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=je(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Xg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&~E|Ac,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return eh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,ge(d,e)?g=null:null!==f&&ge(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime= +b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return ch(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Wg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:cg(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context; +e=b.pendingProps;g=b.memoizedProps;f=e.value;ig(b,f);if(null!==g){var h=g.value;f=ff(h,f)?0:("function"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=rg(c,null),l.tag=2,tg(h,l));h.expirationTime=b&&a<=b}function yj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)} +function zj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Dj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b} +function gk(a,b,c,d,e,f){var g=b.current;a:if(c){c=c._reactInternalFiber;b:{if(Bc(c)!==c||1!==c.tag)throw t(Error(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(N(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw t(Error(171));}if(1===c.tag){var k=c.type;if(N(k)){c=Af(c,k,h);break a}}c=h}else c=tf;null===b.context?b.context=c:b.pendingContext=c;b=f;e=rg(d,e);e.payload={element:a};b=void 0===b?null:b;null!==b&& +(e.callback=b);tg(g,e);Hg(g,d);return d}function hk(a,b,c,d){var e=b.current,f=Fg(),g=Cg.suspense;e=Gg(f,e,g);return gk(a,b,c,e,g,d)}function ik(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function jk(a,b,c){var d=3=b;)c=d,d=d._next;a._next=d;null!==c&&(c._next=a)}return a};function qk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}db=Pj;eb=Qj;fb=Nj;gb=function(a,b){var c=T;T|=2;try{return a(b)}finally{T=c,T===S&&bg()}}; +function rk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute("data-reactroot")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new nk(a,0,b?{hydrate:!0}:void 0)} +function sk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if("function"===typeof e){var h=e;e=function(){var a=ik(g);h.call(a)}}hk(b,g,a,e)}else{f=c._reactRootContainer=rk(c,d);g=f._internalRoot;if("function"===typeof e){var k=e;e=function(){var a=ik(g);k.call(a)}}Rj(function(){hk(b,g,a,e)})}return ik(g)}function tk(a,b){var c=2=H};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125L(n,c))void 0!==r&&0>L(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>L(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function L(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var O=[],P=[],Q=1,R=null,S=3,T=!1,U=!1,V=!1; +function W(a){for(var b=M(P);null!==b;){if(null===b.callback)N(P);else if(b.startTime<=a)N(P),b.sortIndex=b.expirationTime,K(O,b);else break;b=M(P)}}function X(a){V=!1;W(a);if(!U)if(null!==M(O))U=!0,f(Y);else{var b=M(P);null!==b&&g(X,b.startTime-a)}} +function Y(a,b){U=!1;V&&(V=!1,h());T=!0;var c=S;try{W(b);for(R=M(O);null!==R&&(!(R.expirationTime>b)||a&&!k());){var d=R.callback;if(null!==d){R.callback=null;S=R.priorityLevel;var e=d(R.expirationTime<=b);b=exports.unstable_now();"function"===typeof e?R.callback=e:R===M(O)&&N(O);W(b)}else N(O);R=M(O)}if(null!==R)var m=!0;else{var n=M(P);null!==n&&g(X,n.startTime-b);m=!1}return m}finally{R=null,S=c,T=!1}} +function Z(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var aa=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=S;S=a;try{return b()}finally{S=c}}; +exports.unstable_next=function(a){switch(S){case 1:case 2:case 3:var b=3;break;default:b=S}var c=S;S=b;try{return a()}finally{S=c}}; +exports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if("object"===typeof c&&null!==c){var e=c.delay;e="number"===typeof e&&0d?(a.sortIndex=e,K(P,a),null===M(O)&&a===M(P)&&(V?h():V=!0,g(X,e-d))):(a.sortIndex=c,K(O,a),U||T||(U=!0,f(Y)));return a};exports.unstable_cancelCallback=function(a){a.callback=null}; +exports.unstable_wrapCallback=function(a){var b=S;return function(){var c=S;S=b;try{return a.apply(this,arguments)}finally{S=c}}};exports.unstable_getCurrentPriorityLevel=function(){return S};exports.unstable_shouldYield=function(){var a=exports.unstable_now();W(a);var b=M(O);return b!==R&&null!==R&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; + + +/***/ }), +/* 510 */ +/***/ (function(module, exports, __webpack_require__) { + +var Hash = __webpack_require__(511), + ListCache = __webpack_require__(115), + Map = __webpack_require__(168); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; + + +/***/ }), +/* 511 */ +/***/ (function(module, exports, __webpack_require__) { + +var hashClear = __webpack_require__(512), + hashDelete = __webpack_require__(517), + hashGet = __webpack_require__(518), + hashHas = __webpack_require__(519), + hashSet = __webpack_require__(520); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; + + +/***/ }), +/* 512 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(114); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; + + +/***/ }), +/* 513 */ +/***/ (function(module, exports, __webpack_require__) { + +var isFunction = __webpack_require__(74), + isMasked = __webpack_require__(514), + isObject = __webpack_require__(81), + toSource = __webpack_require__(233); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; + + +/***/ }), +/* 514 */ +/***/ (function(module, exports, __webpack_require__) { + +var coreJsData = __webpack_require__(515); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; + + +/***/ }), +/* 515 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(51); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; + + +/***/ }), +/* 516 */ +/***/ (function(module, exports) { + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; + + +/***/ }), +/* 517 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; + + +/***/ }), +/* 518 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(114); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; + + +/***/ }), +/* 519 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(114); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; + + +/***/ }), +/* 520 */ +/***/ (function(module, exports, __webpack_require__) { + +var nativeCreate = __webpack_require__(114); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; + + +/***/ }), +/* 521 */ +/***/ (function(module, exports) { + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; + + +/***/ }), +/* 522 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(116); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; + + +/***/ }), +/* 523 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(116); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; + + +/***/ }), +/* 524 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(116); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; + + +/***/ }), +/* 525 */ +/***/ (function(module, exports, __webpack_require__) { + +var assocIndexOf = __webpack_require__(116); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; + + +/***/ }), +/* 526 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(118); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; + + +/***/ }), +/* 527 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; + + +/***/ }), +/* 528 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(118); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; + + +/***/ }), +/* 529 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(118); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; + + +/***/ }), +/* 530 */ +/***/ (function(module, exports, __webpack_require__) { + +var getMapData = __webpack_require__(118); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; + + +/***/ }), +/* 531 */ +/***/ (function(module, exports) { + +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ +function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : undefined; +} + +module.exports = last; + + +/***/ }), +/* 532 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(119), + baseSlice = __webpack_require__(169); + +/** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ +function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); +} + +module.exports = parent; + + +/***/ }), +/* 533 */ +/***/ (function(module, exports, __webpack_require__) { + +var constant = __webpack_require__(534), + defineProperty = __webpack_require__(237), + identity = __webpack_require__(120); + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +module.exports = baseSetToString; + + +/***/ }), +/* 534 */ +/***/ (function(module, exports) { + +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +module.exports = constant; + + +/***/ }), +/* 535 */ +/***/ (function(module, exports) { + +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +module.exports = shortOut; + + +/***/ }), +/* 536 */ +/***/ (function(module, exports) { + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +module.exports = setCacheAdd; + + +/***/ }), +/* 537 */ +/***/ (function(module, exports) { + +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +module.exports = setCacheHas; + + +/***/ }), +/* 538 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ +function baseIsNaN(value) { + return value !== value; +} + +module.exports = baseIsNaN; + + +/***/ }), +/* 539 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, + length = array.length; + + while (++index < length) { + if (array[index] === value) { + return index; + } + } + return -1; +} + +module.exports = strictIndexOf; + + +/***/ }), +/* 540 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var ReactPropTypesSecret = __webpack_require__(541); + +function emptyFunction() {} +function emptyFunctionWithReset() {} +emptyFunctionWithReset.resetWarningCache = emptyFunction; + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, + + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; + + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + + +/***/ }), +/* 541 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + + +/***/ }), +/* 542 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIteratee = __webpack_require__(73), + isArrayLike = __webpack_require__(52), + keys = __webpack_require__(85); + +/** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ +function createFind(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike(collection)) { + var iteratee = baseIteratee(predicate, 3); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; +} + +module.exports = createFind; + + +/***/ }), +/* 543 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsMatch = __webpack_require__(544), + getMatchData = __webpack_require__(569), + matchesStrictComparable = __webpack_require__(251); + +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} + +module.exports = baseMatches; + + +/***/ }), +/* 544 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stack = __webpack_require__(241), + baseIsEqual = __webpack_require__(174); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + + +/***/ }), +/* 545 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(115); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; + + +/***/ }), +/* 546 */ +/***/ (function(module, exports) { + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; + + +/***/ }), +/* 547 */ +/***/ (function(module, exports) { + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; + + +/***/ }), +/* 548 */ +/***/ (function(module, exports) { + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; + + +/***/ }), +/* 549 */ +/***/ (function(module, exports, __webpack_require__) { + +var ListCache = __webpack_require__(115), + Map = __webpack_require__(168), + MapCache = __webpack_require__(167); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; + + +/***/ }), +/* 550 */ +/***/ (function(module, exports, __webpack_require__) { + +var Stack = __webpack_require__(241), + equalArrays = __webpack_require__(242), + equalByTag = __webpack_require__(551), + equalObjects = __webpack_require__(554), + getTag = __webpack_require__(179), + isArray = __webpack_require__(26), + isBuffer = __webpack_require__(176), + isTypedArray = __webpack_require__(177); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +module.exports = baseIsEqualDeep; + + +/***/ }), +/* 551 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(95), + Uint8Array = __webpack_require__(552), + eq = __webpack_require__(117), + equalArrays = __webpack_require__(242), + mapToArray = __webpack_require__(553), + setToArray = __webpack_require__(175); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +module.exports = equalByTag; + + +/***/ }), +/* 552 */ +/***/ (function(module, exports, __webpack_require__) { + +var root = __webpack_require__(51); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; + + +/***/ }), +/* 553 */ +/***/ (function(module, exports) { + +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +module.exports = mapToArray; + + +/***/ }), +/* 554 */ +/***/ (function(module, exports, __webpack_require__) { + +var getAllKeys = __webpack_require__(555); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked && stack.get(other)) { + return stacked == other; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +module.exports = equalObjects; + + +/***/ }), +/* 555 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetAllKeys = __webpack_require__(556), + getSymbols = __webpack_require__(557), + keys = __webpack_require__(85); + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} + +module.exports = getAllKeys; + + +/***/ }), +/* 556 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayPush = __webpack_require__(244), + isArray = __webpack_require__(26); + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +module.exports = baseGetAllKeys; + + +/***/ }), +/* 557 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayFilter = __webpack_require__(245), + stubArray = __webpack_require__(558); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +module.exports = getSymbols; + + +/***/ }), +/* 558 */ +/***/ (function(module, exports) { + +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} + +module.exports = stubArray; + + +/***/ }), +/* 559 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseTimes = __webpack_require__(560), + isArguments = __webpack_require__(124), + isArray = __webpack_require__(26), + isBuffer = __webpack_require__(176), + isIndex = __webpack_require__(125), + isTypedArray = __webpack_require__(177); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; + + +/***/ }), +/* 560 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; + + +/***/ }), +/* 561 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + isObjectLike = __webpack_require__(47); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + + +/***/ }), +/* 562 */ +/***/ (function(module, exports) { + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = stubFalse; + + +/***/ }), +/* 563 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGetTag = __webpack_require__(50), + isLength = __webpack_require__(173), + isObjectLike = __webpack_require__(47); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; + + +/***/ }), +/* 564 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(232); + +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(246)(module))) + +/***/ }), +/* 565 */ +/***/ (function(module, exports, __webpack_require__) { + +var overArg = __webpack_require__(248); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); + +module.exports = nativeKeys; + + +/***/ }), +/* 566 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(72), + root = __webpack_require__(51); + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'); + +module.exports = DataView; + + +/***/ }), +/* 567 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(72), + root = __webpack_require__(51); + +/* Built-in method references that are verified to be native. */ +var Promise = getNative(root, 'Promise'); + +module.exports = Promise; + + +/***/ }), +/* 568 */ +/***/ (function(module, exports, __webpack_require__) { + +var getNative = __webpack_require__(72), + root = __webpack_require__(51); + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root, 'WeakMap'); + +module.exports = WeakMap; + + +/***/ }), +/* 569 */ +/***/ (function(module, exports, __webpack_require__) { + +var isStrictComparable = __webpack_require__(250), + keys = __webpack_require__(85); + +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} + +module.exports = getMatchData; + + +/***/ }), +/* 570 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseIsEqual = __webpack_require__(174), + get = __webpack_require__(24), + hasIn = __webpack_require__(252), + isKey = __webpack_require__(166), + isStrictComparable = __webpack_require__(250), + matchesStrictComparable = __webpack_require__(251), + toKey = __webpack_require__(84); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} + +module.exports = baseMatchesProperty; + + +/***/ }), +/* 571 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + + +/***/ }), +/* 572 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseProperty = __webpack_require__(254), + basePropertyDeep = __webpack_require__(573), + isKey = __webpack_require__(166), + toKey = __webpack_require__(84); + +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); +} + +module.exports = property; + + +/***/ }), +/* 573 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(119); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} + +module.exports = basePropertyDeep; + + +/***/ }), +/* 574 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseEach = __webpack_require__(86); + +/** + * The base implementation of `_.some` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function baseSome(collection, predicate) { + var result; + + baseEach(collection, function(value, index, collection) { + result = predicate(value, index, collection); + return !result; + }); + return !!result; +} + +module.exports = baseSome; + + +/***/ }), +/* 575 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFor = __webpack_require__(576), + keys = __webpack_require__(85); + +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; + + +/***/ }), +/* 576 */ +/***/ (function(module, exports, __webpack_require__) { + +var createBaseFor = __webpack_require__(577); + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + + +/***/ }), +/* 577 */ +/***/ (function(module, exports) { + +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + + +/***/ }), +/* 578 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArrayLike = __webpack_require__(52); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; + + +/***/ }), +/* 579 */ +/***/ (function(module, exports, __webpack_require__) { + +var Set = __webpack_require__(249), + noop = __webpack_require__(184), + setToArray = __webpack_require__(175); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ +var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { + return new Set(values); +}; + +module.exports = createSet; + + +/***/ }), +/* 580 */ +/***/ (function(module, exports, __webpack_require__) { + +var overArg = __webpack_require__(248); + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +module.exports = getPrototype; + + +/***/ }), +/* 581 */ +/***/ (function(module, exports) { + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles; + +/***/ }), +/* 582 */ +/***/ (function(module, exports) { + +function _iterableToArrayLimit(arr, i) { + if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { + return; + } + + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit; + +/***/ }), +/* 583 */ +/***/ (function(module, exports) { + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); +} + +module.exports = _nonIterableRest; + +/***/ }), +/* 584 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseValues = __webpack_require__(585), + keys = __webpack_require__(85); + +/** + * Creates an array of the own enumerable string keyed property values of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property values. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.values(new Foo); + * // => [1, 2] (iteration order is not guaranteed) + * + * _.values('hi'); + * // => ['h', 'i'] + */ +function values(object) { + return object == null ? [] : baseValues(object, keys(object)); +} + +module.exports = values; + + +/***/ }), +/* 585 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayMap = __webpack_require__(83); + +/** + * The base implementation of `_.values` and `_.valuesIn` which creates an + * array of `object` property values corresponding to the property names + * of `props`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} props The property names to get values for. + * @returns {Object} Returns the array of property values. + */ +function baseValues(object, props) { + return arrayMap(props, function(key) { + return object[key]; + }); +} + +module.exports = baseValues; + + +/***/ }), +/* 586 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; + + +/***/ }), +/* 587 */ +/***/ (function(module, exports, __webpack_require__) { + +var identity = __webpack_require__(120); + +/** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ +function castFunction(value) { + return typeof value == 'function' ? value : identity; +} + +module.exports = castFunction; + + +/***/ }), +/* 588 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +Object.defineProperty(exports,"__esModule",{value:!0});var env=__webpack_require__(589);__webpack_require__(5);var React=__webpack_require__(0);function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n=0;r-=1)this.handlers[r].called||(this.handlers[r].called=!0,this.handlers[r](e));for(var o=n;o>=0;o-=1)this.handlers[o].called=!1}else{(0,this.handlers[n])(e)}}},{key:"hasHandlers",value:function(){return this.handlers.length>0}},{key:"removeHandlers",value:function(t){for(var n=[],r=this.handlers.length,o=0;o0}},{key:"removeHandlers",value:function(t,n){var r=cloneMap(this.handlerSets);if(!r.has(t))return new e(this.poolName,r);var o=r.get(t).removeHandlers(n);return o.hasHandlers()?r.set(t,o):r.delete(t),new e(this.poolName,r)}}]),e}();_defineProperty(EventPool,"createByType",function(e,t,n){var r=new Map;return r.set(t,new EventSet(n)),new EventPool(e,r)});var EventTarget=function(){function e(t){var n=this;_classCallCheck(this,e),_defineProperty(this,"handlers",new Map),_defineProperty(this,"pools",new Map),_defineProperty(this,"target",void 0),_defineProperty(this,"createEmitter",function(e){return function(t){n.pools.forEach(function(n){n.dispatchEvent(e,t)})}}),this.target=t}return _createClass(e,[{key:"addHandlers",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e);this.pools.set(e,r.addHandlers(t,n))}else this.pools.set(e,EventPool.createByType(e,t,n));this.handlers.has(t)||this.addTargetHandler(t)}},{key:"hasHandlers",value:function(){return this.handlers.size>0}},{key:"removeHandlers",value:function(e,t,n){if(this.pools.has(e)){var r=this.pools.get(e).removeHandlers(t,n);r.hasHandlers()?this.pools.set(e,r):this.pools.delete(e),0===this.pools.size&&this.removeTargetHandler(t)}}},{key:"addTargetHandler",value:function(e){var t=this.createEmitter(e);this.handlers.set(e,t),this.target.addEventListener(e,t,!0)}},{key:"removeTargetHandler",value:function(e){this.handlers.has(e)&&(this.target.removeEventListener(e,this.handlers.get(e),!0),this.handlers.delete(e))}}]),e}(),EventStack=function(){function e(){var t=this;_classCallCheck(this,e),_defineProperty(this,"targets",new Map),_defineProperty(this,"getTarget",function(e){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=normalizeTarget(e);if(t.targets.has(r))return t.targets.get(r);if(!n)return null;var o=new EventTarget(r);return t.targets.set(r,o),o}),_defineProperty(this,"removeTarget",function(e){t.targets.delete(normalizeTarget(e))})}return _createClass(e,[{key:"sub",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?"default":a;this.getTarget(o).addHandlers(s,e,normalizeHandlers(t))}}},{key:"unsub",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(env.canUseDOM){var r=n.target,o=void 0===r?document:r,a=n.pool,s=void 0===a?"default":a,i=this.getTarget(o,!1);i&&(i.removeHandlers(s,e,normalizeHandlers(t)),i.hasHandlers()||this.removeTarget(o))}}}]),e}(),instance=new EventStack,EventStack$1=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,React.PureComponent),_createClass(t,[{key:"componentDidMount",value:function(){this.subscribe(this.props)}},{key:"componentDidUpdate",value:function(e){this.unsubscribe(e),this.subscribe(this.props)}},{key:"componentWillUnmount",value:function(){this.unsubscribe(this.props)}},{key:"subscribe",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.sub(t,n,{pool:r,target:o})}},{key:"unsubscribe",value:function(e){var t=e.name,n=e.on,r=e.pool,o=e.target;instance.unsub(t,n,{pool:r,target:o})}},{key:"render",value:function(){return null}}]),t}();_defineProperty(EventStack$1,"defaultProps",{pool:"default",target:"document"}),EventStack$1.propTypes={},exports.instance=instance,exports.default=EventStack$1; + + +/***/ }), +/* 589 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2015 Jed Watson. + Based on code that is Copyright 2013-2015, Facebook, Inc. + All rights reserved. +*/ +/* global define */ + +(function () { + 'use strict'; + + var canUseDOM = !!( + typeof window !== 'undefined' && + window.document && + window.document.createElement + ); + + var ExecutionEnvironment = { + + canUseDOM: canUseDOM, + + canUseWorkers: typeof Worker !== 'undefined', + + canUseEventListeners: + canUseDOM && !!(window.addEventListener || window.attachEvent), + + canUseViewport: canUseDOM && !!window.screen + + }; + + if (true) { + !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { + return ExecutionEnvironment; + }).call(exports, __webpack_require__, exports, module), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} + +}()); + + +/***/ }), +/* 590 */ +/***/ (function(module, exports) { + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * The base implementation of `_.inRange` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to check. + * @param {number} start The start of the range. + * @param {number} end The end of the range. + * @returns {boolean} Returns `true` if `number` is in the range, else `false`. + */ +function baseInRange(number, start, end) { + return number >= nativeMin(start, end) && number < nativeMax(start, end); +} + +module.exports = baseInRange; + + +/***/ }), +/* 591 */ +/***/ (function(module, exports) { + +/** + * Gets the first element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias first + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the first element of `array`. + * @example + * + * _.head([1, 2, 3]); + * // => 1 + * + * _.head([]); + * // => undefined + */ +function head(array) { + return (array && array.length) ? array[0] : undefined; +} + +module.exports = head; + + +/***/ }), +/* 592 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** @license React v16.10.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +Object.defineProperty(exports,"__esModule",{value:!0}); +var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): +60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118,x=b?Symbol.for("react.scope"):60119;function y(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function z(a){return y(a)===m} +exports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; +exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h}; +exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p}; + + +/***/ }), +/* 593 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseClamp = __webpack_require__(594), + baseToString = __webpack_require__(234), + toInteger = __webpack_require__(126), + toString = __webpack_require__(82); + +/** + * Checks if `string` starts with the given target string. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {string} [target] The string to search for. + * @param {number} [position=0] The position to search from. + * @returns {boolean} Returns `true` if `string` starts with `target`, + * else `false`. + * @example + * + * _.startsWith('abc', 'a'); + * // => true + * + * _.startsWith('abc', 'b'); + * // => false + * + * _.startsWith('abc', 'b', 1); + * // => true + */ +function startsWith(string, target, position) { + string = toString(string); + position = position == null + ? 0 + : baseClamp(toInteger(position), 0, string.length); + + target = baseToString(target); + return string.slice(position, position + target.length) == target; +} + +module.exports = startsWith; + + +/***/ }), +/* 594 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ +function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== undefined) { + number = number <= upper ? number : upper; + } + if (lower !== undefined) { + number = number >= lower ? number : lower; + } + } + return number; +} + +module.exports = baseClamp; + + +/***/ }), +/* 595 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseEach = __webpack_require__(86); + +/** + * The base implementation of `_.filter` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function baseFilter(collection, predicate) { + var result = []; + baseEach(collection, function(value, index, collection) { + if (predicate(value, index, collection)) { + result.push(value); + } + }); + return result; +} + +module.exports = baseFilter; + + +/***/ }), +/* 596 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayMap = __webpack_require__(83), + baseIntersection = __webpack_require__(597), + baseRest = __webpack_require__(96), + castArrayLikeObject = __webpack_require__(598); + +/** + * Creates an array of unique values that are included in all given arrays + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. The order and references of result values are + * determined by the first array. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of intersecting values. + * @example + * + * _.intersection([2, 1], [2, 3]); + * // => [2] + */ +var intersection = baseRest(function(arrays) { + var mapped = arrayMap(arrays, castArrayLikeObject); + return (mapped.length && mapped[0] === arrays[0]) + ? baseIntersection(mapped) + : []; +}); + +module.exports = intersection; + + +/***/ }), +/* 597 */ +/***/ (function(module, exports, __webpack_require__) { + +var SetCache = __webpack_require__(121), + arrayIncludes = __webpack_require__(170), + arrayIncludesWith = __webpack_require__(171), + arrayMap = __webpack_require__(83), + baseUnary = __webpack_require__(172), + cacheHas = __webpack_require__(122); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMin = Math.min; + +/** + * The base implementation of methods like `_.intersection`, without support + * for iteratee shorthands, that accepts an array of arrays to inspect. + * + * @private + * @param {Array} arrays The arrays to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new array of shared values. + */ +function baseIntersection(arrays, iteratee, comparator) { + var includes = comparator ? arrayIncludesWith : arrayIncludes, + length = arrays[0].length, + othLength = arrays.length, + othIndex = othLength, + caches = Array(othLength), + maxLength = Infinity, + result = []; + + while (othIndex--) { + var array = arrays[othIndex]; + if (othIndex && iteratee) { + array = arrayMap(array, baseUnary(iteratee)); + } + maxLength = nativeMin(array.length, maxLength); + caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) + ? new SetCache(othIndex && array) + : undefined; + } + array = arrays[0]; + + var index = -1, + seen = caches[0]; + + outer: + while (++index < length && result.length < maxLength) { + var value = array[index], + computed = iteratee ? iteratee(value) : value; + + value = (comparator || value !== 0) ? value : 0; + if (!(seen + ? cacheHas(seen, computed) + : includes(result, computed, comparator) + )) { + othIndex = othLength; + while (--othIndex) { + var cache = caches[othIndex]; + if (!(cache + ? cacheHas(cache, computed) + : includes(arrays[othIndex], computed, comparator)) + ) { + continue outer; + } + } + if (seen) { + seen.push(computed); + } + result.push(value); + } + } + return result; +} + +module.exports = baseIntersection; + + +/***/ }), +/* 598 */ +/***/ (function(module, exports, __webpack_require__) { + +var isArrayLikeObject = __webpack_require__(123); + +/** + * Casts `value` to an empty array if it's not an array like object. + * + * @private + * @param {*} value The value to inspect. + * @returns {Array|Object} Returns the cast array-like object. + */ +function castArrayLikeObject(value) { + return isArrayLikeObject(value) ? value : []; +} + +module.exports = castArrayLikeObject; + + +/***/ }), +/* 599 */ +/***/ (function(module, exports) { + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.has` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHas(object, key) { + return object != null && hasOwnProperty.call(object, key); +} + +module.exports = baseHas; + + +/***/ }), +/* 600 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(185); + + +/***/ }), +/* 601 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseAssignValue = __webpack_require__(602), + eq = __webpack_require__(117); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignValue; + + +/***/ }), +/* 602 */ +/***/ (function(module, exports, __webpack_require__) { + +var defineProperty = __webpack_require__(237); + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +module.exports = baseAssignValue; + + +/***/ }), +/* 603 */ +/***/ (function(module, exports) { + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { + arr2[i] = arr[i]; + } + + return arr2; + } +} + +module.exports = _arrayWithoutHoles; + +/***/ }), +/* 604 */ +/***/ (function(module, exports) { + +function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); +} + +module.exports = _iterableToArray; + +/***/ }), +/* 605 */ +/***/ (function(module, exports) { + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); +} + +module.exports = _nonIterableSpread; + +/***/ }), +/* 606 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseEach = __webpack_require__(86), + isArrayLike = __webpack_require__(52); + +/** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} + +module.exports = baseMap; + + +/***/ }), +/* 607 */ +/***/ (function(module, exports, __webpack_require__) { + +var getPrototypeOf = __webpack_require__(10); + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = getPrototypeOf(object); + if (object === null) break; + } + + return object; +} + +module.exports = _superPropBase; + +/***/ }), +/* 608 */ +/***/ (function(module, exports) { + +/** + * A specialized version of `_.every` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + */ +function arrayEvery(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (!predicate(array[index], index, array)) { + return false; + } + } + return true; +} + +module.exports = arrayEvery; + + +/***/ }), +/* 609 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseEach = __webpack_require__(86); + +/** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ +function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; +} + +module.exports = baseEvery; + + +/***/ }), +/* 610 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.reduce` and `_.reduceRight`, without support + * for iteratee shorthands, which iterates over `collection` using `eachFunc`. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {*} accumulator The initial value. + * @param {boolean} initAccum Specify using the first or last element of + * `collection` as the initial value. + * @param {Function} eachFunc The function to iterate over `collection`. + * @returns {*} Returns the accumulated value. + */ +function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { + eachFunc(collection, function(value, index, collection) { + accumulator = initAccum + ? (initAccum = false, value) + : iteratee(accumulator, value, index, collection); + }); + return accumulator; +} + +module.exports = baseReduce; + + +/***/ }), +/* 611 */ +/***/ (function(module, exports, __webpack_require__) { + +var basePropertyOf = __webpack_require__(612); + +/** Used to map Latin Unicode letters to basic Latin letters. */ +var deburredLetters = { + // Latin-1 Supplement block. + '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', + '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', + '\xc7': 'C', '\xe7': 'c', + '\xd0': 'D', '\xf0': 'd', + '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', + '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', + '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', + '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', + '\xd1': 'N', '\xf1': 'n', + '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', + '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', + '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', + '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', + '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', + '\xc6': 'Ae', '\xe6': 'ae', + '\xde': 'Th', '\xfe': 'th', + '\xdf': 'ss', + // Latin Extended-A block. + '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', + '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', + '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', + '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', + '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', + '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', + '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', + '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', + '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', + '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', + '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', + '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', + '\u0134': 'J', '\u0135': 'j', + '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', + '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', + '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', + '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', + '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', + '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', + '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', + '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', + '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', + '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', + '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', + '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', + '\u0163': 't', '\u0165': 't', '\u0167': 't', + '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', + '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', + '\u0174': 'W', '\u0175': 'w', + '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', + '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', + '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', + '\u0132': 'IJ', '\u0133': 'ij', + '\u0152': 'Oe', '\u0153': 'oe', + '\u0149': "'n", '\u017f': 's' +}; + +/** + * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A + * letters to basic Latin letters. + * + * @private + * @param {string} letter The matched letter to deburr. + * @returns {string} Returns the deburred letter. + */ +var deburrLetter = basePropertyOf(deburredLetters); + +module.exports = deburrLetter; + + +/***/ }), +/* 612 */ +/***/ (function(module, exports) { + +/** + * The base implementation of `_.propertyOf` without support for deep paths. + * + * @private + * @param {Object} object The object to query. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyOf(object) { + return function(key) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = basePropertyOf; + + +/***/ }), +/* 613 */ +/***/ (function(module, exports, __webpack_require__) { + +var basePickBy = __webpack_require__(614), + hasIn = __webpack_require__(252); + +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ +function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); +} + +module.exports = basePick; + + +/***/ }), +/* 614 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseGet = __webpack_require__(119), + baseSet = __webpack_require__(260), + castPath = __webpack_require__(94); + +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ +function basePickBy(object, paths, predicate) { + var index = -1, + length = paths.length, + result = {}; + + while (++index < length) { + var path = paths[index], + value = baseGet(object, path); + + if (predicate(value, path)) { + baseSet(result, castPath(path, object), value); + } + } + return result; +} + +module.exports = basePickBy; + + +/***/ }), +/* 615 */ +/***/ (function(module, exports, __webpack_require__) { + +var flatten = __webpack_require__(616), + overRest = __webpack_require__(235), + setToString = __webpack_require__(236); + +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ +function flatRest(func) { + return setToString(overRest(func, undefined, flatten), func + ''); +} + +module.exports = flatRest; + + +/***/ }), +/* 616 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseFlatten = __webpack_require__(180); + +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ +function flatten(array) { + var length = array == null ? 0 : array.length; + return length ? baseFlatten(array, 1) : []; +} + +module.exports = flatten; + + +/***/ }), +/* 617 */ +/***/ (function(module, exports, __webpack_require__) { + +var Symbol = __webpack_require__(95), + isArguments = __webpack_require__(124), + isArray = __webpack_require__(26); + +/** Built-in value references. */ +var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; + +/** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ +function isFlattenable(value) { + return isArray(value) || isArguments(value) || + !!(spreadableSymbol && value && value[spreadableSymbol]); +} + +module.exports = isFlattenable; + + +/***/ }), +/* 618 */ +/***/ (function(module, exports, __webpack_require__) { + +var asciiSize = __webpack_require__(619), + hasUnicode = __webpack_require__(181), + unicodeSize = __webpack_require__(620); + +/** + * Gets the number of symbols in `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the string size. + */ +function stringSize(string) { + return hasUnicode(string) + ? unicodeSize(string) + : asciiSize(string); +} + +module.exports = stringSize; + + +/***/ }), +/* 619 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseProperty = __webpack_require__(254); + +/** + * Gets the size of an ASCII `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +var asciiSize = baseProperty('length'); + +module.exports = asciiSize; + + +/***/ }), +/* 620 */ +/***/ (function(module, exports) { + +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsAstral = '[' + rsAstralRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + +/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ +var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + +/** + * Gets the size of a Unicode `string`. + * + * @private + * @param {string} string The string inspect. + * @returns {number} Returns the string size. + */ +function unicodeSize(string) { + var result = reUnicode.lastIndex = 0; + while (reUnicode.test(string)) { + ++result; + } + return result; +} + +module.exports = unicodeSize; + + +/***/ }), +/* 621 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) +var startOfYear = __webpack_require__(623) +var differenceInCalendarDays = __webpack_require__(624) + +/** + * @category Day Helpers + * @summary Get the day of the year of the given date. + * + * @description + * Get the day of the year of the given date. + * + * @param {Date|String|Number} date - the given date + * @returns {Number} the day of year + * + * @example + * // Which day of the year is 2 July 2014? + * var result = getDayOfYear(new Date(2014, 6, 2)) + * //=> 183 + */ +function getDayOfYear (dirtyDate) { + var date = parse(dirtyDate) + var diff = differenceInCalendarDays(date, startOfYear(date)) + var dayOfYear = diff + 1 + return dayOfYear +} + +module.exports = getDayOfYear + + +/***/ }), +/* 622 */ +/***/ (function(module, exports) { + +var MILLISECONDS_IN_MINUTE = 60000 + +/** + * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds. + * They usually appear for dates that denote time before the timezones were introduced + * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891 + * and GMT+01:00:00 after that date) + * + * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above, + * which would lead to incorrect calculations. + * + * This function returns the timezone offset in milliseconds that takes seconds in account. + */ +module.exports = function getTimezoneOffsetInMilliseconds (dirtyDate) { + var date = new Date(dirtyDate.getTime()) + var baseTimezoneOffset = date.getTimezoneOffset() + date.setSeconds(0, 0) + var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE + + return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset +} + + +/***/ }), +/* 623 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) + +/** + * @category Year Helpers + * @summary Return the start of a year for the given date. + * + * @description + * Return the start of a year for the given date. + * The result will be in the local timezone. + * + * @param {Date|String|Number} date - the original date + * @returns {Date} the start of a year + * + * @example + * // The start of a year for 2 September 2014 11:55:00: + * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00)) + * //=> Wed Jan 01 2014 00:00:00 + */ +function startOfYear (dirtyDate) { + var cleanDate = parse(dirtyDate) + var date = new Date(0) + date.setFullYear(cleanDate.getFullYear(), 0, 1) + date.setHours(0, 0, 0, 0) + return date +} + +module.exports = startOfYear + + +/***/ }), +/* 624 */ +/***/ (function(module, exports, __webpack_require__) { + +var startOfDay = __webpack_require__(97) + +var MILLISECONDS_IN_MINUTE = 60000 +var MILLISECONDS_IN_DAY = 86400000 + +/** + * @category Day Helpers + * @summary Get the number of calendar days between the given dates. + * + * @description + * Get the number of calendar days between the given dates. + * + * @param {Date|String|Number} dateLeft - the later date + * @param {Date|String|Number} dateRight - the earlier date + * @returns {Number} the number of calendar days + * + * @example + * // How many calendar days are between + * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00? + * var result = differenceInCalendarDays( + * new Date(2012, 6, 2, 0, 0), + * new Date(2011, 6, 2, 23, 0) + * ) + * //=> 366 + */ +function differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) { + var startOfDayLeft = startOfDay(dirtyDateLeft) + var startOfDayRight = startOfDay(dirtyDateRight) + + var timestampLeft = startOfDayLeft.getTime() - + startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE + var timestampRight = startOfDayRight.getTime() - + startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE + + // Round the number of days to the nearest integer + // because the number of milliseconds in a day is not constant + // (e.g. it's different in the day of the daylight saving time clock shift) + return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY) +} + +module.exports = differenceInCalendarDays + + +/***/ }), +/* 625 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) +var startOfISOWeek = __webpack_require__(182) +var startOfISOYear = __webpack_require__(627) + +var MILLISECONDS_IN_WEEK = 604800000 + +/** + * @category ISO Week Helpers + * @summary Get the ISO week of the given date. + * + * @description + * Get the ISO week of the given date. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @param {Date|String|Number} date - the given date + * @returns {Number} the ISO week + * + * @example + * // Which week of the ISO-week numbering year is 2 January 2005? + * var result = getISOWeek(new Date(2005, 0, 2)) + * //=> 53 + */ +function getISOWeek (dirtyDate) { + var date = parse(dirtyDate) + var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime() + + // Round the number of days to the nearest integer + // because the number of milliseconds in a week is not constant + // (e.g. it's different in the week of the daylight saving time clock shift) + return Math.round(diff / MILLISECONDS_IN_WEEK) + 1 +} + +module.exports = getISOWeek + + +/***/ }), +/* 626 */ +/***/ (function(module, exports, __webpack_require__) { + +var parse = __webpack_require__(42) + +/** + * @category Week Helpers + * @summary Return the start of a week for the given date. + * + * @description + * Return the start of a week for the given date. + * The result will be in the local timezone. + * + * @param {Date|String|Number} date - the original date + * @param {Object} [options] - the object with options + * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday) + * @returns {Date} the start of a week + * + * @example + * // The start of a week for 2 September 2014 11:55:00: + * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0)) + * //=> Sun Aug 31 2014 00:00:00 + * + * @example + * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00: + * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1}) + * //=> Mon Sep 01 2014 00:00:00 + */ +function startOfWeek (dirtyDate, dirtyOptions) { + var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0 + + var date = parse(dirtyDate) + var day = date.getDay() + var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn + + date.setDate(date.getDate() - diff) + date.setHours(0, 0, 0, 0) + return date +} + +module.exports = startOfWeek + + +/***/ }), +/* 627 */ +/***/ (function(module, exports, __webpack_require__) { + +var getISOYear = __webpack_require__(263) +var startOfISOWeek = __webpack_require__(182) + +/** + * @category ISO Week-Numbering Year Helpers + * @summary Return the start of an ISO week-numbering year for the given date. + * + * @description + * Return the start of an ISO week-numbering year, + * which always starts 3 days before the year's first Thursday. + * The result will be in the local timezone. + * + * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date + * + * @param {Date|String|Number} date - the original date + * @returns {Date} the start of an ISO year + * + * @example + * // The start of an ISO week-numbering year for 2 July 2005: + * var result = startOfISOYear(new Date(2005, 6, 2)) + * //=> Mon Jan 03 2005 00:00:00 + */ +function startOfISOYear (dirtyDate) { + var year = getISOYear(dirtyDate) + var fourthOfJanuary = new Date(0) + fourthOfJanuary.setFullYear(year, 0, 4) + fourthOfJanuary.setHours(0, 0, 0, 0) + var date = startOfISOWeek(fourthOfJanuary) + return date +} + +module.exports = startOfISOYear + + +/***/ }), +/* 628 */ +/***/ (function(module, exports, __webpack_require__) { + +var buildDistanceInWordsLocale = __webpack_require__(629) +var buildFormatLocale = __webpack_require__(630) + +/** + * @category Locales + * @summary English locale. + */ +module.exports = { + distanceInWords: buildDistanceInWordsLocale(), + format: buildFormatLocale() +} + + +/***/ }), +/* 629 */ +/***/ (function(module, exports) { + +function buildDistanceInWordsLocale () { + var distanceInWordsLocale = { + lessThanXSeconds: { + one: 'less than a second', + other: 'less than {{count}} seconds' + }, + + xSeconds: { + one: '1 second', + other: '{{count}} seconds' + }, + + halfAMinute: 'half a minute', + + lessThanXMinutes: { + one: 'less than a minute', + other: 'less than {{count}} minutes' + }, + + xMinutes: { + one: '1 minute', + other: '{{count}} minutes' + }, + + aboutXHours: { + one: 'about 1 hour', + other: 'about {{count}} hours' + }, + + xHours: { + one: '1 hour', + other: '{{count}} hours' + }, + + xDays: { + one: '1 day', + other: '{{count}} days' + }, + + aboutXMonths: { + one: 'about 1 month', + other: 'about {{count}} months' + }, + + xMonths: { + one: '1 month', + other: '{{count}} months' + }, + + aboutXYears: { + one: 'about 1 year', + other: 'about {{count}} years' + }, + + xYears: { + one: '1 year', + other: '{{count}} years' + }, + + overXYears: { + one: 'over 1 year', + other: 'over {{count}} years' + }, + + almostXYears: { + one: 'almost 1 year', + other: 'almost {{count}} years' + } + } + + function localize (token, count, options) { + options = options || {} + + var result + if (typeof distanceInWordsLocale[token] === 'string') { + result = distanceInWordsLocale[token] + } else if (count === 1) { + result = distanceInWordsLocale[token].one + } else { + result = distanceInWordsLocale[token].other.replace('{{count}}', count) + } + + if (options.addSuffix) { + if (options.comparison > 0) { + return 'in ' + result + } else { + return result + ' ago' + } + } + + return result + } + + return { + localize: localize + } +} + +module.exports = buildDistanceInWordsLocale + + +/***/ }), +/* 630 */ +/***/ (function(module, exports, __webpack_require__) { + +var buildFormattingTokensRegExp = __webpack_require__(631) + +function buildFormatLocale () { + // Note: in English, the names of days of the week and months are capitalized. + // If you are making a new locale based on this one, check if the same is true for the language you're working on. + // Generally, formatted dates should look like they are in the middle of a sentence, + // e.g. in Spanish language the weekdays and months should be in the lowercase. + var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] + var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'] + var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'] + var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] + var meridiemUppercase = ['AM', 'PM'] + var meridiemLowercase = ['am', 'pm'] + var meridiemFull = ['a.m.', 'p.m.'] + + var formatters = { + // Month: Jan, Feb, ..., Dec + 'MMM': function (date) { + return months3char[date.getMonth()] + }, + + // Month: January, February, ..., December + 'MMMM': function (date) { + return monthsFull[date.getMonth()] + }, + + // Day of week: Su, Mo, ..., Sa + 'dd': function (date) { + return weekdays2char[date.getDay()] + }, + + // Day of week: Sun, Mon, ..., Sat + 'ddd': function (date) { + return weekdays3char[date.getDay()] + }, + + // Day of week: Sunday, Monday, ..., Saturday + 'dddd': function (date) { + return weekdaysFull[date.getDay()] + }, + + // AM, PM + 'A': function (date) { + return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0] + }, + + // am, pm + 'a': function (date) { + return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0] + }, + + // a.m., p.m. + 'aa': function (date) { + return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0] + } + } + + // Generate ordinal version of formatters: M -> Mo, D -> Do, etc. + var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W'] + ordinalFormatters.forEach(function (formatterToken) { + formatters[formatterToken + 'o'] = function (date, formatters) { + return ordinal(formatters[formatterToken](date)) + } + }) + + return { + formatters: formatters, + formattingTokensRegExp: buildFormattingTokensRegExp(formatters) + } +} + +function ordinal (number) { + var rem100 = number % 100 + if (rem100 > 20 || rem100 < 10) { + switch (rem100 % 10) { + case 1: + return number + 'st' + case 2: + return number + 'nd' + case 3: + return number + 'rd' + } + } + return number + 'th' +} + +module.exports = buildFormatLocale + + +/***/ }), +/* 631 */ +/***/ (function(module, exports) { + +var commonFormatterKeys = [ + 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd', + 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG', + 'H', 'HH', 'h', 'hh', 'm', 'mm', + 's', 'ss', 'S', 'SS', 'SSS', + 'Z', 'ZZ', 'X', 'x' +] + +function buildFormattingTokensRegExp (formatters) { + var formatterKeys = [] + for (var key in formatters) { + if (formatters.hasOwnProperty(key)) { + formatterKeys.push(key) + } + } + + var formattingTokens = commonFormatterKeys + .concat(formatterKeys) + .sort() + .reverse() + var formattingTokensRegExp = new RegExp( + '(\\[[^\\[]*\\])|(\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g' + ) + + return formattingTokensRegExp +} + +module.exports = buildFormattingTokensRegExp + + +/***/ }), +/* 632 */ +/***/ (function(module, exports, __webpack_require__) { + +var map = { + "./ca-ES.json": 633, + "./de-DE.json": 634, + "./en-US.json": 264, + "./es-ES.json": 635, + "./fi-FI.json": 636, + "./fr-FR.json": 637, + "./he-IL.json": 638, + "./it-IT.json": 639, + "./ja-JP.json": 640, + "./pl-PL.json": 641, + "./pt-BR.json": 642, + "./ru-RU.json": 643, + "./sv-SE.json": 644, + "./zh-CN.json": 645 +}; + + +function webpackContext(req) { + var id = webpackContextResolve(req); + return __webpack_require__(id); +} +function webpackContextResolve(req) { + if(!__webpack_require__.o(map, req)) { + var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; + } + return map[req]; +} +webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); +}; +webpackContext.resolve = webpackContextResolve; +module.exports = webpackContext; +webpackContext.id = 632; + +/***/ }), +/* 633 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Avui\",\"nextMonth\":\"Mes següent\",\"previousMonth\":\"Mes anterior\",\"nextYear\":\"Any següent\",\"previousYear\":\"Any anterior\",\"weekdays\":[\"Diumenge\",\"Dilluns\",\"Dimarts\",\"Dimecres\",\"Dijous\",\"Divendres\",\"Dissabte\"],\"months\":[\"Gener\",\"Febrer\",\"Març\",\"Abril\",\"Maig\",\"Juny\",\"Juliol\",\"Agost\",\"Setembre\",\"Octubre\",\"Novembre\",\"Desembre\"]}"); + +/***/ }), +/* 634 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Heute\",\"nextMonth\":\"Nächster Monat\",\"previousMonth\":\"Letzter Monat\",\"nextYear\":\"Nächstes Jahr\",\"previousYear\":\"Letztes Jahr\",\"weekdays\":[\"Sonntag\",\"Montag\",\"Dienstag\",\"Mittwoch\",\"Donnerstag\",\"Freitag\",\"Samstag\"],\"months\":[\"Januar\",\"Februar\",\"März\",\"April\",\"Mai\",\"Juni\",\"Juli\",\"August\",\"September\",\"Oktober\",\"November\",\"Dezember\"]}"); + +/***/ }), +/* 635 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Hoy\",\"nextMonth\":\"Próximo mes\",\"previousMonth\":\"Mes anterior\",\"nextYear\":\"Próximo año\",\"previousYear\":\"Año anterior\",\"weekdays\":[\"Domingo\",\"Lunes\",\"Martes\",\"Miércoles\",\"Jueves\",\"Viernes\",\"Sábado\"],\"months\":[\"Enero\",\"Febrero\",\"Marzo\",\"Abril\",\"Mayo\",\"Junio\",\"Julio\",\"Agosto\",\"Septiembre\",\"Octubre\",\"Noviembre\",\"Diciembre\"]}"); + +/***/ }), +/* 636 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Tänään\",\"nextMonth\":\"Seuraava kuukausi\",\"previousMonth\":\"Edellinen kuukausi\",\"nextYear\":\"Seuraava vuosi\",\"previousYear\":\"Edellinen vuosi\",\"weekdays\":[\"Sunnuntai\",\"Maanantai\",\"Tiistai\",\"Keskiviikko\",\"Torstai\",\"Perjantai\",\"Lauantai\"],\"months\":[\"Tammikuu\",\"Helmikuu\",\"Maaliskuu\",\"Huhtikuu\",\"Toukokuu\",\"Kesäkuu\",\"Heinäkuu\",\"Elokuu\",\"Syyskuu\",\"Lokakuu\",\"Marraskuu\",\"Joulukuu\"]}"); + +/***/ }), +/* 637 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Aujourd'hui\",\"nextMonth\":\"Mois prochain\",\"previousMonth\":\"Mois précédent\",\"nextYear\":\"L'année prochaine\",\"previousYear\":\"Année précédente\",\"weekdays\":[\"Dimanche\",\"Lundi\",\"Mardi\",\"Mercredi\",\"Jeudi\",\"Vendredi\",\"Samedi\"],\"months\":[\"Janvier\",\"Février\",\"Mars\",\"Avril\",\"Mai\",\"Juin\",\"Juillet\",\"Août\",\"Septembre\",\"Octobre\",\"Novembre\",\"Décembre\"]}"); + +/***/ }), +/* 638 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"היום\",\"nextMonth\":\"חודש הבא\",\"previousMonth\":\"חודש קודם\",\"nextYear\":\"שנה הבאה\",\"previousYear\":\"שנה קודמת\",\"weekdays\":[\"א\",\"ב\",\"ג\",\"ד\",\"ה\",\"ו\",\"ש\"],\"months\":[\"ינואר\",\"פברואר\",\"מרץ\",\"אפריל\",\"מאי\",\"יוני\",\"יולי\",\"אוגוסט\",\"ספטמבר\",\"אוקטובר\",\"נובמבר\",\"דצמבר\"]}"); + +/***/ }), +/* 639 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Oggi\",\"nextMonth\":\"Prossimo mese\",\"previousMonth\":\"Mese scorso\",\"nextYear\":\"L'anno prossimo\",\"previousYear\":\"L'anno scorso\",\"weekdays\":[\"Domenica\",\"Lunedì\",\"Martedì\",\"Mercoledì\",\"Giovedì\",\"Venerdì\",\"Sabato\"],\"months\":[\"Gennaio\",\"Febbraio\",\"Marzo\",\"Aprile\",\"Maggio\",\"Giugno\",\"Luglio\",\"Agosto\",\"Settembre\",\"Ottobre\",\"Novembre\",\"Dicembre\"]}"); + +/***/ }), +/* 640 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"今日\",\"nextMonth\":\"来月\",\"previousMonth\":\"先月\",\"nextYear\":\"来年\",\"previousYear\":\"去年\",\"weekdays\":[\"日曜日\",\"月曜日\",\"火曜日\",\"水曜日\",\"木曜日\",\"金曜日\",\"土曜日\"],\"months\":[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"]}"); + +/***/ }), +/* 641 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Dzisiaj\",\"nextMonth\":\"Następny miesiąc\",\"previousMonth\":\"Poprzedni Miesiąc\",\"nextYear\":\"Następny rok\",\"previousYear\":\"Poprzedni rok\",\"weekdays\":[\"Niedziala\",\"Poniedziałek\",\"Wtorek\",\"Środa\",\"Czwartek\",\"Piątek\",\"Sobota\"],\"months\":[\"Styczeń\",\"Luty\",\"Marzec\",\"Kwiecień\",\"Maj\",\"Czerwiec\",\"Lipiec\",\"Sierpień\",\"Wrzesień\",\"Październik\",\"Listopad\",\"Grudzień\"]}"); + +/***/ }), +/* 642 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Hoje\",\"nextMonth\":\"Próximo mês\",\"previousMonth\":\"Mês anterior\",\"nextYear\":\"Próximo ano\",\"previousYear\":\"Ano anterior\",\"weekdays\":[\"Domingo\",\"Segunda\",\"Terça\",\"Quarta\",\"Quinta\",\"Sexta\",\"Sábado\"],\"months\":[\"Janeiro\",\"Fevereiro\",\"Março\",\"Abril\",\"Maio\",\"Junho\",\"Julho\",\"Agosto\",\"Setembro\",\"Outubro\",\"Novembro\",\"Dezembro\"]}"); + +/***/ }), +/* 643 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Cегодня\",\"nextMonth\":\"Следующий месяц\",\"previousMonth\":\"Прошлый месяц\",\"nextYear\":\"В следующем году\",\"previousYear\":\"Предыдущий год\",\"weekdays\":[\"воскресенье\",\"понедельник\",\"вторник\",\"среда\",\"четверг\",\"пятница\",\"суббота\"],\"months\":[\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\"]}"); + +/***/ }), +/* 644 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"Idag\",\"nextMonth\":\"Nästa månad\",\"previousMonth\":\"Föregående månad\",\"nextYear\":\"Nästa år\",\"previousYear\":\"Föregående år\",\"weekdays\":[\"Söndag\",\"Måndag\",\"Tisdag\",\"Onsdag\",\"Torsdag\",\"Fredag\",\"Lördag\"],\"months\":[\"Januari\",\"Februari\",\"Mars\",\"April\",\"Maj\",\"Juni\",\"Juli\",\"Augusti\",\"September\",\"Oktober\",\"November\",\"December\"]}"); + +/***/ }), +/* 645 */ +/***/ (function(module) { + +module.exports = JSON.parse("{\"todayButton\":\"今天\",\"nextMonth\":\"下个月\",\"previousMonth\":\"前一个月\",\"nextYear\":\"明年\",\"previousYear\":\"去年\",\"weekdays\":[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],\"months\":[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"]}"); + +/***/ }), +/* 646 */ +/***/ (function(module, exports, __webpack_require__) { + +exports = module.exports = __webpack_require__(647)(false); +// Module +exports.push([module.i, ".clndr-cell{background-color:#fff;-webkit-transition:all .2s;transition:all .2s;padding:5px 0;height:30px;cursor:pointer}.clndr-cell:hover{background-color:#cacbcd;color:inherit}.clndr-cell-today{background-color:#e0e1e2}.clndr-cell-inrange{background-color:#cacbcd;color:inherit}.clndr-cell-disabled{cursor:default;opacity:.45}.clndr-cell-disabled:hover{background-color:#fff}.clndr-cell-selected{background-color:#4f4f4f;color:#f2f2f2}.clndr-cell-other-month{color:#d9d9d9}\n.clndr-calendars-segment{text-align:center;position:absolute!important;margin-top:.25rem!important;z-index:2000}.clndr-calendars-wrapper{display:grid;grid-gap:1em;grid-template-columns:repeat(var(--n,1),1fr)}.clndr-control{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:10px;-webkit-box-align:center;align-items:center}.clndr-days{text-align:center;display:grid;grid-gap:1px;grid-template-columns:repeat(7,2.2rem);background-color:rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.1);border-radius:.28571429rem}.clndr-left{left:0}.clndr-right{right:0}.clndr-top{bottom:100%}.clndr-bottom{top:100%}.clndr-calendars-segment.clndr-top{box-shadow:0 -1px 2px 0 rgba(34,36,38,.15)!important;margin-bottom:.25rem!important}", ""]); + + +/***/ }), +/* 647 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +// css base code, injected by the css-loader +// eslint-disable-next-line func-names +module.exports = function (useSourceMap) { + var list = []; // return the list of modules as css string + + list.toString = function toString() { + return this.map(function (item) { + var content = cssWithMappingToString(item, useSourceMap); + + if (item[2]) { + return "@media ".concat(item[2], "{").concat(content, "}"); + } + + return content; + }).join(''); + }; // import a list of modules into the list + // eslint-disable-next-line func-names + + + list.i = function (modules, mediaQuery) { + if (typeof modules === 'string') { + // eslint-disable-next-line no-param-reassign + modules = [[null, modules, '']]; + } + + var alreadyImportedModules = {}; + + for (var i = 0; i < this.length; i++) { + // eslint-disable-next-line prefer-destructuring + var id = this[i][0]; + + if (id != null) { + alreadyImportedModules[id] = true; + } + } + + for (var _i = 0; _i < modules.length; _i++) { + var item = modules[_i]; // skip already imported module + // this implementation is not 100% perfect for weird media query combinations + // when a module is imported multiple times with different media queries. + // I hope this will never occur (Hey this way we have smaller bundles) + + if (item[0] == null || !alreadyImportedModules[item[0]]) { + if (mediaQuery && !item[2]) { + item[2] = mediaQuery; + } else if (mediaQuery) { + item[2] = "(".concat(item[2], ") and (").concat(mediaQuery, ")"); + } + + list.push(item); + } + } + }; + + return list; +}; + +function cssWithMappingToString(item, useSourceMap) { + var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring + + var cssMapping = item[3]; + + if (!cssMapping) { + return content; + } + + if (useSourceMap && typeof btoa === 'function') { + var sourceMapping = toComment(cssMapping); + var sourceURLs = cssMapping.sources.map(function (source) { + return "/*# sourceURL=".concat(cssMapping.sourceRoot).concat(source, " */"); + }); + return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); + } + + return [content].join('\n'); +} // Adapted from convert-source-map (MIT) + + +function toComment(sourceMap) { + // eslint-disable-next-line no-undef + var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); + var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); + return "/*# ".concat(data, " */"); +} + +/***/ }), +/* 648 */ +/***/ (function(module, exports) { + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +module.exports = _objectWithoutPropertiesLoose; + +/***/ }), +/* 649 */ +/***/ (function(module, exports, __webpack_require__) { + +var arrayReduce = __webpack_require__(261), + deburr = __webpack_require__(131), + words = __webpack_require__(650); + +/** Used to compose unicode capture groups. */ +var rsApos = "['\u2019]"; + +/** Used to match apostrophes. */ +var reApos = RegExp(rsApos, 'g'); + +/** + * Creates a function like `_.camelCase`. + * + * @private + * @param {Function} callback The function to combine each word. + * @returns {Function} Returns the new compounder function. + */ +function createCompounder(callback) { + return function(string) { + return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); + }; +} + +module.exports = createCompounder; + + +/***/ }), +/* 650 */ +/***/ (function(module, exports, __webpack_require__) { + +var asciiWords = __webpack_require__(651), + hasUnicodeWord = __webpack_require__(652), + toString = __webpack_require__(82), + unicodeWords = __webpack_require__(653); + +/** + * Splits `string` into an array of its words. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category String + * @param {string} [string=''] The string to inspect. + * @param {RegExp|string} [pattern] The pattern to match words. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {Array} Returns the words of `string`. + * @example + * + * _.words('fred, barney, & pebbles'); + * // => ['fred', 'barney', 'pebbles'] + * + * _.words('fred, barney, & pebbles', /[^, ]+/g); + * // => ['fred', 'barney', '&', 'pebbles'] + */ +function words(string, pattern, guard) { + string = toString(string); + pattern = guard ? undefined : pattern; + + if (pattern === undefined) { + return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string); + } + return string.match(pattern) || []; +} + +module.exports = words; + + +/***/ }), +/* 651 */ +/***/ (function(module, exports) { + +/** Used to match words composed of alphanumeric characters. */ +var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; + +/** + * Splits an ASCII `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ +function asciiWords(string) { + return string.match(reAsciiWord) || []; +} + +module.exports = asciiWords; + + +/***/ }), +/* 652 */ +/***/ (function(module, exports) { + +/** Used to detect strings that need a more robust regexp to match words. */ +var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; + +/** + * Checks if `string` contains a word composed of Unicode symbols. + * + * @private + * @param {string} string The string to inspect. + * @returns {boolean} Returns `true` if a word is found, else `false`. + */ +function hasUnicodeWord(string) { + return reHasUnicodeWord.test(string); +} + +module.exports = hasUnicodeWord; + + +/***/ }), +/* 653 */ +/***/ (function(module, exports) { + +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsDingbatRange = '\\u2700-\\u27bf', + rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', + rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', + rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', + rsPunctuationRange = '\\u2000-\\u206f', + rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', + rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', + rsVarRange = '\\ufe0e\\ufe0f', + rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; + +/** Used to compose unicode capture groups. */ +var rsApos = "['\u2019]", + rsBreak = '[' + rsBreakRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsDigits = '\\d+', + rsDingbat = '[' + rsDingbatRange + ']', + rsLower = '[' + rsLowerRange + ']', + rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsUpper = '[' + rsUpperRange + ']', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', + rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', + rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', + rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', + reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', + rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq; + +/** Used to match complex or compound words. */ +var reUnicodeWord = RegExp([ + rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', + rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', + rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, + rsUpper + '+' + rsOptContrUpper, + rsOrdUpper, + rsOrdLower, + rsDigits, + rsEmoji +].join('|'), 'g'); + +/** + * Splits a Unicode `string` into an array of its words. + * + * @private + * @param {string} The string to inspect. + * @returns {Array} Returns the words of `string`. + */ +function unicodeWords(string) { + return string.match(reUnicodeWord) || []; +} + +module.exports = unicodeWords; + + +/***/ }), +/* 654 */ +/***/ (function(module, exports, __webpack_require__) { + +var createCaseFirst = __webpack_require__(655); + +/** + * Converts the first character of `string` to upper case. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category String + * @param {string} [string=''] The string to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.upperFirst('fred'); + * // => 'Fred' + * + * _.upperFirst('FRED'); + * // => 'FRED' + */ +var upperFirst = createCaseFirst('toUpperCase'); + +module.exports = upperFirst; + + +/***/ }), +/* 655 */ +/***/ (function(module, exports, __webpack_require__) { + +var castSlice = __webpack_require__(656), + hasUnicode = __webpack_require__(181), + stringToArray = __webpack_require__(657), + toString = __webpack_require__(82); + +/** + * Creates a function like `_.lowerFirst`. + * + * @private + * @param {string} methodName The name of the `String` case method to use. + * @returns {Function} Returns the new case function. + */ +function createCaseFirst(methodName) { + return function(string) { + string = toString(string); + + var strSymbols = hasUnicode(string) + ? stringToArray(string) + : undefined; + + var chr = strSymbols + ? strSymbols[0] + : string.charAt(0); + + var trailing = strSymbols + ? castSlice(strSymbols, 1).join('') + : string.slice(1); + + return chr[methodName]() + trailing; + }; +} + +module.exports = createCaseFirst; + + +/***/ }), +/* 656 */ +/***/ (function(module, exports, __webpack_require__) { + +var baseSlice = __webpack_require__(169); + +/** + * Casts `array` to a slice if it's needed. + * + * @private + * @param {Array} array The array to inspect. + * @param {number} start The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the cast slice. + */ +function castSlice(array, start, end) { + var length = array.length; + end = end === undefined ? length : end; + return (!start && end >= length) ? array : baseSlice(array, start, end); +} + +module.exports = castSlice; + + +/***/ }), +/* 657 */ +/***/ (function(module, exports, __webpack_require__) { + +var asciiToArray = __webpack_require__(658), + hasUnicode = __webpack_require__(181), + unicodeToArray = __webpack_require__(659); + +/** + * Converts `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function stringToArray(string) { + return hasUnicode(string) + ? unicodeToArray(string) + : asciiToArray(string); +} + +module.exports = stringToArray; + + +/***/ }), +/* 658 */ +/***/ (function(module, exports) { + +/** + * Converts an ASCII `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function asciiToArray(string) { + return string.split(''); +} + +module.exports = asciiToArray; + + +/***/ }), +/* 659 */ +/***/ (function(module, exports) { + +/** Used to compose unicode character classes. */ +var rsAstralRange = '\\ud800-\\udfff', + rsComboMarksRange = '\\u0300-\\u036f', + reComboHalfMarksRange = '\\ufe20-\\ufe2f', + rsComboSymbolsRange = '\\u20d0-\\u20ff', + rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, + rsVarRange = '\\ufe0e\\ufe0f'; + +/** Used to compose unicode capture groups. */ +var rsAstral = '[' + rsAstralRange + ']', + rsCombo = '[' + rsComboRange + ']', + rsFitz = '\\ud83c[\\udffb-\\udfff]', + rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', + rsNonAstral = '[^' + rsAstralRange + ']', + rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', + rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', + rsZWJ = '\\u200d'; + +/** Used to compose unicode regexes. */ +var reOptMod = rsModifier + '?', + rsOptVar = '[' + rsVarRange + ']?', + rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', + rsSeq = rsOptVar + reOptMod + rsOptJoin, + rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; + +/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ +var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); + +/** + * Converts a Unicode `string` to an array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the converted array. + */ +function unicodeToArray(string) { + return string.match(reUnicode) || []; +} + +module.exports = unicodeToArray; + + +/***/ }), +/* 660 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +var childrenUtils_namespaceObject = {}; +__webpack_require__.r(childrenUtils_namespaceObject); +__webpack_require__.d(childrenUtils_namespaceObject, "someByType", function() { return childrenUtils_someByType; }); +__webpack_require__.d(childrenUtils_namespaceObject, "findByType", function() { return childrenUtils_findByType; }); +__webpack_require__.d(childrenUtils_namespaceObject, "isNil", function() { return childrenUtils_isNil; }); + +// EXTERNAL MODULE: ./node_modules/react/index.js +var react = __webpack_require__(0); +var react_default = /*#__PURE__*/__webpack_require__.n(react); + +// EXTERNAL MODULE: ./node_modules/react-dom/index.js +var react_dom = __webpack_require__(75); +var react_dom_default = /*#__PURE__*/__webpack_require__.n(react_dom); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js +var helpers_extends = __webpack_require__(4); +var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js +var classCallCheck = __webpack_require__(11); +var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js +var createClass = __webpack_require__(12); +var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +var possibleConstructorReturn = __webpack_require__(13); +var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/getPrototypeOf.js +var getPrototypeOf = __webpack_require__(10); +var getPrototypeOf_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOf); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/assertThisInitialized.js +var assertThisInitialized = __webpack_require__(2); +var assertThisInitialized_default = /*#__PURE__*/__webpack_require__.n(assertThisInitialized); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inherits.js +var inherits = __webpack_require__(14); +var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js +var defineProperty = __webpack_require__(1); +var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty); + +// EXTERNAL MODULE: ./node_modules/lodash/invoke.js +var invoke = __webpack_require__(7); +var invoke_default = /*#__PURE__*/__webpack_require__.n(invoke); + +// EXTERNAL MODULE: ./node_modules/lodash/without.js +var without = __webpack_require__(58); +var without_default = /*#__PURE__*/__webpack_require__.n(without); + +// EXTERNAL MODULE: ./node_modules/classnames/index.js +var classnames = __webpack_require__(6); +var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); + +// EXTERNAL MODULE: ./node_modules/prop-types/index.js +var prop_types = __webpack_require__(5); +var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/typeof.js +var helpers_typeof = __webpack_require__(53); +var typeof_default = /*#__PURE__*/__webpack_require__.n(helpers_typeof); + +// CONCATENATED MODULE: ./node_modules/semantic-ui-react/dist/es/lib/numberToWord.js + +var numberToWordMap = { + 1: 'one', + 2: 'two', + 3: 'three', + 4: 'four', + 5: 'five', + 6: 'six', + 7: 'seven', + 8: 'eight', + 9: 'nine', + 10: 'ten', + 11: 'eleven', + 12: 'twelve', + 13: 'thirteen', + 14: 'fourteen', + 15: 'fifteen', + 16: 'sixteen' + /** + * Return the number word for numbers 1-16. + * Returns strings or numbers as is if there is no corresponding word. + * Returns an empty string if value is not a string or number. + * @param {string|number} value The value to convert to a word. + * @returns {string} + */ + +}; +function numberToWord(value) { + var type = typeof_default()(value); + + if (type === 'string' || type === 'number') { + return numberToWordMap[value] || value; + } + + return ''; +} +// CONCATENATED MODULE: ./node_modules/semantic-ui-react/dist/es/lib/classNameBuilders.js + + +/* + * There are 3 prop patterns used to build up the className for a component. + * Each utility here is meant for use in a classnames() argument. + * + * There is no util for valueOnly() because it would simply return val. + * Use the prop value inline instead. + *